diff -Nru saods9-8.2+repack/debian/changelog saods9-8.3+repack/debian/changelog --- saods9-8.2+repack/debian/changelog 2021-09-03 18:51:26.000000000 +0000 +++ saods9-8.3+repack/debian/changelog 2021-11-12 19:34:53.000000000 +0000 @@ -1,3 +1,34 @@ +saods9 (8.3+repack-1) unstable; urgency=medium + + * New upstream version 8.3+repack. Switch back to unstable. + * Rediff patches + * d/copyright: Drop removal of no longer existend libxml2 + + -- Ole Streicher Fri, 12 Nov 2021 20:34:53 +0100 + +saods9 (8.3~rc+repack-1) experimental; urgency=medium + + * New upstream version 8.3~rc+repack + * Rediff patches + * Drop ds9-Add-the-Debian-packager-to-the-About-box.patch + + -- Ole Streicher Tue, 09 Nov 2021 13:53:55 +0100 + +saods9 (8.3~b1+repack-2) experimental; urgency=medium + + * Adjust package name of tclsignal to new version (Closes: #993547) + + -- Ole Streicher Fri, 03 Sep 2021 20:43:03 +0200 + +saods9 (8.3~b1+repack-1) experimental; urgency=medium + + * New upstream version 8.3~b1+repack. Rediff patches + * Re-order and rename patches according to subsystem + * Push Standards-Version to 4.5.1. No changes. + * Fix d/watch + + -- Ole Streicher Mon, 17 May 2021 10:34:18 +0200 + saods9 (8.2+repack-3) unstable; urgency=medium * Re-order and rename patches according to subsystem diff -Nru saods9-8.2+repack/debian/copyright saods9-8.3+repack/debian/copyright --- saods9-8.2+repack/debian/copyright 2021-05-17 17:19:52.000000000 +0000 +++ saods9-8.3+repack/debian/copyright 2021-11-12 19:33:17.000000000 +0000 @@ -4,7 +4,7 @@ Source: http://ds9.si.edu/site/Download.html Files-Excluded: tcl8.* tk8.* funtools tcllib tkimg tclsignal tktable tkcon tclxml xpa tkblt tkwin tkmpeg tkhtml1 tkagif - compilers ast tkmacosx tclzipfs libxml2 win macos ds9/win ds9/macos + compilers ast tkmacosx tclzipfs win macos ds9/win ds9/macos ds9/unix openssl tls awthemes ttkthemes scidthemes Files: * diff -Nru saods9-8.2+repack/debian/patches/ds9-Add-the-Debian-packager-to-the-About-box.patch saods9-8.3+repack/debian/patches/ds9-Add-the-Debian-packager-to-the-About-box.patch --- saods9-8.2+repack/debian/patches/ds9-Add-the-Debian-packager-to-the-About-box.patch 2021-09-03 18:49:20.000000000 +0000 +++ saods9-8.3+repack/debian/patches/ds9-Add-the-Debian-packager-to-the-About-box.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -From: Ole Streicher -Date: Fri, 16 Dec 2016 09:23:38 +0100 -Subject: [ds9] Add the Debian packager to the "About" box - ---- - ds9/library/help.tcl | 2 ++ - ds9/library/util.tcl | 2 +- - 2 files changed, 3 insertions(+), 1 deletion(-) - -diff --git a/ds9/library/help.tcl b/ds9/library/help.tcl -index a444ab9..aa70db7 100644 ---- a/ds9/library/help.tcl -+++ b/ds9/library/help.tcl -@@ -20,6 +20,8 @@ proc HelpDef {} { - - set help(authors) "William Joye (Smithsonian Astrophysical Observatory)\nEric Mandel (Smithsonian Astrophysical Observatory)\nSteve Murray (Smithsonian Astrophysical Observatory)\n" - set help(about) "SAOImageDS9\nVersion $ds9(version,display)\n\nAuthors\n$help(authors)\nSAOImage DS9 development has been made possible by funding from NASA's Applied Information Systems Research Program, Chandra X-ray Science Center (CXC), and the High Energy Astrophysics Science Archive Center (HEASARC). Additional funding was provided by the JWST Mission office at Space Telescope Science Institute to improve capabilities for 3D data visualization.\n\nColormaps\nh5utils: Steven Johnson (MIT)\nViridis: Eric Firing (UW)\nCubehelix: Dave Green (Cavendish)\nGist: David Munro (LLNL)\nTopographic: Tom Patterson (US National Park Service) " -+ -+ append help(about) "\n\nDebian/Ubuntu packaging:\nOle Streicher (AIP)" - } - - proc HelpRef {} { -diff --git a/ds9/library/util.tcl b/ds9/library/util.tcl -index 4b4838a..260136d 100644 ---- a/ds9/library/util.tcl -+++ b/ds9/library/util.tcl -@@ -818,7 +818,7 @@ proc AboutBox {} { - - # Param - set f [ttk::frame $w.param] -- canvas $f.c -background white -height 450 -width 500 -+ canvas $f.c -background white -height 485 -width 500 - pack $f.c -fill both -expand true - - set ed(sun) [image create photo -format gif -file $ds9(root)/sun.gif] diff -Nru saods9-8.2+repack/debian/patches/ds9-Don-t-close-DS9-when-closing-the-unpatched-tkcon-cons.patch saods9-8.3+repack/debian/patches/ds9-Don-t-close-DS9-when-closing-the-unpatched-tkcon-cons.patch --- saods9-8.2+repack/debian/patches/ds9-Don-t-close-DS9-when-closing-the-unpatched-tkcon-cons.patch 2021-09-03 18:49:20.000000000 +0000 +++ saods9-8.3+repack/debian/patches/ds9-Don-t-close-DS9-when-closing-the-unpatched-tkcon-cons.patch 2021-11-12 19:34:27.000000000 +0000 @@ -11,10 +11,10 @@ 1 file changed, 6 insertions(+) diff --git a/ds9/library/util.tcl b/ds9/library/util.tcl -index 260136d..6cc396a 100644 +index d662039..053d9cf 100644 --- a/ds9/library/util.tcl +++ b/ds9/library/util.tcl -@@ -896,6 +896,10 @@ proc OpenConsole {} { +@@ -889,6 +889,10 @@ proc OpenConsole {} { if {[winfo exists ".tkcon"]} { tkcon show } else { @@ -25,7 +25,7 @@ set ::tkcon::OPT(exec) {} set ::tkcon::OPT(font) [font actual TkFixedFont] -@@ -906,6 +910,8 @@ proc OpenConsole {} { +@@ -899,6 +903,8 @@ proc OpenConsole {} { win32 {bind $::tkcon::PRIV(curtab) <> {break}} aqua {} } diff -Nru saods9-8.2+repack/debian/patches/ds9-Don-t-load-TclTk-extensions-as-shared-libs-but-as-pac.patch saods9-8.3+repack/debian/patches/ds9-Don-t-load-TclTk-extensions-as-shared-libs-but-as-pac.patch --- saods9-8.2+repack/debian/patches/ds9-Don-t-load-TclTk-extensions-as-shared-libs-but-as-pac.patch 2021-09-03 18:50:02.000000000 +0000 +++ saods9-8.3+repack/debian/patches/ds9-Don-t-load-TclTk-extensions-as-shared-libs-but-as-pac.patch 2021-11-12 19:34:27.000000000 +0000 @@ -19,10 +19,10 @@ +#!/bin/sh +exec /usr/bin/wish -f ${DS9_HOME-/usr/share/saods9}/library/ds9.tcl $* diff --git a/ds9/library/ds9.tcl b/ds9/library/ds9.tcl -index f226137..d1542f5 100644 +index d156085..4b641c7 100644 --- a/ds9/library/ds9.tcl +++ b/ds9/library/ds9.tcl -@@ -182,7 +182,7 @@ if {[catch {tk windowingsystem} ds9(wm)]} { +@@ -184,7 +184,7 @@ if {[catch {tk windowingsystem} ds9(wm)]} { } # ds9(app) @@ -31,7 +31,7 @@ # ds9(top) # need for load -@@ -192,8 +192,8 @@ set ds9(mb) .mb +@@ -194,8 +194,8 @@ set ds9(mb) .mb # pre package load switch $ds9(wm) { x11 { @@ -42,7 +42,7 @@ } aqua { # set to absolute path -@@ -215,9 +215,17 @@ package require ftp +@@ -217,9 +217,17 @@ package require ftp package require math::fuzzy package require tkcon diff -Nru saods9-8.2+repack/debian/patches/ds9-Make-the-doc-package-optional-by-disabling-the-help-m.patch saods9-8.3+repack/debian/patches/ds9-Make-the-doc-package-optional-by-disabling-the-help-m.patch --- saods9-8.2+repack/debian/patches/ds9-Make-the-doc-package-optional-by-disabling-the-help-m.patch 2021-05-17 17:19:52.000000000 +0000 +++ saods9-8.3+repack/debian/patches/ds9-Make-the-doc-package-optional-by-disabling-the-help-m.patch 2021-11-12 19:34:27.000000000 +0000 @@ -7,7 +7,7 @@ 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/ds9/library/mhelp.tcl b/ds9/library/mhelp.tcl -index 8821b53..36e1acb 100644 +index 988a887..8472866 100644 --- a/ds9/library/mhelp.tcl +++ b/ds9/library/mhelp.tcl @@ -8,6 +8,7 @@ package provide DS9 1.0 diff -Nru saods9-8.2+repack/debian/patches/ds9-Use-FHS-documentation-directory.patch saods9-8.3+repack/debian/patches/ds9-Use-FHS-documentation-directory.patch --- saods9-8.2+repack/debian/patches/ds9-Use-FHS-documentation-directory.patch 2021-09-03 18:49:20.000000000 +0000 +++ saods9-8.3+repack/debian/patches/ds9-Use-FHS-documentation-directory.patch 2021-11-12 19:34:27.000000000 +0000 @@ -12,10 +12,10 @@ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/ds9/library/ds9.tcl b/ds9/library/ds9.tcl -index d1542f5..3b2b213 100644 +index 4b641c7..031fb88 100644 --- a/ds9/library/ds9.tcl +++ b/ds9/library/ds9.tcl -@@ -194,6 +194,7 @@ switch $ds9(wm) { +@@ -196,6 +196,7 @@ switch $ds9(wm) { x11 { set ds9(root) [file normalize [file join [file dirname [info script]] ..]] lappend auto_path $ds9(root)/library @@ -24,7 +24,7 @@ aqua { # set to absolute path diff --git a/ds9/library/help.tcl b/ds9/library/help.tcl -index 88d028f..a444ab9 100644 +index 97c6cf5..27efc05 100644 --- a/ds9/library/help.tcl +++ b/ds9/library/help.tcl @@ -8,15 +8,15 @@ proc HelpDef {} { @@ -35,7 +35,7 @@ - set help(command) "$ds9(root)/doc/ref/command.html" - set help(userman) "$ds9(root)/doc/user/index.html" - set help(faq) "$ds9(root)/doc/faq.html" -- set help(release) "$ds9(root)/doc/release/r8.2.html" +- set help(release) "$ds9(root)/doc/release/r8.3.html" - set help(helpdesk) "$ds9(root)/doc/helpdesk.html" - set help(story) "$ds9(root)/doc/story.html" - set help(ack) "$ds9(root)/doc/acknowledgment.html" @@ -44,20 +44,20 @@ + set help(command) "$ds9(doc)/ref/command.html" + set help(userman) "$ds9(doc)/user/index.html" + set help(faq) "$ds9(doc)/faq.html" -+ set help(release) "$ds9(doc)/release/r8.2.html" ++ set help(release) "$ds9(doc)/release/r8.3.html" + set help(helpdesk) "$ds9(doc)/helpdesk.html" + set help(story) "$ds9(doc)/story.html" + set help(ack) "$ds9(doc)/acknowledgment.html" + set help(vo) "$ds9(doc)/ref/vo.html" + # remember to update macos/SAOImageDS9/Contents/Resources/Credits.html set help(authors) "William Joye (Smithsonian Astrophysical Observatory)\nEric Mandel (Smithsonian Astrophysical Observatory)\nSteve Murray (Smithsonian Astrophysical Observatory)\n" - set help(about) "SAOImageDS9\nVersion $ds9(version,display)\n\nAuthors\n$help(authors)\nSAOImage DS9 development has been made possible by funding from NASA's Applied Information Systems Research Program, Chandra X-ray Science Center (CXC), and the High Energy Astrophysics Science Archive Center (HEASARC). Additional funding was provided by the JWST Mission office at Space Telescope Science Institute to improve capabilities for 3D data visualization.\n\nColormaps\nh5utils: Steven Johnson (MIT)\nViridis: Eric Firing (UW)\nCubehelix: Dave Green (Cavendish)\nGist: David Munro (LLNL)\nTopographic: Tom Patterson (US National Park Service) " diff --git a/ds9/library/util.tcl b/ds9/library/util.tcl -index bd25bf9..4b4838a 100644 +index 85eafe1..d662039 100644 --- a/ds9/library/util.tcl +++ b/ds9/library/util.tcl -@@ -821,8 +821,7 @@ proc AboutBox {} { - canvas $f.c -background white -height 450 -width 500 +@@ -814,8 +814,7 @@ proc AboutBoxDefault {} { + canvas $f.c -background white -height 300 -width 500 pack $f.c -fill both -expand true - set ed(sun) [image create photo -format gif -file $ds9(root)/doc/sun.gif] diff -Nru saods9-8.2+repack/debian/patches/ds9-Use-ttk-themes-provided-by-the-system.patch saods9-8.3+repack/debian/patches/ds9-Use-ttk-themes-provided-by-the-system.patch --- saods9-8.2+repack/debian/patches/ds9-Use-ttk-themes-provided-by-the-system.patch 2021-09-03 18:49:20.000000000 +0000 +++ saods9-8.3+repack/debian/patches/ds9-Use-ttk-themes-provided-by-the-system.patch 2021-11-12 19:34:27.000000000 +0000 @@ -6,22 +6,25 @@ packages. They however have slightly different names, which is changed by this patch. --- - ds9/library/ds9.tcl | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) + ds9/library/ds9.tcl | 11 +++-------- + 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/ds9/library/ds9.tcl b/ds9/library/ds9.tcl -index 3b2b213..321ef2d 100644 +index 031fb88..e5b021a 100644 --- a/ds9/library/ds9.tcl +++ b/ds9/library/ds9.tcl -@@ -239,13 +239,12 @@ switch $ds9(wm) { +@@ -241,16 +241,11 @@ switch $ds9(wm) { package require colorutils package require awdark package require awlight +- package require awarc - package require awblack - # package require awwinxpblue - package require awbreeze +- package require awbreezedark +- package require awclearlooks +- package require awwinxpblue - # tkthemes- alot of these lacks full set of colors + # ttkthemes- alot of these lacks full set of colors # package require ttk::theme::aquativo -# package require ttk::theme::black + package require ttk::theme::black @@ -29,7 +32,7 @@ # package require ttk::theme::blue package require ttk::theme::clearlooks # package require ttk::theme::elegance -@@ -258,7 +257,7 @@ switch $ds9(wm) { +@@ -263,7 +258,7 @@ switch $ds9(wm) { # package require ttk::theme::winxpblue # scidthemes diff -Nru saods9-8.2+repack/debian/patches/fitsy-Compile-against-system-library-funtools.patch saods9-8.3+repack/debian/patches/fitsy-Compile-against-system-library-funtools.patch --- saods9-8.2+repack/debian/patches/fitsy-Compile-against-system-library-funtools.patch 2021-05-17 17:19:52.000000000 +0000 +++ saods9-8.3+repack/debian/patches/fitsy-Compile-against-system-library-funtools.patch 2021-11-12 19:34:27.000000000 +0000 @@ -7,15 +7,15 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fitsy/hist.C b/fitsy/hist.C -index 6531f88..dc11947 100644 +index 53de7c4..3464f95 100644 --- a/fitsy/hist.C +++ b/fitsy/hist.C -@@ -16,7 +16,7 @@ using namespace std; - #ifndef HAVE_CONFIG_H - #define HAVE_CONFIG_H 1 +@@ -21,7 +21,7 @@ using namespace std; + #ifdef __WIN32 + #define byte foo #endif -#include "filter.h" +#include - - #ifdef __CYGWIN__ - // limit size, cygwin pipe to 64K / (4 args x 4 bytes) + #ifdef __WIN32 + #undef foo + #endif diff -Nru saods9-8.2+repack/debian/patches/series saods9-8.3+repack/debian/patches/series --- saods9-8.2+repack/debian/patches/series 2021-09-03 18:49:20.000000000 +0000 +++ saods9-8.3+repack/debian/patches/series 2021-11-12 19:34:27.000000000 +0000 @@ -1,13 +1,11 @@ ds9-Don-t-load-TclTk-extensions-as-shared-libs-but-as-pac.patch ds9-Use-FHS-documentation-directory.patch ds9-Make-the-doc-package-optional-by-disabling-the-help-m.patch -ds9-Add-the-Debian-packager-to-the-About-box.patch ds9-Don-t-close-DS9-when-closing-the-unpatched-tkcon-cons.patch ds9-Use-ttk-themes-provided-by-the-system.patch tksao-Add-a-dummy-psscale.patch tksao-Avoid-compile-time-warnings-and-errors.patch -tksao-Initialize-tkblt-stubs.patch -tksao-Unconditionally-add-include-patch-to-libxml2.patch +tksao-Initialize-tkblt-stubs-and-include-path-to-libxml2.patch tksao-Add-fitsy-objects.patch fitsy-Compile-against-system-library-funtools.patch tclfitsy-Define-debuGZ.patch diff -Nru saods9-8.2+repack/debian/patches/tclfitsy-Define-debuGZ.patch saods9-8.3+repack/debian/patches/tclfitsy-Define-debuGZ.patch --- saods9-8.2+repack/debian/patches/tclfitsy-Define-debuGZ.patch 2021-09-03 18:49:20.000000000 +0000 +++ saods9-8.3+repack/debian/patches/tclfitsy-Define-debuGZ.patch 2021-11-12 19:34:27.000000000 +0000 @@ -8,7 +8,7 @@ 2 files changed, 6 insertions(+) diff --git a/fitsy/file.C b/fitsy/file.C -index e036eb1..ec22fdd 100644 +index a7d7d39..959e9fb 100644 --- a/fitsy/file.C +++ b/fitsy/file.C @@ -21,6 +21,9 @@ void* fflval; @@ -22,7 +22,7 @@ { fflval = vval; diff --git a/tclfitsy/tclfitsy.C b/tclfitsy/tclfitsy.C -index 71f0a2c..26cd102 100644 +index 25cb9df..37908a6 100644 --- a/tclfitsy/tclfitsy.C +++ b/tclfitsy/tclfitsy.C @@ -26,6 +26,9 @@ extern "C" { diff -Nru saods9-8.2+repack/debian/patches/tclfitsy-Include-fitsy-object-files.patch saods9-8.3+repack/debian/patches/tclfitsy-Include-fitsy-object-files.patch --- saods9-8.2+repack/debian/patches/tclfitsy-Include-fitsy-object-files.patch 2021-05-17 17:19:52.000000000 +0000 +++ saods9-8.3+repack/debian/patches/tclfitsy-Include-fitsy-object-files.patch 2021-11-12 19:34:27.000000000 +0000 @@ -8,7 +8,7 @@ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/fitsy/file.C b/fitsy/file.C -index ec22fdd..e036eb1 100644 +index 959e9fb..a7d7d39 100644 --- a/fitsy/file.C +++ b/fitsy/file.C @@ -21,9 +21,6 @@ void* fflval; diff -Nru saods9-8.2+repack/debian/patches/tcliis-Use-standard-path-for-imtoolsrc.patch saods9-8.3+repack/debian/patches/tcliis-Use-standard-path-for-imtoolsrc.patch --- saods9-8.2+repack/debian/patches/tcliis-Use-standard-path-for-imtoolsrc.patch 2021-05-17 17:19:52.000000000 +0000 +++ saods9-8.3+repack/debian/patches/tcliis-Use-standard-path-for-imtoolsrc.patch 2021-11-12 19:34:27.000000000 +0000 @@ -7,7 +7,7 @@ 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tcliis/util.c b/tcliis/util.c -index 6b6814b..685759f 100644 +index d88a6dc..a02f394 100644 --- a/tcliis/util.c +++ b/tcliis/util.c @@ -51,12 +51,12 @@ void get_fbconfig (register XimDataPtr xim) diff -Nru saods9-8.2+repack/debian/patches/tksao-Add-a-dummy-psscale.patch saods9-8.3+repack/debian/patches/tksao-Add-a-dummy-psscale.patch --- saods9-8.2+repack/debian/patches/tksao-Add-a-dummy-psscale.patch 2021-09-03 18:49:20.000000000 +0000 +++ saods9-8.3+repack/debian/patches/tksao-Add-a-dummy-psscale.patch 2021-11-12 19:34:27.000000000 +0000 @@ -11,19 +11,19 @@ 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tksao/widget/widget.C b/tksao/widget/widget.C -index 320038e..7f04e5a 100644 +index 28abc23..c0da868 100644 --- a/tksao/widget/widget.C +++ b/tksao/widget/widget.C -@@ -6,6 +6,8 @@ - +@@ -7,6 +7,8 @@ #include "widget.h" + #include "util.h" +float psScale = 1.0; + // Tk Canvas Widget Functions Declaration int WidgetConfigProc(Tcl_Interp* interp, Tk_Canvas canvas, Tk_Item* item, -@@ -595,7 +597,7 @@ XColor* Widget::getXColor(const char* str) +@@ -615,7 +617,7 @@ XColor* Widget::getXColor(const char* str) XColor* cc= NULL; // starting with tk8.6, colors are W3C based, not X11 if (!strncmp(str,"green",5) || !strncmp(str,"GREEN",5)) diff -Nru saods9-8.2+repack/debian/patches/tksao-Add-fitsy-objects.patch saods9-8.3+repack/debian/patches/tksao-Add-fitsy-objects.patch --- saods9-8.2+repack/debian/patches/tksao-Add-fitsy-objects.patch 2021-09-03 18:49:20.000000000 +0000 +++ saods9-8.3+repack/debian/patches/tksao-Add-fitsy-objects.patch 2021-11-12 19:34:27.000000000 +0000 @@ -7,7 +7,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tksao/Makefile.in b/tksao/Makefile.in -index 4a6bbfd..921debe 100644 +index bca7be0..a6e80ab 100644 --- a/tksao/Makefile.in +++ b/tksao/Makefile.in @@ -34,7 +34,7 @@ diff -Nru saods9-8.2+repack/debian/patches/tksao-Avoid-compile-time-warnings-and-errors.patch saods9-8.3+repack/debian/patches/tksao-Avoid-compile-time-warnings-and-errors.patch --- saods9-8.2+repack/debian/patches/tksao-Avoid-compile-time-warnings-and-errors.patch 2021-05-17 17:19:52.000000000 +0000 +++ saods9-8.3+repack/debian/patches/tksao-Avoid-compile-time-warnings-and-errors.patch 2021-11-12 19:34:27.000000000 +0000 @@ -11,7 +11,7 @@ 5 files changed, 31 insertions(+), 31 deletions(-) diff --git a/tksao/colorbar/cbgrid.C b/tksao/colorbar/cbgrid.C -index c01ab38..a0aff1e 100644 +index c5f5a39..4edbcb5 100644 --- a/tksao/colorbar/cbgrid.C +++ b/tksao/colorbar/cbgrid.C @@ -123,19 +123,19 @@ int CBGrid::doit(RenderMode rm) @@ -49,7 +49,7 @@ // and now create astGrid astGrid2dPtr = this; diff --git a/tksao/frame/grid25d.C b/tksao/frame/grid25d.C -index 2433ad7..64425fd 100644 +index d710600..05a38b9 100644 --- a/tksao/frame/grid25d.C +++ b/tksao/frame/grid25d.C @@ -142,7 +142,7 @@ void Grid25d::doit(RenderMode rm) @@ -76,7 +76,7 @@ + astAddFrame((AstFrameSet*)frameSet, AST__CURRENT, cmp, astFrame(2, "%s", str)); } diff --git a/tksao/frame/grid2d.C b/tksao/frame/grid2d.C -index 1e1c6dc..97ff738 100644 +index 2ad2ca1..af2f9e4 100644 --- a/tksao/frame/grid2d.C +++ b/tksao/frame/grid2d.C @@ -38,7 +38,7 @@ void Grid2d::doit(RenderMode rm) @@ -121,7 +121,7 @@ + astAddFrame((AstFrameSet*)frameSet, AST__CURRENT, cmp, astFrame(2, "%s", str)); } diff --git a/tksao/frame/grid3d.C b/tksao/frame/grid3d.C -index 681f68d..05c5026 100644 +index 0ba734c..7ec59a8 100644 --- a/tksao/frame/grid3d.C +++ b/tksao/frame/grid3d.C @@ -95,19 +95,19 @@ void Grid3d::doit(RenderMode rm) @@ -175,7 +175,7 @@ + astAddFrame((AstFrameSet*)frameSet, AST__CURRENT, cmp, astFrame(3, "%s", str)); } diff --git a/tksao/frame/wcsast.C b/tksao/frame/wcsast.C -index e6ec1d6..dd1ec2a 100644 +index f43e1ad..c19b30f 100644 --- a/tksao/frame/wcsast.C +++ b/tksao/frame/wcsast.C @@ -63,7 +63,7 @@ void wcsFormat(AstFrameSet* ast, int id, const char* format) diff -Nru saods9-8.2+repack/debian/patches/tksao-Initialize-tkblt-stubs-and-include-path-to-libxml2.patch saods9-8.3+repack/debian/patches/tksao-Initialize-tkblt-stubs-and-include-path-to-libxml2.patch --- saods9-8.2+repack/debian/patches/tksao-Initialize-tkblt-stubs-and-include-path-to-libxml2.patch 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/debian/patches/tksao-Initialize-tkblt-stubs-and-include-path-to-libxml2.patch 2021-11-12 19:34:27.000000000 +0000 @@ -0,0 +1,61 @@ +From: Ole Streicher +Date: Fri, 14 Apr 2017 13:30:17 +0200 +Subject: [tksao] Initialize tkblt stubs and include path to libxml2 + +This resolves a crash when using vertical/horizontal graphs. +Closes: #859777 +It also helps building on FreeBSD and GNU HURD. +--- + tksao/configure.ac | 9 ++++++--- + tksao/saotk.C | 4 ++++ + 2 files changed, 10 insertions(+), 3 deletions(-) + +diff --git a/tksao/configure.ac b/tksao/configure.ac +index ca06ac8..f4d9635 100644 +--- a/tksao/configure.ac ++++ b/tksao/configure.ac +@@ -223,8 +223,11 @@ widget/widget.C + ]) + + TEA_ADD_HEADERS([]) +-TEA_ADD_INCLUDES([-I. -I./colorbar -I./frame -I./list -I./magnifier -I./panner -I./tkutil -I./widget -I${prefix}/include]) +-TEA_ADD_LIBS([]) ++TEA_ADD_INCLUDES([-I. -I../util -I../vector -I../fitsy -I./colorbar -I./frame -I./list -I./magnifier -I./panner -I./tkutil -I./widget -I${prefix}/include -I/usr/include/libxml2]) ++TEA_ADD_LIBS([-lstarlink_ast -lstarlink_ast_err -lfuntools -ltkbltstub -lxml2]) ++TEA_ADD_STUB_SOURCES([]) ++TEA_ADD_TCL_SOURCES([]) ++ + case $system in + Darwin* ) + case `arch` in +@@ -237,7 +240,7 @@ case $system in + esac + ;; + *) +- TEA_ADD_CFLAGS([]) ++ TEA_ADD_CFLAGS([-DUSE_TKBLT_STUBS]) + ;; + esac + TEA_ADD_STUB_SOURCES([]) +diff --git a/tksao/saotk.C b/tksao/saotk.C +index 79e40bc..2617d5b 100644 +--- a/tksao/saotk.C ++++ b/tksao/saotk.C +@@ -4,6 +4,8 @@ + + #include + ++extern const char* Tkblt_InitStubs(Tcl_Interp*, const char*, int); ++ + extern int FrameTrueColor8_Init(Tcl_Interp*); + extern int FrameTrueColor16_Init(Tcl_Interp*); + extern int FrameTrueColor24_Init(Tcl_Interp*); +@@ -39,6 +41,8 @@ int Tksao_Init(Tcl_Interp* interp) { + return TCL_ERROR; + if (Tk_InitStubs(interp, TK_PATCH_LEVEL, 0) == NULL) + return TCL_ERROR; ++ if (Tkblt_InitStubs(interp, "3.2", 0) == NULL) ++ return TCL_ERROR; + + if (FrameTrueColor8_Init(interp) == TCL_ERROR) + return TCL_ERROR; diff -Nru saods9-8.2+repack/debian/patches/tksao-Initialize-tkblt-stubs.patch saods9-8.3+repack/debian/patches/tksao-Initialize-tkblt-stubs.patch --- saods9-8.2+repack/debian/patches/tksao-Initialize-tkblt-stubs.patch 2021-09-03 18:49:20.000000000 +0000 +++ saods9-8.3+repack/debian/patches/tksao-Initialize-tkblt-stubs.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ -From: Ole Streicher -Date: Fri, 14 Apr 2017 13:30:17 +0200 -Subject: [tksao] Initialize tkblt stubs - -This resolves a crash when using vertical/horizontal graphs. -Closes: #859777 ---- - tksao/configure.ac | 6 +++--- - tksao/saotk.C | 4 ++++ - 2 files changed, 7 insertions(+), 3 deletions(-) - -diff --git a/tksao/configure.ac b/tksao/configure.ac -index a5a97d1..f1adeb1 100644 ---- a/tksao/configure.ac -+++ b/tksao/configure.ac -@@ -223,9 +223,9 @@ widget/widget.C - ]) - - TEA_ADD_HEADERS([]) --TEA_ADD_INCLUDES([-I. -I./colorbar -I./frame -I./list -I./magnifier -I./panner -I./tkutil -I./widget -I${prefix}/include]) --TEA_ADD_LIBS([]) --TEA_ADD_CFLAGS([]) -+TEA_ADD_INCLUDES([-I. -I../util -I../vector -I../fitsy -I./colorbar -I./frame -I./list -I./magnifier -I./panner -I./tkutil -I./widget -I${prefix}/include]) -+TEA_ADD_LIBS([-lstarlink_ast -lstarlink_ast_err -lfuntools -ltkbltstub -lxml2]) -+TEA_ADD_CFLAGS([-DUSE_TKBLT_STUBS]) - TEA_ADD_STUB_SOURCES([]) - TEA_ADD_TCL_SOURCES([]) - -diff --git a/tksao/saotk.C b/tksao/saotk.C -index 3484746..ed65f92 100644 ---- a/tksao/saotk.C -+++ b/tksao/saotk.C -@@ -4,6 +4,8 @@ - - #include - -+extern const char* Tkblt_InitStubs(Tcl_Interp*, const char*, int); -+ - extern int FrameTrueColor8_Init(Tcl_Interp*); - extern int FrameTrueColor16_Init(Tcl_Interp*); - extern int FrameTrueColor24_Init(Tcl_Interp*); -@@ -39,6 +41,8 @@ int Tksao_Init(Tcl_Interp* interp) { - return TCL_ERROR; - if (Tk_InitStubs(interp, TK_PATCH_LEVEL, 0) == NULL) - return TCL_ERROR; -+ if (Tkblt_InitStubs(interp, "3.2", 0) == NULL) -+ return TCL_ERROR; - - if (FrameTrueColor8_Init(interp) == TCL_ERROR) - return TCL_ERROR; diff -Nru saods9-8.2+repack/debian/patches/tksao-Unconditionally-add-include-patch-to-libxml2.patch saods9-8.3+repack/debian/patches/tksao-Unconditionally-add-include-patch-to-libxml2.patch --- saods9-8.2+repack/debian/patches/tksao-Unconditionally-add-include-patch-to-libxml2.patch 2021-09-03 18:49:20.000000000 +0000 +++ saods9-8.3+repack/debian/patches/tksao-Unconditionally-add-include-patch-to-libxml2.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -From: Ole Streicher -Date: Fri, 1 Nov 2019 12:11:04 +0100 -Subject: [tksao] Unconditionally add include patch to libxml2 - -This helps building on FreeBSD and GNU HURD. ---- - tksao/configure.ac | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tksao/configure.ac b/tksao/configure.ac -index f1adeb1..a96c6bf 100644 ---- a/tksao/configure.ac -+++ b/tksao/configure.ac -@@ -264,9 +264,9 @@ case $system in - TEA_ADD_INCLUDES([-I/usr/include/libxml2]) - ;; - FreeBSD* ) -- TEA_ADD_INCLUDES([-I/usr/local/include/libxml2]) -+ TEA_ADD_INCLUDES([-I/usr/include/libxml2]) - ;; -- windows*) -+ *) - TEA_ADD_INCLUDES([-I${prefix}/include/libxml2]) - ;; - esac diff -Nru saods9-8.2+repack/debian/patches/util-Make-internalError-dummy.patch saods9-8.3+repack/debian/patches/util-Make-internalError-dummy.patch --- saods9-8.2+repack/debian/patches/util-Make-internalError-dummy.patch 2021-05-17 17:19:52.000000000 +0000 +++ saods9-8.3+repack/debian/patches/util-Make-internalError-dummy.patch 2021-11-12 19:34:27.000000000 +0000 @@ -9,7 +9,7 @@ 1 file changed, 3 deletions(-) diff --git a/util/util.C b/util/util.C -index c842fcb..09fd583 100644 +index 62c7ffe..9abe755 100644 --- a/util/util.C +++ b/util/util.C @@ -15,9 +15,6 @@ using namespace std; diff -Nru saods9-8.2+repack/ds9/cmaps/cvidis.lut saods9-8.3+repack/ds9/cmaps/cvidis.lut --- saods9-8.2+repack/ds9/cmaps/cvidis.lut 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/cmaps/cvidis.lut 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,256 @@ +0.000000 0.135112 0.304751 +0.000000 0.138068 0.311105 +0.000000 0.141013 0.317579 +0.000000 0.143951 0.323982 +0.000000 0.146877 0.330479 +0.000000 0.149791 0.337065 +0.000000 0.152673 0.343704 +0.000000 0.155377 0.350500 +0.000000 0.157932 0.357521 +0.000000 0.160495 0.364534 +0.000000 0.163058 0.371608 +0.000000 0.165621 0.378769 +0.000000 0.168204 0.385902 +0.000000 0.170800 0.393100 +0.000000 0.173420 0.400353 +0.000000 0.176082 0.407577 +0.000000 0.178802 0.414764 +0.000000 0.181610 0.421859 +0.000000 0.184550 0.428802 +0.000000 0.186915 0.435532 +0.000000 0.188769 0.439563 +0.000000 0.190950 0.441085 +0.000000 0.193366 0.441561 +0.003602 0.195911 0.441564 +0.017852 0.198528 0.441248 +0.032110 0.201199 0.440785 +0.046205 0.203903 0.440196 +0.058378 0.206629 0.439531 +0.068968 0.209372 0.438863 +0.078624 0.212122 0.438105 +0.087465 0.214879 0.437342 +0.095645 0.217643 0.436593 +0.103401 0.220406 0.435790 +0.110658 0.223170 0.435067 +0.117612 0.225935 0.434308 +0.124291 0.228697 0.433547 +0.130669 0.231458 0.432840 +0.136830 0.234216 0.432148 +0.142852 0.236972 0.431404 +0.148638 0.239724 0.430752 +0.154261 0.242475 0.430120 +0.159733 0.245221 0.429528 +0.165113 0.247965 0.428908 +0.170362 0.250707 0.428325 +0.175490 0.253444 0.427790 +0.180503 0.256180 0.427299 +0.185453 0.258914 0.426788 +0.190303 0.261644 0.426329 +0.195057 0.264372 0.425924 +0.199764 0.267099 0.425497 +0.204385 0.269823 0.425126 +0.208926 0.272546 0.424809 +0.213431 0.275266 0.424480 +0.217863 0.277985 0.424206 +0.222264 0.280702 0.423914 +0.226598 0.283419 0.423678 +0.230871 0.286134 0.423498 +0.235120 0.288848 0.423304 +0.239312 0.291562 0.423167 +0.243485 0.294274 0.423014 +0.247605 0.296986 0.422917 +0.251675 0.299698 0.422873 +0.255731 0.302409 0.422814 +0.259740 0.305120 0.422810 +0.263738 0.307831 0.422789 +0.267693 0.310542 0.422821 +0.271639 0.313253 0.422837 +0.275513 0.315965 0.422979 +0.279411 0.318677 0.423031 +0.283240 0.321390 0.423211 +0.287065 0.324103 0.423373 +0.290884 0.326816 0.423517 +0.294669 0.329531 0.423716 +0.298421 0.332247 0.423973 +0.302169 0.334963 0.424213 +0.305886 0.337681 0.424512 +0.309601 0.340399 0.424790 +0.313287 0.343120 0.425120 +0.316941 0.345842 0.425512 +0.320595 0.348565 0.425889 +0.324250 0.351289 0.426250 +0.327875 0.354016 0.426670 +0.331474 0.356744 0.427144 +0.335073 0.359474 0.427605 +0.338673 0.362206 0.428053 +0.342246 0.364939 0.428559 +0.345793 0.367676 0.429127 +0.349341 0.370414 0.429685 +0.352892 0.373153 0.430226 +0.356418 0.375896 0.430823 +0.359916 0.378641 0.431501 +0.363446 0.381388 0.432075 +0.366923 0.384139 0.432796 +0.370430 0.386890 0.433428 +0.373884 0.389646 0.434209 +0.377371 0.392404 0.434890 +0.380830 0.395164 0.435653 +0.384268 0.397928 0.436475 +0.387705 0.400694 0.437305 +0.391151 0.403464 0.438096 +0.394568 0.406236 0.438986 +0.397991 0.409011 0.439848 +0.401418 0.411790 0.440708 +0.404820 0.414572 0.441642 +0.408226 0.417357 0.442570 +0.411607 0.420145 0.443577 +0.414992 0.422937 0.444578 +0.418383 0.425733 0.445560 +0.421748 0.428531 0.446640 +0.425120 0.431334 0.447692 +0.428462 0.434140 0.448864 +0.431817 0.436950 0.449982 +0.435168 0.439763 0.451134 +0.438504 0.442580 0.452341 +0.441810 0.445402 0.453659 +0.445148 0.448226 0.454885 +0.448447 0.451053 0.456264 +0.451759 0.453887 0.457582 +0.455072 0.456718 0.458976 +0.458366 0.459552 0.460457 +0.461616 0.462405 0.461969 +0.464947 0.465241 0.463395 +0.468254 0.468083 0.464908 +0.471501 0.470960 0.466357 +0.474812 0.473832 0.467681 +0.478186 0.476699 0.468845 +0.481622 0.479573 0.469767 +0.485141 0.482451 0.470384 +0.488697 0.485318 0.471008 +0.492278 0.488198 0.471453 +0.495913 0.491076 0.471751 +0.499552 0.493960 0.472032 +0.503185 0.496851 0.472305 +0.506866 0.499743 0.472432 +0.510540 0.502643 0.472550 +0.514226 0.505546 0.472640 +0.517920 0.508454 0.472707 +0.521643 0.511367 0.472639 +0.525348 0.514285 0.472660 +0.529086 0.517207 0.472543 +0.532829 0.520135 0.472401 +0.536553 0.523067 0.472352 +0.540307 0.526005 0.472163 +0.544069 0.528948 0.471947 +0.547840 0.531895 0.471704 +0.551612 0.534849 0.471439 +0.555393 0.537807 0.471147 +0.559181 0.540771 0.470829 +0.562972 0.543741 0.470488 +0.566802 0.546715 0.469988 +0.570607 0.549695 0.469593 +0.574417 0.552682 0.469172 +0.578236 0.555673 0.468724 +0.582087 0.558670 0.468118 +0.585916 0.561674 0.467618 +0.589753 0.564682 0.467090 +0.593622 0.567697 0.466401 +0.597469 0.570718 0.465821 +0.601354 0.573743 0.465074 +0.605211 0.576777 0.464441 +0.609105 0.579816 0.463638 +0.612977 0.582861 0.462950 +0.616852 0.585913 0.462237 +0.620765 0.588970 0.461351 +0.624654 0.592034 0.460583 +0.628576 0.595104 0.459641 +0.632506 0.598180 0.458668 +0.636412 0.601264 0.457818 +0.640352 0.604354 0.456791 +0.644270 0.607450 0.455886 +0.648222 0.610553 0.454801 +0.652178 0.613664 0.453689 +0.656114 0.616780 0.452702 +0.660082 0.619904 0.451534 +0.664055 0.623034 0.450338 +0.668008 0.626171 0.449270 +0.671991 0.629316 0.448018 +0.675981 0.632468 0.446736 +0.679979 0.635626 0.445424 +0.683950 0.638793 0.444251 +0.687957 0.641966 0.442886 +0.691971 0.645145 0.441491 +0.695985 0.648334 0.440072 +0.700008 0.651529 0.438624 +0.704037 0.654731 0.437147 +0.708067 0.657942 0.435647 +0.712105 0.661160 0.434117 +0.716177 0.664384 0.432386 +0.720222 0.667618 0.430805 +0.724274 0.670859 0.429194 +0.728334 0.674107 0.427554 +0.732422 0.677364 0.425717 +0.736488 0.680629 0.424028 +0.740589 0.683900 0.422131 +0.744664 0.687181 0.420393 +0.748772 0.690470 0.418448 +0.752886 0.693766 0.416472 +0.756975 0.697071 0.414659 +0.761096 0.700384 0.412638 +0.765223 0.703705 0.410587 +0.769353 0.707035 0.408516 +0.773486 0.710373 0.406422 +0.777651 0.713719 0.404112 +0.781795 0.717074 0.401966 +0.785965 0.720438 0.399613 +0.790116 0.723810 0.397423 +0.794298 0.727190 0.395016 +0.798480 0.730580 0.392597 +0.802667 0.733978 0.390153 +0.806859 0.737385 0.387684 +0.811054 0.740801 0.385198 +0.815274 0.744226 0.382504 +0.819499 0.747659 0.379785 +0.823729 0.751101 0.377043 +0.827959 0.754553 0.374292 +0.832192 0.758014 0.371529 +0.836429 0.761483 0.368747 +0.840693 0.764962 0.365746 +0.844957 0.768450 0.362741 +0.849223 0.771947 0.359729 +0.853515 0.775454 0.356500 +0.857809 0.778969 0.353259 +0.862105 0.782494 0.350011 +0.866421 0.786028 0.346571 +0.870717 0.789572 0.343333 +0.875057 0.793125 0.339685 +0.879378 0.796687 0.336241 +0.883720 0.800258 0.332599 +0.888081 0.803839 0.328770 +0.892440 0.807430 0.324968 +0.896818 0.811030 0.320982 +0.901195 0.814639 0.317021 +0.905589 0.818257 0.312889 +0.910000 0.821885 0.308594 +0.914407 0.825522 0.304348 +0.918828 0.829168 0.299960 +0.923279 0.832822 0.295244 +0.927724 0.836486 0.290611 +0.932180 0.840159 0.285880 +0.936660 0.843841 0.280876 +0.941147 0.847530 0.275815 +0.945654 0.851228 0.270532 +0.950178 0.854933 0.265085 +0.954725 0.858646 0.259365 +0.959284 0.862365 0.253563 +0.963872 0.866089 0.247445 +0.968469 0.869819 0.241310 +0.973114 0.873550 0.234677 +0.977780 0.877281 0.227954 +0.982497 0.881008 0.220878 +0.987293 0.884718 0.213336 +0.992218 0.888385 0.205468 +0.994847 0.892954 0.203445 +0.995249 0.898384 0.207561 +0.995503 0.903866 0.212370 +0.995737 0.909344 0.217772 diff -Nru saods9-8.2+repack/ds9/cmaps/inferno.lut saods9-8.3+repack/ds9/cmaps/inferno.lut --- saods9-8.2+repack/ds9/cmaps/inferno.lut 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/cmaps/inferno.lut 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,257 @@ +0.001462 0.000466 0.013866 +0.002267 0.001270 0.018570 +0.003299 0.002249 0.024239 +0.004547 0.003392 0.030909 +0.006006 0.004692 0.038558 +0.007676 0.006136 0.046836 +0.009561 0.007713 0.055143 +0.011663 0.009417 0.063460 +0.013995 0.011225 0.071862 +0.016561 0.013136 0.080282 +0.019373 0.015133 0.088767 +0.022447 0.017199 0.097327 +0.025793 0.019331 0.105930 +0.029432 0.021503 0.114621 +0.033385 0.023702 0.123397 +0.037668 0.025921 0.132232 +0.042253 0.028139 0.141141 +0.046915 0.030324 0.150164 +0.051644 0.032474 0.159254 +0.056449 0.034569 0.168414 +0.061340 0.036590 0.177642 +0.066331 0.038504 0.186962 +0.071429 0.040294 0.196354 +0.076637 0.041905 0.205799 +0.081962 0.043328 0.215289 +0.087411 0.044556 0.224813 +0.092990 0.045583 0.234358 +0.098702 0.046402 0.243904 +0.104551 0.047008 0.253430 +0.110536 0.047399 0.262912 +0.116656 0.047574 0.272321 +0.122908 0.047536 0.281624 +0.129285 0.047293 0.290788 +0.135778 0.046856 0.299776 +0.142378 0.046242 0.308553 +0.149073 0.045468 0.317085 +0.155850 0.044559 0.325338 +0.162689 0.043554 0.333277 +0.169575 0.042489 0.340874 +0.176493 0.041402 0.348111 +0.183429 0.040329 0.354971 +0.190367 0.039309 0.361447 +0.197297 0.038400 0.367535 +0.204209 0.037632 0.373238 +0.211095 0.037030 0.378563 +0.217949 0.036615 0.383522 +0.224763 0.036405 0.388129 +0.231538 0.036405 0.392400 +0.238273 0.036621 0.396353 +0.244967 0.037055 0.400007 +0.251620 0.037705 0.403378 +0.258234 0.038571 0.406485 +0.264810 0.039647 0.409345 +0.271347 0.040922 0.411976 +0.277850 0.042353 0.414392 +0.284321 0.043933 0.416608 +0.290763 0.045644 0.418637 +0.297178 0.047470 0.420491 +0.303568 0.049396 0.422182 +0.309935 0.051407 0.423721 +0.316282 0.053490 0.425116 +0.322610 0.055634 0.426377 +0.328921 0.057827 0.427511 +0.335217 0.060060 0.428524 +0.341500 0.062325 0.429425 +0.347771 0.064616 0.430217 +0.354032 0.066925 0.430906 +0.360284 0.069247 0.431497 +0.366529 0.071579 0.431994 +0.372768 0.073915 0.432400 +0.379001 0.076253 0.432719 +0.385228 0.078591 0.432955 +0.391453 0.080927 0.433109 +0.397674 0.083257 0.433183 +0.403894 0.085580 0.433179 +0.410113 0.087896 0.433098 +0.416331 0.090203 0.432943 +0.422549 0.092501 0.432714 +0.428768 0.094790 0.432412 +0.434987 0.097069 0.432039 +0.441207 0.099338 0.431594 +0.447428 0.101597 0.431080 +0.453651 0.103848 0.430498 +0.459875 0.106089 0.429846 +0.466100 0.108322 0.429125 +0.472328 0.110547 0.428334 +0.478558 0.112764 0.427475 +0.484789 0.114974 0.426548 +0.491022 0.117179 0.425552 +0.497257 0.119379 0.424488 +0.503493 0.121575 0.423356 +0.509730 0.123769 0.422156 +0.515967 0.125960 0.420887 +0.522206 0.128150 0.419549 +0.528444 0.130341 0.418142 +0.534683 0.132534 0.416667 +0.540920 0.134729 0.415123 +0.547157 0.136929 0.413511 +0.553392 0.139134 0.411829 +0.559624 0.141346 0.410078 +0.565854 0.143567 0.408258 +0.572081 0.145797 0.406369 +0.578304 0.148039 0.404411 +0.584521 0.150294 0.402385 +0.590734 0.152563 0.400290 +0.596940 0.154848 0.398125 +0.603139 0.157151 0.395891 +0.609330 0.159474 0.393589 +0.615513 0.161817 0.391219 +0.621685 0.164184 0.388781 +0.627847 0.166575 0.386276 +0.633998 0.168992 0.383704 +0.640135 0.171438 0.381065 +0.646260 0.173914 0.378359 +0.652369 0.176421 0.375586 +0.658463 0.178962 0.372748 +0.664540 0.181539 0.369846 +0.670599 0.184153 0.366879 +0.676638 0.186807 0.363849 +0.682656 0.189501 0.360757 +0.688653 0.192239 0.357603 +0.694627 0.195021 0.354388 +0.700576 0.197851 0.351113 +0.706500 0.200728 0.347777 +0.712396 0.203656 0.344383 +0.718264 0.206636 0.340931 +0.724103 0.209670 0.337424 +0.729909 0.212759 0.333861 +0.735683 0.215906 0.330245 +0.741423 0.219112 0.326576 +0.747127 0.222378 0.322856 +0.752794 0.225706 0.319085 +0.758422 0.229097 0.315266 +0.764010 0.232554 0.311399 +0.769556 0.236077 0.307485 +0.775059 0.239667 0.303526 +0.780517 0.243327 0.299523 +0.785929 0.247056 0.295477 +0.791293 0.250856 0.291390 +0.796607 0.254728 0.287264 +0.801871 0.258674 0.283099 +0.807082 0.262692 0.278898 +0.812239 0.266786 0.274661 +0.817341 0.270954 0.270390 +0.822386 0.275197 0.266085 +0.827372 0.279517 0.261750 +0.832299 0.283913 0.257383 +0.837165 0.288385 0.252988 +0.841969 0.292933 0.248564 +0.846709 0.297559 0.244113 +0.851384 0.302260 0.239636 +0.855992 0.307038 0.235133 +0.860533 0.311892 0.230606 +0.865006 0.316822 0.226055 +0.869409 0.321827 0.221482 +0.873741 0.326906 0.216886 +0.878001 0.332060 0.212268 +0.882188 0.337287 0.207628 +0.886302 0.342586 0.202968 +0.890341 0.347957 0.198286 +0.894305 0.353399 0.193584 +0.898192 0.358911 0.188860 +0.902003 0.364492 0.184116 +0.905735 0.370140 0.179350 +0.909390 0.375856 0.174563 +0.912966 0.381636 0.169755 +0.916462 0.387481 0.164924 +0.919879 0.393389 0.160070 +0.923215 0.399359 0.155193 +0.926470 0.405389 0.150292 +0.929644 0.411479 0.145367 +0.932737 0.417627 0.140417 +0.935747 0.423831 0.135440 +0.938675 0.430091 0.130438 +0.941521 0.436405 0.125409 +0.944285 0.442772 0.120354 +0.946965 0.449191 0.115272 +0.949562 0.455660 0.110164 +0.952075 0.462178 0.105031 +0.954506 0.468744 0.099874 +0.956852 0.475356 0.094695 +0.959114 0.482014 0.089499 +0.961293 0.488716 0.084289 +0.963387 0.495462 0.079073 +0.965397 0.502249 0.073859 +0.967322 0.509078 0.068659 +0.969163 0.515946 0.063488 +0.970919 0.522853 0.058367 +0.972590 0.529798 0.053324 +0.974176 0.536780 0.048392 +0.975677 0.543798 0.043618 +0.977092 0.550850 0.039050 +0.978422 0.557937 0.034931 +0.979666 0.565057 0.031409 +0.980824 0.572209 0.028508 +0.981895 0.579392 0.026250 +0.982881 0.586606 0.024661 +0.983779 0.593849 0.023770 +0.984591 0.601122 0.023606 +0.985315 0.608422 0.024202 +0.985952 0.615750 0.025592 +0.986502 0.623105 0.027814 +0.986964 0.630485 0.030908 +0.987337 0.637890 0.034916 +0.987622 0.645320 0.039886 +0.987819 0.652773 0.045581 +0.987926 0.660250 0.051750 +0.987945 0.667748 0.058329 +0.987874 0.675267 0.065257 +0.987714 0.682807 0.072489 +0.987464 0.690366 0.079990 +0.987124 0.697944 0.087731 +0.986694 0.705540 0.095694 +0.986175 0.713153 0.103863 +0.985566 0.720782 0.112229 +0.984865 0.728427 0.120785 +0.984075 0.736087 0.129527 +0.983196 0.743758 0.138453 +0.982228 0.751442 0.147565 +0.981173 0.759135 0.156863 +0.980032 0.766837 0.166353 +0.978806 0.774545 0.176037 +0.977497 0.782258 0.185923 +0.976108 0.789974 0.196018 +0.974638 0.797692 0.206332 +0.973088 0.805409 0.216877 +0.971468 0.813122 0.227658 +0.969783 0.820825 0.238686 +0.968041 0.828515 0.249972 +0.966243 0.836191 0.261534 +0.964394 0.843848 0.273391 +0.962517 0.851476 0.285546 +0.960626 0.859069 0.298010 +0.958720 0.866624 0.310820 +0.956834 0.874129 0.323974 +0.954997 0.881569 0.337475 +0.953215 0.888942 0.351369 +0.951546 0.896226 0.365627 +0.950018 0.903409 0.380271 +0.948683 0.910473 0.395289 +0.947594 0.917399 0.410665 +0.946809 0.924168 0.426373 +0.946392 0.930761 0.442367 +0.946403 0.937159 0.458592 +0.946903 0.943348 0.474970 +0.947937 0.949318 0.491426 +0.949545 0.955063 0.507860 +0.951740 0.960587 0.524203 +0.954529 0.965896 0.540361 +0.957896 0.971003 0.556275 +0.961812 0.975924 0.571925 +0.966249 0.980678 0.587206 +0.971162 0.985282 0.602154 +0.976511 0.989753 0.616760 +0.982257 0.994109 0.631017 +0.988362 0.998364 0.644924 + diff -Nru saods9-8.2+repack/ds9/cmaps/magma.lut saods9-8.3+repack/ds9/cmaps/magma.lut --- saods9-8.2+repack/ds9/cmaps/magma.lut 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/cmaps/magma.lut 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,256 @@ +0.001462 0.000466 0.013866 +0.002258 0.001295 0.018331 +0.003279 0.002305 0.023708 +0.004512 0.003490 0.029965 +0.005950 0.004843 0.037130 +0.007588 0.006356 0.044973 +0.009426 0.008022 0.052844 +0.011465 0.009828 0.060750 +0.013708 0.011771 0.068667 +0.016156 0.013840 0.076603 +0.018815 0.016026 0.084584 +0.021692 0.018320 0.092610 +0.024792 0.020715 0.100676 +0.028123 0.023201 0.108787 +0.031696 0.025765 0.116965 +0.035520 0.028397 0.125209 +0.039608 0.031090 0.133515 +0.043830 0.033830 0.141886 +0.048062 0.036607 0.150327 +0.052320 0.039407 0.158841 +0.056615 0.042160 0.167446 +0.060949 0.044794 0.176129 +0.065330 0.047318 0.184892 +0.069764 0.049726 0.193735 +0.074257 0.052017 0.202660 +0.078815 0.054184 0.211667 +0.083446 0.056225 0.220755 +0.088155 0.058133 0.229922 +0.092949 0.059904 0.239164 +0.097833 0.061531 0.248477 +0.102815 0.063010 0.257854 +0.107899 0.064335 0.267289 +0.113094 0.065492 0.276784 +0.118405 0.066479 0.286321 +0.123833 0.067295 0.295879 +0.129380 0.067935 0.305443 +0.135053 0.068391 0.315000 +0.140858 0.068654 0.324538 +0.146785 0.068738 0.334011 +0.152839 0.068637 0.343404 +0.159018 0.068354 0.352688 +0.165308 0.067911 0.361816 +0.171713 0.067305 0.370771 +0.178212 0.066576 0.379497 +0.184801 0.065732 0.387973 +0.191460 0.064818 0.396152 +0.198177 0.063862 0.404009 +0.204935 0.062907 0.411514 +0.211718 0.061992 0.418647 +0.218512 0.061158 0.425392 +0.225302 0.060445 0.431742 +0.232077 0.059889 0.437695 +0.238826 0.059517 0.443256 +0.245543 0.059352 0.448436 +0.252220 0.059415 0.453248 +0.258857 0.059706 0.457710 +0.265447 0.060237 0.461840 +0.271994 0.060994 0.465660 +0.278493 0.061978 0.469190 +0.284951 0.063168 0.472451 +0.291366 0.064553 0.475462 +0.297740 0.066117 0.478243 +0.304081 0.067835 0.480812 +0.310382 0.069702 0.483186 +0.316654 0.071690 0.485380 +0.322899 0.073782 0.487408 +0.329114 0.075972 0.489287 +0.335308 0.078236 0.491024 +0.341482 0.080564 0.492631 +0.347636 0.082946 0.494121 +0.353773 0.085373 0.495501 +0.359898 0.087831 0.496778 +0.366012 0.090314 0.497960 +0.372116 0.092816 0.499053 +0.378211 0.095332 0.500067 +0.384299 0.097855 0.501002 +0.390384 0.100379 0.501864 +0.396467 0.102902 0.502658 +0.402548 0.105420 0.503386 +0.408629 0.107930 0.504052 +0.414709 0.110431 0.504662 +0.420791 0.112920 0.505215 +0.426877 0.115395 0.505714 +0.432967 0.117855 0.506160 +0.439062 0.120298 0.506555 +0.445163 0.122724 0.506901 +0.451271 0.125132 0.507198 +0.457386 0.127522 0.507448 +0.463508 0.129893 0.507652 +0.469640 0.132245 0.507809 +0.475780 0.134577 0.507921 +0.481929 0.136891 0.507989 +0.488088 0.139186 0.508011 +0.494258 0.141462 0.507988 +0.500438 0.143719 0.507920 +0.506629 0.145958 0.507806 +0.512831 0.148179 0.507648 +0.519045 0.150383 0.507443 +0.525270 0.152569 0.507192 +0.531507 0.154739 0.506895 +0.537755 0.156894 0.506551 +0.544015 0.159033 0.506159 +0.550287 0.161158 0.505719 +0.556571 0.163269 0.505230 +0.562866 0.165368 0.504692 +0.569172 0.167454 0.504105 +0.575490 0.169530 0.503466 +0.581819 0.171596 0.502777 +0.588158 0.173652 0.502035 +0.594508 0.175701 0.501241 +0.600868 0.177743 0.500394 +0.607238 0.179779 0.499492 +0.613617 0.181811 0.498536 +0.620005 0.183840 0.497524 +0.626401 0.185867 0.496456 +0.632805 0.187893 0.495332 +0.639216 0.189921 0.494150 +0.645633 0.191952 0.492910 +0.652056 0.193986 0.491611 +0.658483 0.196027 0.490253 +0.664915 0.198075 0.488836 +0.671349 0.200133 0.487358 +0.677786 0.202203 0.485819 +0.684224 0.204286 0.484219 +0.690661 0.206384 0.482558 +0.697098 0.208501 0.480835 +0.703532 0.210638 0.479049 +0.709962 0.212797 0.477201 +0.716387 0.214982 0.475290 +0.722805 0.217194 0.473316 +0.729216 0.219437 0.471279 +0.735616 0.221713 0.469180 +0.742004 0.224025 0.467018 +0.748378 0.226377 0.464794 +0.754737 0.228772 0.462509 +0.761077 0.231214 0.460162 +0.767398 0.233705 0.457755 +0.773695 0.236249 0.455289 +0.779968 0.238851 0.452765 +0.786212 0.241514 0.450184 +0.792427 0.244242 0.447543 +0.798608 0.247040 0.444848 +0.804752 0.249911 0.442102 +0.810855 0.252861 0.439305 +0.816914 0.255895 0.436461 +0.822926 0.259016 0.433573 +0.828886 0.262229 0.430644 +0.834791 0.265540 0.427671 +0.840636 0.268953 0.424666 +0.846416 0.272473 0.421631 +0.852126 0.276106 0.418573 +0.857763 0.279857 0.415496 +0.863320 0.283729 0.412403 +0.868793 0.287728 0.409303 +0.874176 0.291859 0.406205 +0.879464 0.296125 0.403118 +0.884651 0.300530 0.400047 +0.889731 0.305079 0.397002 +0.894700 0.309773 0.393995 +0.899552 0.314616 0.391037 +0.904281 0.319610 0.388137 +0.908884 0.324755 0.385308 +0.913354 0.330052 0.382563 +0.917689 0.335500 0.379915 +0.921884 0.341098 0.377376 +0.925937 0.346844 0.374959 +0.929845 0.352734 0.372677 +0.933606 0.358764 0.370541 +0.937221 0.364929 0.368567 +0.940687 0.371224 0.366762 +0.944006 0.377643 0.365136 +0.947180 0.384178 0.363701 +0.950210 0.390820 0.362468 +0.953099 0.397563 0.361438 +0.955849 0.404400 0.360619 +0.958464 0.411324 0.360014 +0.960949 0.418323 0.359630 +0.963310 0.425390 0.359469 +0.965549 0.432519 0.359529 +0.967671 0.439703 0.359810 +0.969680 0.446936 0.360311 +0.971582 0.454210 0.361030 +0.973381 0.461520 0.361965 +0.975082 0.468861 0.363111 +0.976690 0.476226 0.364466 +0.978210 0.483612 0.366025 +0.979645 0.491014 0.367783 +0.981000 0.498428 0.369734 +0.982279 0.505851 0.371874 +0.983485 0.513280 0.374198 +0.984622 0.520713 0.376698 +0.985693 0.528148 0.379371 +0.986700 0.535582 0.382210 +0.987646 0.543015 0.385210 +0.988533 0.550446 0.388365 +0.989363 0.557873 0.391671 +0.990138 0.565296 0.395122 +0.990871 0.572706 0.398714 +0.991558 0.580107 0.402441 +0.992196 0.587502 0.406299 +0.992785 0.594891 0.410283 +0.993326 0.602275 0.414390 +0.993834 0.609644 0.418613 +0.994309 0.616999 0.422950 +0.994738 0.624350 0.427397 +0.995122 0.631696 0.431951 +0.995480 0.639027 0.436607 +0.995810 0.646344 0.441361 +0.996096 0.653659 0.446213 +0.996341 0.660969 0.451160 +0.996580 0.668256 0.456192 +0.996775 0.675541 0.461314 +0.996925 0.682828 0.466526 +0.997077 0.690088 0.471811 +0.997186 0.697349 0.477182 +0.997254 0.704611 0.482635 +0.997325 0.711848 0.488154 +0.997351 0.719089 0.493755 +0.997351 0.726324 0.499428 +0.997341 0.733545 0.505167 +0.997285 0.740772 0.510983 +0.997228 0.747981 0.516859 +0.997138 0.755190 0.522806 +0.997019 0.762398 0.528821 +0.996898 0.769591 0.534892 +0.996727 0.776795 0.541039 +0.996571 0.783977 0.547233 +0.996369 0.791167 0.553499 +0.996162 0.798348 0.559820 +0.995932 0.805527 0.566202 +0.995680 0.812706 0.572645 +0.995424 0.819875 0.579140 +0.995131 0.827052 0.585701 +0.994851 0.834213 0.592307 +0.994524 0.841387 0.598983 +0.994222 0.848540 0.605696 +0.993866 0.855711 0.612482 +0.993545 0.862859 0.619299 +0.993170 0.870024 0.626189 +0.992831 0.877168 0.633109 +0.992440 0.884330 0.640099 +0.992089 0.891470 0.647116 +0.991688 0.898627 0.654202 +0.991332 0.905763 0.661309 +0.990930 0.912915 0.668481 +0.990570 0.920049 0.675675 +0.990175 0.927196 0.682926 +0.989815 0.934329 0.690198 +0.989434 0.941470 0.697519 +0.989077 0.948604 0.704863 +0.988717 0.955742 0.712242 +0.988367 0.962878 0.719649 +0.988033 0.970012 0.727077 +0.987691 0.977154 0.734536 +0.987387 0.984288 0.742002 +0.987053 0.991438 0.749504 diff -Nru saods9-8.2+repack/ds9/cmaps/plasma.lut saods9-8.3+repack/ds9/cmaps/plasma.lut --- saods9-8.2+repack/ds9/cmaps/plasma.lut 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/cmaps/plasma.lut 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,256 @@ +0.050383 0.029803 0.527975 +0.063536 0.028426 0.533124 +0.075353 0.027206 0.538007 +0.086222 0.026125 0.542658 +0.096379 0.025165 0.547103 +0.105980 0.024309 0.551368 +0.115124 0.023556 0.555468 +0.123903 0.022878 0.559423 +0.132381 0.022258 0.563250 +0.140603 0.021687 0.566959 +0.148607 0.021154 0.570562 +0.156421 0.020651 0.574065 +0.164070 0.020171 0.577478 +0.171574 0.019706 0.580806 +0.178950 0.019252 0.584054 +0.186213 0.018803 0.587228 +0.193374 0.018354 0.590330 +0.200445 0.017902 0.593364 +0.207435 0.017442 0.596333 +0.214350 0.016973 0.599239 +0.221197 0.016497 0.602083 +0.227983 0.016007 0.604867 +0.234715 0.015502 0.607592 +0.241396 0.014979 0.610259 +0.248032 0.014439 0.612868 +0.254627 0.013882 0.615419 +0.261183 0.013308 0.617911 +0.267703 0.012716 0.620346 +0.274191 0.012109 0.622722 +0.280648 0.011488 0.625038 +0.287076 0.010855 0.627295 +0.293478 0.010213 0.629490 +0.299855 0.009561 0.631624 +0.306210 0.008902 0.633694 +0.312543 0.008239 0.635700 +0.318856 0.007576 0.637640 +0.325150 0.006915 0.639512 +0.331426 0.006261 0.641316 +0.337683 0.005618 0.643049 +0.343925 0.004991 0.644710 +0.350150 0.004382 0.646298 +0.356359 0.003798 0.647810 +0.362553 0.003243 0.649245 +0.368733 0.002724 0.650601 +0.374897 0.002245 0.651876 +0.381047 0.001814 0.653068 +0.387183 0.001434 0.654177 +0.393304 0.001114 0.655199 +0.399411 0.000859 0.656133 +0.405503 0.000678 0.656977 +0.411580 0.000577 0.657730 +0.417642 0.000564 0.658390 +0.423689 0.000646 0.658956 +0.429719 0.000831 0.659425 +0.435734 0.001127 0.659797 +0.441732 0.001540 0.660069 +0.447714 0.002080 0.660240 +0.453677 0.002755 0.660310 +0.459623 0.003574 0.660277 +0.465550 0.004545 0.660139 +0.471457 0.005678 0.659897 +0.477344 0.006980 0.659549 +0.483210 0.008460 0.659095 +0.489055 0.010127 0.658534 +0.494877 0.011990 0.657865 +0.500678 0.014055 0.657088 +0.506454 0.016333 0.656202 +0.512206 0.018833 0.655209 +0.517933 0.021563 0.654109 +0.523633 0.024532 0.652901 +0.529306 0.027747 0.651586 +0.534952 0.031217 0.650165 +0.540570 0.034950 0.648640 +0.546157 0.038954 0.647010 +0.551715 0.043136 0.645277 +0.557243 0.047331 0.643443 +0.562738 0.051545 0.641509 +0.568201 0.055778 0.639477 +0.573632 0.060028 0.637349 +0.579029 0.064296 0.635126 +0.584391 0.068579 0.632812 +0.589719 0.072878 0.630408 +0.595011 0.077190 0.627917 +0.600266 0.081516 0.625342 +0.605485 0.085854 0.622686 +0.610667 0.090204 0.619951 +0.615812 0.094564 0.617140 +0.620919 0.098934 0.614257 +0.625987 0.103312 0.611305 +0.631017 0.107699 0.608287 +0.636008 0.112092 0.605205 +0.640959 0.116492 0.602065 +0.645872 0.120898 0.598867 +0.650746 0.125309 0.595617 +0.655580 0.129725 0.592317 +0.660374 0.134144 0.588971 +0.665129 0.138566 0.585582 +0.669845 0.142992 0.582154 +0.674522 0.147419 0.578688 +0.679160 0.151848 0.575189 +0.683758 0.156278 0.571660 +0.688318 0.160709 0.568103 +0.692840 0.165141 0.564522 +0.697324 0.169573 0.560919 +0.701769 0.174005 0.557296 +0.706178 0.178437 0.553657 +0.710549 0.182868 0.550004 +0.714883 0.187299 0.546338 +0.719181 0.191729 0.542663 +0.723444 0.196158 0.538981 +0.727670 0.200586 0.535293 +0.731862 0.205013 0.531601 +0.736019 0.209439 0.527908 +0.740143 0.213864 0.524216 +0.744232 0.218288 0.520524 +0.748289 0.222711 0.516834 +0.752312 0.227133 0.513149 +0.756304 0.231555 0.509468 +0.760264 0.235976 0.505794 +0.764193 0.240396 0.502126 +0.768090 0.244817 0.498465 +0.771958 0.249237 0.494813 +0.775796 0.253658 0.491171 +0.779604 0.258078 0.487539 +0.783383 0.262500 0.483918 +0.787133 0.266922 0.480307 +0.790855 0.271345 0.476706 +0.794549 0.275770 0.473117 +0.798216 0.280197 0.469538 +0.801855 0.284626 0.465971 +0.805467 0.289057 0.462415 +0.809052 0.293491 0.458870 +0.812612 0.297928 0.455338 +0.816144 0.302368 0.451816 +0.819651 0.306812 0.448306 +0.823132 0.311261 0.444806 +0.826588 0.315714 0.441316 +0.830018 0.320172 0.437836 +0.833422 0.324635 0.434366 +0.836801 0.329105 0.430905 +0.840155 0.333580 0.427455 +0.843484 0.338062 0.424013 +0.846788 0.342551 0.420579 +0.850066 0.347048 0.417153 +0.853319 0.351553 0.413734 +0.856547 0.356066 0.410322 +0.859750 0.360588 0.406917 +0.862927 0.365119 0.403519 +0.866078 0.369660 0.400126 +0.869203 0.374212 0.396738 +0.872303 0.378774 0.393355 +0.875376 0.383347 0.389976 +0.878423 0.387932 0.386600 +0.881443 0.392529 0.383229 +0.884436 0.397139 0.379860 +0.887402 0.401762 0.376494 +0.890340 0.406398 0.373130 +0.893250 0.411048 0.369768 +0.896131 0.415712 0.366407 +0.898984 0.420392 0.363047 +0.901807 0.425087 0.359688 +0.904601 0.429797 0.356329 +0.907365 0.434524 0.352970 +0.910098 0.439268 0.349610 +0.912800 0.444029 0.346251 +0.915471 0.448807 0.342890 +0.918109 0.453603 0.339529 +0.920714 0.458417 0.336166 +0.923287 0.463251 0.332801 +0.925825 0.468103 0.329435 +0.928329 0.472975 0.326067 +0.930798 0.477867 0.322697 +0.933232 0.482780 0.319325 +0.935630 0.487712 0.315952 +0.937990 0.492667 0.312575 +0.940313 0.497642 0.309197 +0.942598 0.502639 0.305816 +0.944844 0.507658 0.302433 +0.947051 0.512699 0.299049 +0.949217 0.517763 0.295662 +0.951344 0.522850 0.292275 +0.953428 0.527960 0.288883 +0.955470 0.533093 0.285490 +0.957469 0.538250 0.282096 +0.959424 0.543431 0.278701 +0.961336 0.548636 0.275305 +0.963203 0.553865 0.271909 +0.965024 0.559118 0.268513 +0.966798 0.564396 0.265118 +0.968526 0.569700 0.261721 +0.970205 0.575028 0.258325 +0.971835 0.580382 0.254931 +0.973416 0.585761 0.251540 +0.974947 0.591165 0.248151 +0.976428 0.596595 0.244767 +0.977856 0.602051 0.241387 +0.979233 0.607532 0.238013 +0.980556 0.613039 0.234646 +0.981826 0.618572 0.231287 +0.983041 0.624131 0.227937 +0.984199 0.629718 0.224595 +0.985301 0.635330 0.221265 +0.986345 0.640969 0.217948 +0.987332 0.646633 0.214648 +0.988260 0.652325 0.211364 +0.989128 0.658043 0.208100 +0.989935 0.663787 0.204859 +0.990681 0.669558 0.201642 +0.991365 0.675355 0.198453 +0.991985 0.681179 0.195295 +0.992541 0.687030 0.192170 +0.993032 0.692907 0.189084 +0.993456 0.698810 0.186041 +0.993814 0.704741 0.183043 +0.994103 0.710698 0.180097 +0.994324 0.716681 0.177208 +0.994474 0.722691 0.174381 +0.994553 0.728728 0.171622 +0.994561 0.734791 0.168938 +0.994495 0.740880 0.166335 +0.994355 0.746995 0.163821 +0.994141 0.753137 0.161404 +0.993851 0.759304 0.159092 +0.993482 0.765499 0.156891 +0.993033 0.771720 0.154808 +0.992505 0.777967 0.152855 +0.991897 0.784239 0.151042 +0.991209 0.790537 0.149377 +0.990439 0.796859 0.147870 +0.989587 0.803205 0.146529 +0.988648 0.809579 0.145357 +0.987621 0.815978 0.144363 +0.986509 0.822401 0.143557 +0.985314 0.828846 0.142945 +0.984031 0.835315 0.142528 +0.982653 0.841812 0.142303 +0.981190 0.848329 0.142279 +0.979644 0.854866 0.142453 +0.977995 0.861432 0.142808 +0.976265 0.868016 0.143351 +0.974443 0.874622 0.144061 +0.972530 0.881250 0.144923 +0.970533 0.887896 0.145919 +0.968443 0.894564 0.147014 +0.966271 0.901249 0.148180 +0.964021 0.907950 0.149370 +0.961681 0.914672 0.150520 +0.959276 0.921407 0.151566 +0.956808 0.928152 0.152409 +0.954287 0.934908 0.152921 +0.951726 0.941671 0.152925 +0.949151 0.948435 0.152178 +0.946602 0.955190 0.150328 +0.944152 0.961916 0.146861 +0.941896 0.968590 0.140956 +0.940015 0.975158 0.131326 diff -Nru saods9-8.2+repack/ds9/cmaps/turbo.lut saods9-8.3+repack/ds9/cmaps/turbo.lut --- saods9-8.2+repack/ds9/cmaps/turbo.lut 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/cmaps/turbo.lut 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,256 @@ +0.18995 0.07176 0.23217 +0.19483 0.08339 0.26149 +0.19956 0.09498 0.29024 +0.20415 0.10652 0.31844 +0.20860 0.11802 0.34607 +0.21291 0.12947 0.37314 +0.21708 0.14087 0.39964 +0.22111 0.15223 0.42558 +0.22500 0.16354 0.45096 +0.22875 0.17481 0.47578 +0.23236 0.18603 0.50004 +0.23582 0.19720 0.52373 +0.23915 0.20833 0.54686 +0.24234 0.21941 0.56942 +0.24539 0.23044 0.59142 +0.24830 0.24143 0.61286 +0.25107 0.25237 0.63374 +0.25369 0.26327 0.65406 +0.25618 0.27412 0.67381 +0.25853 0.28492 0.69300 +0.26074 0.29568 0.71162 +0.26280 0.30639 0.72968 +0.26473 0.31706 0.74718 +0.26652 0.32768 0.76412 +0.26816 0.33825 0.78050 +0.26967 0.34878 0.79631 +0.27103 0.35926 0.81156 +0.27226 0.36970 0.82624 +0.27334 0.38008 0.84037 +0.27429 0.39043 0.85393 +0.27509 0.40072 0.86692 +0.27576 0.41097 0.87936 +0.27628 0.42118 0.89123 +0.27667 0.43134 0.90254 +0.27691 0.44145 0.91328 +0.27701 0.45152 0.92347 +0.27698 0.46153 0.93309 +0.27680 0.47151 0.94214 +0.27648 0.48144 0.95064 +0.27603 0.49132 0.95857 +0.27543 0.50115 0.96594 +0.27469 0.51094 0.97275 +0.27381 0.52069 0.97899 +0.27273 0.53040 0.98461 +0.27106 0.54015 0.98930 +0.26878 0.54995 0.99303 +0.26592 0.55979 0.99583 +0.26252 0.56967 0.99773 +0.25862 0.57958 0.99876 +0.25425 0.58950 0.99896 +0.24946 0.59943 0.99835 +0.24427 0.60937 0.99697 +0.23874 0.61931 0.99485 +0.23288 0.62923 0.99202 +0.22676 0.63913 0.98851 +0.22039 0.64901 0.98436 +0.21382 0.65886 0.97959 +0.20708 0.66866 0.97423 +0.20021 0.67842 0.96833 +0.19326 0.68812 0.96190 +0.18625 0.69775 0.95498 +0.17923 0.70732 0.94761 +0.17223 0.71680 0.93981 +0.16529 0.72620 0.93161 +0.15844 0.73551 0.92305 +0.15173 0.74472 0.91416 +0.14519 0.75381 0.90496 +0.13886 0.76279 0.89550 +0.13278 0.77165 0.88580 +0.12698 0.78037 0.87590 +0.12151 0.78896 0.86581 +0.11639 0.79740 0.85559 +0.11167 0.80569 0.84525 +0.10738 0.81381 0.83484 +0.10357 0.82177 0.82437 +0.10026 0.82955 0.81389 +0.09750 0.83714 0.80342 +0.09532 0.84455 0.79299 +0.09377 0.85175 0.78264 +0.09287 0.85875 0.77240 +0.09267 0.86554 0.76230 +0.09320 0.87211 0.75237 +0.09451 0.87844 0.74265 +0.09662 0.88454 0.73316 +0.09958 0.89040 0.72393 +0.10342 0.89600 0.71500 +0.10815 0.90142 0.70599 +0.11374 0.90673 0.69651 +0.12014 0.91193 0.68660 +0.12733 0.91701 0.67627 +0.13526 0.92197 0.66556 +0.14391 0.92680 0.65448 +0.15323 0.93151 0.64308 +0.16319 0.93609 0.63137 +0.17377 0.94053 0.61938 +0.18491 0.94484 0.60713 +0.19659 0.94901 0.59466 +0.20877 0.95304 0.58199 +0.22142 0.95692 0.56914 +0.23449 0.96065 0.55614 +0.24797 0.96423 0.54303 +0.26180 0.96765 0.52981 +0.27597 0.97092 0.51653 +0.29042 0.97403 0.50321 +0.30513 0.97697 0.48987 +0.32006 0.97974 0.47654 +0.33517 0.98234 0.46325 +0.35043 0.98477 0.45002 +0.36581 0.98702 0.43688 +0.38127 0.98909 0.42386 +0.39678 0.99098 0.41098 +0.41229 0.99268 0.39826 +0.42778 0.99419 0.38575 +0.44321 0.99551 0.37345 +0.45854 0.99663 0.36140 +0.47375 0.99755 0.34963 +0.48879 0.99828 0.33816 +0.50362 0.99879 0.32701 +0.51822 0.99910 0.31622 +0.53255 0.99919 0.30581 +0.54658 0.99907 0.29581 +0.56026 0.99873 0.28623 +0.57357 0.99817 0.27712 +0.58646 0.99739 0.26849 +0.59891 0.99638 0.26038 +0.61088 0.99514 0.25280 +0.62233 0.99366 0.24579 +0.63323 0.99195 0.23937 +0.64362 0.98999 0.23356 +0.65394 0.98775 0.22835 +0.66428 0.98524 0.22370 +0.67462 0.98246 0.21960 +0.68494 0.97941 0.21602 +0.69525 0.97610 0.21294 +0.70553 0.97255 0.21032 +0.71577 0.96875 0.20815 +0.72596 0.96470 0.20640 +0.73610 0.96043 0.20504 +0.74617 0.95593 0.20406 +0.75617 0.95121 0.20343 +0.76608 0.94627 0.20311 +0.77591 0.94113 0.20310 +0.78563 0.93579 0.20336 +0.79524 0.93025 0.20386 +0.80473 0.92452 0.20459 +0.81410 0.91861 0.20552 +0.82333 0.91253 0.20663 +0.83241 0.90627 0.20788 +0.84133 0.89986 0.20926 +0.85010 0.89328 0.21074 +0.85868 0.88655 0.21230 +0.86709 0.87968 0.21391 +0.87530 0.87267 0.21555 +0.88331 0.86553 0.21719 +0.89112 0.85826 0.21880 +0.89870 0.85087 0.22038 +0.90605 0.84337 0.22188 +0.91317 0.83576 0.22328 +0.92004 0.82806 0.22456 +0.92666 0.82025 0.22570 +0.93301 0.81236 0.22667 +0.93909 0.80439 0.22744 +0.94489 0.79634 0.22800 +0.95039 0.78823 0.22831 +0.95560 0.78005 0.22836 +0.96049 0.77181 0.22811 +0.96507 0.76352 0.22754 +0.96931 0.75519 0.22663 +0.97323 0.74682 0.22536 +0.97679 0.73842 0.22369 +0.98000 0.73000 0.22161 +0.98289 0.72140 0.21918 +0.98549 0.71250 0.21650 +0.98781 0.70330 0.21358 +0.98986 0.69382 0.21043 +0.99163 0.68408 0.20706 +0.99314 0.67408 0.20348 +0.99438 0.66386 0.19971 +0.99535 0.65341 0.19577 +0.99607 0.64277 0.19165 +0.99654 0.63193 0.18738 +0.99675 0.62093 0.18297 +0.99672 0.60977 0.17842 +0.99644 0.59846 0.17376 +0.99593 0.58703 0.16899 +0.99517 0.57549 0.16412 +0.99419 0.56386 0.15918 +0.99297 0.55214 0.15417 +0.99153 0.54036 0.14910 +0.98987 0.52854 0.14398 +0.98799 0.51667 0.13883 +0.98590 0.50479 0.13367 +0.98360 0.49291 0.12849 +0.98108 0.48104 0.12332 +0.97837 0.46920 0.11817 +0.97545 0.45740 0.11305 +0.97234 0.44565 0.10797 +0.96904 0.43399 0.10294 +0.96555 0.42241 0.09798 +0.96187 0.41093 0.09310 +0.95801 0.39958 0.08831 +0.95398 0.38836 0.08362 +0.94977 0.37729 0.07905 +0.94538 0.36638 0.07461 +0.94084 0.35566 0.07031 +0.93612 0.34513 0.06616 +0.93125 0.33482 0.06218 +0.92623 0.32473 0.05837 +0.92105 0.31489 0.05475 +0.91572 0.30530 0.05134 +0.91024 0.29599 0.04814 +0.90463 0.28696 0.04516 +0.89888 0.27824 0.04243 +0.89298 0.26981 0.03993 +0.88691 0.26152 0.03753 +0.88066 0.25334 0.03521 +0.87422 0.24526 0.03297 +0.86760 0.23730 0.03082 +0.86079 0.22945 0.02875 +0.85380 0.22170 0.02677 +0.84662 0.21407 0.02487 +0.83926 0.20654 0.02305 +0.83172 0.19912 0.02131 +0.82399 0.19182 0.01966 +0.81608 0.18462 0.01809 +0.80799 0.17753 0.01660 +0.79971 0.17055 0.01520 +0.79125 0.16368 0.01387 +0.78260 0.15693 0.01264 +0.77377 0.15028 0.01148 +0.76476 0.14374 0.01041 +0.75556 0.13731 0.00942 +0.74617 0.13098 0.00851 +0.73661 0.12477 0.00769 +0.72686 0.11867 0.00695 +0.71692 0.11268 0.00629 +0.70680 0.10680 0.00571 +0.69650 0.10102 0.00522 +0.68602 0.09536 0.00481 +0.67535 0.08980 0.00449 +0.66449 0.08436 0.00424 +0.65345 0.07902 0.00408 +0.64223 0.07380 0.00401 +0.63082 0.06868 0.00401 +0.61923 0.06367 0.00410 +0.60746 0.05878 0.00427 +0.59550 0.05399 0.00453 +0.58336 0.04931 0.00486 +0.57103 0.04474 0.00529 +0.55852 0.04028 0.00579 +0.54583 0.03593 0.00638 +0.53295 0.03169 0.00705 +0.51989 0.02756 0.00780 +0.50664 0.02354 0.00863 +0.49321 0.01963 0.00955 +0.47960 0.01583 0.01055 diff -Nru saods9-8.2+repack/ds9/cmaps/twilight.lut saods9-8.3+repack/ds9/cmaps/twilight.lut --- saods9-8.2+repack/ds9/cmaps/twilight.lut 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/cmaps/twilight.lut 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,510 @@ + 0.88575015840754434 0.85000924943067835 0.8879736506427196 + 0.88378520195539056 0.85072940540310626 0.88723222096949894 + 0.88172231059285788 0.85127594077653468 0.88638056925514819 + 0.8795410528270573 0.85165675407495722 0.8854143767924102 + 0.87724880858965482 0.85187028338870274 0.88434120381311432 + 0.87485347508575972 0.85191526123023187 0.88316926967613829 + 0.87233134085124076 0.85180165478080894 0.88189704355001619 + 0.86970474853509816 0.85152403004797894 0.88053883390003362 + 0.86696015505333579 0.8510896085314068 0.87909766977173343 + 0.86408985081463996 0.85050391167507788 0.87757925784892632 + 0.86110245436899846 0.84976754857001258 0.87599242923439569 + 0.85798259245670372 0.84888934810281835 0.87434038553446281 + 0.85472593189256985 0.84787488124672816 0.8726282980930582 + 0.85133714570857189 0.84672735796116472 0.87086081657350445 + 0.84780710702577922 0.8454546229209523 0.86904036783694438 + 0.8441261828674842 0.84406482711037389 0.86716973322690072 + 0.84030420805957784 0.8425605950855084 0.865250882410458 + 0.83634031809191178 0.84094796518951942 0.86328528001070159 + 0.83222705712934408 0.83923490627754482 0.86127563500427884 + 0.82796894316013536 0.83742600751395202 0.85922399451306786 + 0.82357429680252847 0.83552487764795436 0.85713191328514948 + 0.81904654677937527 0.8335364929949034 0.85500206287010105 + 0.81438982121143089 0.83146558694197847 0.85283759062147024 + 0.8095999819094809 0.82931896673505456 0.85064441601050367 + 0.80469164429814577 0.82709838780560663 0.84842449296974021 + 0.79967075421267997 0.82480781812080928 0.84618210029578533 + 0.79454305089231114 0.82245116226304615 0.84392184786827984 + 0.78931445564608915 0.82003213188702007 0.8416486380471222 + 0.78399101042764918 0.81755426400533426 0.83936747464036732 + 0.77857892008227592 0.81502089378742548 0.8370834463093898 + 0.77308416590170936 0.81243524735466011 0.83480172950579679 + 0.76751108504417864 0.8098007598713145 0.83252816638059668 + 0.76186907937980286 0.80711949387647486 0.830266486168872 + 0.75616443584381976 0.80439408733477935 0.82802138994719998 + 0.75040346765406696 0.80162699008965321 0.82579737851082424 + 0.74459247771890169 0.79882047719583249 0.82359867586156521 + 0.73873771700494939 0.79597665735031009 0.82142922780433014 + 0.73284543645523459 0.79309746468844067 0.81929263384230377 + 0.72692177512829703 0.7901846863592763 0.81719217466726379 + 0.72097280665536778 0.78723995923452639 0.81513073920879264 + 0.71500403076252128 0.78426487091581187 0.81311116559949914 + 0.70902078134539304 0.78126088716070907 0.81113591855117928 + 0.7030297722540817 0.77822904973358131 0.80920618848056969 + 0.6970365443886174 0.77517050008066057 0.80732335380063447 + 0.69104641009309098 0.77208629460678091 0.80548841690679074 + 0.68506446154395928 0.7689774029354699 0.80370206267176914 + 0.67909554499882152 0.76584472131395898 0.8019646617300199 + 0.67314422559426212 0.76268908733890484 0.80027628545809526 + 0.66721479803752815 0.7595112803730375 0.79863674654537764 + 0.6613112930078745 0.75631202708719025 0.7970456043491897 + 0.65543692326454717 0.75309208756768431 0.79550271129031047 + 0.64959573004253479 0.74985201221941766 0.79400674021499107 + 0.6437910831099849 0.7465923800833657 0.79255653201306053 + 0.63802586828545982 0.74331376714033193 0.79115100459573173 + 0.6323027138710603 0.74001672160131404 0.78978892762640429 + 0.62662402022604591 0.73670175403699445 0.78846901316334561 + 0.62099193064817548 0.73336934798923203 0.78718994624696581 + 0.61540846411770478 0.73001995232739691 0.78595022706750484 + 0.60987543176093062 0.72665398759758293 0.78474835732694714 + 0.60439434200274855 0.7232718614323369 0.78358295593535587 + 0.5989665814482068 0.71987394892246725 0.78245259899346642 + 0.59359335696837223 0.7164606049658685 0.78135588237640097 + 0.58827579780555495 0.71303214646458135 0.78029141405636515 + 0.58301487036932409 0.70958887676997473 0.77925781820476592 + 0.5778116438998202 0.70613106157153982 0.77825345121025524 + 0.5726668948158774 0.7026589535425779 0.77727702680911992 + 0.56758117853861967 0.69917279302646274 0.77632748534275298 + 0.56255515357219343 0.69567278381629649 0.77540359142309845 + 0.55758940419605174 0.69215911458254054 0.7745041337932782 + 0.55268450589347129 0.68863194515166382 0.7736279426902245 + 0.54784098153018634 0.68509142218509878 0.77277386473440868 + 0.54305932424018233 0.68153767253065878 0.77194079697835083 + 0.53834015575176275 0.67797081129095405 0.77112734439057717 + 0.53368389147728401 0.67439093705212727 0.7703325054879735 + 0.529090861832473 0.67079812302806219 0.76955552292313134 + 0.52456151470593582 0.66719242996142225 0.76879541714230948 + 0.52009627392235558 0.66357391434030388 0.76805119403344102 + 0.5156955988596057 0.65994260812897998 0.76732191489596169 + 0.51135992541601927 0.65629853981831865 0.76660663780645333 + 0.50708969576451657 0.65264172403146448 0.76590445660835849 + 0.5028853540415561 0.64897216734095264 0.76521446718174913 + 0.49874733661356069 0.6452898684900934 0.76453578734180083 + 0.4946761847863938 0.64159484119504429 0.76386719002130909 + 0.49067224938561221 0.63788704858847078 0.76320812763163837 + 0.4867359599430568 0.63416646251100506 0.76255780085924041 + 0.4828677867260272 0.6304330455306234 0.76191537149895305 + 0.47906816236197386 0.62668676251860134 0.76128000375662419 + 0.47533752394906287 0.62292757283835809 0.76065085571817748 + 0.47167629518877091 0.61915543242884641 0.76002709227883047 + 0.46808490970531597 0.61537028695790286 0.75940789891092741 + 0.46456376716303932 0.61157208822864151 0.75879242623025811 + 0.46111326647023881 0.607760777169989 0.75817986436807139 + 0.45773377230160567 0.60393630046586455 0.75756936901859162 + 0.45442563977552913 0.60009859503858665 0.75696013660606487 + 0.45118918687617743 0.59624762051353541 0.75635120643246645 + 0.44802470933589172 0.59238331452146575 0.75574176474107924 + 0.44493246854215379 0.5885055998308617 0.7551311041857901 + 0.44191271766696399 0.58461441100175571 0.75451838884410671 + 0.43896563958048396 0.58070969241098491 0.75390276208285945 + 0.43609138958356369 0.57679137998186081 0.7532834105961016 + 0.43329008867358393 0.57285941625606673 0.75265946532566674 + 0.43056179073057571 0.56891374572457176 0.75203008099312696 + 0.42790652284925834 0.5649543060909209 0.75139443521914839 + 0.42532423665011354 0.56098104959950301 0.75075164989005116 + 0.42281485675772662 0.55699392126996583 0.75010086988227642 + 0.42037822361396326 0.55299287158108168 0.7494412559451894 + 0.41801414079233629 0.54897785421888889 0.74877193167001121 + 0.4157223260454232 0.54494882715350401 0.74809204459000522 + 0.41350245743314729 0.54090574771098476 0.74740073297543086 + 0.41135414697304568 0.53684857765005933 0.74669712855065784 + 0.4092768899914751 0.53277730177130322 0.74598030635707824 + 0.40727018694219069 0.52869188011057411 0.74524942637581271 + 0.40533343789303178 0.52459228174983119 0.74450365836708132 + 0.40346600333905397 0.52047847653840029 0.74374215223567086 + 0.40166714010896104 0.51635044969688759 0.7429640345324835 + 0.39993606933454834 0.51220818143218516 0.74216844571317986 + 0.3982719152586337 0.50805166539276136 0.74135450918099721 + 0.39667374905665609 0.50388089053847973 0.74052138580516735 + 0.39514058808207631 0.49969585326377758 0.73966820211715711 + 0.39367135736822567 0.49549655777451179 0.738794102296364 + 0.39226494876209317 0.49128300332899261 0.73789824784475078 + 0.39092017571994903 0.48705520251223039 0.73697977133881254 + 0.38963580160340855 0.48281316715123496 0.73603782546932739 + 0.38841053300842432 0.47855691131792805 0.73507157641157261 + 0.38724301459330251 0.47428645933635388 0.73408016787854391 + 0.38613184178892102 0.4700018340988123 0.7330627749243106 + 0.38507556793651387 0.46570306719930193 0.73201854033690505 + 0.38407269378943537 0.46139018782416635 0.73094665432902683 + 0.38312168084402748 0.45706323581407199 0.72984626791353258 + 0.38222094988570376 0.45272225034283325 0.72871656144003782 + 0.38136887930454161 0.44836727669277859 0.72755671317141346 + 0.38056380696565623 0.44399837208633719 0.72636587045135315 + 0.37980403744848751 0.43961558821222629 0.72514323778761092 + 0.37908789283110761 0.43521897612544935 0.72388798691323131 + 0.378413635091359 0.43080859411413064 0.72259931993061044 + 0.37777949753513729 0.4263845142616835 0.72127639993530235 + 0.37718371844251231 0.42194680223454828 0.71991841524475775 + 0.37662448930806297 0.41749553747893614 0.71852454736176108 + 0.37610001286385814 0.41303079952477062 0.71709396919920232 + 0.37560846919442398 0.40855267638072096 0.71562585091587549 + 0.37514802505380473 0.4040612609993941 0.7141193695725726 + 0.37471686019302231 0.3995566498711684 0.71257368516500463 + 0.37431313199312338 0.39503894828283309 0.71098796522377461 + 0.37393499330475782 0.39050827529375831 0.70936134293478448 + 0.3735806215098284 0.38596474386057539 0.70769297607310577 + 0.37324816143326384 0.38140848555753937 0.70598200974806036 + 0.37293578646665032 0.37683963835219841 0.70422755780589941 + 0.37264166757849604 0.37225835004836849 0.7024287314570723 + 0.37236397858465387 0.36766477862108266 0.70058463496520773 + 0.37210089702443822 0.36305909736982378 0.69869434615073722 + 0.3718506155898596 0.35844148285875221 0.69675695810256544 + 0.37161133234400479 0.3538121372967869 0.69477149919380887 + 0.37138124223736607 0.34917126878479027 0.69273703471928827 + 0.37115856636209105 0.34451911410230168 0.69065253586464992 + 0.37094151551337329 0.33985591488818123 0.68851703379505125 + 0.37072833279422668 0.33518193808489577 0.68632948169606767 + 0.37051738634484427 0.33049741244307851 0.68408888788857214 + 0.37030682071842685 0.32580269697872455 0.68179411684486679 + 0.37009487130772695 0.3210981375964933 0.67944405399056851 + 0.36987980329025361 0.31638410101153364 0.67703755438090574 + 0.36965987626565955 0.31166098762951971 0.67457344743419545 + 0.36943334591276228 0.30692923551862339 0.67205052849120617 + 0.36919847837592484 0.30218932176507068 0.66946754331614522 + 0.36895355306596778 0.29744175492366276 0.66682322089824264 + 0.36869682231895268 0.29268709856150099 0.66411625298236909 + 0.36842655638020444 0.28792596437778462 0.66134526910944602 + 0.36814101479899719 0.28315901221182987 0.65850888806972308 + 0.36783843696531082 0.27838697181297761 0.65560566838453704 + 0.36751707094367697 0.27361063317090978 0.65263411711618635 + 0.36717513650699446 0.26883085667326956 0.64959272297892245 + 0.36681085540107988 0.26404857724525643 0.64647991652908243 + 0.36642243251550632 0.25926481158628106 0.64329409140765537 + 0.36600853966739794 0.25448043878086224 0.64003361803368586 + 0.36556698373538982 0.24969683475296395 0.63669675187488584 + 0.36509579845886808 0.24491536803550484 0.63328173520055586 + 0.36459308890125008 0.24013747024823828 0.62978680155026101 + 0.36405693022088509 0.23536470386204195 0.62621013451953023 + 0.36348537610385145 0.23059876218396419 0.62254988622392882 + 0.36287643560041027 0.22584149293287031 0.61880417410823019 + 0.36222809558295926 0.22109488427338303 0.61497112346096128 + 0.36153829010998356 0.21636111429594002 0.61104880679640927 + 0.36080493826624654 0.21164251793458128 0.60703532172064711 + 0.36002681809096376 0.20694122817889948 0.60292845431916875 + 0.35920088560930186 0.20226037920758122 0.5987265295935138 + 0.35832489966617809 0.197602942459778 0.59442768517501066 + 0.35739663292915563 0.19297208197842461 0.59003011251063131 + 0.35641381143126327 0.18837119869242164 0.5855320765920552 + 0.35537415306906722 0.18380392577704466 0.58093191431832802 + 0.35427534960663759 0.17927413271618647 0.57622809660668717 + 0.35311574421123737 0.17478570377561287 0.57141871523555288 + 0.35189248608873791 0.17034320478524959 0.56650284911216653 + 0.35060304441931012 0.16595129984720861 0.56147964703993225 + 0.34924513554955644 0.16161477763045118 0.55634837474163779 + 0.34781653238777782 0.15733863511152979 0.55110853452703257 + 0.34631507175793091 0.15312802296627787 0.5457599924248665 + 0.34473901574536375 0.14898820589826409 0.54030245920406539 + 0.34308600291572294 0.14492465359918028 0.53473704282067103 + 0.34135411074506483 0.1409427920655632 0.52906500940336754 + 0.33954168752669694 0.13704801896718169 0.52328797535085236 + 0.33764732090671112 0.13324562282438077 0.51740807573979475 + 0.33566978565015315 0.12954074251271822 0.51142807215168951 + 0.33360804901486002 0.12593818301005921 0.50535164796654897 + 0.33146154891145124 0.12244245263391232 0.49918274588431072 + 0.32923005203231409 0.11905764321981127 0.49292595612342666 + 0.3269137124539796 0.1157873496841953 0.48658646495697461 + 0.32451307931207785 0.11263459791730848 0.48017007211645196 + 0.32202882276069322 0.10960114111258401 0.47368494725726878 + 0.31946262395497965 0.10668879882392659 0.46713728801395243 + 0.31681648089023501 0.10389861387653518 0.46053414662739794 + 0.31409278414755532 0.10123077676403242 0.45388335612058467 + 0.31129434479712365 0.098684771934052201 0.44719313715161618 + 0.30842444457210105 0.096259385340577736 0.44047194882050544 + 0.30548675819945936 0.093952764840823738 0.43372849999361113 + 0.30248536364574252 0.091761187397303601 0.42697404043749887 + 0.29942483960214772 0.089682253716750038 0.42021619665853854 + 0.29631000388905288 0.087713250960463951 0.41346259134143476 + 0.29314593096985248 0.085850656889620708 0.40672178082365834 + 0.28993792445176608 0.08409078829085731 0.40000214725256295 + 0.28669151388283165 0.082429873848480689 0.39331182532243375 + 0.28341239797185225 0.080864153365499375 0.38665868550105914 + 0.28010638576975472 0.079389994802261526 0.38005028528138707 + 0.27677939615815589 0.078003941033788216 0.37349382846504675 + 0.27343739342450812 0.076702800237496066 0.36699616136347685 + 0.27008637749114051 0.075483675584275545 0.36056376228111864 + 0.26673233211995284 0.074344018028546205 0.35420276066240958 + 0.26338121807151404 0.073281657939897077 0.34791888996380105 + 0.26003895187439957 0.072294781043362205 0.3417175669546984 + 0.25671191651083902 0.071380106242082242 0.33560648984600089 + 0.25340685873736807 0.070533582926851829 0.3295945757321303 + 0.25012845306199383 0.069758206429106989 0.32368100685760637 + 0.24688226237958999 0.069053639449204451 0.31786993834254956 + 0.24367372557466271 0.068419855150922693 0.31216524050888372 + 0.24050813332295939 0.067857103814855602 0.30657054493678321 + 0.23739062429054825 0.067365888050555517 0.30108922184065873 + 0.23433055727563878 0.066935599661639394 0.29574009929867601 + 0.23132955273021344 0.066576186939090592 0.29051361067988485 + 0.2283917709422868 0.06628997924139618 0.28541074411068496 + 0.22552164337737857 0.066078173119395595 0.28043398847505197 + 0.22272706739121817 0.065933790675651943 0.27559714652053702 + 0.22001251100779617 0.065857918918907604 0.27090279994325861 + 0.21737845072382705 0.065859661233562045 0.26634209349669508 + 0.21482843531473683 0.065940385613778491 0.26191675992376573 + 0.21237411048541005 0.066085024661758446 0.25765165093569542 + 0.21001214221188125 0.066308573918947178 0.2535289048041211 + 0.2077442377448806 0.06661453200418091 0.24954644291943817 + 0.20558051999470117 0.066990462397868739 0.24572497420147632 + 0.20352007949514977 0.067444179612424215 0.24205576625191821 + 0.20156133764129841 0.067983271026200248 0.23852974228695395 + 0.19971571438603364 0.068592710553704722 0.23517094067076993 + 0.19794834061899208 0.069314066071660657 0.23194647381302336 + 0.1960826032659409 0.070321227242423623 0.22874673279569585 + 0.19410351363791453 0.071608304856891569 0.22558727307410353 + 0.19199449184606268 0.073182830649273306 0.22243385243433622 + 0.18975853639094634 0.075019861862143766 0.2193005075652994 + 0.18739228342697645 0.077102096899588329 0.21618875376309582 + 0.18488035509396164 0.079425730279723883 0.21307651648984993 + 0.18774482037046955 0.077251588468039312 0.21387448578597812 + 0.19049578401722037 0.075311278416787641 0.2146562337112265 + 0.1931548636579131 0.073606819040117955 0.21542362939081539 + 0.19571853588267552 0.072157781039602742 0.21617499187076789 + 0.19819343656336558 0.070974625252738788 0.21690975060032436 + 0.20058760685133747 0.070064576149984209 0.21762721310371608 + 0.20290365333558247 0.069435248580458964 0.21833167885096033 + 0.20531725273301316 0.068919592266397572 0.21911516689288835 + 0.20785704662965598 0.068484398797025281 0.22000133917653536 + 0.21052882914958676 0.06812195249816172 0.22098759107715404 + 0.2133313859647627 0.067830148426026665 0.22207043213024291 + 0.21625279838647882 0.067616330270516389 0.22324568672294431 + 0.21930503925136402 0.067465786362940039 0.22451023616807558 + 0.22247308588973624 0.067388214053092838 0.22585960379408354 + 0.2257539681670791 0.067382132300147474 0.22728984778098055 + 0.22915620278592841 0.067434730871152565 0.22879681433956656 + 0.23266299920501882 0.067557104388479783 0.23037617493752832 + 0.23627495835774248 0.06774359820987802 0.23202360805926608 + 0.23999586188690308 0.067985029964779953 0.23373434258507808 + 0.24381149720247919 0.068289851529011875 0.23550427698321885 + 0.24772092990501099 0.068653337909486523 0.2373288009471749 + 0.25172899728289466 0.069064630826035506 0.23920260612763083 + 0.25582135547481771 0.06953231029187984 0.24112190491594204 + 0.25999463887892144 0.070053855603861875 0.24308218808684579 + 0.26425512207060942 0.070616595622995437 0.24507758869355967 + 0.26859095948172862 0.071226716277922458 0.24710443563450618 + 0.27299701518897301 0.071883555446163511 0.24915847093232929 + 0.27747150809142801 0.072582969899254779 0.25123493995942769 + 0.28201746297366942 0.073315693214040967 0.25332800295084507 + 0.28662309235899847 0.074088460826808866 0.25543478673717029 + 0.29128515387578635 0.074899049847466703 0.25755101595750435 + 0.2960004726065818 0.075745336000958424 0.25967245030364566 + 0.30077276812918691 0.076617824336164764 0.26179294097819672 + 0.30559226007249934 0.077521963107537312 0.26391006692119662 + 0.31045520848595526 0.078456871676182177 0.2660200572779356 + 0.31535870009205808 0.079420997315243186 0.26811904076941961 + 0.32029986557994061 0.080412994737554838 0.27020322893039511 + 0.32527888860401261 0.081428390076546092 0.27226772884656186 + 0.33029174471181438 0.08246763389003825 0.27430929404579435 + 0.33533353224455448 0.083532434119003962 0.27632534356790039 + 0.34040164359597463 0.084622236191702671 0.27831254595259397 + 0.34549355713871799 0.085736654965126335 0.28026769921081435 + 0.35060678246032478 0.08687555176033529 0.28218770540182386 + 0.35573889947341125 0.088038974350243354 0.2840695897279818 + 0.36088752387578377 0.089227194362745205 0.28591050458531014 + 0.36605031412464006 0.090440685427697898 0.2877077458811747 + 0.37122508431309342 0.091679997480262732 0.28945865397633169 + 0.3764103053221462 0.092945198093777909 0.29116024157313919 + 0.38160247377467543 0.094238731263712183 0.29281107506269488 + 0.38679939079544168 0.09556181960083443 0.29440901248173756 + 0.39199887556812907 0.09691583650296684 0.29595212005509081 + 0.39719876876325577 0.098302320968278623 0.29743856476285779 + 0.40239692379737496 0.099722930314950553 0.29886674369733968 + 0.40759120392688708 0.10117945586419633 0.30023519507728602 + 0.41277985630360303 0.1026734006932461 0.30154226437468967 + 0.41796105205173684 0.10420644885760968 0.30278652039631843 + 0.42313214269556043 0.10578120994917611 0.3039675809469457 + 0.42829101315789753 0.1073997763055258 0.30508479060294547 + 0.4334355841041439 0.1090642347484701 0.30613767928289148 + 0.43856378187931538 0.11077667828375456 0.30712600062348083 + 0.44367358645071275 0.11253912421257944 0.30804973095465449 + 0.44876299173174822 0.11435355574622549 0.30890905921943196 + 0.45383005086999889 0.11622183788331528 0.30970441249844921 + 0.45887288947308297 0.11814571137706886 0.31043636979038808 + 0.46389102840284874 0.12012561256850712 0.31110343446582983 + 0.46888111384598413 0.12216445576414045 0.31170911458932665 + 0.473841437035254 0.12426354237989065 0.31225470169927194 + 0.47877034239726296 0.12642401401409453 0.31274172735821959 + 0.48366628618847957 0.12864679022013889 0.31317188565991266 + 0.48852847371852987 0.13093210934893723 0.31354553695453014 + 0.49335504375145617 0.13328091630401023 0.31386561956734976 + 0.49814435462074153 0.13569380302451714 0.314135190862664 + 0.50289524974970612 0.13817086581280427 0.31435662153833671 + 0.50760681181053691 0.14071192654913128 0.31453200120082569 + 0.51227835105321762 0.14331656120063752 0.3146630922831542 + 0.51690848800544464 0.14598463068714407 0.31475407592280041 + 0.52149652863229956 0.14871544765633712 0.31480767954534428 + 0.52604189625477482 0.15150818660835483 0.31482653406646727 + 0.53054420489856446 0.15436183633886777 0.31481299789187128 + 0.5350027976174474 0.15727540775107324 0.31477085207396532 + 0.53941736649199057 0.16024769309971934 0.31470295028655965 + 0.54378771313608565 0.16327738551419116 0.31461204226295625 + 0.54811370033467621 0.1663630904279047 0.31450102990914708 + 0.55239521572711914 0.16950338809328983 0.31437291554615371 + 0.55663229034969341 0.17269677158182117 0.31423043195101424 + 0.56082499039117173 0.17594170887918095 0.31407639883970623 + 0.56497343529017696 0.17923664950367169 0.3139136046337036 + 0.56907784784011428 0.18258004462335425 0.31374440956796529 + 0.57313845754107873 0.18597036007065024 0.31357126868520002 + 0.57715550812992045 0.18940601489760422 0.31339704333572083 + 0.58112932761586555 0.19288548904692518 0.31322399394183942 + 0.58506024396466882 0.19640737049066315 0.31305401163732732 + 0.58894861935544707 0.19997020971775276 0.31288922211590126 + 0.59279480536520257 0.20357251410079796 0.31273234839304942 + 0.59659918109122367 0.207212956082026 0.31258523031121233 + 0.60036213010411577 0.21089030138947745 0.31244934410414688 + 0.60408401696732739 0.21460331490206347 0.31232652641170694 + 0.60776523994818654 0.21835070166659282 0.31221903291870201 + 0.6114062072731884 0.22213124697023234 0.31212881396435238 + 0.61500723236391375 0.22594402043981826 0.31205680685765741 + 0.61856865258877192 0.22978799249179921 0.31200463838728931 + 0.62209079821082613 0.2336621873300741 0.31197383273627388 + 0.62557416500434959 0.23756535071152696 0.31196698314912269 + 0.62901892016985872 0.24149689191922535 0.31198447195645718 + 0.63242534854210275 0.24545598775548677 0.31202765974624452 + 0.6357937104834237 0.24944185818822678 0.31209793953300591 + 0.6391243387840212 0.25345365461983138 0.31219689612063978 + 0.642417577481186 0.257490519876798 0.31232631707560987 + 0.64567349382645434 0.26155203161615281 0.31248673753935263 + 0.64889230169458245 0.26563755336209077 0.31267941819570189 + 0.65207417290277303 0.26974650525236699 0.31290560605819168 + 0.65521932609327127 0.27387826652410152 0.3131666792687211 + 0.6583280801134499 0.27803210957665631 0.3134643447952643 + 0.66140037532601781 0.28220778870555907 0.31379912926498488 + 0.66443632469878844 0.28640483614256179 0.31417223403606975 + 0.66743603766369131 0.29062280081258873 0.31458483752056837 + 0.67039959547676198 0.29486126309253047 0.31503813956872212 + 0.67332725564817331 0.29911962764489264 0.31553372323982209 + 0.67621897924409746 0.30339762792450425 0.3160724937230589 + 0.67907474028157344 0.30769497879760166 0.31665545668946665 + 0.68189457150944521 0.31201133280550686 0.31728380489244951 + 0.68467850942494535 0.31634634821222207 0.31795870784057567 + 0.68742656435169625 0.32069970535138104 0.31868137622277692 + 0.6901389321505248 0.32507091815606004 0.31945332332898302 + 0.69281544846764931 0.32945984647042675 0.3202754315314667 + 0.69545608346891119 0.33386622163232865 0.32114884306985791 + 0.6980608153581771 0.33828976326048621 0.32207478855218091 + 0.70062962477242097 0.34273019305341756 0.32305449047765694 + 0.70316249458814151 0.34718723719597999 0.32408913679491225 + 0.70565951122610093 0.35166052978120937 0.32518014084085567 + 0.70812059568420482 0.35614985523380299 0.32632861885644465 + 0.7105456546582587 0.36065500290840113 0.32753574162788762 + 0.71293466839773467 0.36517570519856757 0.3288027427038317 + 0.71528760614847287 0.36971170225223449 0.3301308728723546 + 0.71760444908133847 0.37426272710686193 0.33152138620958932 + 0.71988521490549851 0.37882848839337313 0.33297555200245399 + 0.7221299918421461 0.38340864508963057 0.33449469983585844 + 0.72433865647781592 0.38800301593162145 0.33607995965691828 + 0.72651122900227549 0.3926113126792577 0.3377325942005665 + 0.72864773856716547 0.39723324476747235 0.33945384341064017 + 0.73074820754845171 0.401868526884681 0.3412449533046818 + 0.73281270506268747 0.4065168468778026 0.34310715173410822 + 0.73484133598564938 0.41117787004519513 0.34504169470809071 + 0.73683422173585866 0.41585125850290111 0.34704978520758401 + 0.73879140024599266 0.42053672992315327 0.34913260148542435 + 0.74071301619506091 0.4252339389526239 0.35129130890802607 + 0.7425992159973317 0.42994254036133867 0.35352709245374592 + 0.74445018676570673 0.43466217184617112 0.35584108091122535 + 0.74626615789163442 0.43939245044973502 0.35823439142300639 + 0.74804739275559562 0.44413297780351974 0.36070813602540136 + 0.74979420547170472 0.44888333481548809 0.36326337558360278 + 0.75150685045891663 0.45364314496866825 0.36590112443835765 + 0.75318566369046569 0.45841199172949604 0.36862236642234769 + 0.75483105066959544 0.46318942799460555 0.3714280448394211 + 0.75644341577140706 0.46797501437948458 0.37431909037543515 + 0.75802325538455839 0.4727682731566229 0.37729635531096678 + 0.75957111105340058 0.47756871222057079 0.380360657784311 + 0.7610876378057071 0.48237579130289127 0.38351275723852291 + 0.76257333554052609 0.48718906673415824 0.38675335037837993 + 0.76402885609288662 0.49200802533379656 0.39008308392311997 + 0.76545492593330511 0.49683212909727231 0.39350254000115381 + 0.76685228950643891 0.5016608471009063 0.39701221751773474 + 0.76822176599735303 0.50649362371287909 0.40061257089416885 + 0.7695642334401418 0.5113298901696085 0.40430398069682483 + 0.77088091962302474 0.51616892643469103 0.40808667584648967 + 0.77217257229605551 0.5210102658711383 0.41196089987122869 + 0.77344021829889886 0.52585332093451564 0.41592679539764366 + 0.77468494746063199 0.53069749384776732 0.41998440356963762 + 0.77590790730685699 0.53554217882461186 0.42413367909988375 + 0.7771103295521099 0.54038674910561235 0.42837450371258479 + 0.77829345807633121 0.54523059488426595 0.432706647838971 + 0.77945862731506643 0.55007308413977274 0.43712979856444761 + 0.78060774749483774 0.55491335744890613 0.44164332426364639 + 0.78174180478981836 0.55975098052594863 0.44624687186865436 + 0.78286225264440912 0.56458533111166875 0.45093985823706345 + 0.78397060836414478 0.56941578326710418 0.45572154742892063 + 0.78506845019606841 0.5742417003617839 0.46059116206904965 + 0.78615737132332963 0.5790624629815756 0.46554778281918402 + 0.78723904108188347 0.58387743744557208 0.47059039582133383 + 0.78831514045623963 0.58868600173562435 0.47571791879076081 + 0.78938737766251943 0.5934875421745599 0.48092913815357724 + 0.79045776847727878 0.59828134277062461 0.48622257801969754 + 0.79152832843475607 0.60306670593147205 0.49159667021646397 + 0.79260034304237448 0.60784322087037024 0.49705020621532009 + 0.79367559698664958 0.61261029334072192 0.50258161291269432 + 0.79475585972654039 0.61736734400220705 0.50818921213102985 + 0.79584292379583765 0.62211378808451145 0.51387124091909786 + 0.79693854719951607 0.62684905679296699 0.5196258425240281 + 0.79804447815136637 0.63157258225089552 0.52545108144834785 + 0.7991624518501963 0.63628379372029187 0.53134495942561433 + 0.80029415389753977 0.64098213306749863 0.53730535185141037 + 0.80144124292560048 0.64566703459218766 0.5433300863249918 + 0.80260531146112946 0.65033793748103852 0.54941691584603647 + 0.80378792531077625 0.65499426549472628 0.55556350867083815 + 0.80499054790810298 0.65963545027564163 0.56176745110546977 + 0.80621460526927058 0.66426089585282289 0.56802629178649788 + 0.8074614045096935 0.6688700095398864 0.57433746373459582 + 0.80873219170089694 0.67346216702194517 0.58069834805576737 + 0.81002809466520687 0.67803672673971815 0.58710626908082753 + 0.81135014011763329 0.68259301546243389 0.59355848909050757 + 0.81269922039881493 0.68713033714618876 0.60005214820435104 + 0.81407611046993344 0.69164794791482131 0.6065843782630862 + 0.81548146627279483 0.69614505508308089 0.61315221209322646 + 0.81691575775055891 0.70062083014783982 0.61975260637257923 + 0.81837931164498223 0.70507438189635097 0.62638245478933297 + 0.81987230650455289 0.70950474978787481 0.63303857040067113 + 0.8213947205565636 0.7139109141951604 0.63971766697672761 + 0.82294635110428427 0.71829177331290062 0.6464164243818421 + 0.8245268129450285 0.72264614312088882 0.65313137915422603 + 0.82613549710580259 0.72697275518238258 0.65985900156216504 + 0.8277716072353446 0.73127023324078089 0.66659570204682972 + 0.82943407816481474 0.7355371221572935 0.67333772009301907 + 0.83112163529096306 0.73977184647638616 0.68008125203631464 + 0.83283277185777982 0.74397271817459876 0.68682235874648545 + 0.8345656905566583 0.7481379479992134 0.69355697649863846 + 0.83631898844737929 0.75226548952875261 0.70027999028864962 + 0.83809123476131964 0.75635314860808633 0.70698561390212977 + 0.83987839884120874 0.76039907199779677 0.71367147811129228 + 0.84167750766845151 0.76440101200982946 0.72033299387284622 + 0.84348529222933699 0.76835660399870176 0.72696536998972039 + 0.84529810731955113 0.77226338601044719 0.73356368240541492 + 0.84711195507965098 0.77611880236047159 0.74012275762807056 + 0.84892245563117641 0.77992021407650147 0.74663719293664366 + 0.85072697023178789 0.78366457342383888 0.7530974636118285 + 0.85251907207708444 0.78734936133548439 0.7594994148789691 + 0.85429219611470464 0.79097196777091994 0.76583801477914104 + 0.85604022314725403 0.79452963601550608 0.77210610037674143 + 0.85775662943504905 0.79801963142713928 0.77829571667247499 + 0.8594346370300241 0.8014392309950078 0.78439788751383921 + 0.86107117027565516 0.80478517909812231 0.79039529663736285 + 0.86265601051127572 0.80805523804261525 0.796282666437655 + 0.86418343723941027 0.81124644224653542 0.80204612696863953 + 0.86564934325605325 0.81435544067514909 0.80766972324164554 + 0.86705314907048503 0.81737804041911244 0.81313419626911398 + 0.86839954695818633 0.82030875512181523 0.81841638963128993 + 0.86969131502613806 0.82314158859569164 0.82350476683173168 + 0.87093846717297507 0.82586857889438514 0.82838497261149613 + 0.87215331978454325 0.82848052823709672 0.8330486712880828 + 0.87335171360916275 0.83096715251272624 0.83748851001197089 + 0.87453793320260187 0.83331972948645461 0.84171925358069011 + 0.87571458709961403 0.8355302318472394 0.84575537519027078 + 0.87687848451614692 0.83759238071186537 0.84961373549150254 + 0.87802298436649007 0.83950165618540074 0.85330645352458923 + 0.87913244240792765 0.84125554884475906 0.85685572291039636 + 0.88019293315695812 0.84285224824778615 0.86027399927156634 + 0.88119169871341951 0.84429066717717349 0.86356595168669881 + 0.88211542489401606 0.84557007254559347 0.86673765046233331 + 0.88295168595448525 0.84668970275699273 0.86979617048190971 + 0.88369127145898041 0.84764891761519268 0.87274147101441557 + 0.88432713054113543 0.84844741572055415 0.87556785228242973 + 0.88485138159908572 0.84908426422893801 0.87828235285372469 + 0.88525897972630474 0.84955892810989209 0.88088414794024839 + 0.88554714811952384 0.84987174283631584 0.88336206121170946 + 0.88571155122845646 0.85002186115856315 0.88572538990087124 diff -Nru saods9-8.2+repack/ds9/cmaps/viridis.lut saods9-8.3+repack/ds9/cmaps/viridis.lut --- saods9-8.2+repack/ds9/cmaps/viridis.lut 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/cmaps/viridis.lut 2021-11-08 15:46:07.000000000 +0000 @@ -1,257 +1,256 @@ -# matplotlib _cm.py -0.26700401 0.00487433 0.32941519 -0.26851048 0.00960483 0.33542652 -0.26994384 0.01462494 0.34137895 -0.27130489 0.01994186 0.34726862 -0.27259384 0.02556309 0.35309303 -0.27380934 0.03149748 0.35885256 -0.27495242 0.03775181 0.36454323 -0.27602238 0.04416723 0.37016418 -0.2770184 0.05034437 0.37571452 -0.27794143 0.05632444 0.38119074 -0.27879067 0.06214536 0.38659204 -0.2795655 0.06783587 0.39191723 -0.28026658 0.07341724 0.39716349 -0.28089358 0.07890703 0.40232944 -0.28144581 0.0843197 0.40741404 -0.28192358 0.08966622 0.41241521 -0.28232739 0.09495545 0.41733086 -0.28265633 0.10019576 0.42216032 -0.28291049 0.10539345 0.42690202 -0.28309095 0.11055307 0.43155375 -0.28319704 0.11567966 0.43611482 -0.28322882 0.12077701 0.44058404 -0.28318684 0.12584799 0.44496 -0.283072 0.13089477 0.44924127 -0.28288389 0.13592005 0.45342734 -0.28262297 0.14092556 0.45751726 -0.28229037 0.14591233 0.46150995 -0.28188676 0.15088147 0.46540474 -0.28141228 0.15583425 0.46920128 -0.28086773 0.16077132 0.47289909 -0.28025468 0.16569272 0.47649762 -0.27957399 0.17059884 0.47999675 -0.27882618 0.1754902 0.48339654 -0.27801236 0.18036684 0.48669702 -0.27713437 0.18522836 0.48989831 -0.27619376 0.19007447 0.49300074 -0.27519116 0.1949054 0.49600488 -0.27412802 0.19972086 0.49891131 -0.27300596 0.20452049 0.50172076 -0.27182812 0.20930306 0.50443413 -0.27059473 0.21406899 0.50705243 -0.26930756 0.21881782 0.50957678 -0.26796846 0.22354911 0.5120084 -0.26657984 0.2282621 0.5143487 -0.2651445 0.23295593 0.5165993 -0.2636632 0.23763078 0.51876163 -0.26213801 0.24228619 0.52083736 -0.26057103 0.2469217 0.52282822 -0.25896451 0.25153685 0.52473609 -0.25732244 0.2561304 0.52656332 -0.25564519 0.26070284 0.52831152 -0.25393498 0.26525384 0.52998273 -0.25219404 0.26978306 0.53157905 -0.25042462 0.27429024 0.53310261 -0.24862899 0.27877509 0.53455561 -0.2468114 0.28323662 0.53594093 -0.24497208 0.28767547 0.53726018 -0.24311324 0.29209154 0.53851561 -0.24123708 0.29648471 0.53970946 -0.23934575 0.30085494 0.54084398 -0.23744138 0.30520222 0.5419214 -0.23552606 0.30952657 0.54294396 -0.23360277 0.31382773 0.54391424 -0.2316735 0.3181058 0.54483444 -0.22973926 0.32236127 0.54570633 -0.22780192 0.32659432 0.546532 -0.2258633 0.33080515 0.54731353 -0.22392515 0.334994 0.54805291 -0.22198915 0.33916114 0.54875211 -0.22005691 0.34330688 0.54941304 -0.21812995 0.34743154 0.55003755 -0.21620971 0.35153548 0.55062743 -0.21429757 0.35561907 0.5511844 -0.21239477 0.35968273 0.55171011 -0.2105031 0.36372671 0.55220646 -0.20862342 0.36775151 0.55267486 -0.20675628 0.37175775 0.55311653 -0.20490257 0.37574589 0.55353282 -0.20306309 0.37971644 0.55392505 -0.20123854 0.38366989 0.55429441 -0.1994295 0.38760678 0.55464205 -0.1976365 0.39152762 0.55496905 -0.19585993 0.39543297 0.55527637 -0.19410009 0.39932336 0.55556494 -0.19235719 0.40319934 0.55583559 -0.19063135 0.40706148 0.55608907 -0.18892259 0.41091033 0.55632606 -0.18723083 0.41474645 0.55654717 -0.18555593 0.4185704 0.55675292 -0.18389763 0.42238275 0.55694377 -0.18225561 0.42618405 0.5571201 -0.18062949 0.42997486 0.55728221 -0.17901879 0.43375572 0.55743035 -0.17742298 0.4375272 0.55756466 -0.17584148 0.44128981 0.55768526 -0.17427363 0.4450441 0.55779216 -0.17271876 0.4487906 0.55788532 -0.17117615 0.4525298 0.55796464 -0.16964573 0.45626209 0.55803034 -0.16812641 0.45998802 0.55808199 -0.1666171 0.46370813 0.55811913 -0.16511703 0.4674229 0.55814141 -0.16362543 0.47113278 0.55814842 -0.16214155 0.47483821 0.55813967 -0.16066467 0.47853961 0.55811466 -0.15919413 0.4822374 0.5580728 -0.15772933 0.48593197 0.55801347 -0.15626973 0.4896237 0.557936 -0.15481488 0.49331293 0.55783967 -0.15336445 0.49700003 0.55772371 -0.1519182 0.50068529 0.55758733 -0.15047605 0.50436904 0.55742968 -0.14903918 0.50805136 0.5572505 -0.14760731 0.51173263 0.55704861 -0.14618026 0.51541316 0.55682271 -0.14475863 0.51909319 0.55657181 -0.14334327 0.52277292 0.55629491 -0.14193527 0.52645254 0.55599097 -0.14053599 0.53013219 0.55565893 -0.13914708 0.53381201 0.55529773 -0.13777048 0.53749213 0.55490625 -0.1364085 0.54117264 0.55448339 -0.13506561 0.54485335 0.55402906 -0.13374299 0.54853458 0.55354108 -0.13244401 0.55221637 0.55301828 -0.13117249 0.55589872 0.55245948 -0.1299327 0.55958162 0.55186354 -0.12872938 0.56326503 0.55122927 -0.12756771 0.56694891 0.55055551 -0.12645338 0.57063316 0.5498411 -0.12539383 0.57431754 0.54908564 -0.12439474 0.57800205 0.5482874 -0.12346281 0.58168661 0.54744498 -0.12260562 0.58537105 0.54655722 -0.12183122 0.58905521 0.54562298 -0.12114807 0.59273889 0.54464114 -0.12056501 0.59642187 0.54361058 -0.12009154 0.60010387 0.54253043 -0.11973756 0.60378459 0.54139999 -0.11951163 0.60746388 0.54021751 -0.11942341 0.61114146 0.53898192 -0.11948255 0.61481702 0.53769219 -0.11969858 0.61849025 0.53634733 -0.12008079 0.62216081 0.53494633 -0.12063824 0.62582833 0.53348834 -0.12137972 0.62949242 0.53197275 -0.12231244 0.63315277 0.53039808 -0.12344358 0.63680899 0.52876343 -0.12477953 0.64046069 0.52706792 -0.12632581 0.64410744 0.52531069 -0.12808703 0.64774881 0.52349092 -0.13006688 0.65138436 0.52160791 -0.13226797 0.65501363 0.51966086 -0.13469183 0.65863619 0.5176488 -0.13733921 0.66225157 0.51557101 -0.14020991 0.66585927 0.5134268 -0.14330291 0.66945881 0.51121549 -0.1466164 0.67304968 0.50893644 -0.15014782 0.67663139 0.5065889 -0.15389405 0.68020343 0.50417217 -0.15785146 0.68376525 0.50168574 -0.16201598 0.68731632 0.49912906 -0.1663832 0.69085611 0.49650163 -0.1709484 0.69438405 0.49380294 -0.17570671 0.6978996 0.49103252 -0.18065314 0.70140222 0.48818938 -0.18578266 0.70489133 0.48527326 -0.19109018 0.70836635 0.48228395 -0.19657063 0.71182668 0.47922108 -0.20221902 0.71527175 0.47608431 -0.20803045 0.71870095 0.4728733 -0.21400015 0.72211371 0.46958774 -0.22012381 0.72550945 0.46622638 -0.2263969 0.72888753 0.46278934 -0.23281498 0.73224735 0.45927675 -0.2393739 0.73558828 0.45568838 -0.24606968 0.73890972 0.45202405 -0.25289851 0.74221104 0.44828355 -0.25985676 0.74549162 0.44446673 -0.26694127 0.74875084 0.44057284 -0.27414922 0.75198807 0.4366009 -0.28147681 0.75520266 0.43255207 -0.28892102 0.75839399 0.42842626 -0.29647899 0.76156142 0.42422341 -0.30414796 0.76470433 0.41994346 -0.31192534 0.76782207 0.41558638 -0.3198086 0.77091403 0.41115215 -0.3277958 0.77397953 0.40664011 -0.33588539 0.7770179 0.40204917 -0.34407411 0.78002855 0.39738103 -0.35235985 0.78301086 0.39263579 -0.36074053 0.78596419 0.38781353 -0.3692142 0.78888793 0.38291438 -0.37777892 0.79178146 0.3779385 -0.38643282 0.79464415 0.37288606 -0.39517408 0.79747541 0.36775726 -0.40400101 0.80027461 0.36255223 -0.4129135 0.80304099 0.35726893 -0.42190813 0.80577412 0.35191009 -0.43098317 0.80847343 0.34647607 -0.44013691 0.81113836 0.3409673 -0.44936763 0.81376835 0.33538426 -0.45867362 0.81636288 0.32972749 -0.46805314 0.81892143 0.32399761 -0.47750446 0.82144351 0.31819529 -0.4870258 0.82392862 0.31232133 -0.49661536 0.82637633 0.30637661 -0.5062713 0.82878621 0.30036211 -0.51599182 0.83115784 0.29427888 -0.52577622 0.83349064 0.2881265 -0.5356211 0.83578452 0.28190832 -0.5455244 0.83803918 0.27562602 -0.55548397 0.84025437 0.26928147 -0.5654976 0.8424299 0.26287683 -0.57556297 0.84456561 0.25641457 -0.58567772 0.84666139 0.24989748 -0.59583934 0.84871722 0.24332878 -0.60604528 0.8507331 0.23671214 -0.61629283 0.85270912 0.23005179 -0.62657923 0.85464543 0.22335258 -0.63690157 0.85654226 0.21662012 -0.64725685 0.85839991 0.20986086 -0.65764197 0.86021878 0.20308229 -0.66805369 0.86199932 0.19629307 -0.67848868 0.86374211 0.18950326 -0.68894351 0.86544779 0.18272455 -0.69941463 0.86711711 0.17597055 -0.70989842 0.86875092 0.16925712 -0.72039115 0.87035015 0.16260273 -0.73088902 0.87191584 0.15602894 -0.74138803 0.87344918 0.14956101 -0.75188414 0.87495143 0.14322828 -0.76237342 0.87642392 0.13706449 -0.77285183 0.87786808 0.13110864 -0.78331535 0.87928545 0.12540538 -0.79375994 0.88067763 0.12000532 -0.80418159 0.88204632 0.11496505 -0.81457634 0.88339329 0.11034678 -0.82494028 0.88472036 0.10621724 -0.83526959 0.88602943 0.1026459 -0.84556056 0.88732243 0.09970219 -0.8558096 0.88860134 0.09745186 -0.86601325 0.88986815 0.09595277 -0.87616824 0.89112487 0.09525046 -0.88627146 0.89237353 0.09537439 -0.89632002 0.89361614 0.09633538 -0.90631121 0.89485467 0.09812496 -0.91624212 0.89609127 0.1007168 -0.92610579 0.89732977 0.10407067 -0.93590444 0.8985704 0.10813094 -0.94563626 0.899815 0.11283773 -0.95529972 0.90106534 0.11812832 -0.96489353 0.90232311 0.12394051 -0.97441665 0.90358991 0.13021494 -0.98386829 0.90486726 0.13689671 -0.99324789 0.90615657 0.1439362 \ No newline at end of file +0.267004 0.004874 0.329415 +0.268510 0.009605 0.335427 +0.269944 0.014625 0.341379 +0.271305 0.019942 0.347269 +0.272594 0.025563 0.353093 +0.273809 0.031497 0.358853 +0.274952 0.037752 0.364543 +0.276022 0.044167 0.370164 +0.277018 0.050344 0.375715 +0.277941 0.056324 0.381191 +0.278791 0.062145 0.386592 +0.279566 0.067836 0.391917 +0.280267 0.073417 0.397163 +0.280894 0.078907 0.402329 +0.281446 0.084320 0.407414 +0.281924 0.089666 0.412415 +0.282327 0.094955 0.417331 +0.282656 0.100196 0.422160 +0.282910 0.105393 0.426902 +0.283091 0.110553 0.431554 +0.283197 0.115680 0.436115 +0.283229 0.120777 0.440584 +0.283187 0.125848 0.444960 +0.283072 0.130895 0.449241 +0.282884 0.135920 0.453427 +0.282623 0.140926 0.457517 +0.282290 0.145912 0.461510 +0.281887 0.150881 0.465405 +0.281412 0.155834 0.469201 +0.280868 0.160771 0.472899 +0.280255 0.165693 0.476498 +0.279574 0.170599 0.479997 +0.278826 0.175490 0.483397 +0.278012 0.180367 0.486697 +0.277134 0.185228 0.489898 +0.276194 0.190074 0.493001 +0.275191 0.194905 0.496005 +0.274128 0.199721 0.498911 +0.273006 0.204520 0.501721 +0.271828 0.209303 0.504434 +0.270595 0.214069 0.507052 +0.269308 0.218818 0.509577 +0.267968 0.223549 0.512008 +0.266580 0.228262 0.514349 +0.265145 0.232956 0.516599 +0.263663 0.237631 0.518762 +0.262138 0.242286 0.520837 +0.260571 0.246922 0.522828 +0.258965 0.251537 0.524736 +0.257322 0.256130 0.526563 +0.255645 0.260703 0.528312 +0.253935 0.265254 0.529983 +0.252194 0.269783 0.531579 +0.250425 0.274290 0.533103 +0.248629 0.278775 0.534556 +0.246811 0.283237 0.535941 +0.244972 0.287675 0.537260 +0.243113 0.292092 0.538516 +0.241237 0.296485 0.539709 +0.239346 0.300855 0.540844 +0.237441 0.305202 0.541921 +0.235526 0.309527 0.542944 +0.233603 0.313828 0.543914 +0.231674 0.318106 0.544834 +0.229739 0.322361 0.545706 +0.227802 0.326594 0.546532 +0.225863 0.330805 0.547314 +0.223925 0.334994 0.548053 +0.221989 0.339161 0.548752 +0.220057 0.343307 0.549413 +0.218130 0.347432 0.550038 +0.216210 0.351535 0.550627 +0.214298 0.355619 0.551184 +0.212395 0.359683 0.551710 +0.210503 0.363727 0.552206 +0.208623 0.367752 0.552675 +0.206756 0.371758 0.553117 +0.204903 0.375746 0.553533 +0.203063 0.379716 0.553925 +0.201239 0.383670 0.554294 +0.199430 0.387607 0.554642 +0.197636 0.391528 0.554969 +0.195860 0.395433 0.555276 +0.194100 0.399323 0.555565 +0.192357 0.403199 0.555836 +0.190631 0.407061 0.556089 +0.188923 0.410910 0.556326 +0.187231 0.414746 0.556547 +0.185556 0.418570 0.556753 +0.183898 0.422383 0.556944 +0.182256 0.426184 0.557120 +0.180629 0.429975 0.557282 +0.179019 0.433756 0.557430 +0.177423 0.437527 0.557565 +0.175841 0.441290 0.557685 +0.174274 0.445044 0.557792 +0.172719 0.448791 0.557885 +0.171176 0.452530 0.557965 +0.169646 0.456262 0.558030 +0.168126 0.459988 0.558082 +0.166617 0.463708 0.558119 +0.165117 0.467423 0.558141 +0.163625 0.471133 0.558148 +0.162142 0.474838 0.558140 +0.160665 0.478540 0.558115 +0.159194 0.482237 0.558073 +0.157729 0.485932 0.558013 +0.156270 0.489624 0.557936 +0.154815 0.493313 0.557840 +0.153364 0.497000 0.557724 +0.151918 0.500685 0.557587 +0.150476 0.504369 0.557430 +0.149039 0.508051 0.557250 +0.147607 0.511733 0.557049 +0.146180 0.515413 0.556823 +0.144759 0.519093 0.556572 +0.143343 0.522773 0.556295 +0.141935 0.526453 0.555991 +0.140536 0.530132 0.555659 +0.139147 0.533812 0.555298 +0.137770 0.537492 0.554906 +0.136408 0.541173 0.554483 +0.135066 0.544853 0.554029 +0.133743 0.548535 0.553541 +0.132444 0.552216 0.553018 +0.131172 0.555899 0.552459 +0.129933 0.559582 0.551864 +0.128729 0.563265 0.551229 +0.127568 0.566949 0.550556 +0.126453 0.570633 0.549841 +0.125394 0.574318 0.549086 +0.124395 0.578002 0.548287 +0.123463 0.581687 0.547445 +0.122606 0.585371 0.546557 +0.121831 0.589055 0.545623 +0.121148 0.592739 0.544641 +0.120565 0.596422 0.543611 +0.120092 0.600104 0.542530 +0.119738 0.603785 0.541400 +0.119512 0.607464 0.540218 +0.119423 0.611141 0.538982 +0.119483 0.614817 0.537692 +0.119699 0.618490 0.536347 +0.120081 0.622161 0.534946 +0.120638 0.625828 0.533488 +0.121380 0.629492 0.531973 +0.122312 0.633153 0.530398 +0.123444 0.636809 0.528763 +0.124780 0.640461 0.527068 +0.126326 0.644107 0.525311 +0.128087 0.647749 0.523491 +0.130067 0.651384 0.521608 +0.132268 0.655014 0.519661 +0.134692 0.658636 0.517649 +0.137339 0.662252 0.515571 +0.140210 0.665859 0.513427 +0.143303 0.669459 0.511215 +0.146616 0.673050 0.508936 +0.150148 0.676631 0.506589 +0.153894 0.680203 0.504172 +0.157851 0.683765 0.501686 +0.162016 0.687316 0.499129 +0.166383 0.690856 0.496502 +0.170948 0.694384 0.493803 +0.175707 0.697900 0.491033 +0.180653 0.701402 0.488189 +0.185783 0.704891 0.485273 +0.191090 0.708366 0.482284 +0.196571 0.711827 0.479221 +0.202219 0.715272 0.476084 +0.208030 0.718701 0.472873 +0.214000 0.722114 0.469588 +0.220124 0.725509 0.466226 +0.226397 0.728888 0.462789 +0.232815 0.732247 0.459277 +0.239374 0.735588 0.455688 +0.246070 0.738910 0.452024 +0.252899 0.742211 0.448284 +0.259857 0.745492 0.444467 +0.266941 0.748751 0.440573 +0.274149 0.751988 0.436601 +0.281477 0.755203 0.432552 +0.288921 0.758394 0.428426 +0.296479 0.761561 0.424223 +0.304148 0.764704 0.419943 +0.311925 0.767822 0.415586 +0.319809 0.770914 0.411152 +0.327796 0.773980 0.406640 +0.335885 0.777018 0.402049 +0.344074 0.780029 0.397381 +0.352360 0.783011 0.392636 +0.360741 0.785964 0.387814 +0.369214 0.788888 0.382914 +0.377779 0.791781 0.377939 +0.386433 0.794644 0.372886 +0.395174 0.797475 0.367757 +0.404001 0.800275 0.362552 +0.412913 0.803041 0.357269 +0.421908 0.805774 0.351910 +0.430983 0.808473 0.346476 +0.440137 0.811138 0.340967 +0.449368 0.813768 0.335384 +0.458674 0.816363 0.329727 +0.468053 0.818921 0.323998 +0.477504 0.821444 0.318195 +0.487026 0.823929 0.312321 +0.496615 0.826376 0.306377 +0.506271 0.828786 0.300362 +0.515992 0.831158 0.294279 +0.525776 0.833491 0.288127 +0.535621 0.835785 0.281908 +0.545524 0.838039 0.275626 +0.555484 0.840254 0.269281 +0.565498 0.842430 0.262877 +0.575563 0.844566 0.256415 +0.585678 0.846661 0.249897 +0.595839 0.848717 0.243329 +0.606045 0.850733 0.236712 +0.616293 0.852709 0.230052 +0.626579 0.854645 0.223353 +0.636902 0.856542 0.216620 +0.647257 0.858400 0.209861 +0.657642 0.860219 0.203082 +0.668054 0.861999 0.196293 +0.678489 0.863742 0.189503 +0.688944 0.865448 0.182725 +0.699415 0.867117 0.175971 +0.709898 0.868751 0.169257 +0.720391 0.870350 0.162603 +0.730889 0.871916 0.156029 +0.741388 0.873449 0.149561 +0.751884 0.874951 0.143228 +0.762373 0.876424 0.137064 +0.772852 0.877868 0.131109 +0.783315 0.879285 0.125405 +0.793760 0.880678 0.120005 +0.804182 0.882046 0.114965 +0.814576 0.883393 0.110347 +0.824940 0.884720 0.106217 +0.835270 0.886029 0.102646 +0.845561 0.887322 0.099702 +0.855810 0.888601 0.097452 +0.866013 0.889868 0.095953 +0.876168 0.891125 0.095250 +0.886271 0.892374 0.095374 +0.896320 0.893616 0.096335 +0.906311 0.894855 0.098125 +0.916242 0.896091 0.100717 +0.926106 0.897330 0.104071 +0.935904 0.898570 0.108131 +0.945636 0.899815 0.112838 +0.955300 0.901065 0.118128 +0.964894 0.902323 0.123941 +0.974417 0.903590 0.130215 +0.983868 0.904867 0.136897 +0.993248 0.906157 0.143936 diff -Nru saods9-8.2+repack/ds9/doc/ref/analysis.html saods9-8.3+repack/ds9/doc/ref/analysis.html --- saods9-8.2+repack/ds9/doc/ref/analysis.html 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/doc/ref/analysis.html 2021-11-08 15:46:07.000000000 +0000 @@ -15,6 +15,7 @@ Syntax
Command Type
Macros
+Buttonbar
Help
Parameters
Hierarchical Menus
@@ -23,7 +24,7 @@ The analysis file that defines the known analysis commands consists of one or more file descriptors, each of which has the following format:
Menu label to be used
A space separated list of file templates
-Command type [menu | bind <event>]
+Command type [menu | bind <event> | button]
The command line for the analysis program

Task names may contain space characters. All lines may be indented. Also, the '#' character is a comment character. A separator can be inserted in the menu by specifying the following sequence '---'.

Example: @@ -40,6 +41,14 @@ *.fits
menu
$data | doit | $text +

button

+

A button command creates an button option in the current buttonbar.

+Example: +
# Button command example
+My Analysis Task
+*.fits
+button
+$data | doit | $text

bind

A bind command is a command that is bound to an event. When the event occurs, the command is executed. Types of events available include all TK events, including all keystrokes and mouse clicks. If a command is bound to an event other that a keystroke, care must be taken to not to interfere with other internal DS9 events.

To bind to a key stroke, use the following command type:

@@ -289,6 +298,19 @@
Example:
    echo '$xpa_method' | $text
+

Buttonbar

+

Creates an analysis buttonbar, in which button commands maybe created. After all buttons commands have been defined, use endbuttonbar to complete the definition.

+Example: +
buttonbar
+Hello
+*.fits
+button
+echo "hello" | $text
+World
+*.fits
+button
+echo "world" | $text
+endbuttonbar

Help

The user may define his own HELP message. This message will be available to the user as a menu item. An optional label maybe specified. The default label is Help. When invoked, an text dialog window will appear, containing the message. Multiple HELP items maybe defined within a menu or across hierarchical menus.

Example: diff -Nru saods9-8.2+repack/ds9/doc/ref/command.html saods9-8.3+repack/ds9/doc/ref/command.html --- saods9-8.2+repack/ds9/doc/ref/command.html 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/doc/ref/command.html 2021-11-08 15:46:07.000000000 +0000 @@ -48,7 +48,8 @@ geometry
gif
green
-grid
+graph
+grid
header
height
help
@@ -75,6 +76,7 @@ msg
multiframe
nameserver
+notes
nrrd
nvss
orient
@@ -361,7 +363,9 @@     [cds <catalogid>]

    [load <filename>]
-    [import rdb|sb|tsv|csv|fits <filename>]
+    [save <filename>]
+    [import rdb|tsv|fits <filename>]
+    [export rdb|tsv <filename>]

    [allcols]
    [allrows]
@@ -373,7 +377,6 @@     [current <ref>]
    [dec <col>]
    [edit yes|no]
-    [export sb|tsv <filename>]
    [filter <string>]
    [filter load <filename>]
    [header]
@@ -397,7 +400,6 @@     [samp]
    [samp broadcast]
    [samp send <application>]
-    [save <filename>]
    [servercds|adac|cadc|cambridge|sao|ukirt|iucaa|bejing|saao]
    [show yes|no]
    [radius <value> degrees|arcmin|arcsec]
@@ -818,10 +820,13 @@     [cancel]
    [clear]
    [close]
+
+    [save <filename>]
+    [export rdb|tsv <filename>]
+
    [coordinate <ra> <dec> <coordsys>]
    [crosshair]
    [current <ref>]
-    [export sb|tsv <filename>]
    [filter <string>]
    [filter load <filename>]
    [name <object>]
@@ -829,7 +834,6 @@     [print]
    [regions]
    [retrieve]
-    [save <filename>]
    [show yes|no]
    [radius <value> degrees|arcmin|arcsec]
    [sky <skyframe>]
@@ -929,6 +933,32 @@  
Example:
$ds9 -green foo.fits +

graph

+

Controls horizontal and vertical cut graphs.

+Syntax:
+-graph [grid yes|no]
+    [log yes|no]
+    [method average|sum]
+    [font times|helvetica|courier]
+    [fontsize <value>]
+    [fontweight normal|bold]
+    [fontslant roman|italic]
+    [size <integer>]
+    [thickness <integer>]
+    [open|close]

+Example:
+$ds9 -graph grid yes
+$ds9 -graph log no
+$ds9 -graph method average
+$ds9 -graph font helvetica
+$ds9 -graph fontsize 9
+$ds9 -graph fontweight normal
+$ds9 -graph fontslant roman
+$ds9 -graph size 150
+$ds9 -graph thickness 1
+$ds9 -graph open
+$ds9 -graph close

grid

Controls coordinate grid. For grid numeric format syntax,  click here.

Syntax:
@@ -1352,6 +1382,26 @@ $ds9 -nameserver crosshair
$ds9 -nameserver open
$ds9 -nameserver close
+

notes

+

Display Notebook.

+Syntax:
+notes [<string>]
+    [append <string>]
+    [insert <string>]
+    [clear]
+    [load <filename>]
+    [save <filename>]
+    [open|close]

+Example:
+$ds9 -notes 'Hello World'
+$ds9 -notes append 'Hello World'
+$ds9 -notes insert 'Hello World'
+$ds9 -notes clear
+$ds9 -notes load foo.txt
+$ds9 -notes save foo.txt
+$ds9 -notes open
+$ds9 -notes close

nrrd

Load an NRRD (Nearly Raw Raster Data) file.

Syntax:
@@ -1440,13 +1490,13 @@ Syntax:

# create new empty plot window
-plot [line|bar|scatter [<ref>]]
-    [line|bar|scatter [<ref>] <title> <xaxis label> <yaxis label> xy|xyex|xyey|xyexey]
+plot [line|bar [<ref>]]
+    [line|bar [<ref>] <title> <xaxis label> <yaxis label> xy|xyex|xyey|xyexey]

# create new plot from data file
-plot [line|bar|scatter <filename> [<ref>] xy|xyex|xyey|xyexey]
-    [line|bar|scatter <filename> [<ref>] <title> <xaxis label> <yaxis label> xy|xyex|xyey|xyexey]
+plot [line|bar <filename> [<ref>] xy|xyex|xyey|xyexey]
+    [line|bar <filename> [<ref>] <title> <xaxis label> <yaxis label> xy|xyex|xyey|xyexey]

# existing plot
@@ -1456,7 +1506,7 @@     [current <ref>]
    [layout grid|row|column|strip]
    [layout strip scale <percent>]
-    [add graph line|bar|scatter]
+    [add graph line|bar]
    [current graph <graph>]
    [delete graph]
    [current dataset <dataset>]
@@ -1528,12 +1578,6 @@     [bar width <value>]

-# scatter dataset
-plot [scatter symbol circle|square|diamond|plus|splus|scross|triangle|arrow]
-    [scatter color <value>]
-    [scatter fill yes|no]
-

-

# error bar
plot [error yes|no]
    [error color <value>]
@@ -1546,7 +1590,6 @@ # create new empty plot window
$ds9 -plot line
$ds9 -plot bar
-$ds9 -plot scatter

# create new plot from data file
@@ -1561,7 +1604,7 @@ $ds9 -plot current foo
$ds9 -plot layout strip
$ds9 -plot layout strip scale 30
-$ds9 -plot add graph scatter
+$ds9 -plot add graph bar
$ds9 -plot current graph 1
$ds9 -plot delete graph
$ds9 -plot current dataset 1
@@ -1634,12 +1677,6 @@ $ds9 -plot bar width 10

-# scatter dataset
-$ds9 -plot scatter symbol circle
-$ds9 -plot scatter color cyan
-$ds9 -plot scatter fill no
-

-

$ds9 -plot error yes
$ds9 -plot error color red
$ds9 -plot error cap yes
@@ -1712,7 +1749,7 @@ $ds9 -preserve pan yes
$ds9 -preserve regions yes

psprint

-

Invokes postscript printing. Please see print for further details.

+

Invokes postscript printing. Please see print for further details.

print

Controls printing. Use print option to set printing options.

Syntax:
@@ -1739,7 +1776,10 @@      [open]
     [<filename>]
     [load <filename>]
-     [import vot|xml|rdb|sb|tsv|csv <filename>]
+
+     [import xml|rdb|tsv <filename>]
+     [export xml|rdb|tsv <filename>]
+
     [clear]
     [current <ref>]
     [ext <int>|<extname>]
@@ -1981,8 +2021,10 @@ Example:
$ds9 -samp yes
$ds9 -samp connect
-$ds9 -samp broadcast image
-$ds9 -samp send image aladin

+$ds9 -samp broadcast
+$ds9 -samp broadcast table
+$ds9 -samp send table
+$ds9 -samp send table topcat

save

Save loaded image data of current frame as FITS.

Syntax:
@@ -2074,14 +2116,16 @@     [cancel]
    [clear]
    [close]
+
+    [save <filename>]
+    [export rdb|tsv <filename>]
+
    [coordinate <ra> <dec> <coordsys>]
    [crosshair]
    [current <ref>]
-    [export sb|tsv <filename>]
    [name <object>]
    [print]
    [retrieve]
-    [save <filename>]
    [radius <value> degrees|arcmin|arcsec]
    [sky <skyframe>]
    [skyformat <skyformat>]
@@ -2305,6 +2349,7 @@

Controls the GUI and visible RGB frame color channels.

Syntax:
-view [layout horizontal|vertical]
+    [multi yes|no]
    [keyvalue <string>]
    [info yes|no]
    [panner yes|no]
@@ -2326,6 +2371,7 @@  
Example:
$ds9 -view layout vertical
+$ds9 -view multi yes
$ds9 -view keyvalue BITPIX
$ds9 -view info yes
$ds9 -view panner yes
@@ -2477,18 +2523,14 @@

Configure XPA.

Syntax:
-xpa [yes|no]
+    [connect|disconnect]
    [inet|local|unix|localhost]
-    [noxpans]
-    [connect]
-    [disconnect]
    [info]
 
Example:
-$ds9 -xpa no
-$ds9 -xpa local
-$ds9 -xpa noxpans
+$ds9 -xpa yes
$ds9 -xpa connect
-$ds9 -xpa disconnect
+$ds9 -xpa local
$ds9 -xpa info

zmax

Set Scale Limits based  on the IRAF algorithm and maximum data value.

diff -Nru saods9-8.2+repack/ds9/doc/ref/file.html saods9-8.3+repack/ds9/doc/ref/file.html --- saods9-8.2+repack/ds9/doc/ref/file.html 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/doc/ref/file.html 2021-11-08 15:46:07.000000000 +0000 @@ -20,7 +20,7 @@ FITS RGB
Split FITS
Array
-NRRD
+NRRD
ENVI
GIF
TIFF
@@ -154,8 +154,8 @@ filename[ext,bin]

where:
-ext: seeFITS Image
-sect: seeFITS Image
+ext: see FITS Image
+sect: see FITS Image

bin:
[bin=colx,coly] # bin counts
@@ -203,8 +203,8 @@ filename[ext,hpx]

where:
-ext: seeFITS Image
-sect: seeFITS Image
+ext: see FITS Image
+sect: see FITS Image

hpx:
[order=ring|nested] # default ring
@@ -276,7 +276,7 @@ filename[sect][arr]
 
where
-sect: seeFITS Image
+sect: see FITS Image
arr:
xdim=value
ydim=value
@@ -327,7 +327,7 @@ filename[sect]

where:
-sect: seeFITS Image
+sect: see FITS Image

Example:
$ds9 -nrrd foo.nrrd
@@ -339,7 +339,7 @@ filename[sect]

where:
-sect: seeFITS Image
+sect: see FITS Image

Example:
$ds9 -envi foo.hdr foo.bsq
@@ -410,11 +410,11 @@ FITS REGION Binary Table
X Y

Contour Files

-See Contours documentation for more information.
+See Contours documentation for more information.

Color Lookup Table

DS9 has a number of default colormaps available to the user. DS9 also supports reading and writing color lookup table formats from the following programs:
SAOimage
-SAOtng
+SAOtng
XImtool
DS9 uses the file extension to determine the color table format:
diff -Nru saods9-8.2+repack/ds9/doc/ref/prefs.html saods9-8.3+repack/ds9/doc/ref/prefs.html --- saods9-8.2+repack/ds9/doc/ref/prefs.html 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/doc/ref/prefs.html 2021-11-08 15:46:07.000000000 +0000 @@ -10,8 +10,8 @@

Preferences

Allows the user to customize the appearance and behavior of the GUI . Please note: some preferences take effect immediately, while others require DS9 to be restarted. Changes to the preferences can be saved by selecting the Save button. Use the Clear Preferences button to restore default settings.

-

User preferences are stored in $HOME/.ds9.prf. DO NOT EDIT this file, since it will be deleted or overwritten by DS9. The file permissions must be group/world readonly.

-

Users may have several different preference files. DS9 looks for a preference file with its own name. By default, if the application is named ds9, it will look for .ds9.prf. However, if the DS9 application is named foo, then DS9 will look for .foo.prf. In this manner, the user can have several predefined preference files that are activated by invoking DS9 with a different application names.

+

User preferences files are stored in the directory$HOME/.ds9. DO NOT EDIT these files, since it will be deleted or overwritten by DS9.

+

Users may have several different preference files. DS9 looks for a preference file with its own name. By default, if the application is named ds9, it will look for .ds9. However, if the DS9 application is named foo, then DS9 will look for .foo. In this manner, the user can have several predefined preference files that are activated by invoking DS9 with a different application names.

diff -Nru saods9-8.2+repack/ds9/doc/ref/samp.html saods9-8.3+repack/ds9/doc/ref/samp.html --- saods9-8.2+repack/ds9/doc/ref/samp.html 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/doc/ref/samp.html 2021-11-08 15:46:07.000000000 +0000 @@ -62,6 +62,7 @@ footprint
frame
gif
+graph
grid
header
height
@@ -82,6 +83,7 @@ movie
multiframe
nameserver
+notes
nrrd
nvss
orient
@@ -128,6 +130,7 @@ wcs
web
width
+xpa
zscale
zoom

2mass

@@ -249,8 +252,9 @@     [load <filename>]
    [clear]
    [clear][load <filename>]
-    [message ok|okcancel|yesno <message>]
    [entry <message>]
+    [message ok|okcancel|yesno <message>]
+    [filedialog open|save]
    [text]
 
Example:
@@ -258,7 +262,8 @@ analysis
analysis task
analysis entry {Please enter something}
-analysis entry okcancel {Hello World}
+analysis message okcancel {Hello World}
+analysis filedialog open

ds9.set(string cmd)
analysis 0 # invoke first analysis task
@@ -414,7 +419,9 @@     [cds <catalogid>]

    [load <filename>]
-    [import rdb|sb|tsv|csv|fits <filename>]
+    [save <filename>]
+    [import rdb|tsv|fits <filename>]
+    [export rdb|tsv <filename>]

    [allcols]
    [allrows]
@@ -426,7 +433,6 @@     [current <ref>]
    [dec <col>]
    [edit yes|no]
-    [export sb|tsv <filename>]
    [filter <string>]
    [filter load <filename>]
    [header]
@@ -450,7 +456,6 @@     [samp]
    [samp broadcast]
    [samp send <application>]
-    [save <filename>]
    [servercds|adac|cadc|cambridge|sao|ukirt|iucaa|bejing|saao]
    [show yes|no]
    [radius <value> degrees|arcmin|arcsec]
@@ -997,10 +1002,13 @@     [cancel]
    [clear]
    [close]
+
+    [save <filename>]
+    [export rdb|tsv <filename>]
+
    [coordinate <ra> <dec> <coordsys>]
    [crosshair]
    [current <ref>]
-    [export sb|tsv <filename>]
    [filter <string>]
    [filter load <filename>]
    [name <object>]
@@ -1008,7 +1016,6 @@     [print]
    [regions]
    [retrieve]
-    [save <filename>]
    [show yes|no]
    [radius <value> degrees|arcmin|arcsec]
    [sky <skyframe>]
@@ -1143,6 +1150,45 @@ gif foo.gif
gif new foo.gif
gif slice foo.gif
+ +

graph

+

Controls horizontal and vertical cut graphs.

+Syntax:
+graph [grid yes|no]
+    [log yes|no]
+    [method average|sum]
+    [font times|helvetica|courier]
+    [fontsize <value>]
+    [fontweight normal|bold]
+    [fontslant roman|italic]
+    [size <integer>]
+    [thickness <integer>]
+    [open|close]

+Example:
+string value = ds9.get(string cmd)
+graph grid
+graph log
+graph method
+graph font
+graph fontsize
+graph fontweight
+graph fontslant
+graph size
+graph thickness
+
+string value = ds9.get(string cmd)
+graph grid yes
+graph log no
+graph method average
+graph font helvetica
+graph fontsize 9
+graph fontweight normal
+graph fontslant roman
+graph size 150
+graph thickness 1
+graph open
+graph close

grid

Controls coordinate grid. For grid numeric format syntax,  click here.

Syntax:
@@ -1379,7 +1425,7 @@ iconify
iconify yes

iexam

-

Interactive examine function. A blinking cursor will indicate to the user to click on a point on an image. The specified information will be returned at that time. The default event is button. In the last form, the following macros will be expanded if present: $width, $height, $depth, $bitpix, $filename, $regions, $filename[$regions], $env, $pan, $value, $x, $y, $z. See Analysis Macros for more information.

+

Interactive examine function. A blinking cursor will indicate to the user to click on a point on an image. The specified information will be returned at that time. The default event is button. In the last form, the following macros will be expanded if present: $width, $height, $depth, $bitpix, $filename, $regions, $filename[$regions], $env, $pan, $value, $x, $y, $z. See Analysis Macros for more information.

Syntax:
iexam []
    [[]|button|key|any] coordinate <coordsys> [<skyframe>] [<skyformat>]
@@ -1673,6 +1719,30 @@ nameserver crosshair
nameserver open
nameserver close
+

notes

+

Display Notebook.

+Syntax:
+notes [<string>]
+    [append <string>]
+    [insert <string>]
+    [clear]
+    [load <filename>]
+    [save <filename>]
+    [open|close]

+Example:
+string value = ds9.get(string cmd)
+notes
+
+ds9.set(string cmd, string url)
+notes {Hello World}
+notes append {Hello World}
+notes insert {Hello World}
+notes clear
+notes load foo.txt
+notes save foo.txt
+notes open
+notes close

nrrd

Load an NRRD (Nearly Raw Raster Data) file. Optional parameter: array endian.

Syntax:
@@ -1798,13 +1868,13 @@ Syntax:

# create new empty plot window
-plot [line|bar|scatter [<ref>]]
-    [line|bar|scatter [<ref>] <title> <xaxis label> <yaxis label> xy|xyex|xyey|xyexey]
+plot [line|bar [<ref>]]
+    [line|bar [<ref>] <title> <xaxis label> <yaxis label> xy|xyex|xyey|xyexey]

# create new plot from data file
-plot [line|bar|scatter <filename> [<ref>] xy|xyex|xyey|xyexey]
-    [line|bar|scatter <filename> [<ref>] <title> <xaxis lable> <yaxis lable> xy|xyex|xyey|xyexey]
+plot [line|bar <filename> [<ref>] xy|xyex|xyey|xyexey]
+    [line|bar <filename> [<ref>] <title> <xaxis lable> <yaxis lable> xy|xyex|xyey|xyexey]

# existing plot
@@ -1814,7 +1884,7 @@     [current <ref>]
    [layout grid|row|column|strip]
    [layout strip scale <percent>]
-    [add graph line|bar|scatter]
+    [add graph line|bar]
    [current graph <graph>]
    [delete graph]
    [current dataset <dataset>]
@@ -1886,12 +1956,6 @@     [bar width <value>]

-# scatter dataset
-plot [scatter symbol circle|square|diamond|plus|splus|scross|triangle|arrow]
-    [scatter color <value>]
-    [scatter fill yes|no]
-

-

# error bar
plot [error yes|no]
    [error color <value>]
@@ -1909,7 +1973,6 @@ ds9.set(string cmd)
plot line
plot bar
-plot scatter

# create new plot from data file
@@ -1936,7 +1999,7 @@ plot current foo
plot layout strip
plot layout strip scale 30
-plot add graph scatter
+plot add graph bar
plot current graph 1
plot delete graph
plot current dataset 1
@@ -2055,18 +2118,6 @@ plot bar width 10

-# scatter dataset
-string value = ds9.get(string cmd)
-plot scatter symbol
-plot scatter color
-plot scatter fill
-
-ds9.set(string cmd)
-plot scatter symbol circle
-plot scatter color cyan
-plot scatter fill no
-

-

string value = ds9.get(string cmd)
plot error
plot error color
@@ -2144,7 +2195,7 @@ preserve pan yes
preserve regions yes

psprint

-

Invokes postscript printing. Please see print for further details.

+

Invokes postscript printing. Please see print for further details.

print

Controls printing. Use print option to set printing options.

Syntax:
@@ -2180,7 +2231,10 @@      [open]
     [<filename>]
     [load <filename>]
-     [import vot|xml|rdb|sb|tsv|csv <filename>]
+
+     [import xml|rdb|tsv <filename>]
+     [export xml|rdb|tsv <filename>]
+
     [clear]
     [current <ref>]
     [ext <int>|<extname>]
@@ -2483,16 +2537,16 @@

samp

Configure SAMP protocol.

Syntax:
-samp [disconnect]
-    [broadcast [image|table]]
-    [send [image|table] <application>]
+samp [no]
+    [disconnect]
 
Example:
+string value = ds9.get(string cmd)
+samp

ds9.set(string cmd)
-samp disconnect
-samp broadcast image
-samp send image aladin
+samp no
+samp disconnect

save

Save loaded image data of current frame as FITS.

Syntax:
@@ -2601,14 +2655,16 @@     [cancel]
    [clear]
    [close]
+
+    [save <filename>]
+    [export rdb|tsv <filename>]
+
    [coordinate <ra> <dec> <coordsys>]
    [crosshair]
    [current <ref>]
-    [export sb|tsv <filename>]
    [name <object>]
    [print]
    [retrieve]
-    [save <filename>]
    [radius <value> degrees|arcmin|arcsec]
    [sky <skyframe>]
    [skyformat <skyformat>]
@@ -2837,6 +2893,7 @@

Controls the GUI.

Syntax:
view [layout horizontal|vertical]
+    [multi yes|no]
    [keyvalue <string>]
    [info yes|no]
    [panner yes|no]
@@ -2861,6 +2918,7 @@ Example:
string value = ds9.get(string cmd)
view layout
+view multi
view keyvalue
view info
view panner
@@ -2881,6 +2939,7 @@
ds9.set(string cmd)
view layout vertical
+view multi yes
view keyvalue BITPIX
view info yes
view panner yes
@@ -3065,6 +3124,22 @@
ds9.set(string cmd)
width 512
+

xpa

+

Configure XPA.

+Syntax:
+xpa [yes|no]
+    [connect|disconnect]
+    [info]

+Example:
+string value = ds9.get(string cmd)
+xpa info
+
+ds9.set(string cmd)
+xpa yes
+xpa connect
+xpa local
+xpa info

zscale

Set Scale Limits based  on the IRAF algorithm.

Syntax:
diff -Nru saods9-8.2+repack/ds9/doc/ref/xpa.html saods9-8.3+repack/ds9/doc/ref/xpa.html --- saods9-8.2+repack/ds9/doc/ref/xpa.html 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/doc/ref/xpa.html 2021-11-08 15:46:07.000000000 +0000 @@ -42,6 +42,7 @@ footprint
frame
gif
+graph
grid
header
height
@@ -62,6 +63,7 @@ movie
multiframe
nameserver
+notes
nrrd
nvss
orient
@@ -84,6 +86,7 @@ rgbcube
rgbimage
rotate
+samp
save
saveimage
scale
@@ -221,8 +224,9 @@     [load <filename>]
    [clear]
    [clear][load <filename>]
-    [message ok|okcancel|yesno <message>]
    [entry <message>]
+    [message ok|okcancel|yesno <message>]
+    [filedialog open|save]
    [text]

Example:
@@ -230,6 +234,7 @@ $xpaget ds9 analysis task
$xpaget ds9 analysis entry {Please enter something}
$xpaget ds9 analysis message okcancel {Hello World}
+$xpaget ds9 analysis filedialog open

$xpaset -p ds9 analysis 0 # invoke first analysis task
$xpaset -p ds9 analysis task 0
@@ -378,7 +383,9 @@     [cds <catalogid>]

    [load <filename>]
-    [import rdb|sb|tsv|csv|fits <filename>]
+    [save <filename>]
+    [import rdb|tsv|fits <filename>]
+    [export rdb|tsv <filename>]

    [allcols]
    [allrows]
@@ -390,7 +397,6 @@     [current <ref>]
    [dec <col>]
    [edit yes|no]
-    [export sb|tsv <filename>]
    [filter <string>]
    [filter load <filename>]
    [header]
@@ -414,7 +420,6 @@     [samp]
    [samp broadcast]
    [samp send <application>]
-    [save <filename>]
    [server cds|adac|cadc|cambridge|sao|ukirt|iucaa|bejing|saao]
    [show yes|no]
    [radius <value> degrees|arcmin|arcsec]
@@ -936,10 +941,13 @@     [cancel]
    [clear]
    [close]
+
+    [save <filename>]
+    [export rdb|tsv <filename>]
+
    [coordinate <ra> <dec> <coordsys>]
    [crosshair]
    [current <ref>]
-    [export sb|tsv <filename>]
    [filter <string>]
    [filter load <filename>]
    [name <object>]
@@ -947,7 +955,6 @@     [print]
    [regions]
    [retrieve]
-    [save <filename>]
    [show yes|no]
    [radius <value> degrees|arcmin|arcsec]
    [sky <skyframe>]
@@ -1080,10 +1087,46 @@ $cat foo.gif | xpaset ds9 gif # not available windows
$cat foo.gif | xpaset ds9 gifnew # not available windows
$cat foo.gif | xpaset ds9 gifslice# not available windows
+

graph

+

Controls horizontal and vertical cut graphs.

+Syntax:
+graph [grid yes|no]
+    [log yes|no]
+    [method average|sum]
+    [font times|helvetica|courier]
+    [fontsize <value>]
+    [fontweight normal|bold]
+    [fontslant roman|italic]
+    [size <integer>]
+    [thickness <integer>]
+    [open|close]

+Example:
+$xpaget ds9 graph grid
+$xpaget ds9 graph log
+$xpaget ds9 graph method
+$xpaget ds9 graph font
+$xpaget ds9 graph fontsize
+$xpaget ds9 graph fontweight
+$xpaget ds9 graph fontslant
+$xpaget ds9 graph size
+$xpaget ds9 graph thickness
+
+$xpaset -p ds9 graph grid yes
+$xpaset -p ds9 graph log no
+$xpaset -p ds9 graph method average
+$xpaset -p ds9 graph font helvetica
+$xpaset -p ds9 graph fontsize 9
+$xpaset -p ds9 graph fontweight normal
+$xpaset -p ds9 graph fontslant roman
+$xpaset -p ds9 graph size 150
+$xpaset -p ds9 graph thickness 1
+$xpaset -p ds9 graph open
+$xpaset -p ds9 graph close

grid

Controls coordinate grid. For grid numeric format syntax,  click here.

Syntax:
-grid  []
+grid []
    [yes|no]
    [type analysis|publication]
    [system <coordsys>]
@@ -1597,6 +1640,28 @@ $xpaset -p ds9 nameserver crosshair
$xpaset -p ds9 nameserver open
$xpaset -p ds9 nameserver close

+

notes

+

Display Notebook.

+Syntax:
+notes [<string>]
+    [append <string>]
+    [insert <string>]
+    [clear]
+    [load <filename>]
+    [save <filename>]
+    [open|close]

+Example:
+$xpaget ds9 notes
+
+$xpaset -p ds9 notes {Hello World}
+$xpaset -p ds9 notes append {Hello World}
+$xpaset -p ds9 notes insert {Hello World}
+$xpaset -p ds9 notes clear
+$xpaset -p ds9 notes load foo.txt
+$xpaset -p ds9 notes save foo.txt
+$xpaset -p ds9 notes open
+$xpaset -p ds9 notes close

nrrd

Load an NRRD (Nearly Raw Raster Data) file. Optional parameter: array endian.

Syntax:
@@ -1713,17 +1778,17 @@ Syntax:

# create new empty plot window
-plot [line|bar|scatter [<ref>]]
-    [line|bar|scatter [<ref>] <title> <xaxis label> <yaxis label> xy|xyex|xyey|xyexey]
+plot [line|bar [<ref>]]
+    [line|bar [<ref>] <title> <xaxis label> <yaxis label> xy|xyex|xyey|xyexey]

# create new plot from data file
-plot [line|bar|scatter <filename> [<ref>] xy|xyex|xyey|xyexey]
-    [line|bar|scatter <filename> [<ref>] <title> <xaxis label> <yaxis label> xy|xyex|xyey|xyexey]
+plot [line|bar <filename> [<ref>] xy|xyex|xyey|xyexey]
+    [line|bar <filename> [<ref>] <title> <xaxis label> <yaxis label> xy|xyex|xyey|xyexey]

# create new plot with data from stdin which includes title/dim headers
-plot [line|bar|scatter [<ref>] stdin]
+plot [line|bar [<ref>] stdin]

# load data into existing plot from stdin
@@ -1737,7 +1802,7 @@     [current <ref>]
    [layout grid|row|column|strip]
    [layout strip scale <percent>]
-    [add graph line|bar|scatter]
+    [add graph line|bar]
    [current graph <graph>]
    [delete graph]
    [current dataset <dataset>]
@@ -1809,12 +1874,6 @@     [bar width <value>]

-# scatter dataset
-plot [scatter symbol circle|square|diamond|plus|splus|scross|triangle|arrow]
-    [scatter color <value>]
-    [scatter fill yes|no]
-

-

# error bar
plot [error yes|no]
    [error color <value>]
@@ -1830,7 +1889,6 @@ # create new empty plot window
$xpaset -p ds9 plot line
$xpaset -p ds9 plot bar
-$xpaset -p ds9 plot scatter

# create new plot from data file
@@ -1862,7 +1920,7 @@ $xpaset -p ds9 plot current foo
$xpaset -p ds9 plot layout strip
$xpaset -p ds9 plot layout strip scale 30
-$xpaset -p ds9 plot add graph scatter
+$xpaset -p ds9 plot add graph bar
$xpaset -p ds9 plot current graph 1
$xpaset -p ds9 plot delete graph
$xpaset -p ds9 plot current dataset 1
@@ -1968,15 +2026,6 @@ $xpaset -p ds9 plot bar width 10

-# scatter dataset
-$xpaget ds9 plot scatter symbol
-$xpaget ds9 plot scatter color
-$xpaget ds9 plot scatter fill
-$xpaset -p ds9 plot scatter symbol circle
-$xpaset -p ds9 plot scatter color cyan
-$xpaset -p ds9 plot scatter fill no
-

-

$xpaget ds9 plot error
$xpaget ds9 plot error color
$xpaget ds9 plot error cap
@@ -2049,7 +2098,7 @@ $xpaset -p ds9 preserve pan yes
$xpaset -p ds9 preserve regions yes

psprint

-

Invokes postscript printing. Please see print for further details.

+

Invokes postscript printing. Please see print for further details.

print

Controls printing. Use print option to set printing options. Only available for XPA_METHOD local.

Syntax:
@@ -2083,7 +2132,10 @@       [open]
      [<filename>]
      [load <filename>]
-      [import vot|xml|rdb|sb|tsv|csv <filename>]
+
+      [import xml|rdb|tsv <filename>]
+      [export xml|rdb|tsv <filename>]
+
      [clear]
      [current <ref>]
      [ext <int>|<extname>]
@@ -2388,6 +2440,26 @@ $xpaset -p ds9 rotate to 30
$xpaset -p ds9 rotate open
$xpaset -p ds9 rotate close
+ +

samp

+

Configure SAMP protocol.

+Syntax:
+samp [yes|no]
+    [connect|disconnect]
+    [broadcast [image|table]]
+    [send [image|table] <application>]

+Example:
+
+$xpaget ds9 samp +
+$xpaset -p ds9 samp yes
+$xpaset -p ds9 samp connect
+$xpaset -p ds9 samp broadcast
+$xpaset -p ds9 samp broadcast table
+$xpaset -p ds9 samp send topcat
+$xpaset -p ds9 samp send table topcat
+

save

Save loaded image data of current frame as FITS.

Syntax:
@@ -2490,14 +2562,16 @@     [cancel]
    [clear]
    [close]
+
+    [save <filename>]
+    [export rdb|tsv <filename>]
+
    [coordinate <ra> <dec> <coordsys>]
    [crosshair]
    [current <ref>]
-    [export sb|tsv <filename>]
    [name <object>]
    [print]
    [retrieve]
-    [save <filename>]
    [radius <value> degrees|arcmin|arcsec]
    [sky <skyframe>]
    [skyformat <skyformat>]
@@ -2719,6 +2793,7 @@

Controls the GUI.

Syntax:
view  [layout horizontal|vertical]
+    [multi yes|no]
    [keyvalue <string>]
    [info yes|no]
    [panner yes|no]
@@ -2742,6 +2817,7 @@  
Example:
$xpaget ds9 view layout
+$xpaget ds9 view multi
$xpaget ds9 view keyvalue
$xpaget ds9 view info
$xpaget ds9 view panner
@@ -2761,6 +2837,7 @@ $xpaget ds9 view frame

$xpaset -p ds9 view layout vertical
+$xpaset -p ds9 view multi yes
$xpaset -p ds9 view keyvalue BITPIX
$xpaset -p ds9 view info yes
$xpaset -p ds9 view panner yes
@@ -2937,12 +3014,16 @@

xpa

Configure XPA.

Syntax:
--xpa [disconnect]
+-xpa [no]
+    [disconnect]
    [info]
 
Example:
-$xpaget ds9 info
+$xpaget ds9 xpa info
+
+$xpaget ds9 xpa info

+$xpaset -p ds9 no
$xpaset -p ds9 disconnect
$xpaset -p ds9 info

zscale

diff -Nru saods9-8.2+repack/ds9/doc/release/r8.2.html saods9-8.3+repack/ds9/doc/release/r8.2.html --- saods9-8.2+repack/ds9/doc/release/r8.2.html 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/doc/release/r8.2.html 2021-11-08 15:46:07.000000000 +0000 @@ -122,7 +122,25 @@
  • 11.06.2020 PRISM: Click - Click - Plot now supported.
  • 11.10.2020 PLOT: move control panel to top menu.
  • 11.11.2020 RELEASE version 8.2rc4
  • +
  • 11.17.2020 THEME: fixed an issue with MacOS prism and catalogs.
  • +
  • 11.18.2020 THEME: fixed an issue with Linux/Windows scale, horz, vert graphs.
  • 12.15.2020 RELEASE version 8.2
  • +
  • 12.08.2020 THEME: fixed an issue when updating complex plots.
  • +
  • 12.09.2020 PRISM: fixed an problem displaying repeat column units.
  • +
  • 12.09.2020 PRISM: be sure to display the last column with a large number of columns.
  • +
  • 12.12.2020 PRISM: fixed an issue with search header for keywords.
  • +
  • 01.05.2021 REGION: fixed issue with using default color override at load time. Now, only DS9 and TNG format affected. All others use current region color.
  • +
  • 01.11.2021 SHARED: be sure shared memory is compiled if available.
  • +
  • 01.12.2021 TKTABLE: update to v2.10.6.
  • +
  • 01.14.2021 REGION: if region dialog and statistics dialog are closed in order, reopen statistics dialog when region modified (like plot).
  • +
  • 01.14.2021 BACKUP: be sure window is realized so that matrices are calculated before pan/block/bin/crosshair.
  • +
  • 01.17.2021 PLOT: fixed an issue with "plot data" cmd and samp.
  • +
  • 01.18.2021 SAMP: fix samp command for use from XPA and command line.
  • +
  • 01.18.2021 DIALOG: fixed an issue saving text from a text dialog under windows.
  • +
  • 01.19.2021 CATALOG: fixed typo in catalog parser.
  • +
  • 01.30.2021 SAMP: fixed a number of issues to improve reliability.
  • +
  • 02.03.2021 PRISM: fixed an issue with backups and XML tables.
  • +
  • 02.15.2021 RELEASE version 8.2.1
  • diff -Nru saods9-8.2+repack/ds9/doc/release/r8.3.html saods9-8.3+repack/ds9/doc/release/r8.3.html --- saods9-8.2+repack/ds9/doc/release/r8.3.html 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/doc/release/r8.3.html 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,63 @@ + + + + + + +DS9 Version 8.3 Release Notes + + +

    SAOImageDS9 Version 8.3 Release Notes

    +
    +
      +
    1. 02.25.2021 AGIF: fixed issue so that every frame is delayed by the delay parameter, not just the first.
    2. +
    3. 03.04.2021 3D: fixed issue where the 3D progress timer was not shutdown properly when the frame was deleted.
    4. +
    5. 03.06.2021 SIA: 2mass removed from options. Site is not returning proper data.
    6. +
    7. 03.08.2021 TCL/TK: upgrade to version 8.6.11
    8. +
    9. 03.15.2021 REGIONS: fixed a problem when invalid color is specified.
    10. +
    11. 03.15.2021 REGIONS: fixed a problem when colorname has a space.
    12. +
    13. 03.18.2021 WCS: fixed typo in menu.
    14. +
    15. 03.21.2021 MACOS: fixed saveimage/movie for retina display.
    16. +
    17. 03.23.2021 FITSY: fixed issue with NULL pName_.
    18. +
    19. 03.23.2021 PRISM: plot default line width is 0.
    20. +
    21. 03.23.2021 XML: fix delete()/free() mismatch.
    22. +
    23. 03.25.2021 XML: fix memory corruption issue with WIN64.
    24. +
    25. 03.26.2021 WCS: simplify WCS parameter dialog.
    26. +
    27. 03.27.2021 PRISM: fix minor display issue. Last row was not visible.
    28. +
    29. 04.04.2021 CATALOG: tweak import/export options.
    30. +
    31. 04.04.2021 FOOTPRINT: tweak export options.
    32. +
    33. 04.04.2021 SIA: tweak export options.
    34. +
    35. 04.04.2021 PRISM: tweak import/export options.
    36. +
    37. 04.05.2021 PLOT: disable old scatter plot options.
    38. +
    39. 05.13.2021 MACOS: external 'cc' compiler must be installed for filter bin tables.
    40. +
    41. 05.19.2021 RELEASE version 8.3b1
    42. +
    43. 05.23.2021 WCS: Make SipReplace=0 as the default behavior.
    44. +
    45. 05.26.2021 TKCON: upgrade to version 2.7.10.
    46. +
    47. 05.26.2021 TKSIGNAL: upgrade to version 1.4.4.1.
    48. +
    49. 05.28.2021 AWTHEMES: upgrade to version 10.3.0.
    50. +
    51. 06.03.2021 TKSVG: install version 0.7
    52. +
    53. 06.03.2021 THEME: all AWTHEMES are now available for use.
    54. +
    55. 06.04.2021 TTKTHEMES: upgrade to version 3.2.2.
    56. +
    57. 06.04.2021 TCLLIB: upgrade to version 1.20.
    58. +
    59. 06.05.2021 TKIMG: upgrade to version 1.4.13.
    60. +
    61. 06.10.2021 COLORMAP: add MatPlotLib colormaps.
    62. +
    63. 06.18.2021 NOTES: add notebook support.
    64. +
    65. 07.12.2021 WCS: improved precision for binned WCS keywords.
    66. +
    67. 08.10.2021 FITSY: NAXIS[1]=0 is legal.
    68. +
    69. 09.27.2021 GUI: implemented new multi colorbar mode.
    70. +
    71. 09.30.2021 FITSY: update rice compression code from cfitsio.
    72. +
    73. 09.30.2021 FITSY: update hcompress compression code from cfitsio.
    74. +
    75. 09.30.2021 FITSY: update plio compression code from cfitsio.
    76. +
    77. 09.30.2021 RICE: fits_rdecomp will spit out error msgs for some block sizes, just ignore.
    78. +
    79. 09.30.2021 FUNTOOLS: upgrade to verion 1.4.8
    80. +
    81. 10.02.2021 ANALYSIS: add analysis buttonbar.
    82. +
    83. 10.11.2021 RELEASE version 8.3rc
    84. +
    85. 10.18.2021 MACOS: fix AboutBox
    86. +
    87. 10.25.2021 ANALYSIS: fix filedialog open|save command.
    88. +
    89. 10.26.2021 GUI: change window class for all windows to 'Ds9.tcl'
    90. +
    91. 11.08.2021 CATALOG: fix minor parser error.
    92. +
    93. 12.15.2021 RELEASE version 8.3
    94. +
    +
    + + diff -Nru saods9-8.2+repack/ds9/doc/user/contour/thread.xml saods9-8.3+repack/ds9/doc/user/contour/thread.xml --- saods9-8.2+repack/ds9/doc/user/contour/thread.xml 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/doc/user/contour/thread.xml 2021-11-08 15:46:07.000000000 +0000 @@ -205,7 +205,7 @@ To save the contours to a text file, choose "Save Contours" from the "File" menu of the "Contour Parameters" dialog. The contours are saved in a text file which can be loaded - back into ds9 with the "Load Contours" menu item. + back into ds9 with the "Open Contours" menu item.

    diff -Nru saods9-8.2+repack/ds9/library/2mass.tcl saods9-8.3+repack/ds9/library/2mass.tcl --- saods9-8.2+repack/ds9/library/2mass.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/2mass.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/3d.tcl saods9-8.3+repack/ds9/library/3d.tcl --- saods9-8.2+repack/ds9/library/3d.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/3d.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/analysisparam.tcl saods9-8.3+repack/ds9/library/analysisparam.tcl --- saods9-8.2+repack/ds9/library/analysisparam.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/analysisparam.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/analysis.tcl saods9-8.3+repack/ds9/library/analysis.tcl --- saods9-8.2+repack/ds9/library/analysis.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/analysis.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -15,6 +15,7 @@ set ianalysis(menu,hmenu,count) 0 set ianalysis(menu,hmenu) {} set ianalysis(bind,count) 0 + set ianalysis(buttonbar,count) 0 set ianalysis(param,count) 0 set ianalysis(param,seq) 0 set ianalysis(file) ".$ds9(app).ans" @@ -117,6 +118,23 @@ unset ianalysis(param,$ii,count) } set ianalysis(param,count) 0 + + # clear buttonbar + DestroyButtonbarAnalysis + + for {set ii 0} {$ii<$ianalysis(buttonbar,count)} {incr ii} { + for {set jj 0} {$jj<$ianalysis(buttonbar,$ii,count)} {incr jj} { + unset ianalysis(buttonbar,$ii-$jj,button) + unset ianalysis(buttonbar,$ii-$jj,item) + unset ianalysis(buttonbar,$ii-$jj,template) + unset ianalysis(buttonbar,$ii-$jj,cmd) + unset ianalysis(buttonbar,$ii-$jj,inuse) + } + unset ianalysis(buttonbar,$ii,count) + } + set ianalysis(buttonbar,count) 0 + + LayoutView } proc InitAnalysisFile {} { @@ -301,6 +319,20 @@ continue } + # buttonbar + if {[lindex $line 0] == {buttonbar}} { + set ii $ianalysis(buttonbar,count) + set ianalysis(buttonbar,$ii,count) 0 + continue + } + + # end buttonbar + if {[lindex $line 0] == {endbuttonbar}} { + CreateButtonbarAnalysis + continue + } + + # separator if {[lindex $line 0] == {---}} { $currentparent add separator continue @@ -327,8 +359,7 @@ 4 { set cmd "$line" - if {$item != {} && $template != {} && - $type != {} && $cmd != {}} { + if {$item != {} && $template != {} && $type != {} && $cmd != {}} { switch -- [lindex $type 0] { bind { set bb [lindex $type 1] @@ -367,6 +398,17 @@ -selectcolor green incr ianalysis(menu,count) } + button { + set ii $ianalysis(buttonbar,count) + set jj $ianalysis(buttonbar,$ii,count) + + set ianalysis(buttonbar,$ii-$jj,button) {} + set ianalysis(buttonbar,$ii-$jj,item) "$item" + set ianalysis(buttonbar,$ii-$jj,template) "$template" + set ianalysis(buttonbar,$ii-$jj,cmd) "$cmd" + set ianalysis(buttonbar,$ii-$jj,inuse) 0 + incr ianalysis(buttonbar,$ii,count) + } default { # something really wrong here, abort return 0 @@ -442,8 +484,7 @@ 6 { # end help - if {[lindex $line 0] == {endhelp} || - [lindex $line 0] == {end}} { + if {[lindex $line 0] == {endhelp} || [lindex $line 0] == {end}} { incr ianalysis(menu,count) set state 1 continue @@ -455,11 +496,12 @@ } } - # events + # enable events UnBindEventsCanvas BindEventsCanvas UpdateAnalysisMenu + UpdateAnalysisButtonbar return 1 } @@ -963,7 +1005,10 @@ switch $type { line {PlotLine $w $wtt $t $x $y $d $rr false} bar {PlotBar $w $wtt $t $x $y $d $rr false} - scatter {PlotScatter $w $wtt $t $x $y $d $rr false} + scatter { + # backward compatibility + PlotScatter $w $wtt $t $x $y $d $rr false + } } } else { Error "[msgcat::mc {Error}] [string range $tt 0 40]" @@ -2023,7 +2068,7 @@ global ianalysis for {set ii 0} {$ii<$ianalysis(menu,count)} {incr ii} { - append result "\#$ii menu" + append result "menu [expr $ii+1]" append result "\n$ianalysis(menu,$ii,item)" append result "\n$ianalysis(menu,$ii,template)" if {$ianalysis(menu,$ii,cmd) != {web}} { @@ -2035,9 +2080,10 @@ } append result "\n\n" } + for {set ii 0} {$ii<$ianalysis(bind,count)} {incr ii} { set key [string range $ianalysis(bind,$ii,item) 1 1] - append result "\#$ii bind" + append result "bind [expr $ii+1]" append result "\nbind key $ianalysis(bind,$ii,item)" append result "\n$ianalysis(bind,$ii,template)" append result "\nbind $key" @@ -2045,6 +2091,17 @@ append result "\n\n" } + for {set ii 0} {$ii<$ianalysis(buttonbar,count)} {incr ii} { + for {set jj 0} {$jj<$ianalysis(buttonbar,$ii,count)} {incr jj} { + append result "buttonbar [expr $ii+1]" + append result "\n$ianalysis(buttonbar,$ii-$jj,item)" + append result "\n$ianalysis(buttonbar,$ii-$jj,template)" + append result "\nbutton" + append result "\n$ianalysis(buttonbar,$ii-$jj,cmd)" + } + append result "\n\n" + } + ProcessSend $parse(proc) $parse(id) $parse(sock) $parse(fn) {.ans} $result } @@ -2058,6 +2115,13 @@ ProcessSendCmdTxt [AnalysisMessage $type $txt] } +proc AnalysisSendCmdFileDialog {which} { + switch $which { + open {ProcessSendCmdTxt [OpenFileDialog analysisparamfbox]} + save {ProcessSendCmdTxt [SaveFileDialog analysisparamfbox]} + } +} + proc AnalysisSendCmdTask {} { global ianalysis diff -Nru saods9-8.2+repack/ds9/library/annulus.tcl saods9-8.3+repack/ds9/library/annulus.tcl --- saods9-8.2+repack/ds9/library/annulus.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/annulus.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/array.tcl saods9-8.3+repack/ds9/library/array.tcl --- saods9-8.2+repack/ds9/library/array.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/array.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/ar.tcl saods9-8.3+repack/ds9/library/ar.tcl --- saods9-8.2+repack/ds9/library/ar.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/ar.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/backup.tcl saods9-8.3+repack/ds9/library/backup.tcl --- saods9-8.2+repack/ds9/library/backup.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/backup.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -21,18 +21,14 @@ return } - # update any tags - if {$current(frame) != {}} { - $current(frame) colorbar tag "\{[$current(colorbar) get tag]\}" - } + # EditText Dialogs + EditTextUpdateVar # Panner PannerBackup $ch # Colorbar - ColorbarBackupCmaps $ch $dir - ColorbarBackup $ch colorbar - ColorbarBackup $ch colorbarrgb + ColorbarBackup $ch $dir # Frames foreach ff $ds9(frames) { @@ -143,6 +139,7 @@ proc Restore {fn} { global ds9 global pds9 + global current if {[string length $fn] == 0} { return @@ -165,6 +162,12 @@ SimpleTextDestroy $varname } + # kill all edit text dialogs + global iedittxt + foreach varname $iedittxt(dialogs) { + EditTextDestroy $varname + } + # kill all cats global icat foreach varname $icat(cats) { @@ -237,6 +240,15 @@ # fix any prefs FixPrefs $vv + # for old backup sets with one colorbar, + # make sure each colorbar has the correct info from its frame + if {$vv <= {8.3}} { + foreach ff $ds9(frames) { + set cb ${ff}cb + $cb colorbar [$ff get colorbar] + } + } + # reset standard dialog switch $ds9(wm) { x11 {set pds9(dialog) motif} @@ -248,8 +260,7 @@ cd $cd # and update it - UpdateGraphGrid - LayoutOrient + LayoutView UpdateActiveFrames ChangeMode UpdateDS9 @@ -285,8 +296,7 @@ } MagnifierFrameBackup $ch $which - ColorFrameBackup $ch $which - ColormapFrameBackup $ch $which + ColorbarFrameBackup $ch $which DS9Backup $ch $which CubeBackup $ch $which @@ -297,6 +307,11 @@ BlockBackup $ch $which # WCS nees to be before Pan/Zoom WCSBackup $ch $which $fdir $rdir + + # ok, at this point, we must realize the frame, so that all matrices + # are valid for pan/zoom/crosshair/markers etc... + puts $ch "update" + PanZoomBackup $ch $which CropBackup $ch $which # must be after Pan and Block @@ -536,6 +551,10 @@ # Basic + global ds9notes + puts $ch "global ds9notes" + puts $ch "set ds9notes \{$ds9notes\}" + global pds9 puts $ch "global pds9" puts $ch "array set pds9 \{ [array get pds9] \}" diff -Nru saods9-8.2+repack/ds9/library/bin.tcl saods9-8.3+repack/ds9/library/bin.tcl --- saods9-8.2+repack/ds9/library/bin.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/bin.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -191,7 +191,7 @@ UpdateContourScale UpdateContourDialog UpdateWCSDialog - UpdateGraphAxis $current(frame) + UpdateGraphsAxis $current(frame) UpdateMain } diff -Nru saods9-8.2+repack/ds9/library/block.tcl saods9-8.3+repack/ds9/library/block.tcl --- saods9-8.2+repack/ds9/library/block.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/block.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -66,7 +66,7 @@ UpdateContourScale UpdateContourDialog UpdateWCSDialog - UpdateGraphAxis $current(frame) + UpdateGraphsAxis $current(frame) UpdateMain UpdateHeaderDialog @@ -161,7 +161,7 @@ RGBEvalLockCurrent rgb(lock,block) [list $current(frame) block to $block(factor)] LockFrameCurrent - UpdateGraphAxis $current(frame) + UpdateGraphsAxis $current(frame) UpdateBlockDialog RefreshInfoBox $current(frame) } diff -Nru saods9-8.2+repack/ds9/library/boxannulus.tcl saods9-8.3+repack/ds9/library/boxannulus.tcl --- saods9-8.2+repack/ds9/library/boxannulus.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/boxannulus.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/box.tcl saods9-8.3+repack/ds9/library/box.tcl --- saods9-8.2+repack/ds9/library/box.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/box.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/bpanda.tcl saods9-8.3+repack/ds9/library/bpanda.tcl --- saods9-8.2+repack/ds9/library/bpanda.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/bpanda.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/buttons.tcl saods9-8.3+repack/ds9/library/buttons.tcl --- saods9-8.2+repack/ds9/library/buttons.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/buttons.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -28,51 +28,75 @@ proc CreateButtons {} { global ds9 - global buttons - set ds9(buttons) [ttk::frame $ds9(main).buttons] + set ds9(buttons,frame) [ttk::frame $ds9(main).buttons] set ds9(buttons,sep) [ttk::separator $ds9(main).sbuttons -orient horizontal] - set buttons(majorPrev) $ds9(buttons).file - set buttons(majorCurrent) $ds9(buttons).file + set ds9(buttons) [ttk::frame $ds9(main).buttons.main] + set ds9(buttons,aux) [ttk::frame $ds9(main).buttons.aux] + + CreateButtonsMajor + + CreateButtonsFile + CreateButtonsEdit + CreateButtonsView + CreateButtonsFrame + CreateButtonsBin + CreateButtonsZoom + CreateButtonsScale + CreateButtonsColor + CreateButtonsRegion + CreateButtonsWCS + CreateButtonsAnalysis + CreateButtonsHelp + + LayoutButtons +} + +proc CreateButtonsMajor {} { + global ds9 + global buttons + + set buttons(major,prev) $ds9(buttons).file + set buttons(major,current) $ds9(buttons).file ttk::frame $ds9(buttons).major RadioButton $ds9(buttons).major.file \ [string tolower [msgcat::mc {File}]] \ - buttons(majorCurrent) $ds9(buttons).file MajorButton + buttons(major,current) $ds9(buttons).file MajorButton RadioButton $ds9(buttons).major.edit \ [string tolower [msgcat::mc {Edit}]] \ - buttons(majorCurrent) $ds9(buttons).edit MajorButton + buttons(major,current) $ds9(buttons).edit MajorButton RadioButton $ds9(buttons).major.view \ [string tolower [msgcat::mc {View}]] \ - buttons(majorCurrent) $ds9(buttons).view MajorButton + buttons(major,current) $ds9(buttons).view MajorButton RadioButton $ds9(buttons).major.frame \ [string tolower [msgcat::mc {Frame}]] \ - buttons(majorCurrent) $ds9(buttons).frame MajorButton + buttons(major,current) $ds9(buttons).frame MajorButton RadioButton $ds9(buttons).major.bin \ [string tolower [msgcat::mc {Bin}]] \ - buttons(majorCurrent) $ds9(buttons).bin MajorButton + buttons(major,current) $ds9(buttons).bin MajorButton RadioButton $ds9(buttons).major.zoom \ [string tolower [msgcat::mc {Zoom}]] \ - buttons(majorCurrent) $ds9(buttons).zoom MajorButton + buttons(major,current) $ds9(buttons).zoom MajorButton RadioButton $ds9(buttons).major.scale \ [string tolower [msgcat::mc {Scale}]] \ - buttons(majorCurrent) $ds9(buttons).scale MajorButton + buttons(major,current) $ds9(buttons).scale MajorButton RadioButton $ds9(buttons).major.color \ [string tolower [msgcat::mc {Color}]] \ - buttons(majorCurrent) $ds9(buttons).color MajorButton + buttons(major,current) $ds9(buttons).color MajorButton RadioButton $ds9(buttons).major.region \ [string tolower [msgcat::mc {Region}]] \ - buttons(majorCurrent) $ds9(buttons).region MajorButton + buttons(major,current) $ds9(buttons).region MajorButton RadioButton $ds9(buttons).major.wcs \ [string tolower [msgcat::mc {WCS}]] \ - buttons(majorCurrent) $ds9(buttons).wcs MajorButton + buttons(major,current) $ds9(buttons).wcs MajorButton RadioButton $ds9(buttons).major.analysis \ [string tolower [msgcat::mc {Analysis}]] \ - buttons(majorCurrent) $ds9(buttons).analysis MajorButton + buttons(major,current) $ds9(buttons).analysis MajorButton RadioButton $ds9(buttons).major.help \ [string tolower [msgcat::mc {Help}]] \ - buttons(majorCurrent) $ds9(buttons).help MajorButton + buttons(major,current) $ds9(buttons).help MajorButton global pbuttons array set pbuttons { @@ -104,22 +128,53 @@ $ds9(buttons).major.analysis pbuttons(major,analysis) $ds9(buttons).major.help pbuttons(major,help) " - CreateButtonsFile - CreateButtonsEdit - CreateButtonsView - CreateButtonsFrame - CreateButtonsBin - CreateButtonsZoom - CreateButtonsScale - CreateButtonsColor - CreateButtonsRegion - CreateButtonsWCS - CreateButtonsAnalysis - CreateButtonsHelp +} + +proc CreateButtonbarAnalysis {} { + global ds9 + global buttons + global ianalysis + global pbuttons + + set ii $ianalysis(buttonbar,count) + set ds9(buttons,aux,$ii) [ttk::frame $ds9(buttons,aux).ianalysis${ii}] + set buttons(ianalysis,$ii) {} + for {set jj 0} {$jj<$ianalysis(buttonbar,$ii,count)} {incr jj} { + set ianalysis(buttonbar,$ii-$jj,button) \ + $ds9(buttons,aux).ianalysis${ii}.button${jj} + ButtonButton $ianalysis(buttonbar,$ii-$jj,button) \ + [string tolower $ianalysis(buttonbar,$ii-$jj,item)] \ + [list AnalysisTask $ii-$jj buttonbar] + + set pbuttons(ianalysis,$ii,$jj) 1 + lappend buttons(ianalysis,$ii) $ianalysis(buttonbar,$ii-$jj,button) \ + pbuttons(ianalysis,$ii,$jj) + } + incr ianalysis(buttonbar,count) LayoutButtons } +proc DestroyButtonbarAnalysis {} { + global ds9 + global buttons + global ianalysis + global pbuttons + + for {set ii 0} {$ii<$ianalysis(buttonbar,count)} {incr ii} { + for {set jj 0} {$jj<$ianalysis(buttonbar,$ii,count)} {incr jj} { + destroy $ianalysis(buttonbar,$ii-$jj,button) + unset pbuttons(ianalysis,$ii,$jj) + } + destroy $ds9(buttons,aux,$ii) + unset ds9(buttons,aux,$ii) + + unset buttons(ianalysis,$ii) + } +} + +# basic button types + proc ButtonButton {button text cmd} { ttk::button $button \ -class TButtonBar \ @@ -233,21 +288,44 @@ } } +# Layout + proc LayoutButtons {} { global ds9 global buttons global view + global ianalysis + + pack forget $ds9(buttons) + pack forget $ds9(buttons,aux) pack forget $ds9(buttons).major switch $view(layout) { horizontal { $ds9(buttons) configure -width 0 pack propagate $ds9(buttons) on + pack $ds9(buttons) -side top -fill both -expand true + + if {$ianalysis(buttonbar,count)>0} { + $ds9(buttons,aux) configure -width 0 + pack propagate $ds9(buttons,aux) on + pack $ds9(buttons,aux) -side top -fill both -expand true + } + pack $ds9(buttons).major -side top -fill x -expand true } vertical { - $ds9(buttons) configure -width 125 pack propagate $ds9(buttons) off + $ds9(buttons) configure -width 100 + pack $ds9(buttons) -side left -fill both -expand true + + if {$ianalysis(buttonbar,count)>0} { + $ds9(buttons,aux) configure \ + -width [expr 100*$ianalysis(buttonbar,count)] + pack propagate $ds9(buttons,aux) off + pack $ds9(buttons,aux) -side left -fill both -expand true + } + pack $ds9(buttons).major -side top -fill x -expand true -anchor n } } @@ -266,23 +344,46 @@ UpdateButtons buttons(analysis) UpdateButtons buttons(help) + for {set ii 0} {$ii<$ianalysis(buttonbar,count)} {incr ii} { + UpdateButtons buttons(ianalysis,$ii) + } + MajorButton + AnalysisButton } proc MajorButton {} { global buttons global view - pack forget $buttons(majorPrev) + pack forget $buttons(major,prev) switch $view(layout) { horizontal { - pack $buttons(majorCurrent) -side top -fill x -expand true + pack $buttons(major,current) -side top -fill x -expand true } vertical { - pack $buttons(majorCurrent) -side bottom -fill x -expand true -anchor s + pack $buttons(major,current) -side bottom -fill x -expand true -anchor s + } + } + set buttons(major,prev) $buttons(major,current) +} + +proc AnalysisButton {} { + global ds9 + global view + global ianalysis + + for {set ii 0} {$ii<$ianalysis(buttonbar,count)} {incr ii} { + pack forget $ds9(buttons,aux,$ii) + switch $view(layout) { + horizontal { + pack $ds9(buttons,aux,$ii) -side bottom -fill x -expand true + } + vertical { + pack $ds9(buttons,aux,$ii) -side left -fill x -expand true -anchor n + } } } - set buttons(majorPrev) $buttons(majorCurrent) } proc UpdateButtons {varname} { @@ -302,8 +403,8 @@ if {$var} { switch $view(layout) { - horizontal {pack $which -side left -fill both -expand true} - vertical {pack $which -side top -fill both -expand true} + horizontal {pack $which -side left -fill both -expand true} + vertical {pack $which -side top -fill both -expand true} } } } diff -Nru saods9-8.2+repack/ds9/library/catcdssrchdialog.tcl saods9-8.3+repack/ds9/library/catcdssrchdialog.tcl --- saods9-8.2+repack/ds9/library/catcdssrchdialog.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catcdssrchdialog.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -27,7 +27,7 @@ } # procs - set var(proc,process) CATCDSSrchProcess + set var(proc,exec) CATCDSSrchExec set var(proc,load) CATCDSSrchLoad set var(proc,error) ARError diff -Nru saods9-8.2+repack/ds9/library/catcdssrch.tcl saods9-8.3+repack/ds9/library/catcdssrch.tcl --- saods9-8.2+repack/ds9/library/catcdssrch.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catcdssrch.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -37,18 +37,17 @@ return } -proc CATCDSSrchProcess {varname} { +proc CATCDSSrchExec {varname} { upvar #0 $varname var global $varname global debug if {$debug(tcl,cat)} { - puts stderr "CATCDSSrchProcess $varname" + puts stderr "CATCDSSrchExec $varname" } CATCDSSrchVOTParse $var(catdb) $var(token) ARDone $varname - CATCDSSrchTable $varname } @@ -170,11 +169,9 @@ global $t global debug - if {$debug(tcl,cat)} { - set fp [open debug.xml w] - puts $fp [http::data $token] - close $fp - } + #set fp [open debug.xml w] + #puts $fp [http::data $token] + #close $fp set xml [xml::parser \ -characterdatacommand [list CATCDSSrchVOTCharCB $t] \ @@ -229,23 +226,10 @@ VOTABLE { # init db set T(Nrows) 0 - set T(Ncols) 0 - set T(Header) {} - set T(HLines) 0 - - # create header - incr ${t}(HLines) - set n $T(HLines) - set T(H_$n) "Resource\tDescription" - set T(Header) [split $T(H_$n) "\t"] - - incr ${t}(HLines) - set n $T(HLines) - set T(H_$n) "--------\t-----------" - - set T(Dashes) [regsub -all {[A-Za-z0-9]} $T(H_$n) {-}] - set T(Ndshs) [llength $T(Header)] - + set T(Header) "Resource\tDescription" + set T(HLines) 2 + set T(H_1) $T(Header) + set T(H_2) "--------\t-----------" starbase_colmap $t } RESOURCE { diff -Nru saods9-8.2+repack/ds9/library/catcds.tcl saods9-8.3+repack/ds9/library/catcds.tcl --- saods9-8.2+repack/ds9/library/catcds.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catcds.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/catcmd.tcl saods9-8.3+repack/ds9/library/catcmd.tcl --- saods9-8.2+repack/ds9/library/catcmd.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catcmd.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/catcxc.tcl saods9-8.3+repack/ds9/library/catcxc.tcl --- saods9-8.2+repack/ds9/library/catcxc.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catcxc.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/catdialog.tcl saods9-8.3+repack/ds9/library/catdialog.tcl --- saods9-8.2+repack/ds9/library/catdialog.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catdialog.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -46,7 +46,7 @@ ARInit $varname CATServer # procs - set var(proc,process) CATProcess + set var(proc,exec) CATExec set var(proc,load) CATLoad set var(proc,error) ARError set var(proc,table) CATTable @@ -142,7 +142,7 @@ $mb.file add command -label [msgcat::mc {Plot}] \ -command [list CATPlot $varname] $mb.file add separator - $mb.file add command -label "[msgcat::mc {Display Header}]..." \ + $mb.file add command -label [msgcat::mc {Header}] \ -command [list CATHeader $varname] $mb.file add command -label [msgcat::mc {Acknowledgment}] \ -command [list CATAck $varname] @@ -539,8 +539,7 @@ $var(mb).file entryconfig [msgcat::mc {Filter}] -state normal $var(mb).file entryconfig [msgcat::mc {Clear}] -state normal $var(mb).file entryconfig [msgcat::mc {Plot}] -state normal - $var(mb).file entryconfig "[msgcat::mc {Display Header}]..." \ - -state normal + $var(mb).file entryconfig [msgcat::mc {Header}] -state normal $var(mb).file entryconfig [msgcat::mc {Copy to Regions}] -state normal $var(mb).file entryconfig "[msgcat::mc {Print}]..." -state normal @@ -551,8 +550,7 @@ $var(mb).file entryconfig [msgcat::mc {Filter}] -state disabled $var(mb).file entryconfig [msgcat::mc {Clear}] -state disabled $var(mb).file entryconfig [msgcat::mc {Plot}] -state disabled - $var(mb).file entryconfig "[msgcat::mc {Display Header}]..." \ - -state disabled + $var(mb).file entryconfig [msgcat::mc {Header}] -state disabled $var(mb).file entryconfig [msgcat::mc {Copy to Regions}] -state disabled $var(mb).file entryconfig "[msgcat::mc {Print}]..." -state disabled @@ -769,33 +767,13 @@ } } -proc CATGetHeader {varname} { - upvar #0 $varname var - global $varname - global $var(tbldb) - - set t $var(tbldb) - upvar #0 $t T - - if {![TBLValidDB $var(tbldb)]} { - return {} - } - - set hdr {} - set nl [expr $T(HLines)-2] - for {set ll 1} {$ll <= $nl} {incr ll} { - append hdr "$T(H_$ll)\n" - } - return $hdr -} - proc CATHeader {varname} { upvar #0 $varname var global $varname global $var(tbldb) SimpleTextDialog ${varname}hdr "$var(title) [msgcat::mc {Header}]" \ - 80 20 insert top [CATGetHeader $varname] + 80 20 insert top [TBLGetHeader $varname] } proc CATKey {which key} { @@ -814,18 +792,6 @@ set icat(key,update) {} } -proc CATPageSetup {varname} { - upvar #0 $varname var - global $varname - - global ds9 - switch $ds9(wm) { - x11 - - aqua - - win32 {} - } -} - proc CATWCSMenuUpdate {varname} { upvar #0 $varname var global $varname diff -Nru saods9-8.2+repack/ds9/library/catfits.tcl saods9-8.3+repack/ds9/library/catfits.tcl --- saods9-8.2+repack/ds9/library/catfits.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catfits.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2020 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -19,12 +19,6 @@ return } - # init db - set T(Header) {} - set T(HLines) 0 - set T(Nrows) 0 - set T(Ncols) 0 - set load mmapincr switch $ds9(wm) { x11 - @@ -50,15 +44,8 @@ fitsy table $t false 0 10000 fitsy close - set T(Dashes) [regsub -all {[A-Za-z0-9]} $T(Header) {-}] - set T(Ndshs) [llength $T(Header)] - - incr ${t}(HLines) - set n $T(HLines) - set T(H_$n) $T(Header) - incr ${t}(HLines) - set n $T(HLines) - set T(H_$n) $T(Dashes) - + set T(HLines) 2 + set T(H_1) $T(Header) + set T(H_2) [regsub -all {[A-Za-z0-9]} $T(Header) {-}] starbase_colmap $t } diff -Nru saods9-8.2+repack/ds9/library/catmatch.tcl saods9-8.3+repack/ds9/library/catmatch.tcl --- saods9-8.2+repack/ds9/library/catmatch.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catmatch.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -361,17 +361,15 @@ set var(radius) {} # required + set T(Nrows) 0 set T(Header) $T1(Header) foreach ll $T2(Header) { # make cols unique lappend T(Header) "2_$ll" } - set T(Dashes) [regsub -all {[A-Za-z0-9]} $T(Header) {-}] - set T(Ndshs) [expr $T1(Ndshs)+$T2(Ndshs)] - set T(H_1) $T(Header) - set T(H_2) $T(Dashes) set T(HLines) 2 - set T(Nrows) 0 + set T(H_1) $T(Header) + set T(H_2) [regsub -all {[A-Za-z0-9]} $T(Header) {-}] starbase_colmap T # optional @@ -444,7 +442,7 @@ incr T(Nrows) } - ARDone $varname + ARStatus $varname [msgcat::mc {Done}] CATLoadDone $varname } @@ -482,14 +480,12 @@ set var(radius) {} # required + set T(Nrows) 0 set T(Header) $T1(Header) - set T(Dashes) $T1(Dashes) - set T(Ndshs) $T1(Ndshs) set T(HLines) $T1(HLines) for {set ii 1} {$ii<=$T1(HLines)} {incr ii} { set T(H_$ii) $T1(H_$ii) } - set T(Nrows) 0 starbase_colmap T # optional @@ -532,7 +528,7 @@ incr T(Nrows) } - ARDone $varname + ARStatus $varname [msgcat::mc {Done}] CATLoadDone $varname } @@ -570,14 +566,12 @@ set var(radius) {} # required + set T(Nrows) 0 set T(Header) $T2(Header) - set T(Dashes) $T2(Dashes) - set T(Ndshs) $T2(Ndshs) set T(HLines) $T2(HLines) for {set ii 1} {$ii<=$T2(HLines)} {incr ii} { set T(H_$ii) $T2(H_$ii) } - set T(Nrows) 0 starbase_colmap T # optional @@ -620,7 +614,7 @@ incr T(Nrows) } - ARDone $varname + ARStatus $varname [msgcat::mc {Done}] CATLoadDone $varname } @@ -658,14 +652,12 @@ set var(radius) {} # required + set T(Nrows) 0 set T(Header) $T1(Header) - set T(Dashes) $T1(Dashes) - set T(Ndshs) $T1(Ndshs) set T(HLines) $T1(HLines) for {set ii 1} {$ii<=$T1(HLines)} {incr ii} { set T(H_$ii) $T1(H_$ii) } - set T(Nrows) 0 starbase_colmap T # optional @@ -714,6 +706,6 @@ } } - ARDone $varname + ARStatus $varname [msgcat::mc {Done}] CATLoadDone $varname } diff -Nru saods9-8.2+repack/ds9/library/catned.tcl saods9-8.3+repack/ds9/library/catned.tcl --- saods9-8.2+repack/ds9/library/catned.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catned.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/catopt.tcl saods9-8.3+repack/ds9/library/catopt.tcl --- saods9-8.2+repack/ds9/library/catopt.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catopt.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/catplot.tcl saods9-8.3+repack/ds9/library/catplot.tcl --- saods9-8.2+repack/ds9/library/catplot.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catplot.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -110,7 +110,7 @@ if {![PlotPing $vvarname]} { PlotDialog $vvarname $var(title) true - PlotAddGraph $vvarname scatter + PlotAddGraph $vvarname line set vvar(mode) pointer PlotChangeMode $vvarname @@ -123,6 +123,9 @@ set vvar(graph,ds,ydata) $ydata set vvar(graph,ds,xedata) $xedata set vvar(graph,ds,yedata) $yedata + set vvar(graph,ds,line,width) 0 + set vvar(graph,ds,line,shape,symbol) circle + set vvar(graph,ds,line,shape,color) black PlotExternal $vvarname xyexey } diff -Nru saods9-8.2+repack/ds9/library/catreg.tcl saods9-8.3+repack/ds9/library/catreg.tcl --- saods9-8.2+repack/ds9/library/catreg.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catreg.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/catsdss.tcl saods9-8.3+repack/ds9/library/catsdss.tcl --- saods9-8.2+repack/ds9/library/catsdss.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catsdss.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/catsimbad.tcl saods9-8.3+repack/ds9/library/catsimbad.tcl --- saods9-8.2+repack/ds9/library/catsimbad.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catsimbad.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/catskybot.tcl saods9-8.3+repack/ds9/library/catskybot.tcl --- saods9-8.2+repack/ds9/library/catskybot.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catskybot.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/catsym.tcl saods9-8.3+repack/ds9/library/catsym.tcl --- saods9-8.2+repack/ds9/library/catsym.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catsym.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/cat.tcl saods9-8.3+repack/ds9/library/cat.tcl --- saods9-8.2+repack/ds9/library/cat.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/cat.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -131,18 +131,17 @@ return } -proc CATProcess {varname} { +proc CATExec {varname} { upvar #0 $varname var global $varname global debug if {$debug(tcl,cat)} { - puts stderr "CATProcess $varname" + puts stderr "CATExec $varname" } VOTParse $var(catdb) $var(token) ARDone $varname - CATLoadDone $varname } @@ -393,7 +392,7 @@ return } - ARDone $varname + ARStatus $varname [msgcat::mc {Done}] CATLoadDone $varname } @@ -1063,8 +1062,11 @@ } proc CatalogCmdSAMP {} { - global cvarname global samp + global cvarname + if {$cvarname == {}} { + return + } if {[info exists samp]} { SAMPSendTableLoadVotable {} $cvarname @@ -1074,8 +1076,11 @@ } proc CatalogCmdSAMPSend {name} { - global cvarname global samp + global cvarname + if {$cvarname == {}} { + return + } if {[info exists samp]} { foreach arg $samp(apps,votable) { @@ -1093,6 +1098,9 @@ proc CatalogCmdSkyframe {skyframe} { global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar set cvar(sky) $skyframe @@ -1101,6 +1109,9 @@ proc CatalogCmdSystem {sys} { global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar set cvar(system) $sys @@ -1109,6 +1120,9 @@ proc CatalogCmdSymbol {col value} { global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar global $cvar(symdb) @@ -1119,6 +1133,9 @@ proc CatalogCmdSymbolFontStyle {value} { global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar global $cvar(symdb) @@ -1147,6 +1164,9 @@ proc CatalogCmdSymbolAdd {} { global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar global $cvar(symdb) @@ -1178,6 +1198,9 @@ proc CatalogCmdSymbolRemove {} { global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar global $cvar(symdb) @@ -1187,6 +1210,9 @@ proc CatalogCmdSymbolLoad {fn} { global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar global $cvar(symdb) @@ -1201,6 +1227,9 @@ proc CatalogCmdSymbolSave {fn} { global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar global $cvar(symdb) diff -Nru saods9-8.2+repack/ds9/library/catvot.tcl saods9-8.3+repack/ds9/library/catvot.tcl --- saods9-8.2+repack/ds9/library/catvot.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/catvot.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/centroid.tcl saods9-8.3+repack/ds9/library/centroid.tcl --- saods9-8.2+repack/ds9/library/centroid.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/centroid.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/circle.tcl saods9-8.3+repack/ds9/library/circle.tcl --- saods9-8.2+repack/ds9/library/circle.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/circle.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/colorbar.tcl saods9-8.3+repack/ds9/library/colorbar.tcl --- saods9-8.2+repack/ds9/library/colorbar.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/colorbar.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,120 +1,299 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" package provide DS9 1.0 proc ColorbarDef {} { + global ds9 global colorbar global icolorbar global pcolorbar - global ds9 + set icolorbar(num) 1024 set icolorbar(top) .clrbar set icolorbar(mb) .clrbarmb - set icolorbar(vertical,width) 75 - set icolorbar(horizontal,height) 45 - set icolorbar(num) 1024 - set icolorbar(start) $ds9(menu,start) - set icolorbar(end) 0 - set icolorbar(count) 0 - - set icolorbar(h5) 0 - set icolorbar(h5,fn) [list h5_autumn.sao h5_bluered.sao h5_bone.sao h5_cool.sao h5_copper.sao h5_dkbluered.sao h5_gray.sao h5_green.sao h5_hot.sao h5_hsv.sao h5_jet.sao h5_pink.sao h5_spring.sao h5_summer.sao h5_winter.sao h5_yarg.sao h5_yellow.sao -] + set icolorbar(default,cmaps) [list grey red green blue a b bb he i8 aips0 sls hsv heat cool rainbow standard staircase color] - set icolorbar(matplotlib) 0 - set icolorbar(matplotlib,fn) [list viridis.lut] - - set icolorbar(cubehelix) 0 - set icolorbar(cubehelix,fn) [list ch05m151008.sao ch05m151010.sao ch05m151012.sao ch05m151410.sao ch05p151010.sao ch20m151010.sao - cubehelix0.sao cubehelix1.sao] - - set icolorbar(gist) 0 - set icolorbar(gist,fn) [list gist_earth.sao gist_heat.sao gist_rainbow.sao gist_yarg.sao gist_gray.sao gist_ncar.sao gist_stern.sao] - - set icolorbar(topo) 0 - set icolorbar(topo,fn) [list tpglarf.sao tpglhcf.sao tpglhwf.sao tpglpof.sao tpglarm.sao tpglhcm.sao tpglhwm.sao tpglpom.sao] - - set icolorbar(user) 0 - set icolorbar(user,fn) {} + set icolorbar(h5,cmaps) [list h5_autumn h5_bluered h5_bone h5_cool h5_copper h5_dkbluered h5_gray h5_green h5_hot h5_hsv h5_jet h5_pink h5_spring h5_summer h5_winter h5_yarg h5_yellow] + set icolorbar(matplotlib,cmaps) [list viridis] + set icolorbar(matplotlib2,cmaps) [list inferno magma plasma twilight turbo] + set icolorbar(cubehelix,cmaps) [list ch05m151008 ch05m151010 ch05m151012 ch05m151410 ch05p151010 ch20m151010 cubehelix0 cubehelix1] + set icolorbar(gist,cmaps) [list gist_earth gist_heat gist_rainbow gist_yarg gist_gray gist_ncar gist_stern] + set icolorbar(topo,cmaps) [list tpglarf tpglhcf tpglhwf tpglpof tpglarm tpglhcm tpglhwm tpglpom] + set icolorbar(user,cmaps) {} + + # used for Color{Button|Motion|Release}3 + set icolorbar(frame) {} + set icolorbar(colorbar) {} set colorbar(lock) 0 - set colorbar(size) 20 - set colorbar(ticks) 11 set colorbar(map) grey set colorbar(invert) 0 + set colorbar(tag) red + + set colorbar(size) 20 + set colorbar(ticks) 11 set colorbar(numerics) 1 set colorbar(space) 0 - set colorbar(orientation) horizontal - set colorbar(tag) red + set colorbar(orientation) 0 + set colorbar(font) helvetica set colorbar(font,size) 9 set colorbar(font,weight) normal set colorbar(font,slant) roman array set pcolorbar [array get colorbar] + + set colorbar(vertical,width) 75 + set colorbar(horizontal,height) 45 } proc CreateColorbar {} { - global icolorbar - global ds9 + global colorbar global canvas - global view $ds9(canvas) create colorbar$ds9(visual)$ds9(depth) \ -colors 2048 \ -tag colorbar \ -anchor nw \ + \ + -size $colorbar(size) \ + -ticks $colorbar(ticks) \ + -numerics $colorbar(numerics) \ + -space $colorbar(space) \ + \ + -font $colorbar(font) \ + -fontsize $colorbar(font,size) \ + -fontweight $colorbar(font,weight) \ + -fontslant $colorbar(font,slant) \ + \ + -helvetica $ds9(helvetica) \ + -courier $ds9(courier) \ + -times $ds9(times) \ + -fg [ThemeTreeForeground] \ + -bg [ThemeTreeBackground] + + # preload external cmaps + # maintain same order for backward compatibility + CreateColorbarExternal colorbar h5 sao + CreateColorbarExternal colorbar matplotlib lut + CreateColorbarExternal colorbar cubehelix sao + CreateColorbarExternal colorbar gist sao + CreateColorbarExternal colorbar topo sao + CreateColorbarExternal colorbar matplotlib2 lut + + # reset current map + colorbar map $colorbar(map) + colorbar invert $colorbar(invert) + colorbar hide + + LayoutColorbar colorbar 0 0 $canvas(width) $canvas(height) + + # just for backup backward compatibility + $ds9(canvas) create colorbarrgb$ds9(visual)$ds9(depth) -tag colorbarrgb + colorbarrgb invert $colorbar(invert) + colorbarrgb hide + + LayoutColorbar colorbarrgb 0 0 $canvas(width) $canvas(height) +} + +proc CreateColorbarBase {frame} { + global ds9 + global icolorbar + global colorbar + global current + + # save current colorbar params if appropriate + switch [$current(colorbar) get type] { + base {set sav [$current(colorbar) get colorbar]} + rgb {set sav [colorbar get colorbar]} + } + + set which ${frame}cb + + $ds9(canvas) create colorbar$ds9(visual)$ds9(depth) \ + -colors 2048 \ + -tag $which \ + -command $which \ + -anchor nw \ + \ + -size $colorbar(size) \ + -ticks $colorbar(ticks) \ + -numerics $colorbar(numerics) \ + -space $colorbar(space) \ + -orientation $colorbar(orientation) \ + \ + -font $colorbar(font) \ + -fontsize $colorbar(font,size) \ + -fontweight $colorbar(font,weight) \ + -fontslant $colorbar(font,slant) \ + \ -helvetica $ds9(helvetica) \ -courier $ds9(courier) \ -times $ds9(times) \ -fg [ThemeTreeForeground] \ -bg [ThemeTreeBackground] - $ds9(canvas) bind colorbar [list ColorbarMotion %x %y] - $ds9(canvas) bind colorbar [list ColorbarEnter %x %y] - $ds9(canvas) bind colorbar [list ColorbarLeave] - - $ds9(canvas) bind colorbar [list ColorbarButton1 %x %y] - $ds9(canvas) bind colorbar [list ColorbarMotion1 %x %y] - $ds9(canvas) bind colorbar [list ColorbarRelease1 %x %y] - $ds9(canvas) bind colorbar [list ColorbarDouble1 %x %y] - $ds9(canvas) bind colorbar \ - [list ColorbarDoubleRelease1 %x %y] - - $ds9(canvas) bind colorbar [list ColorbarKey %K %A %x %y] - $ds9(canvas) bind colorbar \ - [list ColorbarKeyRelease %K %A %x %y] + # preload external cmaps + # maintain same order for backward compatibility + CreateColorbarExternal $which h5 sao + CreateColorbarExternal $which matplotlib lut + CreateColorbarExternal $which cubehelix sao + CreateColorbarExternal $which gist sao + CreateColorbarExternal $which topo sao + CreateColorbarExternal $which matplotlib2 lut + + # preload any user + foreach cmap $icolorbar(user,cmaps) { + global vardata + set fn [colorbar get file name $cmap] + colorbar save var $cmap vardata + $which load var $fn {} vardata + unset vardata + } + + # now init new colorbar to prev values + # must come after all cmaps have been defined + $which colorbar $sav + + # enable events + BindEventsColorbar $which + + LayoutColorbar $which 0 0 \ + [winfo width $ds9(canvas)] [winfo height $ds9(canvas)] +} + +proc CreateColorbarRGB {frame} { + global ds9 + global colorbar + global current + + # save current colorbar params if appropriate + switch [$current(colorbar) get type] { + base {set sav [colorbarrgb get colorbar]} + rgb {set sav [$current(colorbar) get colorbar]} + } + + set which ${frame}cb $ds9(canvas) create colorbarrgb$ds9(visual)$ds9(depth) \ -colors 2048 \ - -tag colorbarrgb \ + -tag $which \ + -command $which \ -anchor nw \ + \ + -size $colorbar(size) \ + -ticks $colorbar(ticks) \ + -numerics $colorbar(numerics) \ + -space $colorbar(space) \ + \ + -font $colorbar(font) \ + -fontsize $colorbar(font,size) \ + -fontweight $colorbar(font,weight) \ + -fontslant $colorbar(font,slant) \ + \ -helvetica $ds9(helvetica) \ -courier $ds9(courier) \ -times $ds9(times) \ -fg [ThemeTreeForeground] \ -bg [ThemeTreeBackground] - $ds9(canvas) bind colorbarrgb [list ColorbarMotion %x %y] - $ds9(canvas) bind colorbarrgb [list ColorbarEnter %x %y] - $ds9(canvas) bind colorbarrgb [list ColorbarLeave] + # now init new colorbar to prev values + $which colorbar $sav + + # enable events + BindEventsColorbar $which - LayoutColorbar + LayoutColorbar $which 0 0 \ + [winfo width $ds9(canvas)] [winfo height $ds9(canvas)] } -proc InitColorbar {} { +proc CreateColorbarExternal {which frame ext} { + global ds9 + global icolorbar global colorbar - global current + foreach cmap $icolorbar($frame,cmaps) { + set fn $cmap.$ext + set ch [open "$ds9(root)/cmaps/$fn" r] - set current(colorbar) colorbar + global vardata + set vardata [read $ch] + close $ch - $current(colorbar) map "{$colorbar(map)}" - $current(colorbar) invert $colorbar(invert) + $which load var "\{$fn\}" vardata + unset vardata + } +} + +# Event Processing + +proc BindEventsColorbar {which} { + global ds9 + + global debug + if {$debug(tcl,events)} { + puts stderr "BindEventsColorbar $which" + } + + set frame [string trimright $which cb] + + $ds9(canvas) bind $which [list ColorbarEnter $frame %x %y] + $ds9(canvas) bind $which [list ColorbarMotion $frame %x %y] + $ds9(canvas) bind $which [list ColorbarLeave $frame] + + switch [$which get type] { + base { + $ds9(canvas) bind $which \ + [list ColorbarButton1 $frame %x %y] + $ds9(canvas) bind $which \ + [list ColorbarMotion1 $frame %x %y] + $ds9(canvas) bind $which \ + [list ColorbarRelease1 $frame %x %y] + + $ds9(canvas) bind $which \ + [list ColorbarDouble1 $frame %x %y] + $ds9(canvas) bind $which \ + [list ColorbarDoubleRelease1 $frame %x %y] + + $ds9(canvas) bind $which \ + [list ColorbarKey $frame %K %A %x %y] + $ds9(canvas) bind $which \ + [list ColorbarKeyRelease $frame %K %A %x %y] + } + rgb {} + } +} + +proc UnBindEventsColorbar {which} { + global ds9 + + global debug + if {$debug(tcl,events)} { + puts stderr "UnBindEventsColorbar $which" + } + + $ds9(canvas) bind $which {} + $ds9(canvas) bind $which {} + $ds9(canvas) bind $which {} + + switch [$which get type] { + base { + $ds9(canvas) bind $which {} + $ds9(canvas) bind $which {} + $ds9(canvas) bind $which {} + $ds9(canvas) bind $which {} + $ds9(canvas) bind $which {} + + $ds9(canvas) bind $which {} + $ds9(canvas) bind $which {} + } + rgb {} + } } proc ResetColormap {} { @@ -124,10 +303,13 @@ global rgb $current(colorbar) reset + + set colorbar(map) [$current(colorbar) get name] + set colorbar(invert) [$current(colorbar) get invert] if {$current(frame) != {} } { RGBEvalLockCurrent rgb(lock,colorbar) [list $current(frame) colormap [$current(colorbar) get colormap]] - set colorbar(invert) [$current(colorbar) get invert] } + LockColorCurrent UpdateColorDialog } @@ -142,7 +324,6 @@ proc LoadColormapFile {fn} { global colorbar global icolorbar - global current global ds9 @@ -150,43 +331,70 @@ return } + # first load into default cmap + set orgName [colorbar get name] + set orgInvert [colorbar get invert] + if {[catch {colorbar load "\{$fn\}"} rr]} { Error $rr return } - - set id [colorbar get id] - set colorbar(map) [colorbar get name] + set cmap [colorbar get name] + lappend icolorbar(user,cmaps) $cmap + colorbar map $orgName + colorbar invert $orgInvert + + # now load into all current cmaps + foreach ff $ds9(frames) { + set cb ${ff}cb + switch [$cb get type] { + base { + set orgName [$cb get name] + set orgInvert [$cb get invert] + if {[catch {$cb load "\{$fn\}"} rr]} { + Error $rr + return + } + $cb map $orgName + $cb invert $orgInvert + } + rgb {} + } + } + + # add to menu $ds9(mb).color.user add radiobutton \ - -label "$colorbar(map)" \ + -label $cmap \ -variable colorbar(map) \ - -command [list ChangeColormapID $id] + -command [list ChangeColormapName $cmap] if {[winfo exists $icolorbar(top)]} { $icolorbar(mb).colormap.user add radiobutton \ - -label "$colorbar(map)" \ + -label $cmap \ -variable colorbar(map) \ - -command [list ChangeColormapID $id] + -command [list ChangeColormapName $cmap] } - incr icolorbar(count) - ChangeColormapID $id + ChangeColormapName $cmap } proc SaveColormap {} { global icolorbar + global current - FileLast colorbarfbox [colorbar get file name] + FileLast colorbarfbox [$current(colorbar) get file name] SaveColormapFile [SaveFileDialog colorbarfbox $icolorbar(top)] } proc SaveColormapFile {fn} { + global current + if {$fn == {}} { return } - if {[catch {colorbar save "\{$fn\}"} rr]} { + if {[catch {$current(colorbar) save "\{$fn\}"} rr]} { Error $rr return } @@ -225,38 +433,62 @@ } } -proc ColorbarEnter {x y} { - global current +proc ColorbarEnter {frame x y} { global ds9 global debug if {$debug(tcl,events)} { - puts stderr "ColorbarEnter" + puts stderr "ColorbarEnter $frame $x $y" } + set cb ${frame}cb + # check to see if this event was generated while processing other events if {$ds9(b1) || $ds9(sb1) || $ds9(cb1) || $ds9(csb1) || $ds9(b2) || $ds9(b3)} { return } - $ds9(canvas) focus $current(colorbar) + $ds9(canvas) focus $cb + LayoutFrameInfoBox $frame +} - switch -- $current(colorbar) { - colorbar {LayoutFrameInfoBox $current(frame) base} - colorbarrgb {LayoutFrameInfoBox $current(frame) rgb} +proc ColorbarMotion {frame x y} { + global current + global infobox + + global debug + if {$debug(tcl,events)} { + puts stderr "ColorbarMotion $frame $x $y" + } + + set cb ${frame}cb + + set vv [$cb get value $x $y] + switch -- [$cb get type] { + base { + set infobox(value) $vv + } + rgb { + switch -- $current(rgb) { + red {set infobox(value,red) $vv} + green {set infobox(value,green) $vv} + blue {set infobox(value,blue) $vv} + } + } } } -proc ColorbarLeave {} { - global current +proc ColorbarLeave {frame} { global ds9 global debug if {$debug(tcl,events)} { - puts stderr "ColorbarLeave" + puts stderr "ColorbarLeave $frame" } + set cb ${frame}cb + # check to see if this event was generated while processing other events if {$ds9(b1) || $ds9(sb1) || $ds9(cb1) || $ds9(csb1) || $ds9(b2) || $ds9(b3)} { @@ -267,53 +499,34 @@ ClearInfoBoxCoords } -proc ColorbarMotion {x y} { - global current - global infobox - - global debug - if {$debug(tcl,events)} { - puts stderr "ColorbarMotion $x $y" - } - - switch -- $current(colorbar) { - colorbar { - set infobox(value) [$current(colorbar) get value $x $y] - } - colorbarrgb { - set vv [$current(colorbar) get value $x $y] - switch -- $current(rgb) { - red {set infobox(value,red) $vv} - green {set infobox(value,green) $vv} - blue {set infobox(value,blue) $vv} - } - } - } -} - -proc ColorbarKey {K A xx yy} { +proc ColorbarKey {frame K A x y} { global current global ds9 - # MacOSX and Ubuntu returns bogus values in xx,yy + # MacOSX and Ubuntu returns bogus values in x,y # calculate our own values - set xx [expr {[winfo pointerx $ds9(canvas)] - [winfo rootx $ds9(canvas)]}] - set yy [expr {[winfo pointery $ds9(canvas)] - [winfo rooty $ds9(canvas)]}] + set x [expr {[winfo pointerx $ds9(canvas)] - [winfo rootx $ds9(canvas)]}] + set y [expr {[winfo pointery $ds9(canvas)] - [winfo rooty $ds9(canvas)]}] global debug if {$debug(tcl,events)} { - puts stderr "ColorbarKey $K $A $xx $yy" + puts stderr "ColorbarKey $frame $K $A $x $y" } + set cb ${frame}cb + switch -- $current(mode) { colorbar { switch -- $K { Delete - BackSpace { - $current(colorbar) tag delete $xx $yy - if {$current(frame) != {}} { - $current(frame) colormap [$current(colorbar) get colormap] - $current(frame) colorbar tag "\{[$current(colorbar) get tag]\}" + set xx [$ds9(canvas) itemcget $cb -x] + set yy [$ds9(canvas) itemcget $cb -y] + set dx [expr $x-$xx] + set dy [expr $y-$yy] + $cb tag delete $dx $dy + if {$frame != {}} { + $frame colormap [$cb get colormap] } } } @@ -321,22 +534,23 @@ } } -proc ColorbarKeyRelease {K A xx yy} { - global current +proc ColorbarKeyRelease {frame K A x y} { global ds9 - # MacOSX and Ubuntu returns bogus values in xx,yy + # MacOSX and Ubuntu returns bogus values in x,y # calculate our own values - set xx [expr {[winfo pointerx $ds9(canvas)] - [winfo rootx $ds9(canvas)]}] - set yy [expr {[winfo pointery $ds9(canvas)] - [winfo rooty $ds9(canvas)]}] + set x [expr {[winfo pointerx $ds9(canvas)] - [winfo rootx $ds9(canvas)]}] + set y [expr {[winfo pointery $ds9(canvas)] - [winfo rooty $ds9(canvas)]}] global debug if {$debug(tcl,events)} { - puts stderr "ColorbarKeyRelease $K $A $xx $yy" + puts stderr "ColorbarKeyRelease $frame $K $A $x $y" } + + set cb ${frame}cb } -proc ColorbarButton1 {x y} { +proc ColorbarButton1 {frame x y} { global icolorbar global colorbar global ds9 @@ -345,9 +559,11 @@ global debug if {$debug(tcl,events)} { - puts stderr "ColorbarButton1" + puts stderr "ColorbarButton1 $frame $x $y" } + set cb ${frame}cb + # let others know that the mouse is down set ds9(b1) 1 @@ -359,20 +575,28 @@ # are we on a tag? else create switch -- $current(mode) { - colorbar {$current(colorbar) tag edit begin $x $y $colorbar(tag)} + colorbar { + set xx [$ds9(canvas) itemcget $cb -x] + set yy [$ds9(canvas) itemcget $cb -y] + set dx [expr $x-$xx] + set dy [expr $y-$yy] + $cb tag edit begin $dx $dy $colorbar(tag) + } } } -proc ColorbarMotion1 {x y} { +proc ColorbarMotion1 {frame x y} { global icolorbar global current global ds9 global debug if {$debug(tcl,events)} { - puts stderr "ColorbarMotion1" + puts stderr "ColorbarMotion1 $frame $x $y" } + set cb ${frame}cb + # abort if we are here by accident (such as a double click) if {($ds9(b1) == 0) && ($ds9(sb1) == 0) && ($ds9(cb1) == 0) && ($ds9(csb1) == 0)} { @@ -381,16 +605,19 @@ switch -- $current(mode) { colorbar { - $current(colorbar) tag edit motion $x $y - if {$current(frame) != {}} { - $current(frame) colormap [$current(colorbar) get colormap] - $current(frame) colorbar tag "\{[$current(colorbar) get tag]\}" + set xx [$ds9(canvas) itemcget $cb -x] + set yy [$ds9(canvas) itemcget $cb -y] + set dx [expr $x-$xx] + set dy [expr $y-$yy] + $cb tag edit motion $dx $dy + if {$frame != {}} { + $frame colormap [$cb get colormap] } } } } -proc ColorbarRelease1 {x y} { +proc ColorbarRelease1 {frame x y} { global icolorbar global current global icursor @@ -398,9 +625,11 @@ global debug if {$debug(tcl,events)} { - puts stderr "ColorbarRelease1" + puts stderr "ColorbarRelease1 $frame $x $y" } + set cb ${frame}cb + # abort if we are here by accident (such as a double click) if {($ds9(b1) == 0) && ($ds9(sb1) == 0) && ($ds9(cb1) == 0) && ($ds9(csb1) == 0)} { @@ -414,10 +643,13 @@ switch -- $current(mode) { colorbar { - $current(colorbar) tag edit end $x $y - if {$current(frame) != {}} { - $current(frame) colormap [$current(colorbar) get colormap] - $current(frame) colorbar tag "\{[$current(colorbar) get tag]\}" + set xx [$ds9(canvas) itemcget $cb -x] + set yy [$ds9(canvas) itemcget $cb -y] + set dx [expr $x-$xx] + set dy [expr $y-$yy] + $cb tag edit end $dx $dy + if {$frame != {}} { + $frame colormap [$cb get colormap] } } } @@ -429,100 +661,99 @@ set ds9(csb1) 0 } -proc ColorbarDouble1 {x y} { +proc ColorbarDouble1 {frame x y} { + global ds9 global current global debug if {$debug(tcl,events)} { - puts stderr "ColorbarDouble1" + puts stderr "ColorbarDouble1 $frame $x $y" } + set cb ${frame}cb + switch -- $current(mode) { - colorbar {ColorTagDialog $x $y} + colorbar { + set xx [$ds9(canvas) itemcget $cb -x] + set yy [$ds9(canvas) itemcget $cb -y] + set dx [expr $x-$xx] + set dy [expr $y-$yy] + ColorTagDialog $frame $dx $dy + } } } -proc ColorbarDoubleRelease1 {x y} { - global current - +proc ColorbarDoubleRelease1 {frame x y} { global debug if {$debug(tcl,events)} { - puts stderr "ColorbarDoubleRelease1" + puts stderr "ColorbarDoubleRelease1 $frame $x $y" } + + set cb ${frame}cb } -proc ColorbarButton3 {x y} { +proc ColorbarButton3 {frame x y} { global icolorbar - global current - global rgb global icursor + set cb ${frame}cb + # turn off blinking cursor if {$icursor(timer)} { catch {after cancel $icursor(id)} set icursor(id) 0 } - if {$current(frame) != {}} { - # we need to hold the current frame, since we may be blinking - set icolorbar(frame) $current(frame) - $icolorbar(frame) colormap begin - } + $frame colormap begin } -proc ColorbarMotion3 {x y} { +proc ColorbarMotion3 {frame xx yy} { + global ds9 global icolorbar - global current - global canvas + set cb ${frame}cb # X sets bias - set bias [expr double($x)/$canvas(width)] + set bias [expr double($xx)/[winfo width $ds9(canvas)]] # Y sets contrast - set contrast [expr double($y)/$canvas(height) * 10] + set contrast [expr double($yy)/[winfo height $ds9(canvas)] * 10] - RGBEvalLockColorbar [list $current(colorbar) adjust $contrast $bias] - if {$icolorbar(frame) != {}} { - # only update the current colorbar frame - $icolorbar(frame) colormap motion [$current(colorbar) get colormap] - } + RGBEvalLockColorbar $frame [list $cb adjust $contrast $bias] + $frame colormap motion [$cb get colormap] UpdateColorDialog } -proc ColorbarRelease3 {x y} { +proc ColorbarRelease3 {frame x y} { global icolorbar - - global current - global rgb global icursor + set cb ${frame}cb + # and turn on blinking cursor if needed if {$icursor(timer)} { CursorTimer } - # only update the current colorbar frame - if {$icolorbar(frame) != {}} { - $icolorbar(frame) colormap end - set icolorbar(frame) {} - } - LockColorCurrent + $frame colormap end + + LockColor $frame UpdateColorDialog } -proc ChangeColormapID {id} { +proc ChangeColormapName {name} { global colorbar - global current - - colorbar map $id + + $current(colorbar) map $name + + set colorbar(map) [$current(colorbar) get name] + set colorbar(invert) [$current(colorbar) get invert] if {$current(frame) != {} } { - $current(frame) colormap [colorbar get colormap] - set colorbar(map) [colorbar get name] - set colorbar(invert) [colorbar get invert] + $current(frame) colormap [$current(colorbar) get colormap] } + LockColorCurrent UpdateColorDialog } @@ -538,21 +769,23 @@ proc MatchColor {which} { global ds9 global current - global colorbar set tt [$which get type] + set cb ${which}cb foreach ff $ds9(frames) { if {$ff != $which} { switch -- [$ff get type] { base - 3d { if {$tt != {rgb}} { - $ff colormap [colorbar get colormap] + $ff colormap [$cb get colormap] + ${ff}cb colorbar [$ff get colorbar] } } rgb { if {$tt == {rgb}} { - $ff colormap [colorbarrgb get colormap] + $ff colormap [$cb get colormap] + ${ff}cb colorbar [$ff get colorbar] } } } @@ -578,25 +811,25 @@ proc InvertColorbar {} { global colorbar - global current $current(colorbar) invert $colorbar(invert) + if {$current(frame) != {} } { $current(frame) colormap [$current(colorbar) get colormap] } + LockColorCurrent UpdateColorDialog } proc UpdateColormapLevel {} { global icolorbar - global current global debug if {$debug(tcl,update)} { - puts stderr "UpdateColormapLevel" + puts stderr "UpdateColormapLevel $current(frame)" } if {$current(frame) != {}} { @@ -641,30 +874,12 @@ } } -proc ColorFrameBackup {ch which} { - puts $ch "$which colorbar tag \"\{[$which get colorbar tag]\}\"" - puts $ch "colorbar tag \"\{[$which get colorbar tag]\}\"" -} - proc ColorbarSizeDialog {} { global colorbar global ds9 - switch $ds9(wm) { - x11 - - win32 { - if {[EntryDialog [msgcat::mc {Colorbar}] [msgcat::mc {Size}] 10 colorbar(size)]} { - UpdateView - } - } - aqua { - # we have a race condition here. the main window needs focus - # back from the dialog before UpdateView is run, otherwise, - # our pretty blue buttons are not activated - if {[EntryDialog [msgcat::mc {Colorbar}] [msgcat::mc {Size}] 10 colorbar(size)]} { - after 100 UpdateView - } - } + if {[EntryDialog [msgcat::mc {Colorbar}] [msgcat::mc {Size}] 10 colorbar(size)]} { + ColorbarUpdateView } } @@ -673,21 +888,8 @@ global ds9 - switch $ds9(wm) { - x11 - - win32 { - if {[EntryDialog [msgcat::mc {Colorbar}] [msgcat::mc {Number of Ticks}] 10 colorbar(ticks)]} { - UpdateView - } - } - aqua { - # we have a race condition here. the main window needs focus - # back from the dialog before UpdateView is run, otherwise, - # our pretty blue buttons are not activated - if {[EntryDialog [msgcat::mc {Colorbar}] [msgcat::mc {Number of Ticks}] 10 colorbar(ticks)]} { - after 100 UpdateView - } - } + if {[EntryDialog [msgcat::mc {Colorbar}] [msgcat::mc {Number of Ticks}] 10 colorbar(ticks)]} { + ColorbarUpdateView } } @@ -709,7 +911,6 @@ } if {$current(frame) != {}} { $current(frame) colormap [$current(colorbar) get colormap] - $current(frame) colorbar tag "\{[$current(colorbar) get tag]\}" } } } @@ -723,7 +924,7 @@ return } - if {[catch {colorbar tag save "\{$fn\}"} rr]} { + if {[catch {$current(colorbar) tag save "\{$fn\}"} rr]} { Error $rr return } @@ -735,19 +936,19 @@ $current(colorbar) tag delete if {$current(frame) != {}} { $current(frame) colormap [$current(colorbar) get colormap] - $current(frame) colorbar tag "\{[$current(colorbar) get tag]\}" } } -proc ColorTagDialog {x y} { +proc ColorTagDialog {frame x y} { global ds9 - global current global colorbar global ed2 + set cb ${frame}cb + set w {.ctagd} - set rr [$current(colorbar) get tag $x $y] + set rr [$cb get tag $x $y] set ed2(ok) 0 set ed2(id) [lindex $rr 0] @@ -789,10 +990,9 @@ destroy $w if {$ed2(ok)} { - $current(colorbar) tag $ed2(id) $ed2(start) $ed2(stop) $ed2(color) - if {$current(frame) != {}} { - $current(frame) colormap [$current(colorbar) get colormap] - $current(frame) colorbar tag "\{[$current(colorbar) get tag]\}" + $cb tag $ed2(id) $ed2(start) $ed2(stop) $ed2(color) + if {$frame != {}} { + $frame colormap [$cb get colormap] } } @@ -858,29 +1058,12 @@ ColorMenu $mb.color colorbar tag {} ThemeMenu $mb.colormap - ThemeMenu $mb.colormap.h5 - ThemeMenu $mb.colormap.matplotlib - ThemeMenu $mb.colormap.cubehelix - ThemeMenu $mb.colormap.gist - ThemeMenu $mb.colormap.topo - ThemeMenu $mb.colormap.user - - set id [colorbar list id] - - ColormapCreateMenu id $mb.colormap \ - 0 $icolorbar(end) - ColormapCreateMenu id $mb.colormap.h5 \ - $icolorbar(h5) $icolorbar(matplotlib) - ColormapCreateMenu id $mb.colormap.matplotlib \ - $icolorbar(matplotlib) $icolorbar(cubehelix) - ColormapCreateMenu id $mb.colormap.cubehelix \ - $icolorbar(cubehelix) $icolorbar(gist) - ColormapCreateMenu id $mb.colormap.gist \ - $icolorbar(gist) $icolorbar(topo) - ColormapCreateMenu id $mb.colormap.topo \ - $icolorbar(topo) $icolorbar(user) - ColormapCreateMenu id $mb.colormap.user \ - $icolorbar(user) $icolorbar(count) + foreach cmap $icolorbar(default,cmaps) { + $mb.colormap add radiobutton \ + -label [msgcat::mc $cmap] \ + -variable colorbar(map) -value $cmap \ + -command [list ChangeColormapName $cmap] + } $mb.colormap add separator $mb.colormap add cascade -label [msgcat::mc {h5utils}] \ @@ -894,7 +1077,16 @@ $mb.colormap add cascade -label [msgcat::mc {Topographic}] \ -menu $mb.colormap.topo $mb.colormap add cascade -label [msgcat::mc {User}] \ - -menu $mb.colormap.user + -menu $ds9(mb).color.user + + ColormapDialogExternal h5 h5 + ColormapDialogExternal matplotlib matplotlib + ColormapDialogExternal matplotlib matplotlib2 + ColormapDialogExternal cubehelix cubehelix + ColormapDialogExternal gist gist + ColormapDialogExternal topo topo + ColormapDialogExternal user user + $mb.colormap add separator $mb.colormap add checkbutton \ -label [msgcat::mc {Invert Colormap}] \ @@ -939,16 +1131,18 @@ bind $w <> ColormapDestroyDialog } -proc ColormapCreateMenu {varname which start stop} { - upvar $varname var +proc ColormapDialogExternal {mm which} { + global colorbar + global icolorbar - for {set ii $start} {$ii<$stop} {incr ii} { - set jj [lindex $var $ii] - set name [colorbar get name $jj] - $which add radiobutton \ - -label [msgcat::mc $name] \ - -variable colorbar(map) -value $name \ - -command "ChangeColormapID $jj" + set mb $icolorbar(mb) + ThemeMenu $mb.colormap.$which + + foreach cmap $icolorbar($which,cmaps) { + $mb.colormap.$mm add radiobutton \ + -label [msgcat::mc $cmap] \ + -variable colorbar(map) -value $cmap \ + -command [list ChangeColormapName $cmap] } } @@ -969,7 +1163,7 @@ global current global rgb - RGBEvalLockColorbar [list $current(colorbar) adjust $dcolorbar(contrast) $dcolorbar(bias)] + RGBEvalLockColorbarCurrent [list $current(colorbar) adjust $dcolorbar(contrast) $dcolorbar(bias)] if {$current(frame) != {}} { RGBEvalLockCurrent rgb(lock,colorbar) [list $current(frame) colormap [$current(colorbar) get colormap]] LockColorCurrent @@ -994,9 +1188,8 @@ global current global rgb - if {[info exists icolorbar(adjustok)]} { - RGBEvalLockColorbar [list $current(colorbar) adjust $dcolorbar(contrast) $dcolorbar(bias)] + RGBEvalLockColorbarCurrent [list $current(colorbar) adjust $dcolorbar(contrast) $dcolorbar(bias)] if {$current(frame) != {}} { RGBEvalLockCurrent rgb(lock,colorbar) [list $current(frame) colormap motion [$current(colorbar) get colormap]] } @@ -1032,7 +1225,6 @@ if {[winfo exists $icolorbar(top)]} { set dcolorbar(contrast) [$current(colorbar) get contrast] set dcolorbar(bias) [$current(colorbar) get bias] - set end [expr $icolorbar(end)+$icolorbar(start)] if {$current(frame) != {}} { switch -- [$current(frame) get type] { @@ -1042,9 +1234,11 @@ "[msgcat::mc {Open}]..." -state normal $icolorbar(mb).file entryconfig \ "[msgcat::mc {Save}]..." -state normal - for {set ii $icolorbar(start)} {$ii<$end} {incr ii} { - $icolorbar(mb).colormap entryconfig $ii -state normal + + foreach cmap $icolorbar(default,cmaps) { + $icolorbar(mb).colormap entryconfig $cmap -state normal } + $icolorbar(mb).colormap entryconfig \ [msgcat::mc {h5utils}] -state normal $icolorbar(mb).colormap entryconfig \ @@ -1057,15 +1251,18 @@ [msgcat::mc {Topographic}] -state normal $icolorbar(mb).colormap entryconfig \ [msgcat::mc {User}] -state normal + } rgb { $icolorbar(mb).file entryconfig \ "[msgcat::mc {Open}]..." -state disabled $icolorbar(mb).file entryconfig \ "[msgcat::mc {Save}]..." -state disabled - for {set ii $icolorbar(start)} {$ii<$end} {incr ii} { - $icolorbar(mb).colormap entryconfig $ii -state disabled + + foreach cmap $icolorbar(default,cmaps) { + $icolorbar(mb).colormap entryconfig $cmap -state disabled } + $icolorbar(mb).colormap entryconfig \ [msgcat::mc {h5utils}] -state disabled $icolorbar(mb).colormap entryconfig \ @@ -1085,9 +1282,11 @@ "[msgcat::mc {Open}]..." -state normal $icolorbar(mb).file entryconfig \ "[msgcat::mc {Save}]..." -state normal - for {set ii $icolorbar(start)} {$ii<$end} {incr ii} { - $icolorbar(mb).colormap entryconfig $ii -state normal + + foreach cmap $icolorbar(default,cmaps) { + $icolorbar(mb).colormap entryconfig $cmap -state normal } + $icolorbar(mb).colormap entryconfig [msgcat::mc {h5utils}] \ -state normal $icolorbar(mb).colormap entryconfig [msgcat::mc {Matplotlib}] \ @@ -1104,105 +1303,165 @@ } } -proc LayoutColorbar {} { +proc LayoutColorbarAdjust {} { + global ds9 global colorbar - global icolorbar + + if {$colorbar(numerics)} { + set font [$ds9(canvas) itemcget colorbar -font] + set fontsize [$ds9(canvas) itemcget colorbar -fontsize] + set fontslant [$ds9(canvas) itemcget colorbar -fontslant] + set ff "$font $fontsize $fontslant" + + # horizontal height + switch $ds9(wm) { + x11 - + win32 {set scale 1} + aqua {set scale 1.4} + } + set ysp [expr int([font metrics $ff -linespace]*$scale)] + set ytl [$ds9(canvas) itemcget colorbar -ticks] + set colorbar(horizontal,height) [expr $colorbar(size) + $ytl + $ysp] + + # vertical width + # 6 chars + set xstr [font measure $ff "000000"] + set xtl [$ds9(canvas) itemcget colorbar -ticks] + set colorbar(vertical,width) [expr $colorbar(size) + $xtl + $xstr] + } else { + set colorbar(horizontal,height) [expr $colorbar(size) +2] + set colorbar(vertical,width) [expr $colorbar(size) +2] + } +} - global ds9 - global canvas +proc LayoutColorbar {cb fx fy fw fh} { + global colorbar + global igraph + global dgraph + global graph + global view - colorbar configure \ + $cb configure \ -size $colorbar(size) \ -ticks $colorbar(ticks) \ -numerics $colorbar(numerics) \ -space $colorbar(space) \ + -orientation $colorbar(orientation) \ + \ -font $colorbar(font) \ -fontsize $colorbar(font,size) \ -fontweight $colorbar(font,weight) \ -fontslant $colorbar(font,slant) - colorbarrgb configure \ + set cbh [expr !$colorbar(orientation)] + set cbv $colorbar(orientation) + set grh $view(graph,horz) + set grv $view(graph,vert) + + # cbh + if {$cbh} { + set xx $fx + set yy [expr $fy + $fh - $colorbar(horizontal,height)] + set ww $fw + set hh $colorbar(horizontal,height) + } + # cbv + if {$cbv} { + set xx [expr $fx + $fw - $colorbar(vertical,width)] + set yy $fy + set ww $colorbar(vertical,width) + set hh $fh + } + + # cbhgrh + if {$cbh && !$cbv && $grh && !$grv} { + incr yy -$graph(size) + incr ww -$dgraph(horz,offset) + } + # cbhgrv + if {$cbh && !$cbv && !$grh && $grv} { + incr ww -$graph(size) + } + # cbhgrhgrv + if {$cbh && !$cbv && $grh && $grv} { + incr ww -$graph(size) + incr yy -$graph(size) + } + + # cbvgrh + if {!$cbh && $cbv && $grh && !$grv} { + incr hh -$graph(size) + } + # cbvgrv + if {!$cbh && $cbv && !$grh && $grv} { + incr xx -$graph(size) + incr hh -$dgraph(vert,offset) + } + # cbvgrhgrv + if {!$cbh && $cbv && $grh && $grv} { + incr hh -$graph(size) + incr xx -$graph(size) + } + + # grh + if {!$cbh && !$cbv && $grh && !$grv} { + } + # grv + if {!$cbh && !$cbv && !$grh && $grv} { + } + # grhgrv + if {!$cbh && !$cbv && $grh && $grv} { + } + + # sanity check + if {$xx<0 || $yy<0 || $ww<0 || $hh<0} { + return 0 + } + + $cb configure -x $xx -y $yy -width $ww -height $hh + return 1 +} + +proc ColorbarUpdateView {} { + global ds9 + global colorbar + + # update default colorbar + colorbar configure \ -size $colorbar(size) \ -ticks $colorbar(ticks) \ -numerics $colorbar(numerics) \ -space $colorbar(space) \ + -orientation $colorbar(orientation) \ + \ -font $colorbar(font) \ -fontsize $colorbar(font,size) \ -fontweight $colorbar(font,weight) \ -fontslant $colorbar(font,slant) - switch -- $colorbar(orientation) { - horizontal { - set xx 0 - set yy [expr $canvas(height) + $canvas(gap)] - - colorbar configure -x $xx -y $yy \ - -width $canvas(width) \ - -height $icolorbar(horizontal,height) \ - -orientation 0 - - colorbarrgb configure -x $xx -y $yy \ - -width $canvas(width) \ - -height $icolorbar(horizontal,height) \ - -orientation 0 - } - vertical { - set xx [expr $canvas(width) + $canvas(gap)] - set yy 0 - - colorbar configure -x $xx -y $yy \ - -width $icolorbar(vertical,width) \ - -height $canvas(height) \ - -orientation 1 - - colorbarrgb configure -x $xx -y $yy \ - -width $icolorbar(vertical,width) \ - -height $canvas(height) \ - -orientation 1 - } + # update all colorbars + foreach ff $ds9(frames) { + set cb ${ff}cb + + $cb configure \ + -size $colorbar(size) \ + -ticks $colorbar(ticks) \ + -numerics $colorbar(numerics) \ + -space $colorbar(space) \ + -orientation $colorbar(orientation) \ + \ + -font $colorbar(font) \ + -fontsize $colorbar(font,size) \ + -fontweight $colorbar(font,weight) \ + -fontslant $colorbar(font,slant) } -} - -proc ColorbarBackup {ch which} { - global colorbar - puts $ch "$which configure -size $colorbar(size)" - puts $ch "$which configure -ticks $colorbar(ticks)" - puts $ch "$which configure -numerics $colorbar(numerics)" - puts $ch "$which configure -space $colorbar(space)" - switch $colorbar(orientation) { - horizontal {puts $ch "$which configure -orientation 0"} - vertical {puts $ch "$which configure -orientation 1"} - } - puts $ch "$which configure -font $colorbar(font)" - puts $ch "$which configure -fontsize $colorbar(font,size)" - puts $ch "$which configure -fontweight $colorbar(font,weight)" - puts $ch "$which configure -fontslant $colorbar(font,slant)" - - puts $ch "$which colorbar [$which get colorbar]" - puts $ch "$which tag \"\{[$which get tag]\}\"" -} - -proc ColormapFrameBackup {ch which} { - switch -- [$which get type] { - base - - 3d { - puts $ch "set sav \[colorbar get colorbar\]" - puts $ch "colorbar colorbar [$which get colorbar]" - puts $ch "$which colormap \[colorbar get colormap\]" - puts $ch "colorbar colorbar \$sav" - } - rgb { - puts $ch "set sav \[colorbarrgb get colorbar\]" - puts $ch "colorbarrgb colorbar [$which get colorbar]" - puts $ch "$which colormap \[colorbarrgb get colormap\]" - puts $ch "colorbarrgb colorbar \$sav" - } - } + LayoutFrames } -proc ColorbarBackupCmaps {ch dir} { +proc ColorbarBackup {ch dir} { global icolorbar + global colorbar set rdir "./[lindex [file split $dir] end]" @@ -1214,16 +1473,33 @@ catch {file delete -force $ff} } - # save any loaded cmaps - set id [colorbar list id] - if {$icolorbar(user)<[llength $id]} { - for {set ii $icolorbar(user)} {$ii<[llength $id]} {incr ii} { - set which [lindex $id $ii] - set nn [lindex [file split [colorbar get file name $which]] end] - colorbar save $which \"[file join $dir $nn]\" - puts $ch "LoadColormapFile \"[file join $rdir $nn]\"" - } - } + # save any loaded user cmaps + foreach cmap $icolorbar(user,cmaps) { + set nn [lindex [file split [colorbar get file name $cmap]] end] + colorbar save $cmap \"[file join $dir $nn]\" + puts $ch "LoadColormapFile \"[file join $rdir $nn]\"" + } + + # colorbar params + puts $ch "colorbar configure -size $colorbar(size)" + puts $ch "colorbar configure -ticks $colorbar(ticks)" + puts $ch "colorbar configure -numerics $colorbar(numerics)" + puts $ch "colorbar configure -space $colorbar(space)" + puts $ch "colorbar configure -orientation $colorbar(orientation)" + + puts $ch "colorbar configure -font $colorbar(font)" + puts $ch "colorbar configure -fontsize $colorbar(font,size)" + puts $ch "colorbar configure -fontweight $colorbar(font,weight)" + puts $ch "colorbar configure -fontslant $colorbar(font,slant)" +} + +proc ColorbarFrameBackup {ch which} { + set cb ${which}cb + + puts $ch "$cb colorbar [$which get colorbar]" + puts $ch "$which colormap \[$cb get colormap\]" + puts $ch "$which colorbar tag \"\{[$which get colorbar tag]\}\"" + puts $ch "$cb tag \"\{[$which get colorbar tag]\}\"" } # Process Cmds @@ -1245,35 +1521,24 @@ global current global colorbar - switch -- [$current(frame) get type] { - base - - 3d { - set cmap $item - # common variants on spellings - switch -- [string tolower $cmap] { - gray {set cmap grey} - } + set cmap [string tolower $item] + # common variants on spellings + switch -- $cmap { + gray {set cmap grey} + } - set id [colorbar list id] - set found 0 - foreach ii $id { - set title [colorbar get name $ii] - if {[string equal -nocase $title $cmap]} { - set colorbar(map) $title - colorbar map "{$colorbar(map)}" - $current(frame) colormap [colorbar get colormap] - set colorbar(invert) [colorbar get invert] + if {[catch {$current(colorbar) map $cmap}]} { + Error "[msgcat::mc {Unknown Colormap}] $cmap" + set cmap grey + $current(colorbar) map $cmap + } - set found 1 - break - } - } - if {!$found} { - Error "[msgcat::mc {Unknown Colormap}] $cmap" - } - } - rgb {} + set colorbar(map) [$current(colorbar) get name] + set colorbar(invert) [$current(colorbar) get invert] + if {$current(frame) != {}} { + $current(frame) colormap [$current(colorbar) get colormap] } + LockColorCurrent UpdateColorDialog } @@ -1282,7 +1547,7 @@ global current if {$current(frame) != {}} { - RGBEvalLockColorbar [list $current(colorbar) adjust $c $b] + RGBEvalLockColorbarCurrent [list $current(colorbar) adjust $c $b] RGBEvalLockCurrent rgb(lock,colorbar) [list $current(frame) colormap begin] RGBEvalLockCurrent rgb(lock,colorbar) [list $current(frame) colormap motion [$current(colorbar) get colormap]] RGBEvalLockCurrent rgb(lock,colorbar) [list $current(frame) colormap end] @@ -1339,6 +1604,17 @@ } } +proc ColorbarSendCmdOrientation {} { + global parse + global colorbar + + if {!$colorbar(orientation)} { + $parse(proc) $parse(id) "horizontal\n" + } else { + $parse(proc) $parse(id) "vertical\n" + } +} + proc ColorbarSendCmdSpace {} { global parse global colorbar diff -Nru saods9-8.2+repack/ds9/library/command.tcl saods9-8.3+repack/ds9/library/command.tcl --- saods9-8.2+repack/ds9/library/command.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/command.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -198,32 +198,38 @@ } -gif {set file(type) gif} -green {set current(rgb) green; RGBChannel} + -graph {incr i; ProcessGraphCmd argv i} -grid {incr i; ProcessGridCmd argv i} -nogrid {set grid(view) 0; GridUpdateCurrent} -header {incr i; ProcessHeaderCmd argv i} -height {incr i; ProcessHeightCmd argv i} -histequ {set scale(type) histequ; ChangeScale} + -horizontal { + #backward compatibility + set view(layout) horizontal + LayoutView + } -horzgraph { # backward compatibility set view(graph,horz) 1 - UpdateView + LayoutView } -nohorzgraph { # backward compatibility set view(graph,horz) 0 - UpdateView + LayoutView } -iconify {incr i; ProcessIconifyCmd argv i} -iis {incr i; ProcessIISCmd argv i} -info { # backward compatibility set view(info) 1 - UpdateView + LayoutView } -noinfo { # backward compatibility set view(info) 0 - UpdateView + LayoutView } -invert {set colorbar(invert) 1; InvertColorbar} -jpg - @@ -240,7 +246,7 @@ -nomagnifier { # backward compatibility set view(magnifier) 0 - UpdateView + LayoutView } -mask {incr i; set file(layer) [ProcessMaskCmd argv i]} -nomask {set file(layer) {}} @@ -309,6 +315,8 @@ incr i ProcessNanCmd argv i } + -note - + -notes {incr i; ProcessNotesCmd argv i} -nrrd {set file(type) nrrd} -nvss {incr i; ProcessNVSSCmd argv i} -orient {incr i; ProcessOrientCmd argv i} @@ -318,12 +326,12 @@ -panner { # backward compatibility set view(panner) 1 - UpdateView + LayoutView } -nopanner { # backward compatibility set view(panner) 0 - UpdateView + LayoutView } -photo { # backward compatibility @@ -349,8 +357,8 @@ -pow {set scale(type) pow; ChangeScale} -prefs {incr i; ProcessPrefsCmd argv i} -preserve {incr i; ProcessPreserveCmd argv i} - -print {incr i; ProcessPrintCmd argv i} - -psprint {incr i; ProcessPSPrintCmd argv i} + -print - + -psprint {incr i; ProcessPrintCmd argv i} -private { #already processed } @@ -454,15 +462,20 @@ } -url {set file(type) url} -update {incr i; ProcessUpdateCmd argv i} + -vertical { + #backward compatibility + set view(layout) vertical + LayoutView + } -vertgraph { #backward compatibility set view(graph,vert) 1 - UpdateView + LayoutView } -novertgraph { #backward compatibility set view(graph,vert) 0 - UpdateView + LayoutView } -view {incr i; ProcessViewCmd argv i} -visual { diff -Nru saods9-8.2+repack/ds9/library/comm.tcl saods9-8.3+repack/ds9/library/comm.tcl --- saods9-8.2+repack/ds9/library/comm.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/comm.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -64,6 +64,7 @@ fp - footprint {ProcessFootprintCmd param i} gif {ProcessGIFCmd param i {} $fn} + graph {ProcessGraphCmd param i} grid {ProcessGridCmd param i} header {ProcessHeaderCmd param i} height {ProcessHeightCmd param i} @@ -112,6 +113,8 @@ # backward compatibility prefs ProcessNanCmd param i } + note - + notes {ProcessNotesCmd param i} nrrd {ProcessNRRDCmd param i {} $fn} nvss {ProcessNVSSCmd param i} orient {ProcessOrientCmd param i} @@ -128,7 +131,8 @@ } prefs {ProcessPrefsCmd param i} preserve {ProcessPreserveCmd param i} - print { + print - + psprint { if {$safemode} { Error [msgcat::mc {Command not allowed}] } else { @@ -136,13 +140,6 @@ } } prism {ProcessPrismCmd param i} - psprint { - if {$safemode} { - Error [msgcat::mc {Command not allowed}] - } else { - ProcessPSPrintCmd param i - } - } exit - quit {ProcessQuitCmd param i} raise {ProcessRaiseCmd param i} @@ -218,6 +215,7 @@ wcs {ProcessWCSCmd param i {} $fn} web {ProcessWebCmd param i} width {ProcessWidthCmd param i} + xpa {ProcessXPACmd param i} zoom {ProcessZoomCmd param i} zscale {ProcessZScaleCmd param i} default {Error "[msgcat::mc {Unknown command}]: $cmd"} @@ -277,6 +275,7 @@ fp - footprint {ProcessSendFootprintCmd $proc $id $param {} $fn} gif {ProcessSendGIFCmd $proc $id $param {} $fn} + graph {ProcessSendGraphCmd $proc $id $param} grid {ProcessSendGridCmd $proc $id $param} header {} height {ProcessSendHeightCmd $proc $id $param} @@ -322,6 +321,8 @@ # backward compatibility prefs ProcessSendNanCmd $proc $id $param } + note - + notes {ProcessSendNotesCmd $proc $id $param} nrrd {ProcessSendNRRDCmd $proc $id $param {} $fn} nvss {ProcessSendNVSSCmd $proc $id $param} orient {ProcessSendOrientCmd $proc $id $param} @@ -338,9 +339,9 @@ prefs {ProcessSendPrefsCmd $proc $id $param} preserve {ProcessSendPreserveCmd $proc $id $param} pspagesetup {ProcessSendPSPageSetupCmd $proc $id $param} - print {ProcessSendPrintCmd $proc $id $param} + print - + psprint {ProcessSendPrintCmd $proc $id $param} prism {ProcessSendPrismCmd $proc $id $param} - psprint {ProcessSendPSPrintCmd $proc $id $param} exit - quit {} raise {} @@ -351,7 +352,7 @@ rgbcube {ProcessSendRGBCubeCmd $proc $id $param {} $fn} rgbimage {ProcessSendRGBImageCmd $proc $id $param {} $fn} rotate {ProcessSendRotateCmd $proc $id $param} - samp {} + samp {ProcessSendSAMPCmd $proc $id $param} save - savefits {} saveimage {} @@ -398,6 +399,7 @@ wcs {ProcessSendWCSCmd $proc $id $param} web {ProcessSendWebCmd $proc $id $param} width {ProcessSendWidthCmd $proc $id $param} + xpa {ProcessSendXPACmd $proc $id $param} zscale {ProcessSendZScaleCmd $proc $id $param} zoom {ProcessSendZoomCmd $proc $id $param} default { diff -Nru saods9-8.2+repack/ds9/library/compass.tcl saods9-8.3+repack/ds9/library/compass.tcl --- saods9-8.2+repack/ds9/library/compass.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/compass.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/composite.tcl saods9-8.3+repack/ds9/library/composite.tcl --- saods9-8.2+repack/ds9/library/composite.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/composite.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/contour.tcl saods9-8.3+repack/ds9/library/contour.tcl --- saods9-8.2+repack/ds9/library/contour.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/contour.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/convert.tcl saods9-8.3+repack/ds9/library/convert.tcl --- saods9-8.2+repack/ds9/library/convert.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/convert.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/coord.tcl saods9-8.3+repack/ds9/library/coord.tcl --- saods9-8.2+repack/ds9/library/coord.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/coord.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/cpanda.tcl saods9-8.3+repack/ds9/library/cpanda.tcl --- saods9-8.2+repack/ds9/library/cpanda.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/cpanda.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/crop.tcl saods9-8.3+repack/ds9/library/crop.tcl --- saods9-8.2+repack/ds9/library/crop.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/crop.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -74,7 +74,7 @@ UpdateContourDialog UpdateScaleDialog GridUpdateZoom - UpdateGraphAxis $which + UpdateGraphsAxis $which UpdateInfoBoxFrame $which UpdateMain } diff -Nru saods9-8.2+repack/ds9/library/crosshair.tcl saods9-8.3+repack/ds9/library/crosshair.tcl --- saods9-8.2+repack/ds9/library/crosshair.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/crosshair.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -43,7 +43,7 @@ UpdateColormapLevelMosaic $which $X $Y canvas UpdateInfoBox $which $X $Y canvas UpdatePixelTableDialog $which $X $Y canvas - UpdateGraphData $which $X $Y canvas + UpdateGraphsData $which $X $Y canvas } proc CrosshairTo {x y sys sky} { diff -Nru saods9-8.2+repack/ds9/library/cube.tcl saods9-8.3+repack/ds9/library/cube.tcl --- saods9-8.2+repack/ds9/library/cube.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/cube.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -334,7 +334,7 @@ UpdateScaleDialog UpdateContourScale UpdateContourDialog - UpdateGraphAxis $current(frame) + UpdateGraphsAxis $current(frame) UpdateInfoBoxFrame $current(frame) UpdateMain } diff -Nru saods9-8.2+repack/ds9/library/cxcpublic.tcl saods9-8.3+repack/ds9/library/cxcpublic.tcl --- saods9-8.2+repack/ds9/library/cxcpublic.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/cxcpublic.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2020 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/debug.tcl saods9-8.3+repack/ds9/library/debug.tcl --- saods9-8.2+repack/ds9/library/debug.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/debug.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -19,6 +19,7 @@ set debug(tcl,fp) 0 set debug(tcl,samp) 0 set debug(tcl,grid) 0 + set debug(tcl,graph) 0 set debug(tcl,restore) 0 set debug(tcl,http) 0 set debug(tcl,ftp) 0 @@ -88,6 +89,8 @@ -variable debug(tcl,samp) $ds9(mb).debug.tcl add checkbutton -label {Grid} \ -variable debug(tcl,grid) + $ds9(mb).debug.tcl add checkbutton -label {Graph} \ + -variable debug(tcl,graph) $ds9(mb).debug.tcl add checkbutton -label {Restore} \ -variable debug(tcl,restore) $ds9(mb).debug.tcl add checkbutton -label {HTTP} \ @@ -146,12 +149,16 @@ puts stderr "r(fragment)=$r(fragment)" } -proc DumpCallStack {} { +proc CallStack {} { for {set x [expr [info level]-1]} {$x>0} {incr x -1} { puts stderr "$x: [info level $x]" } } +proc CallStackTop {} { + puts stderr "[info level -1]" +} + proc DumpArray {varname} { upvar $varname var global $varname @@ -185,6 +192,7 @@ fp {set debug(tcl,fp) 1} samp {set debug(tcl,samp) 1} grid {set debug(tcl,grid) 1} + graph {set debug(tcl,graph) 1} restore {set debug(tcl,restore) 1} http {set debug(tcl,http) 1} ftp {set debug(tcl,ftp) 1} @@ -264,6 +272,7 @@ fp - samp - grid - + graph - restore - http - ftp - diff -Nru saods9-8.2+repack/ds9/library/dialog.tcl saods9-8.3+repack/ds9/library/dialog.tcl --- saods9-8.2+repack/ds9/library/dialog.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/dialog.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -7,7 +7,7 @@ proc Toplevel {w mb style title proc} { global ds9 - toplevel $w + toplevel $w -class [winfo class $ds9(top)] wm title $w $title wm iconname $w $title @@ -37,7 +37,7 @@ proc DialogCreate {w title varname} { global ds9 - toplevel $w + toplevel $w -class [winfo class $ds9(top)] switch $ds9(wm) { x11 - win32 {} @@ -186,373 +186,6 @@ } } -# Simple Text Dialog - -proc SimpleTextDef {} { - global istxt - - set istxt(dialogs) {} -} - -proc SimpleTextDialog {varname title width height action pos txt - {destroyCB {}} {destroyParam {}}} { - upvar #0 $varname var - global $varname - - global istxt - global ds9 - global pds9 - - set var(top) ".${varname}" - set var(mb) ".${varname}mb" - - if {[winfo exists $var(top)]} { - raise $var(top) - } else { - # create window - Toplevel $var(top) $var(mb) 7 $title "SimpleTextDestroy $varname" - - lappend istxt(dialogs) $varname - - set var(search) {} - set var(destroyCB) $destroyCB - set var(destroyParam) $destroyParam - set var(font) $pds9(text,font) - set var(font,size) $pds9(text,font,size) - set var(font,weight) $pds9(text,font,weight) - set var(font,slant) $pds9(text,font,slant) - - $var(mb) add cascade -label [msgcat::mc {File}] -menu $var(mb).file - ThemeMenu $var(mb).file - $var(mb).file add command -label "[msgcat::mc {Save}]..." \ - -command "SimpleTextSave $varname" -accelerator "${ds9(ctrl)}S" - switch $ds9(wm) { - x11 - - aqua - - win32 { - $var(mb).file add separator - $var(mb).file add command -label "[msgcat::mc {Print}]..." \ - -command "SimpleTextPrint $varname" \ - -accelerator "${ds9(ctrl)}P" - } - } - $var(mb).file add separator - $var(mb).file add command -label [msgcat::mc {Close}] \ - -command "SimpleTextDestroy $varname" -accelerator "${ds9(ctrl)}W" - - $var(mb) add cascade -label [msgcat::mc {Edit}] -menu $var(mb).edit - ThemeMenu $var(mb).edit - $var(mb).edit add command -label [msgcat::mc {Cut}] \-state disabled -accelerator "${ds9(ctrl)}X" -# $var(mb).edit add command -label [msgcat::mc {Cut}] -command "SimpleTextCut $varname" -accelerator "${ds9(ctrl)}X" - $var(mb).edit add command -label [msgcat::mc {Copy}] \ - -command "SimpleTextCopy $varname" -accelerator "${ds9(ctrl)}C" - $var(mb).edit add command -label [msgcat::mc {Paste}] \ - -state disabled -accelerator "${ds9(ctrl)}V" -# $var(mb).edit add command -label [msgcat::mc {Clear}] -command "SimpleTextClear $varname" - $var(mb).edit add separator - $var(mb).edit add command -label [msgcat::mc {Select All}] \ - -command "SimpleTextSelectAll $varname" - $var(mb).edit add command -label [msgcat::mc {Select None}] \ - -command "SimpleTextSelectNone $varname" - $var(mb).edit add separator - $var(mb).edit add command -label "[msgcat::mc {Find}]..." \ - -command "SimpleTextFind $varname" -accelerator "${ds9(ctrl)}F" - $var(mb).edit add command -label [msgcat::mc {Find Next}] \ - -command "SimpleTextFindNext $varname" -accelerator "${ds9(ctrl)}G" - - $var(mb) add cascade -label [msgcat::mc {Font}] -menu $var(mb).font - FontMenu $var(mb).font $varname font font,size font,weight font,slant \ - [list SimpleTextFont $varname] - - set var(text) $var(top).text - roText::roText $var(text) - - $var(text) configure \ - -height $height \ - -width $width \ - -wrap none \ - -yscrollcommand [list $var(top).yscroll set] \ - -xscrollcommand [list $var(top).xscroll set] \ - -fg [ThemeTreeForeground] \ - -bg [ThemeTreeBackground] \ - -state normal - - ttk::scrollbar $var(top).yscroll \ - -command [list roText::$var(text) yview] -orient vertical - ttk::scrollbar $var(top).xscroll \ - -command [list roText::$var(text) xview] -orient horizontal - - grid $var(text) $var(top).yscroll -sticky news - grid $var(top).xscroll -stick news - grid rowconfigure $var(top) 0 -weight 1 - grid columnconfigure $var(top) 0 -weight 1 - - bind $var(top) <> [list SimpleTextFind $varname] - bind $var(top) <> [list SimpleTextFindNext $varname] - bind $var(top) <> [list SimpleTextSave $varname] - bind $var(top) <> [list SimpleTextDestroy $varname] - bind $var(top) <> [list SimpleTextPrint $varname] - } - - if {$action != {append}} { - $var(text) delete 1.0 end - } - $var(text) insert end "$txt" - switch -- $pos { - top {$var(text) see 1.0} - bottom {$var(text) see end} - } - - SimpleTextFont $varname -} - -proc SimpleTextDestroy {varname} { - global istxt - - upvar #0 $varname var - global $varname - - if {$var(destroyCB) != {}} { - eval $var(destroyCB) $var(destroyParam) - } - - if {[winfo exists $var(top)]} { - destroy $var(top) - destroy $var(mb) - } - - set ii [lsearch $istxt(dialogs) $varname] - if {$ii>=0} { - set istxt(dialogs) [lreplace $istxt(dialogs) $ii $ii] - } - - unset $varname -} - -proc SimpleTextFont {varname} { - upvar #0 $varname var - global $varname - - global ds9 - - $var(text) configure -font \ - "{$ds9($var(font))} $var(font,size) $var(font,weight) $var(font,slant)" -} - -proc SimpleTextUpdateFont {} { - global istxt - global pds9 - - foreach varname $istxt(dialogs) { - upvar #0 $varname var - global $varname - - set var(font) $pds9(text,font) - set var(font,size) $pds9(text,font,size) - set var(font,weight) $pds9(text,font,weight) - set var(font,slant) $pds9(text,font,slant) - - SimpleTextFont $varname - } -} - -proc SimpleTextCut {varname} { - upvar #0 $varname var - global $varname - - tk_textCut $var(text) -} - -proc SimpleTextCopy {varname} { - upvar #0 $varname var - global $varname - - tk_textCopy $var(text) -} - -proc SimpleTextClear {varname} { - upvar #0 $varname var - global $varname - - $var(text) configure -state normal - $var(text) delete 1.0 end - $var(text) configure -state disabled -} - -proc SimpleTextSelectAll {varname} { - upvar #0 $varname var - global $varname - - $var(text) tag add sel 1.0 end -} - -proc SimpleTextSelectNone {varname} { - upvar #0 $varname var - global $varname - - $var(text) tag remove sel 1.0 end -} - -proc SimpleTextFind {varname} { - upvar #0 $varname var - global $varname - - $var(text) tag remove sel 1.0 end - set result "$var(search)" - if {[EntryDialog [msgcat::mc {Search}] [msgcat::mc {Enter Search Expression}] 40 result]} { - set var(search) "$result" - set start [$var(text) search -nocase -count ::roText::cnt \ - -regexp -- $result 1.0 end] - if {$start != {}} { - $var(text) tag add sel $start "$start + $::roText::cnt chars" - $var(text) see $start - } else { - Error "$var(search) [msgcat::mc {Not Found}]" - } - } -} - -proc SimpleTextFindNext {varname} { - upvar #0 $varname var - global $varname - - if {$var(search) != {}} { - if {[$var(text) tag ranges sel] != {}} { - set ss {sel.last} - } else { - set ss {1.0} - } - - set start [$var(text) search -nocase -count ::roText::cnt \ - -regexp -- $var(search) $ss end] - if {$start != {}} { - $var(text) tag remove sel 1.0 end - $var(text) tag add sel $start "$start + $::roText::cnt chars" - $var(text) see $start - } else { - # wrap - set start [$var(text) search -nocase -count ::roText::cnt \ - -regexp -- $var(search) 1.0 end] - if {$start != {}} { - $var(text) tag remove sel 1.0 end - $var(text) tag add sel $start "$start + $::roText::cnt chars" - $var(text) see $start - } else { - Error "$var(search) [msgcat::mc {Not Found}]" - } - } - } -} - -proc SimpleTextPrint {varname} { - upvar #0 $varname var - global $varname - - global ds9 - - switch $ds9(wm) { - x11 - - aqua - - win32 {SimpleTextPSPrint $varname} - } -} - -proc SimpleTextPSPrint {varname} { - upvar #0 $varname var - global $varname - - if {[PRPrintDialog]} { - if {[catch {SimpleTextPostScript $varname} printError]} { - Error "[msgcat::mc {An error has occurred while printing}] $printError" - } - } -} - -proc SimpleTextPostScript {varname} { - upvar #0 $varname var - global $varname - - global ps - - if {$ps(dest) == "file"} { - set ch [open "| cat > $ps(filename,txt)" w] - } else { - set ch [open "| $ps(cmd)" w] - } - - puts -nonewline $ch [$var(text) get 1.0 end] - close $ch -} - -proc SimpleTextPageSetup {varname} { - upvar #0 $varname var - global $varname - - global ds9 - - switch $ds9(wm) { - x11 - - aqua - - win32 {} - } -} - -proc SimpleTextSave {varname} { - upvar #0 $varname var - global $varname - - set filename [SaveFileDialog textfbox $var(top)] - if {$filename != {}} { - if {[catch {set ch [open "| cat > \"$filename\"" w]}]} { - Error [msgcat::mc {An error has occurred while saving}] - return - } - puts -nonewline $ch [$var(text) get 1.0 end] - close $ch - } -} - -# read only text widget, idea and code by emiliano and ccbbaa, tested: tcl/tk8.6, linux - version 20191217-0 -namespace eval ::roText { - proc roText {w args} { - if {[info exists ::roText::$w]} { - puts stderr "::roText::$w and possibly $w already exist" - return ;# discuss: better way to flag error to caller, return "" for now - } - text $w {*}$args - bind $w break ;# delete all - bind $w break ;# kill line - bind $w break ;# Backspace alternate - bind $w break ;# Del alternate - bind $w break ;# Ins newline - bind $w break - bind $w break - rename $w ::roText::$w - - proc ::$w {cmd args} [format { - set w %s - ::roText::$w $cmd {*}$args - } $w $w] - - if {0} { - proc ::$w {cmd args} [format { - set w %s - set inf [lindex [info level 1] 0] ;# caller proc name; find tk vs scr. - #puts "* $cmd $args ([info level]) '$inf'" ;# debug - if {($cmd ni "insert delete") || ( ($cmd in "insert delete") \ - && ([string range $inf 0 3] != "tk::") \ - && ($inf != "tk_textCut") && ($inf != "tk_textPaste") ) \ - } { - ::roText::$w $cmd {*}$args - } - } $w $w] - } - - bind ::$w [list rename $w {}] - return $w ;# created - } -} - # Used for SimpleText,Catalog,SIA,Footprint proc PRPrintDialog {} { global ps diff -Nru saods9-8.2+repack/ds9/library/ds9.tcl saods9-8.3+repack/ds9/library/ds9.tcl --- saods9-8.2+repack/ds9/library/ds9.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/ds9.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -13,9 +13,9 @@ } # Must be major,minor - set ds9(version) {8.2} + set ds9(version) {8.3} # For display purposes only - set ds9(version,display) {8.2} + set ds9(version,display) {8.3} set ds9(visual) {} set ds9(depth) 8 @@ -37,6 +37,7 @@ set ds9(helvetica) [font configure TkDefaultFont -family] set ds9(courier) [font configure TkFixedFont -family] + set ds9(courier) courier switch $ds9(wm) { x11 { set ds9(times) serif @@ -45,8 +46,14 @@ font configure TkCaptionFont -weight normal font configure TkHeadingFont -weight normal } - aqua - - win32 {set ds9(times) times} + aqua { + # bad system fonts returned by Mojave + set ds9(helvetica) {.AppleSystemUIFont} + set ds9(times) times + } + win32 { + set ds9(times) times + } } set ds9(main) {} set ds9(image) {} @@ -56,16 +63,11 @@ set ds9(panner) {} set ds9(magnifier) {} set ds9(buttons) {} - set ds9(graph,sp) {} - set ds9(graph,horz) {} - set ds9(graph,vert) {} set ds9(frames) {} + set ds9(seq) 1 set ds9(active) {} - set ds9(active,num) 0 set ds9(lock) 0 - set ds9(next) {} - set ds9(next,num) 1 set ds9(last) {} set ds9(event,opendoc) {} @@ -80,7 +82,7 @@ } set ds9(menu,size,frame,goto) [expr $ds9(menu,start)+0] set ds9(menu,size,frame,active) [expr $ds9(menu,start)+3] - set ds9(menu,size,analysis) [expr $ds9(menu,start)+34] + set ds9(menu,size,analysis) [expr $ds9(menu,start)+36] set ds9(menu,size,wrap) 20 set ds9(display) single @@ -230,11 +232,14 @@ package require colorutils package require awdark package require awlight + package require awarc package require awblack -# package require awwinxpblue package require awbreeze + package require awbreezedark + package require awclearlooks + package require awwinxpblue - # tkthemes- alot of these lacks full set of colors + # ttkthemes- alot of these lacks full set of colors # package require ttk::theme::aquativo # package require ttk::theme::black # package require ttk::theme::blue @@ -342,7 +347,6 @@ BinDef BlinkDef BlockDef -ButtonsDef CanvasDef CATDef CATSymDef @@ -374,6 +378,7 @@ MaskDef MinMaxDef MovieDef +NotesDef NRESDef NVSSDef PannerDef @@ -391,6 +396,7 @@ ScaleDef SIADef SimpleTextDef +EditTextDef SkyViewDef SmoothDef STSCIDef @@ -402,6 +408,8 @@ VODef WCSDef ZScaleDef +# do last +ButtonsDef # let's start set ds9(init) 1 @@ -528,13 +536,7 @@ } } } - aqua { - foreach ll [MacOSXGetLocale] { - if {[SetLanguage $ll]} { - break - } - } - } + aqua {} win32 {} } } @@ -557,13 +559,14 @@ CreatePanner CreateMagnifier CreateButtons -CreateGraphs + +# Create default Graphs +GraphsCreate graph # Make sure that the wm knows when to swap in the colormap (if needed) wm colormapwindows . "$ds9(main) $ds9(canvas)" # Initialize the display -InitColorbar InitPanner InitDialogBox @@ -577,13 +580,13 @@ } update -# layout -ConfigureView +# layout before first frame +LayoutView # our first frame CreateFrame -# do this last so we don't get an ConfigureView event +# do this last so we don't get an LayoutView event InitCanvas # ok, ready to show the window @@ -633,39 +636,31 @@ # do we have the correct prefs file? CheckPrefs -# kludge for aqua. We need to trigger the trap to update buttons vars -switch $ds9(wm) { - x11 - - win32 {} - aqua { - set current(display) $current(display) - set colorbar(map) $colorbar(map) - } -} - # start error monitor after $ds9(msg,timeout) [list ErrorTimer] # ok, we're done set ds9(init) 0 -# everything must be realized -update - # major kludges switch $ds9(wm) { x11 { + # everything must be realized + update + # be sure theme has been set # could be changed in prefs or command line ThemeChange - # lock down geometry at statup - # so unneeded configure events are not generated - # a problem with recent versions of linux - wm geometry $ds9(top) \ - "[winfo width $ds9(top)]x[winfo height $ds9(top)]" + # lock down geometry at statup + # so no resize top window configure events are generated + wm geometry $ds9(top) "[winfo width $ds9(top)]x[winfo height $ds9(top)]" } + aqua {} win32 { + # everything must be realized + update + # default for win32 if {$pds9(theme) == {default}} { set pds9(theme) xpnative @@ -676,5 +671,4 @@ # jump start keyevents for windows event generate $ds9(canvas) -x 0 -y 0 } - aqua {} } diff -Nru saods9-8.2+repack/ds9/library/edittext.tcl saods9-8.3+repack/ds9/library/edittext.tcl --- saods9-8.2+repack/ds9/library/edittext.tcl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/library/edittext.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,203 @@ +# Copyright (C) 1999-2021 +# Smithsonian Astrophysical Observatory, Cambridge, MA, USA +# For conditions of distribution and use, see copyright notice in "copyright" + +package provide DS9 1.0 + +proc EditTextDef {} { + global iedittxt + + set iedittxt(dialogs) {} +} + +proc EditTextDialog {varname title width height tvarname} { + upvar #0 $varname var + global $varname + + upvar #0 $tvarname tvar + global $tvarname + + global iedittxt + global ds9 + global pds9 + + set var(top) ".${varname}" + set var(mb) ".${varname}mb" + + if {![winfo exists $var(top)]} { + # create window + Toplevel $var(top) $var(mb) 7 $title "EditTextDestroy $varname" + + lappend iedittxt(dialogs) $varname + + set var(tvarname) $tvarname + set var(search) {} + set var(font) $pds9(text,font) + set var(font,size) $pds9(text,font,size) + set var(font,weight) $pds9(text,font,weight) + set var(font,slant) $pds9(text,font,slant) + + $var(mb) add cascade -label [msgcat::mc {File}] -menu $var(mb).file + ThemeMenu $var(mb).file + $var(mb).file add command -label "[msgcat::mc {Open}]..." \ + -command "EditTextLoadFile $varname" -accelerator "${ds9(ctrl)}O" + $var(mb).file add command -label "[msgcat::mc {Save}]..." \ + -command "SimpleTextSaveFile $varname" -accelerator "${ds9(ctrl)}S" + $var(mb).file add separator + $var(mb).file add command -label "[msgcat::mc {Print}]..." \ + -command "SimpleTextPrint $varname" \ + -accelerator "${ds9(ctrl)}P" + $var(mb).file add separator + $var(mb).file add command -label [msgcat::mc {Close}] \ + -command "EditTextDestroy $varname" -accelerator "${ds9(ctrl)}W" + + $var(mb) add cascade -label [msgcat::mc {Edit}] -menu $var(mb).edit + ThemeMenu $var(mb).edit + $var(mb).edit add command -label [msgcat::mc {Cut}] \ + -command "SimpleTextCut $varname" -accelerator "${ds9(ctrl)}X" + $var(mb).edit add command -label [msgcat::mc {Copy}] \ + -command "SimpleTextCopy $varname" -accelerator "${ds9(ctrl)}C" + $var(mb).edit add command -label [msgcat::mc {Paste}] \ + -command "EditTextPaste $varname" -accelerator "${ds9(ctrl)}V" + $var(mb).edit add command -label [msgcat::mc {Clear}] \ + -command "EditTextClear $varname" + $var(mb).edit add separator + $var(mb).edit add command -label [msgcat::mc {Select All}] \ + -command "SimpleTextSelectAll $varname" + $var(mb).edit add command -label [msgcat::mc {Select None}] \ + -command "SimpleTextSelectNone $varname" + $var(mb).edit add separator + $var(mb).edit add command -label "[msgcat::mc {Find}]..." \ + -command "SimpleTextFind $varname" -accelerator "${ds9(ctrl)}F" + $var(mb).edit add command -label [msgcat::mc {Find Next}] \ + -command "SimpleTextFindNext $varname" -accelerator "${ds9(ctrl)}G" + + $var(mb) add cascade -label [msgcat::mc {Font}] -menu $var(mb).font + FontMenu $var(mb).font $varname font font,size font,weight font,slant \ + [list SimpleTextFont $varname] + + set var(text) $var(top).text + text $var(text) + + $var(text) configure \ + -height $height \ + -width $width \ + -wrap none \ + -yscrollcommand [list $var(top).yscroll set] \ + -xscrollcommand [list $var(top).xscroll set] \ + -fg [ThemeTreeForeground] \ + -bg [ThemeTreeBackground] \ + -state normal + + ttk::scrollbar $var(top).yscroll \ + -command [list $var(text) yview] -orient vertical + ttk::scrollbar $var(top).xscroll \ + -command [list $var(text) xview] -orient horizontal + + grid $var(text) $var(top).yscroll -sticky news + grid $var(top).xscroll -stick news + grid rowconfigure $var(top) 0 -weight 1 + grid columnconfigure $var(top) 0 -weight 1 + + bind $var(top) <> [list SimpleTextFind $varname] + bind $var(top) <> [list SimpleTextFindNext $varname] + bind $var(top) <> [list EditTextOpenFile $varname] + bind $var(top) <> [list SimpleTextSaveFile $varname] + bind $var(top) <> [list EditTextDestroy $varname] + bind $var(top) <> [list SimpleTextPrint $varname] + } else { + raise $var(top) + } + + $var(text) delete 1.0 end + $var(text) insert end $tvar + $var(text) see end + + SimpleTextFont $varname +} + +proc EditTextDestroy {varname} { + global iedittxt + + upvar #0 $varname var + global $varname + + if {[winfo exists $var(top)]} { + set tvarname $var(tvarname) + upvar #0 $tvarname tvar + global $tvarname + set tvar [$var(text) get 1.0 end-1c] + destroy $var(top) + destroy $var(mb) + } + + set ii [lsearch $iedittxt(dialogs) $varname] + if {$ii>=0} { + set iedittxt(dialogs) [lreplace $iedittxt(dialogs) $ii $ii] + } + + unset $varname +} + +proc EditTextUpdateVar {} { + global iedittxt + + foreach varname $iedittxt(dialogs) { + upvar #0 $varname var + global $varname + + set tvarname $var(tvarname) + upvar #0 $tvarname tvar + global $tvarname + + set tvar [$var(text) get 1.0 end] + } +} + +proc EditTextUpdateFont {} { + global iedittxt + global pds9 + + foreach varname $iedittxt(dialogs) { + upvar #0 $varname var + global $varname + + set var(font) $pds9(text,font) + set var(font,size) $pds9(text,font,size) + set var(font,weight) $pds9(text,font,weight) + set var(font,slant) $pds9(text,font,slant) + + SimpleTextFont $varname + } +} + +proc EditTextPaste {varname} { + upvar #0 $varname var + global $varname + + tk_textPaste $var(text) +} + +proc EditTextClear {varname} { + upvar #0 $varname var + global $varname + + $var(text) delete 1.0 end +} + +proc EditTextLoadFile {varname} { + upvar #0 $varname var + global $varname + + set filename [OpenFileDialog textfbox $var(top)] + if {$filename != {}} { + if {[catch {set ch [open "$filename" r]}]} { + Error [msgcat::mc {An error has occurred while loading}] + return + } + + $var(text) delete 1.0 end + $var(text) insert end [read $ch] + close $ch + } +} diff -Nru saods9-8.2+repack/ds9/library/ellipseannulus.tcl saods9-8.3+repack/ds9/library/ellipseannulus.tcl --- saods9-8.2+repack/ds9/library/ellipseannulus.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/ellipseannulus.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/ellipse.tcl saods9-8.3+repack/ds9/library/ellipse.tcl --- saods9-8.2+repack/ds9/library/ellipse.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/ellipse.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/envi.tcl saods9-8.3+repack/ds9/library/envi.tcl --- saods9-8.2+repack/ds9/library/envi.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/envi.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/epanda.tcl saods9-8.3+repack/ds9/library/epanda.tcl --- saods9-8.2+repack/ds9/library/epanda.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/epanda.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/error.tcl saods9-8.3+repack/ds9/library/error.tcl --- saods9-8.2+repack/ds9/library/error.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/error.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/eso.tcl saods9-8.3+repack/ds9/library/eso.tcl --- saods9-8.2+repack/ds9/library/eso.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/eso.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/examine.tcl saods9-8.3+repack/ds9/library/examine.tcl --- saods9-8.2+repack/ds9/library/examine.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/examine.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -39,8 +39,7 @@ set slice [$which get fits slice] # so the new frame will have all of the parent frame when created - set ds9(next) $which - GotoFrame + GotoFrame $which # create frame if needed switch -- $pexamine(mode) { @@ -86,8 +85,7 @@ } # back to original frame - set ds9(next) $which - GotoFrame + GotoFrame $which # update any dialogs UpdateDS9 @@ -119,8 +117,7 @@ } # so the new frame will have all of the parent frame when created - set ds9(next) $which - GotoFrame + GotoFrame $which # create frame if needed switch -- $pexamine(mode) { @@ -184,8 +181,7 @@ $current(frame) rgb channel $channel # back to original frame - set ds9(next) $which - GotoFrame + GotoFrame $which $current(frame) rgb channel $channel # update any dialogs @@ -213,8 +209,7 @@ set method [$current(frame) get 3d method] # so the new frame will have all of the parent frame when created - set ds9(next) $which - GotoFrame + GotoFrame $which # create frame if needed switch -- $pexamine(mode) { @@ -264,8 +259,7 @@ $current(frame) 3d method $method # back to original frame - set ds9(next) $which - GotoFrame + GotoFrame $which # update any dialogs UpdateDS9 diff -Nru saods9-8.2+repack/ds9/library/export.tcl saods9-8.3+repack/ds9/library/export.tcl --- saods9-8.2+repack/ds9/library/export.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/export.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/external.tcl saods9-8.3+repack/ds9/library/external.tcl --- saods9-8.2+repack/ds9/library/external.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/external.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/file.tcl saods9-8.3+repack/ds9/library/file.tcl --- saods9-8.2+repack/ds9/library/file.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/file.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/fits.tcl saods9-8.3+repack/ds9/library/fits.tcl --- saods9-8.2+repack/ds9/library/fits.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/fits.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -38,7 +38,7 @@ set reg "${base}\[REGION\]" if {[$current(frame) fitsy has ext "\"$reg\""]} { RealizeDS9 - catch {$current(frame) marker load fits "\"$reg\"" $marker(default,color)} + catch {$current(frame) marker load fits "\"$reg\"" $marker(color)} } } } @@ -115,7 +115,7 @@ proc FitsCmdLoad {param layer mode} { global parse - + if {$parse(sock) != {}} { # xpa if {![LoadFitsSocket $parse(sock) $param $layer $mode]} { diff -Nru saods9-8.2+repack/ds9/library/fpcmd.tcl saods9-8.3+repack/ds9/library/fpcmd.tcl --- saods9-8.2+repack/ds9/library/fpcmd.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/fpcmd.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/fpdialog.tcl saods9-8.3+repack/ds9/library/fpdialog.tcl --- saods9-8.2+repack/ds9/library/fpdialog.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/fpdialog.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -39,8 +39,8 @@ ARInit $varname FPServer # procs + set var(proc,exec) FPExec set var(proc,load) FPLoad - set var(proc,process) FPProcess set var(proc,table) FPTable set var(proc,error) ARError diff -Nru saods9-8.2+repack/ds9/library/fpreg.tcl saods9-8.3+repack/ds9/library/fpreg.tcl --- saods9-8.2+repack/ds9/library/fpreg.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/fpreg.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/fp.tcl saods9-8.3+repack/ds9/library/fp.tcl --- saods9-8.2+repack/ds9/library/fp.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/fp.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -68,13 +68,13 @@ TBLGetURL $varname $url $query } -proc FPProcess {varname} { +proc FPExec {varname} { upvar #0 $varname var global $varname global debug if {$debug(tcl,fp)} { - puts stderr "FPProcess $varname" + puts stderr "FPExec $varname" } global tmpdb @@ -194,14 +194,14 @@ upvar #0 $dest catdest global $dest - # create header - set catdest(Header) $catsrc(Header) - starbase_colmap catdest - - set catdest(Ndshs) [llength $catdest(Header)] + # init db set catdest(Nrows) 0 + set catdest(Header) $catsrc(Header) set catdest(HLines) $catsrc(HLines) - set catdest(Dashes) $catsrc(Dashes) + for {set ii 1} {$ii<=$catsrc(HLines)} {incr ii} { + set catdest(H_$ii) $catsrc(H_$ii) + } + starbase_colmap catdest # optional if {[info exists catsrc(DataType)]} { @@ -232,13 +232,6 @@ set catdest(Description) $catsrc(Description) } - for {set ii 1} {$ii<=$catsrc(HLines)} {incr ii} { - set catdest(H_$ii) $catsrc(H_$ii) - } - for {set jj 1} {$jj<=$catsrc(Ncols)} {incr jj} { - set catdest(0,$jj) $catsrc(0,$jj) - } - # data set kk 0 set idCol $catsrc($var(colid)) @@ -283,14 +276,14 @@ upvar #0 $dest catdest global $dest - # create header - set catdest(Header) $catsrc(Header) - starbase_colmap catdest - - set catdest(Ndshs) [llength $catdest(Header)] + # init db set catdest(Nrows) 0 + set catdest(Header) $catsrc(Header) set catdest(HLines) $catsrc(HLines) - set catdest(Dashes) $catsrc(Dashes) + for {set ii 1} {$ii<=$catsrc(HLines)} {incr ii} { + set catdest(H_$ii) $catsrc(H_$ii) + } + starbase_colmap catdest # optional if {[info exists catsrc(DataType)]} { @@ -321,13 +314,6 @@ set catdest(Description) $catsrc(Description) } - for {set ii 1} {$ii<=$catsrc(HLines)} {incr ii} { - set catdest(H_$ii) $catsrc(H_$ii) - } - for {set jj 1} {$jj<=$catsrc(Ncols)} {incr jj} { - set catdest(0,$jj) $catsrc(0,$jj) - } - # data set kk 0 set idCol $catsrc($var(colid)) diff -Nru saods9-8.2+repack/ds9/library/frame.tcl saods9-8.3+repack/ds9/library/frame.tcl --- saods9-8.2+repack/ds9/library/frame.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/frame.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -23,17 +23,8 @@ proc CreateNamedFrame {type} { global ds9 - # find the first open slot - set num $ds9(next,num) - while {1} { - set which "Frame$num" - if {[lsearch $ds9(frames) $which]==-1} { - CreateNameNumberFrame $which $type - set ds9(next,num) [expr $num+1] - return - } - incr num - } + CreateNameNumberFrame "Frame$ds9(seq)" $type + incr ds9(seq) } proc CreateGotoFrame {num type} { @@ -43,14 +34,13 @@ set which "Frame$num" if {[lsearch $ds9(frames) $which]==-1} { CreateNameNumberFrame $which $type - set ds9(next,num) [expr $num+1] + set ds9(seq) [expr $num+1] } else { if {$active($which)==0} { set active($which) 1 UpdateActiveFrames } - set ds9(next) $which - GotoFrame + GotoFrame $which } } @@ -81,127 +71,124 @@ global threed global cube - set ds9(next) $which - # update frame lists - lappend ds9(frames) $ds9(next) - lappend ds9(active) $ds9(next) - set ds9(active,num) [llength $ds9(active)] - set active($ds9(next)) 1 + lappend ds9(frames) $which + lappend ds9(active) $which + set active($which) 1 # and create the frame switch -- $type { base { $ds9(canvas) create frame$ds9(visual)$ds9(depth) \ - -command $ds9(next) - $ds9(next) colormap [colorbar get colormap] + -command $which + CreateColorbarBase $which } rgb { $ds9(canvas) create framergb$ds9(visual)$ds9(depth) \ - -command $ds9(next) - $ds9(next) colormap [colorbarrgb get colormap] + -command $which + CreateColorbarRGB $which } 3d { $ds9(canvas) create frame3d$ds9(visual)$ds9(depth) \ - -command $ds9(next) - $ds9(next) colormap [colorbar get colormap] + -command $which + CreateColorbarBase $which } } - - $ds9(next) configure -x 0 -y 0 \ + GraphsCreate $which + + $which configure -x 0 -y 0 \ -anchor nw \ - -tag $ds9(next) \ + -tag $which \ -helvetica $ds9(helvetica) \ -courier $ds9(courier) \ -times $ds9(times) \ -fg [ThemeTreeForeground] \ -bg [ThemeTreeBackground] - $ds9(next) threads $ds9(threads) + $which threads $ds9(threads) - $ds9(next) panner 'panner' $ipanner(size) $ipanner(size) - $ds9(next) magnifier 'magnifier' $imagnifier(size) $imagnifier(size) - $ds9(next) magnifier zoom $pmagnifier(zoom) - $ds9(next) magnifier graphics $pmagnifier(region) - $ds9(next) magnifier cursor $pmagnifier(cursor) - - $ds9(next) zoom to $current(zoom) - $ds9(next) rotate to $current(rotate) - $ds9(next) orient $current(orient) - $ds9(next) wcs align $current(align) + $which panner 'panner' $ipanner(size) $ipanner(size) + $which magnifier 'magnifier' $imagnifier(size) $imagnifier(size) + $which magnifier zoom $pmagnifier(zoom) + $which magnifier graphics $pmagnifier(region) + $which magnifier cursor $pmagnifier(cursor) + + $which zoom to $current(zoom) + $which rotate to $current(rotate) + $which orient $current(orient) + $which wcs align $current(align) - $ds9(next) pan preserve $panzoom(preserve) + $which pan preserve $panzoom(preserve) # set so prefs (pwcs) will work # may cause other problems, but can't remember why - $ds9(next) wcs $wcs(system) $wcs(sky) $wcs(skyformat) + $which wcs $wcs(system) $wcs(sky) $wcs(skyformat) - $ds9(next) datasec $scale(datasec) + $which datasec $scale(datasec) - $ds9(next) precision $pds9(prec,linear) $pds9(prec,deg) \ + $which precision $pds9(prec,linear) $pds9(prec,deg) \ $pds9(prec,hms) $pds9(prec,dms) \ $pds9(prec,len,linear) $pds9(prec,len,deg) \ $pds9(prec,len,arcmin) $pds9(prec,len,arcsec) \ $pds9(prec,angle) - $ds9(next) bg color $pds9(bg) - $ds9(next) bg color $pds9(bg,use) - $ds9(next) nan color $pds9(nan) - $ds9(next) highlite color blue - - $ds9(next) iraf align $pds9(iraf) - - $ds9(next) marker epsilon $pmarker(epsilon) - $ds9(next) marker show $marker(show) - $ds9(next) marker show text $marker(show,text) - $ds9(next) marker centroid auto $marker(centroid,auto) - $ds9(next) marker centroid radius $marker(centroid,radius) - $ds9(next) marker centroid iteration $marker(centroid,iteration) - $ds9(next) marker preserve $marker(preserve) + $which bg color $pds9(bg) + $which bg color $pds9(bg,use) + $which nan color $pds9(nan) + $which highlite color blue + + $which iraf align $pds9(iraf) + + $which marker epsilon $pmarker(epsilon) + $which marker show $marker(show) + $which marker show text $marker(show,text) + $which marker centroid auto $marker(centroid,auto) + $which marker centroid radius $marker(centroid,radius) + $which marker centroid iteration $marker(centroid,iteration) + $which marker preserve $marker(preserve) # Frame type items - switch -- [$ds9(next) get type] { + switch -- [$which get type] { base {} - rgb {$ds9(next) rgb system $rgb(system)} + rgb {$which rgb system $rgb(system)} 3d { - $ds9(next) 3d method $pthreed(method) - $ds9(next) 3d background $pthreed(background) - $ds9(next) 3d border $pthreed(border) - $ds9(next) 3d border color $pthreed(border,color) - $ds9(next) 3d compass $pthreed(compass) - $ds9(next) 3d compass color $pthreed(compass,color) - $ds9(next) 3d highlite $pthreed(highlite) - $ds9(next) 3d highlite color $pthreed(highlite,color) + $which 3d method $pthreed(method) + $which 3d background $pthreed(background) + $which 3d border $pthreed(border) + $which 3d border color $pthreed(border,color) + $which 3d compass $pthreed(compass) + $which 3d compass color $pthreed(compass,color) + $which 3d highlite $pthreed(highlite) + $which 3d highlite color $pthreed(highlite,color) } } # channel dependent items - switch -- [$ds9(next) get type] { + switch -- [$which get type] { base - 3d { - $ds9(next) colorscale $scale(type) - $ds9(next) colorscale log $scale(log) + $which colorscale $scale(type) + $which colorscale log $scale(log) - $ds9(next) clip scope $scale(scope) - $ds9(next) clip mode $scale(mode) - $ds9(next) clip minmax $minmax(sample) $minmax(mode) - $ds9(next) clip user $scale(min) $scale(max) - $ds9(next) clip zscale \ - $zscale(contrast) $zscale(sample) $zscale(line) - - $ds9(next) datasec $scale(datasec) - - $ds9(next) bin function $bin(function) - $ds9(next) bin factor to $bin(factor) - $ds9(next) bin depth $bin(depth) - $ds9(next) bin buffer size $bin(buffersize) + $which clip scope $scale(scope) + $which clip mode $scale(mode) + $which clip minmax $minmax(sample) $minmax(mode) + $which clip user $scale(min) $scale(max) + $which clip zscale $zscale(contrast) $zscale(sample) $zscale(line) + + $which datasec $scale(datasec) + + $which bin function $bin(function) + $which bin factor to $bin(factor) + $which bin depth $bin(depth) + $which bin buffer size $bin(buffersize) - $ds9(next) block to $block(factor) + $which block to $block(factor) - $ds9(next) cube axes $cube(axes) + $which cube axes $cube(axes) if {$smooth(view)} { - $ds9(next) smooth $smooth(function) \ + $which smooth $smooth(function) \ $smooth(radius) $smooth(radius,minor) \ $smooth(sigma) $smooth(sigma,minor) \ $smooth(angle) @@ -209,51 +196,56 @@ } rgb { foreach c {red green blue} { - $ds9(next) rgb channel $c + $which rgb channel $c - $ds9(next) colorscale $scale(type) - $ds9(next) colorscale log $scale(log) + $which colorscale $scale(type) + $which colorscale log $scale(log) - $ds9(next) clip scope $scale(scope) - $ds9(next) clip mode $scale(mode) - $ds9(next) clip minmax $minmax(sample) $minmax(mode) - $ds9(next) clip user $scale(min) $scale(max) - $ds9(next) clip zscale \ + $which clip scope $scale(scope) + $which clip mode $scale(mode) + $which clip minmax $minmax(sample) $minmax(mode) + $which clip user $scale(min) $scale(max) + $which clip zscale \ $zscale(contrast) $zscale(sample) $zscale(line) - $ds9(next) datasec $scale(datasec) + $which datasec $scale(datasec) - $ds9(next) bin function $bin(function) - $ds9(next) bin factor to $bin(factor) - $ds9(next) bin depth $bin(depth) - $ds9(next) bin buffer size $bin(buffersize) + $which bin function $bin(function) + $which bin factor to $bin(factor) + $which bin depth $bin(depth) + $which bin buffer size $bin(buffersize) - $ds9(next) block to $block(factor) + $which block to $block(factor) - $ds9(next) cube axes $cube(axes) + $which cube axes $cube(axes) if {$smooth(view)} { - $ds9(next) smooth $smooth(function) \ + $which smooth $smooth(function) \ $smooth(radius) $smooth(radius,minor) \ $smooth(sigma) $smooth(sigma,minor) \ $smooth(angle) } } - $ds9(next) rgb channel red + $which rgb channel red } } + # enable events + BindEventsFrame $which + switch $current(mode) { - crosshair {$ds9(next) crosshair on} + crosshair {$which crosshair on} } UpdateFrameMenuItems - if {$current(frame) != {}} { - $current(frame) colorbar tag "\{[$current(colorbar) get tag]\}" - } - set current(frame) $ds9(next) - set ds9(next) {} + # update frame colormap + $which colormap [${which}cb get colormap] + + # set to current frame + set current(frame) $which + set current(colorbar) ${which}cb + DisplayMode } @@ -283,14 +275,13 @@ DeleteFrame $ff } - set ds9(next,num) 1 + set ds9(seq) 1 UpdateFrameMenuItems UpdateActiveFrames ClearInfoBox PixelTableClearDialog - ClearGraphData } proc DeleteSingleFrame {which} { @@ -300,7 +291,6 @@ UpdateActiveFrames PixelTableClearDialog - ClearGraphData } proc DeleteFrame {which} { @@ -322,18 +312,29 @@ set marker(copy) {} } + # delete canvas colorbar + $ds9(canvas) delete ${which}cb + + # delete canvas graphs + GraphsDelete $which + # delete canvas widget $ds9(canvas) delete $which - # setup for next frame + # reset current(frame) if needed + if {$current(frame) == $which} { + set ii [lsearch $ds9(active) $which] + if {$ii>0} { + set current(frame) [lindex $ds9(active) [expr $ii-1]] + set current(colorbar) ${current(frame)}cb + } + } + + # delete it from active list set ii [lsearch $ds9(active) $which] if {$ii>0} { - set ds9(next) [lindex $ds9(active) [expr $ii-1]] set ds9(active) [lreplace $ds9(active) $ii $ii] - set ds9(active,num) [llength $ds9(active)] unset active($which) - } else { - set ds9(next) {} } # delete it from the frame list @@ -350,8 +351,8 @@ proc UpdateAllFrame {} { global ds9 - foreach f $ds9(frames) { - UpdateFrame $f + foreach ff $ds9(frames) { + UpdateFrame $ff } } @@ -557,7 +558,7 @@ global debug if {$debug(tcl,events)} { - puts stderr "EnterFrame $which" + puts stderr "EnterFrame $which $x $y" } # check to see if this event was generated while processing other events @@ -592,9 +593,9 @@ EnterInfoBox $which UpdateInfoBox $which $x $y canvas UpdatePixelTableDialog $which $x $y canvas - UpdateGraphLayout $which - UpdateGraphAxis $which - UpdateGraphData $which $x $y canvas + + ShowGraphsData $which + UpdateGraphsData $which $x $y canvas if {$view(magnifier)} { # don't turn on the magnifier until we've finished the init process @@ -641,7 +642,7 @@ 3d { LeaveInfoBox PixelTableClearDialog - ClearGraphData + HideGraphsData $which } crosshair {} } @@ -698,7 +699,7 @@ UpdateColormapLevelMosaic $which $x $y canvas UpdateInfoBox $which $x $y canvas UpdatePixelTableDialog $which $x $y canvas - UpdateGraphData $which $x $y canvas + UpdateGraphsData $which $x $y canvas } none - colorbar - @@ -712,7 +713,7 @@ UpdateColormapLevelMosaic $which $x $y canvas UpdateInfoBox $which $x $y canvas UpdatePixelTableDialog $which $x $y canvas - UpdateGraphData $which $x $y canvas + UpdateGraphsData $which $x $y canvas } crosshair {} } @@ -742,8 +743,7 @@ set imarker(motion) none set imarker(handle) -1 - set ds9(next) $which - GotoFrame + GotoFrame $which } } pointer - @@ -756,8 +756,7 @@ set imarker(motion) none set imarker(handle) -1 - set ds9(next) $which - GotoFrame + GotoFrame $which } } crosshair { @@ -766,18 +765,20 @@ UpdateColormapLevelMosaic $which $x $y canvas UpdateInfoBox $which $x $y canvas UpdatePixelTableDialog $which $x $y canvas - UpdateGraphLayout $which - UpdateGraphAxis $which - UpdateGraphData $which $x $y canvas + UpdateGraphsData $which $x $y canvas + } + colorbar { + ColorbarButton3 $which $x $y } - colorbar {ColorbarButton3 $x $y} pan { PanButton $which $x $y } zoom { ZoomButton $which $x $y } - rotate {RotateButton $which $x $y} + rotate { + RotateButton $which $x $y + } crop { CropButton $which $x $y } @@ -790,8 +791,7 @@ set imarker(motion) none set imarker(handle) -1 - set ds9(next) $which - GotoFrame + GotoFrame $which } } footprint { @@ -803,12 +803,15 @@ set imarker(motion) none set imarker(handle) -1 - set ds9(next) $which - GotoFrame + GotoFrame $which } } - examine {ExamineButton $which $x $y} - iexam {IExamButton $which $x $y} + examine { + ExamineButton $which $x $y + } + iexam { + IExamButton $which $x $y + } 3d {} } } @@ -836,7 +839,9 @@ crosshair {} colorbar {} pan {} - zoom {ZoomShift $which} + zoom { + ZoomShift $which + } rotate - crop { Crop3dButton $which $x $y 0 @@ -966,7 +971,7 @@ UpdateInfoBox $which $x $y canvas UpdatePixelTableDialog $which $x $y canvas - UpdateGraphData $which $x $y canvas + UpdateGraphsData $which $x $y canvas } crosshair { if {$ds9(b1)} { @@ -975,12 +980,12 @@ UpdateColormapLevelMosaic $which $x $y canvas UpdateInfoBox $which $x $y canvas UpdatePixelTableDialog $which $x $y canvas - UpdateGraphData $which $x $y canvas + UpdateGraphsData $which $x $y canvas } } colorbar { if {$ds9(b1)} { - ColorbarMotion3 $x $y + ColorbarMotion3 $which $x $y } } pan { @@ -1012,7 +1017,7 @@ UpdateInfoBox $which $x $y canvas UpdatePixelTableDialog $which $x $y canvas - UpdateGraphData $which $x $y canvas + UpdateGraphsData $which $x $y canvas } footprint { if {$which == $current(frame)} { @@ -1021,7 +1026,7 @@ UpdateInfoBox $which $x $y canvas UpdatePixelTableDialog $which $x $y canvas - UpdateGraphData $which $x $y canvas + UpdateGraphsData $which $x $y canvas } examine {} iexam {} @@ -1065,12 +1070,11 @@ UpdateColormapLevelMosaic $which $x $y canvas UpdateInfoBox $which $x $y canvas UpdatePixelTableDialog $which $x $y canvas - UpdateGraphData $which $x $y canvas } } colorbar { if {$ds9(b1)} { - ColorbarRelease3 $x $y + ColorbarRelease3 $which $x $y } } pan { @@ -1145,7 +1149,9 @@ footprint - examine - iexam {} - 3d {3DDouble $which} + 3d { + 3DDouble $which + } } } @@ -1542,8 +1548,8 @@ proc FirstFrame {} { global ds9 - set ds9(next) [lindex $ds9(active) 0] - GotoFrame + + GotoFrame [lindex $ds9(active) 0] } proc PrevFrame {} { @@ -1552,11 +1558,10 @@ set ii [lsearch $ds9(active) $current(frame)] if {$ii>0} { - set ds9(next) [lindex $ds9(active) [expr $ii-1]] + GotoFrame [lindex $ds9(active) [expr $ii-1]] } else { - set ds9(next) [lindex $ds9(active) [expr $ds9(active,num)-1]] + GotoFrame [lindex $ds9(active) [expr [llength $ds9(active)]-1]] } - GotoFrame } proc NextFrame {} { @@ -1564,19 +1569,17 @@ global current set ii [lsearch $ds9(active) $current(frame)] - if {$ii < [expr $ds9(active,num)-1]} { - set ds9(next) [lindex $ds9(active) [expr $ii+1]] + if {$ii < [expr [llength $ds9(active)]-1]} { + GotoFrame [lindex $ds9(active) [expr $ii+1]] } else { - set ds9(next) [lindex $ds9(active) 0] + GotoFrame [lindex $ds9(active) 0] } - GotoFrame } proc LastFrame {} { global ds9 - set ds9(next) [lindex $ds9(active) [expr $ds9(active,num)-1]] - GotoFrame + GotoFrame [lindex $ds9(active) [expr [llength $ds9(active)]-1]] } proc MoveFirstFrame {} { @@ -1648,30 +1651,23 @@ # reset active list set ds9(active) {} - set ds9(active,num) 0 - foreach f $ds9(frames) { - if {$active($f)} { - lappend ds9(active) $f + foreach ff $ds9(frames) { + if {$active($ff)} { + lappend ds9(active) $ff $ds9(mb).frame.goto entryconfig \ - "[msgcat::mc {Frame}] [string range $f 5 end]" -state normal + "[msgcat::mc {Frame}] [string range $ff 5 end]" -state normal } else { $ds9(mb).frame.goto entryconfig \ - "[msgcat::mc {Frame}] [string range $f 5 end]" -state disabled + "[msgcat::mc {Frame}] [string range $ff 5 end]" -state disabled } - } - set ds9(active,num) [llength $ds9(active)] # New layout if needed - if {$ds9(active,num) > 0} { + if {[llength $ds9(active)] > 0} { if {[lsearch $ds9(active) $current(frame)] == -1} { - if {$ds9(next) != {}} { - set current(frame) $ds9(next) - } else { - set current(frame) [lindex $ds9(active) 0] - set ds9(next) $current(frame) - } + set current(frame) [lindex $ds9(active) 0] + set current(colorbar) ${current(frame)}cb } } @@ -1698,31 +1694,63 @@ UpdateActiveFrames } -proc GotoFrame {} { +proc GotoFrame {which} { global ds9 global current global active + global view - if {$current(frame) != {} && $current(frame) != $ds9(next)} { + if {$current(frame) != {} && $current(frame) != $which} { $current(frame) highlite off $current(frame) panner off switch -- $ds9(display) { blink - single { - $current(frame) hide - UnBindEventsFrame $current(frame) + set ff $current(frame) + # frame + $ff hide + + # colorbar + if {$view(colorbar)} { + ${ff}cb hide + } + + # graphs + if {$view(graph,horz)} { + GraphHide $ff horz + } + if {$view(graph,vert)} { + GraphHide $ff vert + } + } tile {} } } - if {$current(frame) != $ds9(next)} { - if {$current(frame) != {}} { - $current(frame) colorbar tag "\{[$current(colorbar) get tag]\}" + if {$current(frame) != $which} { + set current(frame) $which + set current(colorbar) ${current(frame)}cb + + # frame + $current(frame) show + $ds9(canvas) raise $current(frame) + + # colorbar + if {$view(colorbar)} { + $current(colorbar) show + $ds9(canvas) raise $current(colorbar) + } + + # graphs + if {$view(graph,horz)} { + GraphShow $current(frame) horz } - set current(frame) $ds9(next) - set ds9(next) {} + if {$view(graph,vert)} { + GraphShow $current(frame) vert + } + FrameToFront } } @@ -1737,7 +1765,7 @@ switch -- $current(display) { single {set ds9(display) $current(display)} tile { - if {$ds9(active,num) > 1} { + if {[llength $ds9(active)] > 1} { set ds9(display) $current(display) } else { switch -- $tile(grid,mode) { @@ -1747,7 +1775,7 @@ } } blink { - if {$ds9(active,num) > 1} { + if {[llength $ds9(active)] > 1} { set ds9(display) $current(display) } else { set ds9(display) single @@ -1782,13 +1810,12 @@ global iblink global ds9 - if {$ds9(active,num) > 0} { + if {[llength $ds9(active)] > 0} { incr iblink(index) - if {$iblink(index) >= $ds9(active,num)} { + if {$iblink(index) >= [llength $ds9(active)]} { set iblink(index) 0 } - set ds9(next) [lindex $ds9(active) $iblink(index)] - GotoFrame + GotoFrame [lindex $ds9(active) $iblink(index)] } set iblink(id) [after $blink(interval) BlinkTimer] @@ -1818,7 +1845,6 @@ RefreshInfoBox $which PixelTableClearDialog - ClearGraphData LockFrame $which UpdatePanZoomDialog @@ -1828,7 +1854,7 @@ UpdateZoomMenu UpdateScaleMenu UpdateScaleDialog - UpdateGraphAxis $which + UpdateGraphsAxis $which SAMPSendCoordPointAtSkyCmd $which } @@ -1841,7 +1867,6 @@ ClearInfoBox PixelTableClearDialog - ClearGraphData UpdateDS9 } @@ -1849,13 +1874,12 @@ proc ClearAllFrame {} { global ds9 - foreach f $ds9(frames) { - ClearFrame $f + foreach ff $ds9(frames) { + ClearFrame $ff } ClearInfoBox PixelTableClearDialog - ClearGraphData UpdateDS9 } @@ -1897,6 +1921,10 @@ DestroyHeader $which $which clear + + # after unload + HideGraphsData $which + UpdateGraphsAxis $which } # Private Procedures @@ -1906,79 +1934,21 @@ global current global view global colorbar - global blink - - set which $current(frame) - - # process proper colorbar - switch -- [$which get type] { - base - - 3d { - if {$view(colorbar)} { - colorbar show - } else { - colorbar hide - } - colorbarrgb hide - set current(colorbar) colorbar - - colorbar colorbar [$which get colorbar] - colorbar tag "\{[$which get colorbar tag]\}" - set colorbar(map) [colorbar get name] - - $ds9(canvas) raise colorbar colorbarrgb - } - rgb { - colorbar hide - if {$view(colorbar)} { - colorbarrgb show - } else { - colorbarrgb hide - } - set current(colorbar) colorbarrgb - colorbarrgb colorbar [$which get colorbar] - colorbarrgb rgb channel [$which get rgb channel] - - $ds9(canvas) raise colorbarrgb colorbar - } - } + set colorbar(map) [$current(colorbar) get name] set colorbar(invert) [$current(colorbar) get invert] - $ds9(canvas) raise $which - - $which show switch -- $ds9(display) { single - - blink { - if {!$ds9(freeze)} { - BindEventsFrame $which - } - } - tile {$which highlite on} + blink {} + tile {$current(frame) highlite on} } if {$view(panner)} { - $which panner on + $current(frame) panner on } - UpdateGraphLayout $which UpdateDS9 - - # Aqua has a problem with refreshing - switch $ds9(wm) { - x11 - - win32 {} - aqua { - if {!$ds9(init)} { - global debug - if {$debug(tcl,idletasks)} { - puts stderr "FrameToFront" - } - update idletasks - } - } - } } proc TileDialog {} { diff -Nru saods9-8.2+repack/ds9/library/graph.tcl saods9-8.3+repack/ds9/library/graph.tcl --- saods9-8.2+repack/ds9/library/graph.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/graph.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -6,141 +6,494 @@ proc GraphDef {} { global igraph + global dgraph global pgraph global graph set igraph(top) .grph set igraph(mb) .grphmb - set igraph(horz,id) 0 - set igraph(vert,id) 0 - - set igraph(size) 150 - set igraph(gap,x) 50 - set igraph(gap,y) 25 - - set igraph(x,min) 0 - set igraph(x,max) 10 - set igraph(y,min) 1 + set igraph(tick,len) 4 + set igraph(x,max) 100 set igraph(y,max) 100 - global graphHorzX graphHorzY - global graphVertX graphVertY - global histX histY - - blt::vector create graphHorzX graphHorzY - blt::vector create graphVertX graphVertY - blt::vector create histX histY - - set graph(horz,grid) 1 - set graph(horz,log) false - set graph(horz,thick) 1 - set graph(horz,method) average - set graph(vert,grid) 1 - set graph(vert,log) false - set graph(vert,thick) 1 - set graph(vert,method) average + set dgraph(horz,offset) 100 + set dgraph(vert,offset) 0 + + set graph(font) helvetica + set graph(font,size) 9 + set graph(font,weight) normal + set graph(font,slant) roman + + set graph(size) 150 + set graph(grid) 1 + set graph(log) 0 + set graph(thick) 1 + set graph(method) average array set pgraph [array get graph] } -proc CreateGraphs {} { +proc GraphsCreate {frame} { + global ds9 + global canvas global igraph + global dgraph + global graph + + set varname ${frame}gr + global $varname + + # horizontal + set hg [string tolower ${frame}grh] + set horz [blt::graph $ds9(main).$hg \ + -width $canvas(width) \ + -height $graph(size) \ + -takefocus 0 \ + -highlightthickness 0 \ + -plotpadx 0 -plotpady 0 \ + -plotborderwidth 0 \ + -foreground [ThemeTreeForeground] \ + -background [ThemeTreeBackground] \ + -plotbackground [ThemeTreeBackground] \ + -rightmargin $dgraph(horz,offset) \ + ] + + set xv [blt::vector create ${varname}grhx] + set yv [blt::vector create ${varname}grhy] + + $horz legend configure -hide yes + $horz crosshairs configure -color green + + $horz xaxis configure -hide no -showticks no -linewidth 0 \ + -bg [ThemeTreeBackground] -color [ThemeTreeForeground] \ + -tickdefault $igraph(tick,len) \ + -min 0 -max $igraph(x,max) + $horz x2axis configure -hide yes \ + -bg [ThemeTreeBackground] -color [ThemeTreeForeground] \ + -min 0 -max $igraph(x,max) + $horz yaxis configure -hide yes \ + -bg [ThemeTreeBackground] -color [ThemeTreeForeground] \ + -min 1 -max $igraph(y,max) + $horz y2axis configure -hide no \ + -bg [ThemeTreeBackground] -color [ThemeTreeForeground] \ + -min 1 -max $igraph(y,max) + $horz element create line1 -xdata $xv -ydata $yv \ + -symbol none -color [ThemeTreeForeground] + + # blt graph + set ${varname}(horz) $horz + # blt vectors + set ${varname}(horz,vect,xx) $xv + set ${varname}(horz,vect,yy) $yv + # canvas window id + set ${varname}(horz,id) 0 + # canvas coords + set ${varname}(horz,xx) 0 + set ${varname}(horz,yy) 0 + + # vertical + set vg [string tolower ${frame}grv] + set vert [blt::graph $ds9(main).$vg \ + -invertxy yes \ + -width $graph(size) \ + -height $canvas(height) \ + -takefocus 0 \ + -highlightthickness 0 \ + -plotborderwidth 0 \ + -foreground [ThemeTreeForeground] \ + -background [ThemeTreeBackground] \ + -plotbackground [ThemeTreeBackground] \ + ] + + set xv [blt::vector create ${varname}grvx] + set yv [blt::vector create ${varname}grvy] + + $vert legend configure -hide yes + $vert crosshairs configure -color green + + $vert xaxis configure -hide yes -descending yes \ + -bg [ThemeTreeBackground] -color [ThemeTreeForeground] \ + -min 0 -max $igraph(x,max) + $vert x2axis configure -hide no -descending yes \ + -showticks no -linewidth 0 \ + -bg [ThemeTreeBackground] -color [ThemeTreeForeground] \ + -min 0 -max $igraph(x,max) + + $vert yaxis configure -hide no -descending yes \ + -bg [ThemeTreeBackground] -color [ThemeTreeForeground] \ + -min 1 -max $igraph(y,max) + $vert y2axis configure -hide yes -descending yes \ + -bg [ThemeTreeBackground] -color [ThemeTreeForeground] \ + -tickdefault $igraph(tick,len) \ + -min 1 -max $igraph(y,max) + + $vert element create line1 -xdata $xv -ydata $yv \ + -symbol none -color [ThemeTreeForeground] + + # blt graph + set ${varname}(vert) $vert + # blt vectors + set ${varname}(vert,vect,xx) $xv + set ${varname}(vert,vect,yy) $yv + # canvas window id + set ${varname}(vert,id) 0 + # canvas coords + set ${varname}(vert,xx) 0 + set ${varname}(vert,yy) 0 + + UpdateGraphGrid $frame + UpdateGraphFont $frame horz + UpdateGraphFont $frame vert + BindEventsGraph $frame +} + +proc GraphsDelete {frame} { global ds9 - global canvas - # Horizontal Graph - set ds9(graph,horz) [blt::graph $ds9(main).horz \ - -width $canvas(width) -height $igraph(size) \ - -takefocus 0 \ - -highlightthickness 0 \ - -font [font actual TkDefaultFont] \ - -plotpadx 0 -plotpady 0 \ - -borderwidth 0 \ - -foreground [ThemeTreeForeground] \ - -background [ThemeTreeBackground] \ - -plotbackground [ThemeTreeBackground] \ - ] - - $ds9(graph,horz) legend configure -hide yes - $ds9(graph,horz) crosshairs configure -color green - - $ds9(graph,horz) xaxis configure -hide no -showticks no -linewidth 0 \ - -bg [ThemeTreeBackground] -color [ThemeTreeForeground] - $ds9(graph,horz) x2axis configure -hide yes \ - -bg [ThemeTreeBackground] -color [ThemeTreeForeground] - $ds9(graph,horz) yaxis configure -hide yes \ - -bg [ThemeTreeBackground] -color [ThemeTreeForeground] - $ds9(graph,horz) y2axis configure -hide no -bg [ThemeTreeBackground] \ - -tickfont [font actual TkDefaultFont] \ - -bg [ThemeTreeBackground] -color [ThemeTreeForeground] - - $ds9(graph,horz) element create line1 \ - -xdata graphHorzX -ydata graphHorzY -symbol none \ - -color [ThemeTreeForeground] - - bind $ds9(graph,horz) [list EnterGraph $ds9(graph,horz) 1] - bind $ds9(graph,horz) [list LeaveGraph $ds9(graph,horz)] - bind $ds9(graph,horz) \ - [list MotionGraph $ds9(graph,horz) %x %y 1] - bind $ds9(graph,horz) \ - [list MotionGraph $ds9(graph,horz) %x %y 1] - bind $ds9(graph,horz) [list ArrowKeyGraph $ds9(graph,horz) 0 -1 1] - bind $ds9(graph,horz) [list ArrowKeyGraph $ds9(graph,horz) 0 1 1] - bind $ds9(graph,horz) [list ArrowKeyGraph $ds9(graph,horz) -1 0 1] - bind $ds9(graph,horz) [list ArrowKeyGraph $ds9(graph,horz) 1 0 1] + set varname ${frame}gr + global $varname + + # horizontal + if {[subst $${varname}(horz,id)]} { + $ds9(canvas) delete [subst $${varname}(horz,id)] + } + destroy [subst $${varname}(horz)] + destroy [subst $${varname}(horz,vect,xx)] + destroy [subst $${varname}(horz,vect,yy)] + + # vertical + if {[subst $${varname}(vert,id)]} { + $ds9(canvas) delete [subst $${varname}(vert,id)] + } + destroy [subst $${varname}(vert)] + destroy [subst $${varname}(vert,vect,xx)] + destroy [subst $${varname}(vert,vect,yy)] + + unset $varname +} + +proc BindEventsGraph {frame} { + global ds9 + + global debug + if {$debug(tcl,graph)} { + puts stderr "BindEventsGraph $frame" + } + + set varname ${frame}gr + global $varname + + # horizontal + set horz [subst $${varname}(horz)] + bind $horz [list EnterGraph $frame horz] + bind $horz [list LeaveGraph $frame horz] + + bind $horz [list MotionGraph $frame %x %y horz] + bind $horz [list MotionGraph $frame %x %y horz] + bind $horz [list ArrowKeyGraph $frame 0 -1 horz] + bind $horz [list ArrowKeyGraph $frame 0 1 horz] + bind $horz [list ArrowKeyGraph $frame -1 0 horz] + bind $horz [list ArrowKeyGraph $frame 1 0 horz] switch $ds9(wm) { x11 - - win32 {bind $ds9(graph,horz) <> {ThemeConfigGraph %W}} + win32 {bind $horz <> {ThemeConfigGraph %W}} aqua {} } - # Vertical Graph - set ds9(graph,vert) [blt::graph $ds9(main).vert \ - -invertxy yes \ - -width $igraph(size) -height $canvas(height) \ - -takefocus 0 \ - -highlightthickness 0 \ - -borderwidth 0 \ - -font [font actual TkDefaultFont] \ - -foreground [ThemeTreeForeground] \ - -background [ThemeTreeBackground] \ - -plotbackground [ThemeTreeBackground] \ - ] - - $ds9(graph,vert) legend configure -hide yes - $ds9(graph,vert) crosshairs configure -color green - - $ds9(graph,vert) xaxis configure -hide yes -descending yes \ - -bg [ThemeTreeBackground] -color [ThemeTreeForeground] - $ds9(graph,vert) x2axis configure -hide no -descending yes \ - -showticks no -linewidth 0 \ - -bg [ThemeTreeBackground] -color [ThemeTreeForeground] \ + # vertical + set vert [subst $${varname}(vert)] + bind $vert [list EnterGraph $frame vert] + bind $vert [list LeaveGraph $frame vert] + bind $vert [list MotionGraph $frame %x %y vert] + bind $vert [list MotionGraph $frame %x %y vert] + bind $vert [list ArrowKeyGraph $frame 0 -1 vert] + bind $vert [list ArrowKeyGraph $frame 0 1 vert] + bind $vert [list ArrowKeyGraph $frame -1 0 vert] + bind $vert [list ArrowKeyGraph $frame 1 0 vert] + + switch $ds9(wm) { + x11 - + win32 {bind $vert <> {ThemeConfigGraph %W}} + aqua {} + } +} + +proc UnBindEventsGraph {frame} { + global ds9 + + global debug + if {$debug(tcl,graph)} { + puts stderr "UnBindEventsGraph $frame" + } + + set varname ${frame}gr + global $varname + + # horizontal + set horz [subst $${varname}(horz)] + bind $horz {} + bind $horz {} + bind $horz {} + bind $horz {} + bind $horz {} + bind $horz {} + bind $horz {} + bind $horz {} + + switch $ds9(wm) { + x11 - + win32 {bind $horz <> {}} + aqua {} + } + + # vertical + set vert [subst $${varname}(vert)] + bind $vert {} + bind $vert {} + bind $vert {} + bind $vert {} + bind $vert {} + bind $vert {} + bind $vert {} + bind $vert {} + + switch $ds9(wm) { + x11 - + win32 {bind $vert <> {}} + aqua {} + } +} + +proc LayoutGraphsAdjust {} { + global dgraph + global graphgr + + set ff [$graphgr(horz) xaxis cget -tickfont] + set tl [$graphgr(horz) xaxis cget -ticklength] + set sp [font metrics $ff -linespace] + set dgraph(vert,offset) [expr $tl + $sp + 4] +} + +proc LayoutGraphHorz {frame fx fy fw fh} { + global colorbar + global view + global dgraph + global graph + global canvas + + global debug + if {$debug(tcl,graph)} { + puts stderr "LayoutGraphHorz $frame $fx $fy $fw $fh" + } - $ds9(graph,vert) yaxis configure -hide no -descending yes \ - -tickfont [font actual TkDefaultFont] \ - -bg [ThemeTreeBackground] -color [ThemeTreeForeground] - $ds9(graph,vert) y2axis configure -hide yes -descending yes \ - -bg [ThemeTreeBackground] -color [ThemeTreeForeground] - - $ds9(graph,vert) element create line1 \ - -xdata graphVertX -ydata graphVertY -symbol none \ - -color [ThemeTreeForeground] - - bind $ds9(graph,vert) [list EnterGraph $ds9(graph,vert) 0] - bind $ds9(graph,vert) [list LeaveGraph $ds9(graph,vert)] - bind $ds9(graph,vert) \ - [list MotionGraph $ds9(graph,vert) %x %y 0] - bind $ds9(graph,vert) \ - [list MotionGraph $ds9(graph,vert) %x %y 0] - bind $ds9(graph,vert) [list ArrowKeyGraph $ds9(graph,vert) 0 -1 0] - bind $ds9(graph,vert) [list ArrowKeyGraph $ds9(graph,vert) 0 1 0] - bind $ds9(graph,vert) [list ArrowKeyGraph $ds9(graph,vert) -1 0 0] - bind $ds9(graph,vert) [list ArrowKeyGraph $ds9(graph,vert) 1 0 0] + set varname ${frame}gr + global $varname - UpdateGraphGrid + set cbh [expr $view(colorbar) && !$colorbar(orientation)] + set cbv [expr $view(colorbar) && $colorbar(orientation)] + set grh $view(graph,horz) + set grv $view(graph,vert) + + set xx $fx + set yy [expr $fy + $fh - $graph(size)] + set ww $fw + set hh $graph(size) + + # cbh + if {$cbh && !$cbv && !$grh && !$grv} { + } + # cbv + if {!$cbh && $cbv && !$grh && !$grv} { + } + + # cbhgrh + if {$cbh && !$cbv && $grh && !$grv} { + } + # cbhgrv + if {$cbh && !$cbv && !$grh && $grv} { + } + # cbhgrhgrv + if {$cbh && !$cbv && $grh && $grv} { + incr ww -$graph(size) + incr ww $dgraph(horz,offset) + } + + # cbvgrh + if {!$cbh && $cbv && $grh && !$grv} { + incr ww -$colorbar(vertical,width) + incr ww -$canvas(gap) + incr ww $dgraph(horz,offset) + } + # cbvgrv + if {!$cbh && $cbv && !$grh && $grv} { + } + # cbvgrhgrv + if {!$cbh && $cbv && $grh && $grv} { + incr ww -$colorbar(vertical,width) + incr ww -$canvas(gap) + incr ww -$graph(size) + incr ww $dgraph(horz,offset) + } + + # grh + if {!$cbh && !$cbv && $grh && !$grv} { + } + # grv + if {!$cbh && !$cbv && !$grh && $grv} { + } + # grhgrv + if {!$cbh && !$cbv && $grh && $grv} { + incr ww -$graph(size) + incr ww $dgraph(horz,offset) + } + + # sanity check + if {$xx<0} { + set xx 0 + } + if {$yy<0} { + set yy 0 + } + if {$ww<0} { + set ww 1 + } + if {$hh<0} { + set hh 1 + } + + [subst $${varname}(horz)] configure -width $ww -height $hh + set ${varname}(horz,xx) $xx + set ${varname}(horz,yy) $yy +} + +proc LayoutGraphVert {frame fx fy fw fh} { + global colorbar + global view + global dgraph + global graph + global canvas + + global debug + if {$debug(tcl,graph)} { + puts stderr "LayoutGraphVert $frame $fx $fy $fw $fh" + } + + set varname ${frame}gr + global $varname + + set cbh [expr $view(colorbar) && !$colorbar(orientation)] + set cbv [expr $view(colorbar) && $colorbar(orientation)] + set grh $view(graph,horz) + set grv $view(graph,vert) + + set xx [expr $fx + $fw - $graph(size)] + set yy $fy + set ww $graph(size) + set hh $fh + + # cbh + if {$cbh && !$cbv && !$grh && !$grv} { + } + # cbv + if {!$cbh && $cbv && !$grh && !$grv} { + } + + # cbhgrh + if {$cbh && !$cbv && $grh && !$grv} { + } + # cbhgrv + if {$cbh && !$cbv && !$grh && $grv} { + incr hh -$colorbar(horizontal,height) + incr hh -$canvas(gap) + incr hh $dgraph(vert,offset) + } + # cbhgrhgrv + if {$cbh && !$cbv && $grh && $grv} { + incr hh -$colorbar(horizontal,height) + incr hh -$canvas(gap) + incr hh -$graph(size) + incr hh $dgraph(vert,offset) + } + + # cbvgrh + if {!$cbh && $cbv && $grh && !$grv} { + } + # cbvgrv + if {!$cbh && $cbv && !$grh && $grv} { + } + # cbvgrhgrv + if {!$cbh && $cbv && $grh && $grv} { + incr hh -$graph(size) + incr hh $dgraph(vert,offset) + } + + # grh + if {!$cbh && !$cbv && $grh && !$grv} { + } + # grv + if {!$cbh && !$cbv && !$grh && $grv} { + } + # grhgrv + if {!$cbh && !$cbv && $grh && $grv} { + incr hh -$graph(size) + incr hh $dgraph(vert,offset) + } + + # sanity check + if {$xx<0} { + set xx 0 + } + if {$yy<0} { + set yy 0 + } + if {$ww<0} { + set ww 1 + } + if {$hh<0} { + set hh 1 + } + + [subst $${varname}(vert)] configure -width $ww -height $hh + set ${varname}(vert,xx) $xx + set ${varname}(vert,yy) $yy +} + +proc GraphShow {frame which} { + global ds9 + + set varname ${frame}gr + global $varname + + set gr [subst $${varname}($which)] + set id [subst $${varname}($which,id)] + set xx [subst $${varname}($which,xx)] + set yy [subst $${varname}($which,yy)] + + if {!$id} { + set ${varname}($which,id) [$ds9(canvas) create window $xx $yy \ + -window $gr -anchor nw] + } else { + $ds9(canvas) coords $gr $xx $yy + } + + # canvas raise has no affect on windows + raise $gr +} + +proc GraphHide {frame which} { + global ds9 + + set varname ${frame}gr + global $varname + + set id [subst $${varname}($which,id)] + if {$id} { + $ds9(canvas) delete $id + set ${varname}($which,id) 0 + } } proc ThemeConfigGraph {w} { @@ -158,308 +511,381 @@ $w element configure line1 -color [ThemeTreeForeground] } -proc UpdateGraphFont {} { +# Events +proc EnterGraph {frame which} { + set varname ${frame}gr + global $varname + + set gr [subst $${varname}($which)] + set xx [$gr crosshairs cget -x] + set yy [$gr crosshairs cget -y] + + focus $gr + $gr crosshairs on + + MotionGraph $frame $xx $yy $which +} + +proc LeaveGraph {frame which} { + set varname ${frame}gr + global $varname + + set gr [subst $${varname}($which)] + + focus {} + $gr crosshairs off + + LeaveInfoBox + PixelTableClearDialog +} + +proc MotionGraph {frame xx yy which} { + global current + + set varname ${frame}gr + global $varname + + set gr [subst $${varname}($which)] + set x0 [subst $${varname}($which,xx)] + set y0 [subst $${varname}($which,yy)] + + $gr crosshairs configure -x $xx -y $yy + + # don't process default graph + if {$frame == {graph}} { + return + } + + switch $current(mode) { + crosshair - + analysis { + set coord [$frame get crosshair canvas] + set XX [lindex $coord 0] + set YY [lindex $coord 1] + + set X0 [expr $xx+$x0] + set Y0 [expr $yy+$y0] + + switch $which { + horz { + UpdateInfoBox $frame $X0 $YY canvas + UpdatePixelTableDialog $frame $X0 $YY canvas + } + vert { + UpdateInfoBox $frame $XX $Y0 canvas + UpdatePixelTableDialog $frame $XX $Y0 canvas + } + } + } + } +} + +proc ArrowKeyGraph {frame xx yy which} { + set varname ${frame}gr + global $varname + + set gr [subst $${varname}($which)] + set cx [$gr crosshairs cget -x] + set cy [$gr crosshairs cget -y] + set cx [expr $cx+$xx] + set cy [expr $cy+$yy] + MotionGraph $frame $cx $cy $which +} + +# Update procs + +proc UpdateGraphsFont {} { global ds9 + + global debug + if {$debug(tcl,graph)} { + puts "UpdateGraphsFont" + } - $ds9(graph,horz) y2axis configure -tickfont [font actual TkDefaultFont] - $ds9(graph,vert) yaxis configure -tickfont [font actual TkDefaultFont] + UpdateGraphFont graph horz + UpdateGraphFont graph vert + foreach ff $ds9(frames) { + UpdateGraphFont $ff horz + UpdateGraphFont $ff vert + } } -proc UpdateGraphGrid {} { +proc UpdateGraphFont {frame which} { global graph global ds9 - $ds9(graph,horz) xaxis configure -grid $graph(horz,grid) -tickdefault 4 - $ds9(graph,horz) y2axis configure -grid $graph(horz,grid) + set varname ${frame}gr + global $varname - $ds9(graph,vert) x2axis configure -grid $graph(vert,grid) - $ds9(graph,vert) yaxis configure -grid $graph(vert,grid) -tickdefault 4 + [subst $${varname}($which)] y2axis configure -tickfont "$ds9($graph(font)) $graph(font,size) $graph(font,weight) $graph(font,slant)" + [subst $${varname}($which)] yaxis configure -tickfont "$ds9($graph(font)) $graph(font,size) $graph(font,weight) $graph(font,slant)" } -proc UpdateGraphAxis {which} { +proc UpdateGraphsMethod {} { global ds9 - global view - global graph + + global debug + if {$debug(tcl,graph)} { + puts "UpdateGraphsMethod" + } + + # don't process default + # UpdateGraphMethod graph + foreach ff $ds9(frames) { + UpdateGraphMethod $ff + } +} +proc UpdateGraphMethod {frame} { + set varname ${frame}gr + global $varname + + # don't process default graph + if {$frame == {graph}} { + return + } + + UpdateGraphAxis $frame horz + UpdateGraphAxis $frame vert +} + +proc UpdateGraphsGrid {} { + global ds9 + global debug - if {$debug(tcl,update)} { - puts stderr "UpdateGraphAxis" + if {$debug(tcl,graph)} { + puts "UpdateGraphsGrid" } - if {$view(graph,horz)} { - UpdateGraphXAxisHV $which $ds9(graph,horz) graphHorzX - UpdateGraphYAxisHV $which $ds9(graph,horz) graphHorzY \ - $graph(horz,log) $graph(horz,thick) $graph(horz,method) + UpdateGraphGrid graph + foreach ff $ds9(frames) { + UpdateGraphGrid $ff } +} + +proc UpdateGraphGrid {frame} { + global ds9 + global graph + + set varname ${frame}gr + global $varname - if {$view(graph,vert)} { - UpdateGraphXAxisHV $which $ds9(graph,vert) graphVertX - UpdateGraphYAxisHV $which $ds9(graph,vert) graphVertY \ - $graph(vert,log) $graph(vert,thick) $graph(vert,method) + [subst $${varname}(horz)] xaxis configure -grid $graph(grid) + [subst $${varname}(horz)] y2axis configure -grid $graph(grid) \ + -logscale $graph(log) + + [subst $${varname}(vert)] yaxis configure -grid $graph(grid) \ + -logscale $graph(log) + [subst $${varname}(vert)] x2axis configure -grid $graph(grid) +} + +proc UpdateGraphsAxis {frame} { + global debug + if {$debug(tcl,graph)} { + puts "UpdateGraphsAxis $frame" + } + + # sanity check + if {$frame == {}} { + return } + + # don't process default graph + if {$frame == {graph}} { + return + } + + UpdateGraphAxis $frame horz + UpdateGraphAxis $frame vert } -proc UpdateGraphXAxisHV {which what vectorX} { +proc UpdateGraphAxis {frame which} { + global ds9 + global current + + global debug + if {$debug(tcl,graph)} { + puts "UpdateGraphAxis $frame $which" + } + + UpdateGraphAxisX $frame $which + UpdateGraphAxisY $frame $which +} + +proc UpdateGraphAxisX {frame which} { + global ds9 global igraph - global graphHorzX graphVertX - if {$which != {}} { - set xMin [expr "$$vectorX\(min\)"] - set xMax [expr "$$vectorX\(max\)"] + global debug + if {$debug(tcl,graph)} { + puts "UpdateGraphAxisX $frame $which" + } - $what xaxis configure -min $xMin -max $xMax - $what x2axis configure -min $xMin -max $xMax + set varname ${frame}gr + global $varname + + set gr [subst $${varname}($which)] + + if {[$frame has fits]} { + set xmax [$ds9(canvas) itemcget $frame -width] + $gr xaxis configure -min 0 -max $xmax + $gr x2axis configure -min 0 -max $xmax } else { - $what xaxis configure -min $igraph(x,min) -max $igraph(x,max) - $what x2axis configure -min $igraph(x,min) -max $igraph(x,max) + $gr xaxis configure -min 0 -max $igraph(x,max) + $gr x2axis configure -min 0 -max $igraph(x,max) } } -proc UpdateGraphYAxisHV {which what vectorY log thick method} { +proc UpdateGraphAxisY {frame which} { global igraph - global graphHorzY graphVertY + global graph + + global debug + if {$debug(tcl,graph)} { + puts "UpdateGraphAxisY $frame $which" + } + + set varname ${frame}gr + global $varname + + set gr [subst $${varname}($which)] - if {$which != {}} { - set minmax [$which get clip] - set yMin [lindex $minmax 0] - set yMax [lindex $minmax 1] + if {[$frame has fits]} { + set minmax [$frame get minmax] + set ymin [lindex $minmax 0] + set ymax [lindex $minmax 1] # must use .eq. since "nan" is a legal double value - if {$yMin eq "nan" || $yMax eq "nan"} { - set yMin 0 - set yMax 1 + if {$ymin eq "nan" || $ymax eq "nan"} { + set ymin 0 + set ymax 1 } - if {$yMin >= $yMax} { - set yMax [expr $yMin + 1] + if {$ymin >= $ymax} { + set ymax [expr $ymin + 1] } - switch $method { - sum { - set yMax [expr $yMax*$thick] - } + switch $graph(method) { + sum {set ymax [expr $ymax*$graph(thick)]} average {} } - $what yaxis configure -min $yMin -max $yMax \ - -logscale $log -tickdefault 4 - $what y2axis configure -min $yMin -max $yMax \ - -logscale $log -tickdefault 4 + $gr yaxis configure -min $ymin -max $ymax + $gr y2axis configure -min $ymin -max $ymax } else { - $what yaxis configure -min $igraph(y,min) -max $igraph(y,max) \ - -logscale $log -tickdefault 4 - $what y2axis configure -min $igraph(y,min) -max $igraph(y,max) \ - -logscale $log -tickdefault 4 - } -} - -proc ClearGraphData {} { - global ds9 - global view - - if {$view(graph,horz)} { - $ds9(graph,horz) element configure line1 -hide yes - } - - if {$view(graph,vert)} { - $ds9(graph,vert) element configure line1 -hide yes + $gr yaxis configure -min 1 -max $igraph(y,max) + $gr y2axis configure -min 1 -max $igraph(y,max) } } -proc UpdateGraphData {which x y sys} { - global ds9 +proc UpdateGraphsData {frame xx yy sys} { global view - global graph - global dgraph global debug - if {$debug(tcl,update)} { - puts stderr "UpdateGraphData" + if {$debug(tcl,graph)} { + puts "UpdateGraphsData $frame $xx $yy $sys" } - # save for later - set dgraph(frame) $which - set dgraph(x) $x - set dgraph(y) $y + # don't process default graph + if {$frame == {graph}} { + return + } - if {![$which has fits]} { + if {![$frame has fits]} { return } if {$view(graph,horz)} { - $which get horizontal cut graphHorzX graphHorzY $x $y $sys \ - $graph(horz,thick) $graph(horz,method) - $ds9(graph,horz) element configure line1 -hide no + UpdateGraphData $frame horz $xx $yy $sys } - if {$view(graph,vert)} { - $which get vertical cut graphVertX graphVertY $x $y $sys \ - $graph(vert,thick) $graph(vert,method) - $ds9(graph,vert) element configure line1 -hide no + UpdateGraphData $frame vert $xx $yy $sys } } -proc EnterGraph {which horz} { - global current +proc UpdateGraphData {frame which xx yy sys} { + global graph - focus $which - $which crosshairs on + global debug + if {$debug(tcl,graph)} { + puts "UpdateGraphData $frame $which $xx $yy $sys" + } - if {$current(frame) != {}} { - switch $current(mode) { - crosshair - - analysis { - - set x [$which crosshairs cget -x] - set y [$which crosshairs cget -y] - - set coord [$current(frame) get crosshair canvas] - set X [lindex $coord 0] - set Y [lindex $coord 1] - - if {$horz} { - EnterInfoBox $current(frame) - UpdateInfoBox $current(frame) $x $Y canvas - UpdatePixelTableDialog $current(frame) $x $Y canvas - } else { - EnterInfoBox $current(frame) - UpdateInfoBox $current(frame) $X $y canvas - UpdatePixelTableDialog $current(frame) $X $y canvas - } - } - } + set varname ${frame}gr + global $varname + + switch $which { + horz {set key horizontal} + vert {set key vertical} } + + $frame get $key cut \ + [subst $${varname}($which,vect,xx)] \ + [subst $${varname}($which,vect,yy)] \ + $xx $yy $sys $graph(thick) $graph(method) } -proc LeaveGraph {which} { - focus {} - $which crosshairs off +proc ShowGraphsData {frame} { + global view - LeaveInfoBox - PixelTableClearDialog -} + global debug + if {$debug(tcl,graph)} { + puts "ShowGraphsData $frame" + } -proc MotionGraph {which x y horz} { - global current + # don't process default graph + if {$frame == {graph}} { + return + } - $which crosshairs configure -x $x -y $y + if {![$frame has fits]} { + return + } - if {$current(frame) != {}} { - switch $current(mode) { - crosshair - - analysis { - set coord [$current(frame) get crosshair canvas] - set X [lindex $coord 0] - set Y [lindex $coord 1] - if {$horz} { - UpdateInfoBox $current(frame) $x $Y canvas - UpdatePixelTableDialog $current(frame) $x $Y canvas - } else { - UpdateInfoBox $current(frame) $X $y canvas - UpdatePixelTableDialog $current(frame) $X $y canvas - } - } - } + if {$view(graph,horz)} { + ShowGraphData $frame horz + } + if {$view(graph,vert)} { + ShowGraphData $frame vert } } -proc ArrowKeyGraph {which x y horz} { - set cx [$which crosshairs cget -x] - set cy [$which crosshairs cget -y] +proc ShowGraphData {frame which} { + set varname ${frame}gr + global $varname - set cx [expr $cx+$x] - set cy [expr $cy+$y] - - MotionGraph $which $cx $cy $horz + [subst $${varname}($which)] element configure line1 -hide no } -proc UpdateGraphLayout {which} { - global igraph - - global ds9 - global canvas +proc HideGraphsData {frame} { global view - global colorbar - global icolorbar global debug - if {$debug(tcl,layout)} { - puts stderr "UpdateGraphLayout $which" + if {$debug(tcl,graph)} { + puts "HideGraphsData $frame" } - if {$which != {}} { - set frww [$ds9(canvas) itemcget $which -width] - set frhh [$ds9(canvas) itemcget $which -height] - set frxx [$ds9(canvas) itemcget $which -x] - set fryy [$ds9(canvas) itemcget $which -y] - } else { - set frww $canvas(width) - set frhh $canvas(height) - set frxx 0 - set fryy 0 + # don't process default graph + if {$frame == {graph}} { + return } - set cbh [expr $view(colorbar) && \ - [string equal $colorbar(orientation) {horizontal}]] - set cbv [expr $view(colorbar) && \ - [string equal $colorbar(orientation) {vertical}]] - if {$view(graph,horz)} { - set xx $frxx - set yy [expr $canvas(height) + $canvas(gap)] - - if {$cbh} { - incr yy $icolorbar(horizontal,height) - } - if {$view(graph,vert) && !$cbh} { - incr yy $igraph(gap,y) - } - - if {!$igraph(horz,id)} { - set igraph(horz,id) [$ds9(canvas) create window $xx $yy \ - -window $ds9(graph,horz) -anchor nw] - } else { - $ds9(canvas) coords $igraph(horz,id) $xx $yy - } - - set ww [expr $frww+$igraph(gap,x)] - $ds9(graph,horz) configure -width $ww - } else { - if {$igraph(horz,id)} { - $ds9(canvas) delete $igraph(horz,id) - set igraph(horz,id) 0 - } + HideGraphData $frame horz } - if {$view(graph,vert)} { - set yy $fryy - set xx [expr $canvas(width) + $canvas(gap)] - - if {$cbv} { - incr xx $icolorbar(vertical,width) - } - if {$view(graph,horz) && !$cbv} { - incr xx $igraph(gap,x) - } - - if {!$igraph(vert,id)} { - set igraph(vert,id) [$ds9(canvas) create window $xx $yy \ - -window $ds9(graph,vert) -anchor nw] - } else { - $ds9(canvas) coords $igraph(vert,id) $xx $yy - } + HideGraphData $frame vert + } +} - set hh [expr $frhh+$igraph(gap,y)] - $ds9(graph,vert) configure -height $hh +proc HideGraphData {frame which} { + set varname ${frame}gr + global $varname - } else { - if {$igraph(vert,id)} { - $ds9(canvas) delete $igraph(vert,id) - set igraph(vert,id) 0 - } - } + [subst $${varname}($which)] element configure line1 -hide yes } +# Dialog proc GraphDialog {} { global igraph global graph @@ -489,61 +915,15 @@ EditMenu $mb igraph - # Horizontal - set f [ttk::labelframe $w.horz -text [msgcat::mc {Horizontal}] -padding 2] + set f [ttk::labelframe $w.gr -text [msgcat::mc {graph}] -padding 2] - ttk::checkbutton $f.hgrid -text [msgcat::mc {Show Grid}] \ - -variable graph(horz,grid) \ - -command UpdateGraphGrid - ttk::label $f.htaxis -text [msgcat::mc {Axis}] - ttk::radiobutton $f.hlaxis -text [msgcat::mc {Linear}] \ - -variable graph(horz,log) -value false \ - -command [list UpdateGraphAxis $current(frame)] - ttk::radiobutton $f.hgaxis -text [msgcat::mc {Log}] \ - -variable graph(horz,log) -value true \ - -command [list UpdateGraphAxis $current(frame)] - ttk::label $f.htthick -text [msgcat::mc {Thickness}] - ttk::entry $f.hthick -textvariable graph(horz,thick) -width 7 - ttk::label $f.htmethod -text [msgcat::mc {Method}] - ttk::radiobutton $f.hamethod -text [msgcat::mc {Average}] \ - -variable graph(horz,method) -value average \ - -command [list UpdateGraphAxis $current(frame)] - ttk::radiobutton $f.hsmethod -text [msgcat::mc {Sum}] \ - -variable graph(horz,method) -value sum \ - -command [list UpdateGraphAxis $current(frame)] - - grid $f.hgrid -padx 2 -pady 2 -sticky w - grid $f.htaxis $f.hlaxis $f.hgaxis -padx 2 -pady 2 -sticky w - grid $f.htthick $f.hthick -padx 2 -pady 2 -sticky w - grid $f.htmethod $f.hamethod $f.hsmethod -padx 2 -pady 2 -sticky w - - # Vertical - set f [ttk::labelframe $w.vert -text [msgcat::mc {Vertical}] -padding 2] - - ttk::checkbutton $f.vgrid -text [msgcat::mc {Show Grid}] \ - -variable graph(vert,grid) \ - -command UpdateGraphGrid - ttk::label $f.vtaxis -text [msgcat::mc {Axis}] - ttk::radiobutton $f.vlaxis -text [msgcat::mc {Linear}] \ - -variable graph(vert,log) -value false \ - -command [list UpdateGraphAxis $current(frame)] - ttk::radiobutton $f.vgaxis -text [msgcat::mc {Log}] \ - -variable graph(vert,log) -value true \ - -command [list UpdateGraphAxis $current(frame)] - ttk::label $f.vtthick -text [msgcat::mc {Thickness}] - ttk::entry $f.vthick -textvariable graph(vert,thick) -width 7 - ttk::label $f.vtmethod -text [msgcat::mc {Method}] - ttk::radiobutton $f.vamethod -text [msgcat::mc {Average}] \ - -variable graph(vert,method) -value average \ - -command [list UpdateGraphAxis $current(frame)] - ttk::radiobutton $f.vsmethod -text [msgcat::mc {Sum}] \ - -variable graph(vert,method) -value sum \ - -command [list UpdateGraphAxis $current(frame)] - - grid $f.vgrid -padx 2 -pady 2 -sticky w - grid $f.vtaxis $f.vlaxis $f.vgaxis -padx 2 -pady 2 -sticky w - grid $f.vtthick $f.vthick -padx 2 -pady 2 -sticky w - grid $f.vtmethod $f.vamethod $f.vsmethod -padx 2 -pady 2 -sticky w + ttk::label $f.tsize -text [msgcat::mc {Size}] + ttk::entry $f.size -textvariable graph(size) -width 7 + ttk::label $f.tthick -text [msgcat::mc {Thickness}] + ttk::entry $f.thick -textvariable graph(thick) -width 7 + + grid $f.tsize $f.size -padx 2 -pady 2 -sticky w + grid $f.tthick $f.thick -padx 2 -pady 2 -sticky w # Buttons set f [ttk::frame $w.buttons] @@ -552,8 +932,7 @@ pack $f.apply $f.close -side left -expand true -padx 2 -pady 4 # Fini - grid $w.horz -sticky news - grid $w.vert -sticky news + grid $w.gr -sticky news grid $w.buttons - -sticky ew grid rowconfigure $w 0 -weight 1 grid columnconfigure $w 1 -weight 1 @@ -562,31 +941,84 @@ } proc GraphApplyDialog {} { - global ds9 - global igraph - global graph - global dgraph - - if {[info exists dgraph]} { - if {$dgraph(frame) != {}} { - set ii [lsearch $ds9(active) $dgraph(frame)] - if {$ii>=0} { - UpdateGraphData $dgraph(frame) $dgraph(x) $dgraph(y) canvas - } else { - set dgraph(frame) {} - } - } - } + # size changes layout + LayoutFrames } proc GraphDestroyDialog {} { global igraph - global dgraph if {[winfo exists $igraph(top)]} { destroy $igraph(top) destroy $igraph(mb) - unset dgraph } } +# Process Cmds + +proc ProcessGraphCmd {varname iname} { + upvar $varname var + upvar $iname i + + graph::YY_FLUSH_BUFFER + graph::yy_scan_string [lrange $var $i end] + graph::yyparse + incr i [expr $graph::yycnt-1] +} + +proc ProcessSendGraphCmd {proc id param {sock {}} {fn {}}} { + global parse + set parse(proc) $proc + set parse(id) $id + + graphsend::YY_FLUSH_BUFFER + graphsend::yy_scan_string $param + graphsend::yyparse +} + +proc PrefsDialogGraph {} { + global dprefs + global ds9 + global pds9 + global pmagnifier + global current + global pgraph + + set w $dprefs(tab) + + $dprefs(listbox) insert {} end -id [ttk::frame $w.graph] \ + -text [msgcat::mc {Graphs}] + + # Graph + set f [ttk::labelframe $w.graph.gr -text [msgcat::mc {Graph}]] + + ttk::checkbutton $f.grid -text [msgcat::mc {Grid}] \ + -variable pgraph(grid) + ttk::label $f.taxis -text [msgcat::mc {Axis}] + ttk::radiobutton $f.laxis -text [msgcat::mc {Linear}] \ + -variable pgraph(log) -value 0 + ttk::radiobutton $f.gaxis -text [msgcat::mc {Log}] \ + -variable pgraph(log) -value 1 + ttk::label $f.tmethod -text [msgcat::mc {Method}] + ttk::radiobutton $f.amethod -text [msgcat::mc {Average}] \ + -variable pgraph(method) -value average + ttk::radiobutton $f.smethod -text [msgcat::mc {Sum}] \ + -variable pgraph(method) -value sum + ttk::label $f.tfont -text [msgcat::mc {Font}] + ttk::label $f.tsize -text [msgcat::mc {Size}] + ttk::entry $f.size -textvariable pgraph(size) -width 7 + ttk::label $f.tthick -text [msgcat::mc {Thickness}] + ttk::entry $f.thick -textvariable pgraph(thick) -width 7 + + FontMenuButton $f.font pgraph font font,size font,weight font,slant {} + + grid $f.grid -padx 2 -pady 2 -sticky w + grid $f.taxis $f.laxis $f.gaxis -padx 2 -pady 2 -sticky w + grid $f.tmethod $f.amethod $f.smethod -padx 2 -pady 2 -sticky w + grid $f.tfont $f.font -padx 2 -pady 2 -sticky w + grid $f.tsize $f.size -padx 2 -pady 2 -sticky w + grid $f.tthick $f.thick -padx 2 -pady 2 -sticky w + + pack $w.graph.gr -side top -fill both -expand true +} + diff -Nru saods9-8.2+repack/ds9/library/grid.tcl saods9-8.3+repack/ds9/library/grid.tcl --- saods9-8.2+repack/ds9/library/grid.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/grid.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/group.tcl saods9-8.3+repack/ds9/library/group.tcl --- saods9-8.2+repack/ds9/library/group.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/group.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/header.tcl saods9-8.3+repack/ds9/library/header.tcl --- saods9-8.2+repack/ds9/library/header.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/header.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -224,7 +224,7 @@ global current if {$fn != {}} { - if {[catch {set ch [open "| cat > \"$fn\"" w]}]} { + if {[catch {set ch [open "$fn" w]}]} { Error [msgcat::mc {An error has occurred while saving}] return } diff -Nru saods9-8.2+repack/ds9/library/help.tcl saods9-8.3+repack/ds9/library/help.tcl --- saods9-8.2+repack/ds9/library/help.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/help.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -12,14 +12,15 @@ set help(command) "$ds9(root)/doc/ref/command.html" set help(userman) "$ds9(root)/doc/user/index.html" set help(faq) "$ds9(root)/doc/faq.html" - set help(release) "$ds9(root)/doc/release/r8.2.html" + set help(release) "$ds9(root)/doc/release/r8.3.html" set help(helpdesk) "$ds9(root)/doc/helpdesk.html" set help(story) "$ds9(root)/doc/story.html" set help(ack) "$ds9(root)/doc/acknowledgment.html" set help(vo) "$ds9(root)/doc/ref/vo.html" + # remember to update macos/SAOImageDS9/Contents/Resources/Credits.html set help(authors) "William Joye (Smithsonian Astrophysical Observatory)\nEric Mandel (Smithsonian Astrophysical Observatory)\nSteve Murray (Smithsonian Astrophysical Observatory)\n" - set help(about) "SAOImageDS9\nVersion $ds9(version,display)\n\nAuthors\n$help(authors)\nSAOImage DS9 development has been made possible by funding from NASA's Applied Information Systems Research Program, Chandra X-ray Science Center (CXC), and the High Energy Astrophysics Science Archive Center (HEASARC). Additional funding was provided by the JWST Mission office at Space Telescope Science Institute to improve capabilities for 3D data visualization.\n\nColormaps\nh5utils: Steven Johnson (MIT)\nViridis: Eric Firing (UW)\nCubehelix: Dave Green (Cavendish)\nGist: David Munro (LLNL)\nTopographic: Tom Patterson (US National Park Service) " + set help(about) "SAOImageDS9\nVersion $ds9(version,display)\n\nAuthors\n$help(authors)\nSAOImage DS9 development has been made possible by funding from NASA's Applied Information Systems Research Program, Chandra X-ray Science Center (CXC), and the High Energy Astrophysics Science Archive Center (HEASARC). Additional funding was provided by the JWST Mission office at Space Telescope Science Institute to improve capabilities for 3D data visualization." } proc HelpRef {} { diff -Nru saods9-8.2+repack/ds9/library/http.tcl saods9-8.3+repack/ds9/library/http.tcl --- saods9-8.2+repack/ds9/library/http.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/http.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/hvform.tcl saods9-8.3+repack/ds9/library/hvform.tcl --- saods9-8.2+repack/ds9/library/hvform.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/hvform.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/hvsup.tcl saods9-8.3+repack/ds9/library/hvsup.tcl --- saods9-8.2+repack/ds9/library/hvsup.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/hvsup.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/hv.tcl saods9-8.3+repack/ds9/library/hv.tcl --- saods9-8.2+repack/ds9/library/hv.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/hv.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -820,6 +820,9 @@ proc WebCmdCheck {} { global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar if {![info exists cvar(top)]} { @@ -849,8 +852,6 @@ proc WebCmdNew {url {ww {hvweb}}} { global ihv - global cvarname - upvar #0 $cvarname cvar set ii [lsearch $ihv(windows) $ww] if {$ii>=0} { @@ -878,6 +879,9 @@ proc WebCmdClick {id} { global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar if {![info exists cvar(widget)]} { diff -Nru saods9-8.2+repack/ds9/library/iexam.tcl saods9-8.3+repack/ds9/library/iexam.tcl --- saods9-8.2+repack/ds9/library/iexam.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/iexam.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/iis.tcl saods9-8.3+repack/ds9/library/iis.tcl --- saods9-8.2+repack/ds9/library/iis.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/iis.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/imgsvr.tcl saods9-8.3+repack/ds9/library/imgsvr.tcl --- saods9-8.2+repack/ds9/library/imgsvr.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/imgsvr.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -334,7 +334,9 @@ } } + # Log it HTTPLog $token + # Result? switch -- $var(code) { 200 - diff -Nru saods9-8.2+repack/ds9/library/import.tcl saods9-8.3+repack/ds9/library/import.tcl --- saods9-8.2+repack/ds9/library/import.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/import.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/info.tcl saods9-8.3+repack/ds9/library/info.tcl --- saods9-8.2+repack/ds9/library/info.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/info.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -139,31 +139,37 @@ -textvariable infobox(angle) -anchor center } -proc LayoutFrameInfoBox {which type} { +proc LayoutFrameInfoBox {which} { global view global debug if {$debug(tcl,events)} { - puts stderr "LayoutFrameInfoBox $which $type" + puts stderr "LayoutFrameInfoBox $which" } switch -- $view(layout) { horizontal { - LayoutFrameInfoBoxHorzValue $which $type - LayoutFrameInfoBoxHorzWCS $which $type - LayoutFrameInfoBoxHorzImage $which $type + LayoutFrameInfoBoxHorzValue $which + LayoutFrameInfoBoxHorzWCS $which + LayoutFrameInfoBoxHorzImage $which } vertical { - LayoutFrameInfoBoxVertValue $which $type - LayoutFrameInfoBoxVertWCS $which $type - LayoutFrameInfoBoxVertImage $which $type + LayoutFrameInfoBoxVertValue $which + LayoutFrameInfoBoxVertWCS $which + LayoutFrameInfoBoxVertImage $which } } } -proc LayoutFrameInfoBoxHorzValue {which type} { +proc LayoutFrameInfoBoxHorzValue {which} { global ds9 + if {$which != {}} { + set type [$which get type] + } else { + set type base + } + switch -- $type { base - 3d { @@ -193,7 +199,7 @@ } } -proc LayoutFrameInfoBoxHorzWCS {which type} { +proc LayoutFrameInfoBoxHorzWCS {which} { global ds9 global view @@ -215,11 +221,17 @@ } } -proc LayoutFrameInfoBoxHorzImage {which type} { +proc LayoutFrameInfoBoxHorzImage {which} { global ds9 global view - switch $type { + if {$which != {}} { + set type [$which get type] + } else { + set type base + } + + switch -- $type { base - rgb { if {$which != {} && $view(info,image)} { @@ -248,9 +260,15 @@ } } -proc LayoutFrameInfoBoxVertValue {which type} { +proc LayoutFrameInfoBoxVertValue {which} { global ds9 + if {$which != {}} { + set type [$which get type] + } else { + set type base + } + switch -- $type { base - 3d { @@ -280,7 +298,7 @@ } } -proc LayoutFrameInfoBoxVertWCS {which type} { +proc LayoutFrameInfoBoxVertWCS {which} { global ds9 global view @@ -301,11 +319,17 @@ } } -proc LayoutFrameInfoBoxVertImage {which type} { +proc LayoutFrameInfoBoxVertImage {which} { global ds9 global view - switch $type { + if {$which != {}} { + set type [$which get type] + } else { + set type base + } + + switch -- $type { base - rgb { if {$which != {} && $view(info,image)} { @@ -342,7 +366,7 @@ puts stderr "EnterInfoBox $which" } - LayoutFrameInfoBox $which [$which get type] + LayoutFrameInfoBox $which LayoutWCSInfoBox $which set infobox(frame) "[msgcat::mc {Frame}] [string range $which 5 end]" @@ -583,7 +607,7 @@ # also adjust layout.tcl CanvasDef switch $ds9(wm) { x11 {set xx 42} - aqua {set xx 40} + aqua - win32 {set xx 40} } @@ -815,7 +839,7 @@ grid forget $ds9(info).imageYValue } - LayoutFrameInfoBox $current(frame) base + LayoutFrameInfoBox $current(frame) # frame, zoom, angle if {$view(info,frame)} { @@ -1097,7 +1121,7 @@ grid forget $ds9(info).imageYValue } - LayoutFrameInfoBox $current(frame) base + LayoutFrameInfoBox $current(frame) # frame, zoom, angle if {$view(info,frame)} { diff -Nru saods9-8.2+repack/ds9/library/layout.tcl saods9-8.3+repack/ds9/library/layout.tcl --- saods9-8.2+repack/ds9/library/layout.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/layout.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -6,21 +6,14 @@ proc CanvasDef {} { global canvas - global icanvas global ds9 - # also adjust info.tcl LayoutInfoPanelHorz switch $ds9(wm) { - x11 {set icanvas(horz,width) 738} - aqua {set icanvas(horz,width) 777} - win32 {set icanvas(horz,width) 740} + x11 {set canvas(width) 738} + aqua {set canvas(width) 777} + win32 {set canvas(width) 740} } - - set icanvas(horz,height) 480 - set icanvas(vert,width) 640 - set icanvas(vert,height) 640 - set canvas(width) $icanvas(horz,width) - set canvas(height) $icanvas(horz,height) + set canvas(height) 528 set canvas(gap) 4 switch $ds9(wm) { @@ -33,7 +26,7 @@ default {set canvas(gap,bottom) 0} } } - aqua {set canvas(gap,bottom) 14} + aqua {set canvas(gap,bottom) 14} win32 {set canvas(gap,bottom) 0} } } @@ -74,6 +67,7 @@ global pview set view(layout) horizontal + set view(multi) 1 set view(info) 1 set view(panner) 1 set view(magnifier) 1 @@ -108,17 +102,10 @@ global ds9 global canvas - LayoutViewAdjust diff - set ww [expr $canvas(width)+$diff(x)] - set hh [expr $canvas(height)+$diff(y)] - - global debug - if {$debug(tcl,layout)} { - puts stderr "CreateCanvas $canvas(width) $canvas(height) ${ww}x${hh}" - } - set ds9(image) [ttk::frame $ds9(main).f] - set ds9(canvas) [canvas $ds9(image).c -width $ww -height $hh \ + set ds9(canvas) [canvas $ds9(image).c \ + -width $canvas(width) \ + -height $canvas(height) \ -highlightthickness 0 \ -insertofftime 0 \ -bg [ThemeTreeBackground] \ @@ -157,18 +144,20 @@ $w itemconfigure colorbar -fg [ThemeTreeForeground] $w itemconfigure colorbar -bg [ThemeTreeBackground] - $w itemconfigure colorbarrgb -fg [ThemeTreeForeground] - $w itemconfigure colorbarrgb -bg [ThemeTreeBackground] - foreach ff $ds9(frames) { $w itemconfigure $ff -fg [ThemeTreeForeground] $w itemconfigure $ff -bg [ThemeTreeBackground] - } - # since graphs are created, but maybe not realized - # must update manually - ThemeConfigGraph $ds9(graph,horz) - ThemeConfigGraph $ds9(graph,vert) + $w itemconfigure ${ff}cb -fg [ThemeTreeForeground] + $w itemconfigure ${ff}cb -bg [ThemeTreeBackground] + + # since graphs are created, but maybe not realized + # must update manually + set varname ${ff}gr + global $varname + ThemeConfigGraph [subst $${varname}(horz)] + ThemeConfigGraph [subst $${varname}(vert)] + } } proc InitCanvas {} { @@ -183,7 +172,7 @@ win32 {} } - bind $ds9(canvas) [list ConfigureView] + bind $ds9(canvas) [list LayoutView] # keyboard focus switch $ds9(wm) { @@ -227,6 +216,7 @@ proc Button3Canvas {x y} { global ds9 + global current global debug if {$debug(tcl,events)} { @@ -234,122 +224,58 @@ } set ds9(b3) 1 - ColorbarButton3 $x $y + if {$current(frame) != {}} { + ColorbarButton3 $current(frame) $x $y + } } proc Motion3Canvas {x y} { + global ds9 + global current + global debug if {$debug(tcl,events)} { puts stderr "Motion3Canvas" } - ColorbarMotion3 $x $y + if {$current(frame) != {}} { + ColorbarMotion3 $current(frame) $x $y + } } proc Release3Canvas {x y} { global ds9 + global current + global debug if {$debug(tcl,events)} { puts stderr "Release3Canvas" } set ds9(b3) 0 - ColorbarRelease3 $x $y + if {$current(frame) != {}} { + ColorbarRelease3 $current(frame) $x $y + } } proc UnBindEventsCanvas {} { global ds9 - foreach f $ds9(active) { - UnBindEventsFrame $f + foreach ff $ds9(active) { + UnBindEventsFrame $ff + UnBindEventsColorbar ${ff}cb + UnBindEventsGraph $ff } } proc BindEventsCanvas {} { global ds9 - global current - - switch -- $ds9(display) { - single - - blink {BindEventsFrame $current(frame)} - tile { - foreach f $ds9(active) { - BindEventsFrame $f - } - } - } -} - -# view - -proc ConfigureView {} { - global ds9 - global canvas - - global debug - if {$debug(tcl,layout)} { - puts stderr "ConfigureView old $canvas(width) $canvas(height)" - } - - # calculate ds9(canvas) size - LayoutViewAdjust diff - - # adjust window size - set canvas(width) [expr [winfo width $ds9(canvas)]-$diff(x)] - set canvas(height) [expr [winfo height $ds9(canvas)]-$diff(y)] - - if {$debug(tcl,layout)} { - puts stderr "ConfigureView new $canvas(width) $canvas(height)" - } - - LayoutView -} -proc UpdateView {} { - global ds9 - global canvas - - # note: assume canvas(width) and canvas(height) have been set to desired - # values. - - global debug - if {$debug(tcl,layout)} { - puts stderr "UpdateView to $canvas(width) x $canvas(height)" - } - - # save current size - set wo [winfo width $ds9(top)] - set ho [winfo height $ds9(top)] - - # calculate ds9(canvas) size - LayoutViewAdjust diff - - # adjust window size - set ww [expr $canvas(width)+$diff(x)] - set hh [expr $canvas(height)+$diff(y)] - - # determine how much to change - set wc [winfo width $ds9(canvas)] - set hc [winfo height $ds9(canvas)] - - set wt [winfo width $ds9(top)] - set ht [winfo height $ds9(top)] - - if {$debug(tcl,layout)} { - puts stderr "UpdateView before ds9(top) $wt x $ht" - } - - set w [expr $ww - $wc + $wt] - set h [expr $hh - $hc + $ht] - - if {$debug(tcl,layout)} { - puts stderr "UpdateView after ds9(top) $w x $h" + foreach ff $ds9(active) { + BindEventsFrame $ff + BindEventsColorbar ${ff}cb + BindEventsGraph $ff } - - # change window size - wm geometry $ds9(top) ${w}x${h} - - LayoutView } proc LayoutView {} { @@ -368,167 +294,43 @@ LayoutInfoPanel LayoutButtons LayoutFrames - LayoutColorbar - - UpdateGraphLayout {} } -proc LayoutViewAdjust {varname} { - upvar $varname var - - global debug - if {$debug(tcl,layout)} { - puts stderr "LayoutViewAdjust" - } - - global view - global colorbar - global icolorbar - global igraph - global canvas - global ds9 - - set var(x) 0 - set var(y) 0 - - set cbh [expr $view(colorbar) && \ - [string equal $colorbar(orientation) {horizontal}]] - set cbv [expr $view(colorbar) && \ - [string equal $colorbar(orientation) {vertical}]] - set grh $view(graph,horz) - set grv $view(graph,vert) - - if {$colorbar(numerics)} { - # ww horizontal: tickgap - set ww 12 - # hh vertical: approx number of numerals to display - set hh 7 - - set icolorbar(horizontal,height) \ - [expr int($colorbar(size) + $colorbar(font,size)*$ds9(scaling)+$ww)] - - set icolorbar(vertical,width) \ - [expr $colorbar(size) + $colorbar(font,size)*$hh] - } else { - set icolorbar(horizontal,height) [expr $colorbar(size) +2] - set icolorbar(vertical,width) [expr $colorbar(size) +2] - } - - # basics - if {$cbh} { - incr var(y) $icolorbar(horizontal,height) - } - - if {$cbv} { - incr var(x) $icolorbar(vertical,width) - } - - if {$grh} { - incr var(y) $igraph(size) - } - - if {$grv} { - incr var(x) $igraph(size) - } - - # canvas gap - if {$cbh || $grh} { - incr var(y) $canvas(gap) - } - - if {$cbv || $grv} { - incr var(x) $canvas(gap) - } - - # graph gap - if {$grv && !$cbh} { - incr var(y) $igraph(gap,y) - } - - if {$grh && !$cbv} { - incr var(x) $igraph(gap,x) - } - - global debug - if {$debug(tcl,layout)} { - puts stderr "LayoutViewAdjust $var(x) $var(y)" - } -} - -proc LayoutOrient {} { +proc LayoutViewHorz {} { global ds9 - global canvas - - global debug - if {$debug(tcl,layout)} { - puts stderr "LayoutOrient" - } - - # save original canvas size - set ww $canvas(width) - set hh $canvas(height) - - # horizontal - grid rowconfigure $ds9(main) 4 -weight 0 - grid columnconfigure $ds9(main) 0 -weight 0 + global current + global view - # vertical + # ds9(main) weight + grid rowconfigure $ds9(main) 4 -weight 1 + grid columnconfigure $ds9(main) 0 -weight 1 grid rowconfigure $ds9(main) 0 -weight 0 grid columnconfigure $ds9(main) 4 -weight 0 grid forget $ds9(panel) grid forget $ds9(panel,sep) - grid forget $ds9(buttons) + grid forget $ds9(buttons,frame) grid forget $ds9(buttons,sep) grid forget $ds9(image) + pack forget $ds9(info) - pack forget $ds9(panner) pack forget $ds9(magnifier) - - UpdateView - global debug - if {$debug(tcl,idletasks)} { - puts stderr "LayoutOrient update" - } - update - - # restore original canvas size - set canvas(width) $ww - set canvas(height) $hh - UpdateView -} - -proc LayoutViewHorz {} { - global ds9 - global current - global view - - # canvas - grid rowconfigure $ds9(main) 4 -weight 1 - grid columnconfigure $ds9(main) 0 -weight 1 - grid $ds9(image) -row 4 -column 0 -sticky news + pack forget $ds9(panner) # info panel if {$view(info) || $view(magnifier) || $view(panner)} { grid $ds9(panel) -row 0 -column 0 -sticky ew -columnspan 3 $ds9(panel,sep) configure -orient horizontal grid $ds9(panel,sep) -row 1 -column 0 -sticky ew -columnspan 3 - } else { - grid forget $ds9(panel) - grid forget $ds9(panel,sep) } if {$view(info)} { pack $ds9(info) -side left -anchor nw -padx 2 -pady 2 \ -fill x -expand true - } else { - pack forget $ds9(info) } if {$view(panner)} { pack $ds9(panner) -side right -padx 2 -pady 2 - } else { - pack forget $ds9(panner) } if {$view(magnifier)} { @@ -536,19 +338,17 @@ if {$view(panner)} { pack $ds9(magnifier) -before $ds9(panner) } - } else { - pack forget $ds9(magnifier) } # buttons if {$view(buttons)} { - grid $ds9(buttons) -row 2 -sticky ew -columnspan 3 + grid $ds9(buttons,frame) -row 2 -sticky ew -columnspan 3 $ds9(buttons,sep) configure -orient horizontal grid $ds9(buttons,sep) -row 3 -column 0 -sticky ew -columnspan 3 - } else { - grid forget $ds9(buttons) - grid forget $ds9(buttons,sep) } + + # image + grid $ds9(image) -row 4 -column 0 -sticky news } proc LayoutViewVert {} { @@ -556,25 +356,31 @@ global current global view - # canvas + # ds9(main) weight + grid rowconfigure $ds9(main) 4 -weight 0 + grid columnconfigure $ds9(main) 0 -weight 0 grid rowconfigure $ds9(main) 0 -weight 1 grid columnconfigure $ds9(main) 4 -weight 1 - grid $ds9(image) -row 0 -column 4 -sticky news + + grid forget $ds9(panel) + grid forget $ds9(panel,sep) + grid forget $ds9(buttons,frame) + grid forget $ds9(buttons,sep) + grid forget $ds9(image) + + pack forget $ds9(magnifier) + pack forget $ds9(info) + pack forget $ds9(panner) # info panel if {$view(info) || $view(magnifier) || $view(panner)} { grid $ds9(panel) -row 0 -column 0 -sticky ns $ds9(panel,sep) configure -orient vertical grid $ds9(panel,sep) -row 0 -column 1 -sticky ns - } else { - grid forget $ds9(panel) - grid forget $ds9(panel,sep) } if {$view(magnifier)} { pack $ds9(magnifier) -side top -padx 2 -pady 2 - } else { - pack forget $ds9(magnifier) } if {$view(info)} { @@ -582,25 +388,21 @@ if {$view(magnifier)} { pack $ds9(info) -after $ds9(magnifier) } - } else { - pack forget $ds9(info) } if {$view(panner)} { pack $ds9(panner) -side bottom -padx 2 -pady 2 - } else { - pack forget $ds9(panner) } # buttons if {$view(buttons)} { - grid $ds9(buttons) -row 0 -column 2 -sticky ns + grid $ds9(buttons,frame) -row 0 -column 2 -sticky ns $ds9(buttons,sep) configure -orient vertical grid $ds9(buttons,sep) -row 0 -column 3 -sticky ns - } else { - grid forget $ds9(buttons) - grid forget $ds9(buttons,sep) } + + # image + grid $ds9(image) -row 0 -column 4 -sticky news } proc LayoutFrames {} { @@ -610,111 +412,247 @@ global view global colorbar - # turn everything off - foreach f $ds9(frames) { - $f hide - $f highlite off - $f panner off - $f magnifier off - UnBindEventsFrame $f - } - - if {$ds9(active,num) > 0} { - switch -- $ds9(display) { - single {TileOne} - tile { - switch -- $tile(mode) { - row {TileRect 1 $ds9(active,num) $tile(grid,gap)} - column {TileRect $ds9(active,num) 1 $tile(grid,gap)} - grid { - switch -- $tile(grid,mode) { - automatic { - TileRect [expr int(sqrt($ds9(active,num)-1))+1] \ - [expr int(sqrt($ds9(active,num))+.5)] \ - $tile(grid,gap) - } - manual { - TileRect \ - $tile(grid,col) \ - $tile(grid,row) \ - $tile(grid,gap) - } - } - } + # turn off default colorbar + colorbar hide + + # turn off default graphs + GraphHide graph horz + GraphHide graph vert + + # all frames turn everything off + foreach ff $ds9(frames) { + $ff hide + $ff highlite off + $ff panner off + $ff magnifier off + + # colorbar + ${ff}cb hide + + # graphs + GraphHide $ff horz + GraphHide $ff vert + } + + # be sure colorbar/graph sizes are correct + LayoutColorbarAdjust + LayoutGraphsAdjust + + if {[llength $ds9(active)] > 0} { + LayoutFramesOneOrMore + } else { + LayoutFramesNone + } + + # after all layed out, update data cut for graphs if needed + # one problem- if single mode, non-current graphs are incorrectly updated + switch -- $current(mode) { + crosshair { + if {$view(graph,horz) || $view(graph,vert)} { + update idletasks + foreach ff $ds9(active) { + set vv [$ff get crosshair canvas] + UpdateGraphsData $ff [lindex $vv 0] [lindex $vv 1] canvas } } - blink {TileOne} } - } else { - set current(frame) {} - set ds9(next) {} + } +} - # panner - if {$view(panner)} { - panner clear - } +proc LayoutFramesNone {} { + global ds9 + global current + global colorbar + global view + + set current(frame) {} + set current(colorbar) colorbar - # magnifier - if {$view(magnifier)} { - magnifier clear - } + set colorbar(map) [colorbar get name] + set colorbar(invert) [colorbar get invert] - # process proper colorbar - colorbar show - colorbarrgb hide - $ds9(canvas) raise colorbar colorbarrgb + # panner + if {$view(panner)} { + panner clear + } - set current(colorbar) colorbar - set colorbar(map) [colorbar get name] - set colorbar(invert) [colorbar get invert] + # magnifier + if {$view(magnifier)} { + magnifier clear + } - # update menus/dialogs - UpdateDS9 + # colorbar + if {$view(colorbar)} { + if {[LayoutColorbar colorbar 0 0 [winfo width $ds9(canvas)] [winfo height $ds9(canvas)]]} { + colorbar show + $ds9(canvas) raise colorbar + } + } + + # graphs + if {$view(graph,horz)} { + LayoutGraphHorz graph 0 0 \ + [winfo width $ds9(canvas)] [winfo height $ds9(canvas)] + GraphShow graph horz } + if {$view(graph,vert)} { + LayoutGraphVert graph 0 0 \ + [winfo width $ds9(canvas)] [winfo height $ds9(canvas)] + GraphShow graph vert + } + + # update menus/dialogs + UpdateDS9 } +proc LayoutFramesOneOrMore {} { + global ds9 + global view -# This procedure is called when we have only 1 frames to display + switch -- $ds9(display) { + single { + LayoutFrameOne + } + tile { + if {[llength $ds9(active)] > 1} { + if {$view(multi)} { + LayoutFrame + } else { + LayoutFrameNone + } + } else { + LayoutFrameOne + } + } + blink { + LayoutFrameOne + } + } +} -proc TileOne {} { +proc LayoutFrameOne {} { global ds9 global view global current - global canvas global colorbar - set ww $canvas(width) - set hh $canvas(height) - - set xx 0 - set yy 0 + set ww [winfo width $ds9(canvas)] + set hh [winfo height $ds9(canvas)] foreach ff $ds9(active) { - $ff configure -x $xx -y $yy -width $ww -height $hh -anchor nw + set fw $ww + set fh $hh + + # frame + LayoutFrameAdjust fw fh + $ff configure -x 0 -y 0 -width $fw -height $fh -anchor nw + + # colorbar + if {$view(colorbar)} { + LayoutColorbar ${ff}cb 0 0 $ww $hh + } + + # graphs + if {$view(graph,horz)} { + LayoutGraphHorz $ff 0 0 $ww $hh + UpdateGraphAxis $ff horz + } + if {$view(graph,vert)} { + LayoutGraphVert $ff 0 0 $ww $hh + UpdateGraphAxis $ff vert + } + } + + # frame + $current(frame) show + $ds9(canvas) raise $current(frame) + + # colorbar + if {$view(colorbar)} { + $current(colorbar) show + $ds9(canvas) raise $current(colorbar) + } + + # graphs + if {$view(graph,horz)} { + GraphShow $current(frame) horz + } + if {$view(graph,vert)} { + GraphShow $current(frame) vert } - # only show the current frame FrameToFront } -proc TileRect {numx numy gap} { - global view - global canvas +proc LayoutFrame {} { + global ds9 + global tile + + set num [llength $ds9(active)] + switch -- $tile(mode) { + row { + TileRect 1 $num + } + column { + TileRect $num 1 + } + grid { + switch -- $tile(grid,mode) { + automatic { + TileRect \ + [expr int(sqrt($num-1))+1] [expr int(sqrt($num)+.5)] + } + manual { + TileRect $tile(grid,col) $tile(grid,row) + } + } + } + } +} + +proc LayoutFrameNone {} { + global ds9 global tile - set ww $canvas(width) - set hh $canvas(height) + set num [llength $ds9(active)] + switch -- $tile(mode) { + row { + TileRectNone 1 $num + } + column { + TileRectNone $num 1 + } + grid { + switch -- $tile(grid,mode) { + automatic { + TileRectNone \ + [expr int(sqrt($num-1))+1] [expr int(sqrt($num)+.5)] + } + manual { + TileRectNone $tile(grid,col) $tile(grid,row) + } + } + } + } +} + +proc TileRect {numx numy} { + global ds9 + global tile + global current + global view + global colorbar + + set ww [expr int(([winfo width $ds9(canvas)]-($tile(grid,gap)*($numx-1)))/$numx)] + set hh [expr int(([winfo height $ds9(canvas)]-($tile(grid,gap)*($numy-1)))/$numy)] - set w [expr int(($ww-$gap*($numx-1))/$numx)] - set h [expr int(($hh-$gap*($numy-1))/$numy)] - switch $tile(grid,dir) { x { for {set jj 0} {$jj<$numy} {incr jj} { for {set ii 0} {$ii<$numx} {incr ii} { set nn [expr $jj*$numx + $ii] - set x($nn) [expr ($w+$gap)*$ii] - set y($nn) [expr ($h+$gap)*$jj] + set xx($nn) [expr ($ww+$tile(grid,gap))*$ii] + set yy($nn) [expr ($hh+$tile(grid,gap))*$jj] } } } @@ -722,55 +660,283 @@ for {set ii 0} {$ii<$numx} {incr ii} { for {set jj 0} {$jj<$numy} {incr jj} { set nn [expr $ii*$numy + $jj] - set x($nn) [expr ($w+$gap)*$ii] - set y($nn) [expr ($h+$gap)*$jj] + set xx($nn) [expr ($ww+$tile(grid,gap))*$ii] + set yy($nn) [expr ($hh+$tile(grid,gap))*$jj] } } } } - TileIt $w $h x y [expr $numx*$numy] + set ii 0 + foreach ff $ds9(active) { + set fw $ww + set fh $hh + + # frame + LayoutFrameAdjust fw fh + $ff configure -x $xx($ii) -y $yy($ii) -width $fw -height $fh -anchor nw + $ff show + $ds9(canvas) raise $ff + + # colorbar + if {$view(colorbar)} { + LayoutColorbar ${ff}cb $xx($ii) $yy($ii) $ww $hh + ${ff}cb show + $ds9(canvas) raise ${ff}cb + } + + # graphs + if {$view(graph,horz)} { + LayoutGraphHorz $ff $xx($ii) $yy($ii) $ww $hh + UpdateGraphAxis $ff horz + GraphShow $ff horz + } + if {$view(graph,vert)} { + LayoutGraphVert $ff $xx($ii) $yy($ii) $ww $hh + UpdateGraphAxis $ff vert + GraphShow $ff vert + } + + incr ii + } + + FrameToFront } -proc TileIt {ww hh xvar yvar nn} { - upvar $xvar x - upvar $yvar y +proc TileRectNone {numx numy} { global ds9 + global tile global current + global view + global colorbar + + set fw [winfo width $ds9(canvas)] + set fh [winfo height $ds9(canvas)] + LayoutFrameAdjust fw fh + + set ww [expr int(($fw-($tile(grid,gap)*($numx-1)))/$numx)] + set hh [expr int(($fh-($tile(grid,gap)*($numy-1)))/$numy)] + + switch $tile(grid,dir) { + x { + for {set jj 0} {$jj<$numy} {incr jj} { + for {set ii 0} {$ii<$numx} {incr ii} { + set nn [expr $jj*$numx + $ii] + set xx($nn) [expr ($ww+$tile(grid,gap))*$ii] + set yy($nn) [expr ($hh+$tile(grid,gap))*$jj] + } + } + } + y { + for {set ii 0} {$ii<$numx} {incr ii} { + for {set jj 0} {$jj<$numy} {incr jj} { + set nn [expr $ii*$numy + $jj] + set xx($nn) [expr ($ww+$tile(grid,gap))*$ii] + set yy($nn) [expr ($hh+$tile(grid,gap))*$jj] + } + } + } + } + # frames set ii 0 foreach ff $ds9(active) { - if {$ii<$nn} { - $ff configure -x $x($ii) -y $y($ii) \ + # sanity check + if {$xx($ii)>=0 && $yy($ii)>=0 && $ww>=0 && $hh>=0} { + $ff configure -x $xx($ii) -y $yy($ii) \ -width $ww -height $hh -anchor nw $ff show $ds9(canvas) raise $ff - if {!$ds9(freeze)} { - BindEventsFrame $ff - } } + + if {$view(colorbar)} { + LayoutColorbar ${ff}cb 0 0 \ + [winfo width $ds9(canvas)] [winfo height $ds9(canvas)] + } + + if {$view(graph,horz)} { + LayoutGraphHorz $ff 0 0 \ + [winfo width $ds9(canvas)] [winfo height $ds9(canvas)] + UpdateGraphAxis $ff horz + } + + if {$view(graph,vert)} { + LayoutGraphVert $ff 0 0 \ + [winfo width $ds9(canvas)] [winfo height $ds9(canvas)] + UpdateGraphAxis $ff vert + } + incr ii } - # if manual grid, current frame could be not included - if {$current(frame) != {}} { - $current(frame) colorbar tag "\{[$current(colorbar) get tag]\}" + # set colorbar/graph for current frame + set ff $current(frame) + + # colorbar + if {$view(colorbar)} { + ${ff}cb show + $ds9(canvas) raise ${ff}cb } - if {$ds9(active,num) > $nn} { - set current(frame) [lindex $ds9(active) 0] + + # graphs + if {$view(graph,horz)} { + GraphShow $ff horz + } + if {$view(graph,vert)} { + GraphShow $ff vert } + FrameToFront } -proc DisplayDefaultDialog {} { +proc LayoutFrameAdjust {wvar hvar} { global canvas + global view + global colorbar + global igraph + global dgraph + global graph + + upvar $wvar ww + upvar $hvar hh + + set cbh [expr $view(colorbar) && !$colorbar(orientation)] + set cbv [expr $view(colorbar) && $colorbar(orientation)] + set grh $view(graph,horz) + set grv $view(graph,vert) + + # cbh + if {$cbh && !$cbv && !$grh && !$grv} { + incr hh -$colorbar(horizontal,height) + incr hh -$canvas(gap) + } + # cbv + if {!$cbh && $cbv && !$grh && !$grv} { + incr ww -$colorbar(vertical,width) + incr ww -$canvas(gap) + } + + # cbhgrh + if {$cbh && !$cbv && $grh && !$grv} { + incr hh -$colorbar(horizontal,height) + incr hh -$canvas(gap) + incr hh -$graph(size) + incr ww -$dgraph(horz,offset) + } + # cbhgrv + if {$cbh && !$cbv && !$grh && $grv} { + incr hh -$colorbar(horizontal,height) + incr hh -$canvas(gap) + incr ww -$graph(size) + } + # cbhgrhgrv + if {$cbh && !$cbv && $grh && $grv} { + incr hh -$colorbar(horizontal,height) + incr hh -$canvas(gap) + incr hh -$graph(size) + incr ww -$graph(size) + } + + # cbvgrh + if {!$cbh && $cbv && $grh && !$grv} { + incr ww -$colorbar(vertical,width) + incr ww -$canvas(gap) + incr hh -$graph(size) + } + # cbvgrv + if {!$cbh && $cbv && !$grh && $grv} { + incr ww -$colorbar(vertical,width) + incr ww -$canvas(gap) + incr ww -$graph(size) + incr hh -$dgraph(vert,offset) + } + # cbvgrhgrv + if {!$cbh && $cbv && $grh && $grv} { + incr ww -$colorbar(vertical,width) + incr ww -$canvas(gap) + incr ww -$graph(size) + incr hh -$graph(size) + } + + # grh + if {!$cbh && !$cbv && $grh && !$grv} { + incr hh -$graph(size) + incr hh -$canvas(gap) + incr ww -$dgraph(horz,offset) + } + # grv + if {!$cbh && !$cbv && !$grh && $grv} { + incr ww -$graph(size) + incr ww -$canvas(gap) + incr hh -$dgraph(vert,offset) + } + # grhgrv + if {!$cbh && !$cbv && $grh && $grv} { + incr ww -$graph(size) + incr ww -$canvas(gap) + incr hh -$graph(size) + incr hh -$canvas(gap) + } + + # sanity check + if {$ww<0} { + set ww 1 + } + if {$hh<0} { + set hh 1 + } +} + +proc LayoutChangeWidth {ww} { + global ds9 + + set cw [winfo width $ds9(canvas)] + set tw [winfo width $ds9(top)] + set th [winfo height $ds9(top)] + set dw $ww-$cw + + # change window size + wm geometry $ds9(top) "[expr $tw+$dw]x${th}" + LayoutView +} + +proc LayoutChangeHeight {hh} { + global ds9 + + set ch [winfo height $ds9(canvas)] + set tw [winfo width $ds9(top)] + set th [winfo height $ds9(top)] + set dh $hh-$ch + + # change window size + wm geometry $ds9(top) "${tw}x[expr $th+$dh]" + LayoutView +} + +proc LayoutChangeSize {ww hh} { + global ds9 + + set cw [winfo width $ds9(canvas)] + set ch [winfo height $ds9(canvas)] + set tw [winfo width $ds9(top)] + set th [winfo height $ds9(top)] + set dw $ww-$cw + set dh $hh-$ch + + # change window size + wm geometry $ds9(top) "[expr $tw+$dw]x[expr $th+$dh]" + LayoutView +} + +proc DisplayDefaultDialog {} { global ed + global ds9 set w {.defdpy} set ed(ok) 0 - set ed(x) $canvas(width) - set ed(y) $canvas(height) + set ed(x) [winfo width $ds9(canvas)] + set ed(y) [winfo height $ds9(canvas)] DialogCreate $w [msgcat::mc {Display Size}] ed(ok) @@ -806,9 +972,7 @@ destroy $w if {$ed(ok)} { - set canvas(width) $ed(x) - set canvas(height) $ed(y) - UpdateView + LayoutChangeSize $ed(x) $ed(y) } set rr $ed(ok) @@ -816,24 +980,6 @@ return $rr } -proc ViewHorzCmd {} { - global canvas - global icanvas - - set canvas(width) $icanvas(horz,width) - set canvas(height) $icanvas(horz,height) - LayoutOrient -} - -proc ViewVertCmd {} { - global canvas - global icanvas - - set canvas(width) $icanvas(vert,width) - set canvas(height) $icanvas(vert,height) - LayoutOrient -} - # Process Cmds proc ProcessHeightCmd {varname iname} { @@ -851,8 +997,8 @@ } proc ProcessSendHeightCmd {proc id param {sock {}} {fn {}}} { - global canvas - $proc $id "$canvas(height)\n" + global ds9 + $proc $id "[winfo height $ds9(canvas)]\n" } proc ProcessWidthCmd {varname iname} { @@ -870,8 +1016,8 @@ } proc ProcessSendWidthCmd {proc id param {sock {}} {fn {}}} { - global canvas - $proc $id "$canvas(width)\n" + global ds9 + $proc $id "[winfo width $ds9(canvas)]\n" } proc ProcessViewCmd {varname iname} { @@ -894,3 +1040,58 @@ viewsend::yyparse } +if {0} { + # cbhcbvgrhgrv + if {$cbh && $cbv && $grh && $grv} { + # not possible + } + # cbhcbvgrh + if {$cbh && $cbv && $grh && !$grv} { + # not possible + } + # cbhcbvgrv + if {$cbh && $cbv && !$grh && $grv} { + # not possible + } + # cbhcbv + if {$cbh && $cbv && !$grh && !$grv} { + # not possible + } + # cbhgrhgrv + if {$cbh && !$cbv && $grh && $grv} { + } + # cbhgrh + if {$cbh && !$cbv && $grh && !$grv} { + } + # cbhgrv + if {$cbh && !$cbv && !$grh && $grv} { + } + # cbh + if {$cbh && !$cbv && !$grh && !$grv} { + } + + # cbvgrhgrv + if {!$cbh && $cbv && $grh && $grv} { + } + # cbvgrh + if {!$cbh && $cbv && $grh && !$grv} { + } + # cbvgrv + if {!$cbh && $cbv && !$grh && $grv} { + } + # cbv + if {!$cbh && $cbv && !$grh && !$grv} { + } + # grhgrv + if {!$cbh && !$cbv && $grh && $grv} { + } + # grh + if {!$cbh && !$cbv && $grh && !$grv} { + } + # grv + if {!$cbh && !$cbv && !$grh && $grv} { + } + # + if {!$cbh && !$cbv && !$grh && !$grv} { + } +} diff -Nru saods9-8.2+repack/ds9/library/line.tcl saods9-8.3+repack/ds9/library/line.tcl --- saods9-8.2+repack/ds9/library/line.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/line.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/load.tcl saods9-8.3+repack/ds9/library/load.tcl --- saods9-8.2+repack/ds9/library/load.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/load.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -173,6 +173,8 @@ $loadParam(var,name) \{$loadParam(file,name)\} } } + # be sure to update the colorbar levels, especially in tile mode + UpdateColormapLevel } rr]} { if {$err} { Error "[msgcat::mc {Unable to load}] $loadParam(file,type) $loadParam(file,mode) $loadParam(file,name)" @@ -265,6 +267,8 @@ if {[$current(frame) has fits cube]} { CubeDialog } + + UpdateGraphsAxis $current(frame) } proc FinishLoad {} { @@ -272,29 +276,6 @@ UpdateDS9 } -proc IsLocalFile {fn} { - # strip any brackets - set aa [string first "\[" $fn] - if {$aa > 0} { - set fn [string range $fn 0 [expr $aa-1]] - } - - if {![file exists $fn]} { - return 0 - } - if {![file isfile $fn]} { - return 0 - } - if {[file isdirectory $fn]} { - return 0 - } - if {[file readable $fn]} { - return 1 - } else { - return 0 - } -} - proc ConvertFitsFile {} { foreach t {Stdin ExternalFits GzipFile BZip2File CompressFile} { if {[$t]} { diff -Nru saods9-8.2+repack/ds9/library/macosx.tcl saods9-8.3+repack/ds9/library/macosx.tcl --- saods9-8.2+repack/ds9/library/macosx.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/macosx.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -37,48 +37,3 @@ } } } - -proc MacOSXGetLocale {} { - return [macos locale] -} - -proc MacOSXPrint {} { - global ds9 - -# we need to be realized - RealizeDS9 -# need the colorbar levels updated - UpdateColormapLevel - - if {[catch {macos pm print begin [winfo width $ds9(canvas)] [winfo height $ds9(canvas)] yes}]} { - Error "bad" - } else { - Info "good" - } - - if {0} { - foreach f $ds9(frames) { - $f macos print - } - colorbar macos print - colorbarrgb macos print - macos pm print end - } -} - -proc MacOSXPrintPre {} { - global ds9 - - if {[macos pm print begin [winfo width $ds9(canvas)] [winfo height $ds9(canvas)] no]} { - foreach f $ds9(frames) { - $f macos print - } - colorbar macos print - colorbarrgb macos print - macos pm print end - } -} - -proc MacOSXPageSetup {} { - macos pm pagesetup -} diff -Nru saods9-8.2+repack/ds9/library/magnifier.tcl saods9-8.3+repack/ds9/library/magnifier.tcl --- saods9-8.2+repack/ds9/library/magnifier.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/magnifier.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/manalysis.tcl saods9-8.3+repack/ds9/library/manalysis.tcl --- saods9-8.2+repack/ds9/library/manalysis.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/manalysis.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -6,6 +6,7 @@ proc AnalysisMainMenu {} { global ds9 + global graph # WARNING: this is a variable length menu. # Be sure to update ds9(menu,size,analysis) @@ -17,11 +18,14 @@ $ds9(mb).analysis add separator $ds9(mb).analysis add command -label "[msgcat::mc {Mask Parameters}]..." \ -command MaskDialog - $ds9(mb).analysis add command -label "[msgcat::mc {Graph Parameters}]..." \ - -command GraphDialog $ds9(mb).analysis add command \ -label "[msgcat::mc {Crosshair Parameters}]..." -command CrosshairDialog $ds9(mb).analysis add separator + $ds9(mb).analysis add cascade -label [msgcat::mc {Graph}] \ + -menu $ds9(mb).analysis.graph + $ds9(mb).analysis add command -label "[msgcat::mc {Graph Parameters}]..." \ + -command GraphDialog + $ds9(mb).analysis add separator $ds9(mb).analysis add checkbutton -label [msgcat::mc {Contours}] \ -variable contour(view) -command UpdateContour $ds9(mb).analysis add command -label "[msgcat::mc {Contour Parameters}]..."\ @@ -74,6 +78,36 @@ -label [msgcat::mc {Clear Analysis Commands}] \ -command ClearAnalysisMenu + ThemeMenu $ds9(mb).analysis.graph + $ds9(mb).analysis.graph add checkbutton -label [msgcat::mc {Grid}] \ + -variable graph(grid) -command UpdateGraphsGrid + $ds9(mb).analysis.graph add separator + $ds9(mb).analysis.graph add cascade -label [msgcat::mc {Axis}] \ + -menu $ds9(mb).analysis.graph.axis + $ds9(mb).analysis.graph add cascade -label [msgcat::mc {Method}] \ + -menu $ds9(mb).analysis.graph.method + $ds9(mb).analysis.graph add cascade -label [msgcat::mc {Font}] \ + -menu $ds9(mb).analysis.graph.font + + ThemeMenu $ds9(mb).analysis.graph.axis + $ds9(mb).analysis.graph.axis add radiobutton \ + -label [msgcat::mc {Linear}] -variable graph(log) \ + -value 0 -command UpdateGraphsGrid + $ds9(mb).analysis.graph.axis add radiobutton \ + -label [msgcat::mc {Log}] -variable graph(log) \ + -value 1 -command UpdateGraphsGrid + + ThemeMenu $ds9(mb).analysis.graph.method + $ds9(mb).analysis.graph.method add radiobutton \ + -label [msgcat::mc {Average}] -variable graph(method) \ + -value average -command UpdateGraphsMethod + $ds9(mb).analysis.graph.method add radiobutton \ + -label [msgcat::mc {Sum}] -variable graph(method) \ + -value sum -command UpdateGraphsMethod + + FontMenu $ds9(mb).analysis.graph.font \ + graph font font,size font,weight font,slant UpdateGraphsFont + ThemeMenu $ds9(mb).analysis.block $ds9(mb).analysis.block add command -label [msgcat::mc {Block In}] \ -command {Block .5 .5} @@ -162,8 +196,6 @@ -command PlotLineTool $ds9(mb).analysis.plot add command -label [msgcat::mc {Bar}] \ -command PlotBarTool - $ds9(mb).analysis.plot add command -label [msgcat::mc {Scatter}] \ - -command PlotScatterTool } proc PrefsDialogAnalysisMenu {w} { @@ -345,7 +377,7 @@ puts stderr "UpdateAnalysisMenu" } - if {$ds9(active,num) > 0} { + if {[llength $ds9(active)] > 0} { $ds9(mb) entryconfig [msgcat::mc {Analysis}] -state normal ConfigureButtons analysis normal } else { @@ -374,6 +406,39 @@ } } } + } +} + +proc UpdateAnalysisButtonbar {} { + global ds9 + global current + global ianalysis + + global debug + if {$debug(tcl,update)} { + puts stderr "UpdateAnalysisButtonbar" + } + + if {$current(frame) != {}} { + for {set ii 0} {$ii<$ianalysis(buttonbar,count)} {incr ii} { + if {[$current(frame) has fits]} { + set fn [$current(frame) get fits file name 1] + } else { + set fn {none} + } + + for {set jj 0} {$jj<$ianalysis(buttonbar,$ii,count)} {incr jj} { + # disable by default + $ianalysis(buttonbar,$ii-$jj,button) configure -state disabled + + foreach tt $ianalysis(buttonbar,$ii-$jj,template) { + if {[regexp ".$tt" $fn]} { + $ianalysis(buttonbar,$ii-$jj,button) configure -state normal + break + } + } + } + } } } diff -Nru saods9-8.2+repack/ds9/library/markeranalysishist.tcl saods9-8.3+repack/ds9/library/markeranalysishist.tcl --- saods9-8.2+repack/ds9/library/markeranalysishist.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/markeranalysishist.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/markeranalysispanda.tcl saods9-8.3+repack/ds9/library/markeranalysispanda.tcl --- saods9-8.2+repack/ds9/library/markeranalysispanda.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/markeranalysispanda.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/markeranalysisplot2d.tcl saods9-8.3+repack/ds9/library/markeranalysisplot2d.tcl --- saods9-8.2+repack/ds9/library/markeranalysisplot2d.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/markeranalysisplot2d.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/markeranalysisplot3d.tcl saods9-8.3+repack/ds9/library/markeranalysisplot3d.tcl --- saods9-8.2+repack/ds9/library/markeranalysisplot3d.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/markeranalysisplot3d.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/markeranalysisradial.tcl saods9-8.3+repack/ds9/library/markeranalysisradial.tcl --- saods9-8.2+repack/ds9/library/markeranalysisradial.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/markeranalysisradial.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/markeranalysisstats.tcl saods9-8.3+repack/ds9/library/markeranalysisstats.tcl --- saods9-8.2+repack/ds9/library/markeranalysisstats.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/markeranalysisstats.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -77,7 +77,7 @@ set vvar(sky) $var(sky) } elseif {[info exists vvar(sky)]} { } else { - set sky $wcs(sky) + set vvar(sky) $wcs(sky) } set tt [string totitle [$frame get marker $id type]] diff -Nru saods9-8.2+repack/ds9/library/markerbaseannulusrect.tcl saods9-8.3+repack/ds9/library/markerbaseannulusrect.tcl --- saods9-8.2+repack/ds9/library/markerbaseannulusrect.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/markerbaseannulusrect.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/markerbaseannulus.tcl saods9-8.3+repack/ds9/library/markerbaseannulus.tcl --- saods9-8.2+repack/ds9/library/markerbaseannulus.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/markerbaseannulus.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/markerbasecenter.tcl saods9-8.3+repack/ds9/library/markerbasecenter.tcl --- saods9-8.2+repack/ds9/library/markerbasecenter.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/markerbasecenter.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/markerbaseline.tcl saods9-8.3+repack/ds9/library/markerbaseline.tcl --- saods9-8.2+repack/ds9/library/markerbaseline.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/markerbaseline.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/markerbasepandarect.tcl saods9-8.3+repack/ds9/library/markerbasepandarect.tcl --- saods9-8.2+repack/ds9/library/markerbasepandarect.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/markerbasepandarect.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/markerbasepanda.tcl saods9-8.3+repack/ds9/library/markerbasepanda.tcl --- saods9-8.2+repack/ds9/library/markerbasepanda.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/markerbasepanda.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/markerbase.tcl saods9-8.3+repack/ds9/library/markerbase.tcl --- saods9-8.2+repack/ds9/library/markerbase.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/markerbase.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -111,7 +111,7 @@ upvar #0 $varname var global $varname - $var(frame) marker $var(id) color $var(color) + $var(frame) marker $var(id) color "{$var(color)}" } proc MarkerBaseLineWidth {varname} { diff -Nru saods9-8.2+repack/ds9/library/markerdialog.tcl saods9-8.3+repack/ds9/library/markerdialog.tcl --- saods9-8.2+repack/ds9/library/markerdialog.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/markerdialog.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -15,13 +15,13 @@ set ed(ok) 0 set ed(format) $marker(format) set ed(load) $marker(load) - set ed(default,use) $marker(default,use) - set ed(default,color) $marker(default,color) + set ed(color) $marker(color) + set ed(color,default) $marker(color,default) set ed(frame) $current(frame) - set ed(system) $wcs(system) - set ed(sky) $wcs(sky) - set ed(skyformat) $wcs(skyformat) + set ed(system) $marker(system) + set ed(sky) $marker(sky) + set ed(skyformat) $marker(skyformat) AdjustCoordSystem ed system DialogCreate $w [msgcat::mc {Open Regions}] ed(ok) @@ -66,9 +66,12 @@ # Color set f [ttk::labelframe $w.color -text [msgcat::mc {Color}]] - ttk::checkbutton $f.default -text [msgcat::mc {Use Color}] \ - -variable ed(default,use) - ColorMenuButton $f.color ed default,color {} + set ed(color,chk) \ + [ttk::checkbutton $f.default -text [msgcat::mc {Override Color}] \ + -variable ed(color,default) \ + ] + ColorMenuButton $f.color ed color {} + set ed(color,mb) $f.color grid $f.default $f.color -padx 2 -pady 2 -sticky w @@ -98,8 +101,8 @@ set marker(skyformat) $ed(skyformat) set marker(load) $ed(load) - set marker(default,use) $ed(default,use) - set marker(default,color) $ed(default,color) + set marker(color) $ed(color) + set marker(color,default) $ed(color,default) } set rr $ed(ok) @@ -116,8 +119,41 @@ CoordMenuEnable $mm ed system sky skyformat switch -- $ed(format) { - xy {$ed(cb) configure -state normal} - default {$ed(cb) configure -state disabled} + ds9 { + $ed(color,chk) configure -state normal + $ed(color,mb) configure -state normal + $ed(cb) configure -state disabled + } + xml { + $ed(color,chk) configure -state disabled + $ed(color,mb) configure -state normal + $ed(cb) configure -state disabled + } + ciao { + $ed(color,chk) configure -state disabled + $ed(color,mb) configure -state normal + $ed(cb) configure -state disabled + } + saotng { + $ed(color,chk) configure -state normal + $ed(color,mb) configure -state normal + $ed(cb) configure -state disabled + } + saoimage { + $ed(color,chk) configure -state disabled + $ed(color,mb) configure -state normal + $ed(cb) configure -state disabled + } + pros { + $ed(color,chk) configure -state disabled + $ed(color,mb) configure -state normal + $ed(cb) configure -state disabled + } + xy { + $ed(color,chk) configure -state disabled + $ed(color,mb) configure -state normal + $ed(cb) configure -state normal + } } AdjustCoordSystem ed system @@ -136,9 +172,9 @@ set ed(format) $marker(format) set ed(frame) $current(frame) - set ed(system) $wcs(system) - set ed(sky) $wcs(sky) - set ed(skyformat) $wcs(skyformat) + set ed(system) $marker(system) + set ed(sky) $marker(sky) + set ed(skyformat) $marker(skyformat) AdjustCoordSystem ed system DialogCreate $w $title ed(ok) diff -Nru saods9-8.2+repack/ds9/library/marker.tcl saods9-8.3+repack/ds9/library/marker.tcl --- saods9-8.2+repack/ds9/library/marker.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/marker.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -29,6 +29,7 @@ set marker(centroid,radius) 10 set marker(shape) circle set marker(color) green + set marker(color,default) 0 set marker(dashlist) {8 3} set marker(width) 1 set marker(dash) 0 @@ -45,9 +46,6 @@ set marker(font,slant) roman set marker(preserve) 0 - set marker(default,use) 0 - set marker(default,color) green - set marker(plot2d) 0 set marker(plot3d) 0 set marker(stats) 0 @@ -398,6 +396,7 @@ close $ch $which marker create template var vardata $x $y + unset vardata } } } @@ -1170,7 +1169,7 @@ if {$ll == "SIMPLE ="} { # ok, its fits # try filename first - if {[catch {$which marker load fits "\{$filename\}" $marker(default,color)}]} { + if {[catch {$which marker load fits "\{$filename\}" $marker(color)}]} { # reset errorInfo set errorInfo {} @@ -1180,14 +1179,14 @@ if {$ext == {}} { set regfilename "$base\[REGION\]" - if {[catch {$which marker load fits "\{$regfilename\}" $marker(default,color)}]} { + if {[catch {$which marker load fits "\{$regfilename\}" $marker(color)}]} { # reset errorInfo set errorInfo {} # ok now try the first extension set regfilename "$base\[1\]" - if {[catch {$which marker load fits "\{$regfilename\}" $marker(default,color)}]} { + if {[catch {$which marker load fits "\{$regfilename\}" $marker(color)}]} { Error "[msgcat::mc {Unable to load region file}] $filename" return -code error } @@ -1199,7 +1198,7 @@ } } else { # no, its ascii - if {[catch {$which marker load $format "\{$filename\}" $marker(default,use) $marker(default,color) $sys $sky}]} { + if {[catch {$which marker load $format "\{$filename\}" $marker(color,default) $marker(color) $sys $sky}]} { Error "[msgcat::mc {Unable to load region file}] $filename" return -code error } @@ -1464,7 +1463,7 @@ # xpa path # fits regions files not supported $current(frame) marker load $marker(load,format) \ - $parse(sock) $marker(default,use) $marker(default,color) \ + $parse(sock) $marker(color,default) $marker(color) \ $marker(load,system) $marker(load,sky) UpdateGroupDialog } elseif {$parse(fn) != {}} { diff -Nru saods9-8.2+repack/ds9/library/mask.tcl saods9-8.3+repack/ds9/library/mask.tcl --- saods9-8.2+repack/ds9/library/mask.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mask.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/mbin.tcl saods9-8.3+repack/ds9/library/mbin.tcl --- saods9-8.2+repack/ds9/library/mbin.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mbin.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/mcolor.tcl saods9-8.3+repack/ds9/library/mcolor.tcl --- saods9-8.2+repack/ds9/library/mcolor.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mcolor.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -6,44 +6,19 @@ # Menus -# Default colormap names -# [msgcat::mc {grey}] -# [msgcat::mc {red}] -# [msgcat::mc {green}] -# [msgcat::mc {blue}] -# [msgcat::mc {heat}] -# [msgcat::mc {cool}] -# [msgcat::mc {rainbow}] -# [msgcat::mc {standard}] -# [msgcat::mc {staircase}] -# [msgcat::mc {color}] - proc ColorMainMenu {} { global colorbar global icolorbar global ds9 ThemeMenu $ds9(mb).color - - set id [colorbar list id] - # base - foreach jj $id { - set name [colorbar get name $jj] + foreach cmap $icolorbar(default,cmaps) { $ds9(mb).color add radiobutton \ - -label [msgcat::mc $name] \ - -variable colorbar(map) -value $name \ - -command "ChangeColormapID $jj" - incr icolorbar(count) + -label [msgcat::mc $cmap] \ + -variable colorbar(map) -value $cmap \ + -command [list ChangeColormapName $cmap] } - set icolorbar(end) $icolorbar(count) - set icolorbar(h5) $icolorbar(count) - set icolorbar(matplotlib) $icolorbar(count) - set icolorbar(cubehelix) $icolorbar(count) - set icolorbar(gist) $icolorbar(count) - set icolorbar(topo) $icolorbar(count) - set icolorbar(user) $icolorbar(count) - $ds9(mb).color add separator $ds9(mb).color add cascade -label [msgcat::mc {h5utils}] \ -menu $ds9(mb).color.h5 @@ -57,6 +32,15 @@ -menu $ds9(mb).color.topo $ds9(mb).color add cascade -label [msgcat::mc {User}] \ -menu $ds9(mb).color.user + + ColorMainMenuExternal h5 h5 + ColorMainMenuExternal matplotlib matplotlib + ColorMainMenuExternal matplotlib matplotlib2 + ColorMainMenuExternal cubehelix cubehelix + ColorMainMenuExternal gist gist + ColorMainMenuExternal topo topo + ColorMainMenuExternal user user + $ds9(mb).color add separator $ds9(mb).color add checkbutton -label [msgcat::mc {Invert Colormap}] \ -variable colorbar(invert) -command InvertColorbar @@ -69,13 +53,6 @@ $ds9(mb).color add command -label "[msgcat::mc {Colormap Parameters}]..." \ -command ColormapDialog - ThemeMenu $ds9(mb).color.h5 - ThemeMenu $ds9(mb).color.matplotlib - ThemeMenu $ds9(mb).color.cubehelix - ThemeMenu $ds9(mb).color.gist - ThemeMenu $ds9(mb).color.topo - ThemeMenu $ds9(mb).color.user - ThemeMenu $ds9(mb).color.colorbar $ds9(mb).color.colorbar add cascade -label [msgcat::mc {Orientation}] \ -menu $ds9(mb).color.colorbar.orient @@ -94,60 +71,38 @@ ThemeMenu $ds9(mb).color.colorbar.orient $ds9(mb).color.colorbar.orient add radiobutton \ -label [msgcat::mc {Horizontal}] -variable colorbar(orientation) \ - -value horizontal -command UpdateView + -value 0 -command ColorbarUpdateView $ds9(mb).color.colorbar.orient add radiobutton \ -label [msgcat::mc {Vertical}] -variable colorbar(orientation) \ - -value vertical -command UpdateView + -value 1 -command ColorbarUpdateView ThemeMenu $ds9(mb).color.colorbar.numerics $ds9(mb).color.colorbar.numerics add checkbutton \ -label [msgcat::mc {Show}] -variable colorbar(numerics) \ - -command UpdateView + -command ColorbarUpdateView $ds9(mb).color.colorbar.numerics add separator $ds9(mb).color.colorbar.numerics add radiobutton \ -label [msgcat::mc {Space Equal Value}] -variable colorbar(space) \ - -value 1 -command UpdateView + -value 1 -command ColorbarUpdateView $ds9(mb).color.colorbar.numerics add radiobutton \ -label [msgcat::mc {Space Equal Distance}] -variable colorbar(space) \ - -value 0 -command UpdateView + -value 0 -command ColorbarUpdateView FontMenu $ds9(mb).color.colorbar.cb colorbar font font,size font,weight \ - font,slant UpdateView - - CreateExColorMenu h5 - CreateExColorMenu matplotlib - CreateExColorMenu cubehelix - CreateExColorMenu gist - CreateExColorMenu topo - CreateExColorMenu user + font,slant ColorbarUpdateView } -proc CreateExColorMenu {which} { +proc ColorMainMenuExternal {mm which} { global ds9 global icolorbar - # save start location - set icolorbar($which) $icolorbar(count) + ThemeMenu $ds9(mb).color.$which - foreach fn $icolorbar($which,fn) { - if {[lindex $fn 0] == {-}} { - $ds9(mb).color.$which add separator - } else { - set ch [open "$ds9(root)/cmaps/$fn" r] - global vardata - set vardata [read $ch] - close $ch - - colorbar load var "\{$fn\}" vardata - set id [colorbar get id] - set map [colorbar get name] - incr icolorbar(count) - - $ds9(mb).color.$which add radiobutton \ - -label "$map" \ - -variable colorbar(map) \ - -command [list ChangeColormapID $id] - } + foreach cmap $icolorbar($which,cmaps) { + $ds9(mb).color.$mm add radiobutton \ + -label [msgcat::mc $cmap] \ + -variable colorbar(map) -value $cmap \ + -command [list ChangeColormapName $cmap] } } @@ -166,14 +121,24 @@ set m $f.menu.menu ThemeMenu $m - set id [colorbar list id] - # base - for {set ii 0} {$ii<$icolorbar(end)} {incr ii} { - set jj [lindex $id $ii] - set name [colorbar get name $jj] - $m add radiobutton -label [msgcat::mc $name] \ - -variable pcolorbar(map) -value $name + foreach cmap $icolorbar(default,cmaps) { + $m add radiobutton -label [msgcat::mc $cmap] \ + -variable pcolorbar(map) -value $cmap } + + $m add separator + $m add cascade -label [msgcat::mc {h5utils}] -menu $m.h5 + $m add cascade -label [msgcat::mc {Matplotlib}] -menu $m.matplotlib + $m add cascade -label [msgcat::mc {Cubehelix}] -menu $m.cubehelix + $m add cascade -label [msgcat::mc {Gist}] -menu $m.gist + $m add cascade -label [msgcat::mc {Topographic}] -menu $m.topo + + PrefsColorMenuExternal $m h5 h5 + PrefsColorMenuExternal $m matplotlib matplotlib + PrefsColorMenuExternal $m matplotlib matplotlib2 + PrefsColorMenuExternal $m cubehelix cubehelix + PrefsColorMenuExternal $m gist gist + PrefsColorMenuExternal $m topo topo $m add separator $m add checkbutton -label [msgcat::mc {Invert Colormap}] \ @@ -191,9 +156,9 @@ ThemeMenu $m.colorbar.orient $m.colorbar.orient add radiobutton -label [msgcat::mc {Horizontal}] \ - -variable pcolorbar(orientation) -value horizontal + -variable pcolorbar(orientation) -value 0 $m.colorbar.orient add radiobutton -label [msgcat::mc {Vertical}] \ - -variable pcolorbar(orientation) -value vertical + -variable pcolorbar(orientation) -value 1 ThemeMenu $m.colorbar.numerics $m.colorbar.numerics add checkbutton -label [msgcat::mc {Show}] \ @@ -212,10 +177,20 @@ pack $f -side top -fill both -expand true } +proc PrefsColorMenuExternal {m mm which} { + global ds9 + global icolorbar + + ThemeMenu $m.$which + + foreach cmap $icolorbar($which,cmaps) { + $m.$mm add radiobutton -label [msgcat::mc $cmap] \ + -variable pcolorbar(map) -value $cmap + } +} + proc PrefsDialogColor {} { global dprefs - global colorbar - global icolorbar global pcolorbar set w $dprefs(tab) @@ -246,28 +221,27 @@ proc ButtonsColorDef {} { global pbuttons - # we have a chicken or the egg problem - # the colorbar has not been defined yet, but we must define vars - # before prefs are processed, so hard code all default cmaps + ButtonsColorDefExternal default + ButtonsColorDefExternal h5 + ButtonsColorDefExternal matplotlib + ButtonsColorDefExternal matplotlib2 + ButtonsColorDefExternal cubehelix + ButtonsColorDefExternal gist + ButtonsColorDefExternal topo + array set pbuttons { color,grey 1 - color,red 0 - color,green 0 - color,blue 0 color,a 1 color,b 1 color,bb 1 color,he 1 color,i8 1 color,aips0 1 - color,sls 0 - color,hsv 0 color,heat 1 color,cool 1 color,rainbow 1 - color,standard 0 - color,staircase 0 - color,color 0 + color,viridis 1 + color,invert 0 color,reset 0 color,horz 0 @@ -279,6 +253,15 @@ } } +proc ButtonsColorDefExternal {which} { + global icolorbar + global pbuttons + + foreach cmap $icolorbar($which,cmaps) { + set pbuttons(color,$cmap) 0 + } +} + proc CreateButtonsColor {} { global buttons global ds9 @@ -287,14 +270,14 @@ ttk::frame $ds9(buttons).color - set id [colorbar list id] - # base - for {set ii 0} {$ii<$icolorbar(end)} {incr ii} { - set jj [lindex $id $ii] - set name [colorbar get name $jj] - RadioButton $ds9(buttons).color.$name [msgcat::mc $name] \ - colorbar(map) $name "ChangeColormapID $jj" - } + set buttons(color) {} + CreateButtonsColorExternal default + CreateButtonsColorExternal h5 + CreateButtonsColorExternal matplotlib + CreateButtonsColorExternal matplotlib2 + CreateButtonsColorExternal cubehelix + CreateButtonsColorExternal gist + CreateButtonsColorExternal topo CheckButton $ds9(buttons).color.invert \ [string tolower [msgcat::mc {Invert}]] colorbar(invert) InvertColorbar @@ -302,32 +285,23 @@ [string tolower [msgcat::mc {Reset}]] ResetColormap RadioButton $ds9(buttons).color.horz \ [string tolower [msgcat::mc {Horizontal}]] \ - colorbar(orientation) horizontal UpdateView + colorbar(orientation) 0 ColorbarUpdateView RadioButton $ds9(buttons).color.vert \ [string tolower [msgcat::mc {Vertical}]] \ - colorbar(orientation) vertical UpdateView + colorbar(orientation) 1 ColorbarUpdateView CheckButton $ds9(buttons).color.numerics \ [string tolower [msgcat::mc {Numerics}]] \ - colorbar(numerics) UpdateView + colorbar(numerics) ColorbarUpdateView RadioButton $ds9(buttons).color.numvalue \ [string tolower [msgcat::mc {Value}]] \ - colorbar(space) 1 UpdateView + colorbar(space) 1 ColorbarUpdateView RadioButton $ds9(buttons).color.numspace \ [string tolower [msgcat::mc {Distance}]] \ - colorbar(space) 0 UpdateView + colorbar(space) 0 ColorbarUpdateView ButtonButton $ds9(buttons).color.params \ [string tolower [msgcat::mc {Parameters}]] ColormapDialog - set buttons(color) {} - set id [colorbar list id] - # base - for {set ii 0} {$ii<$icolorbar(end)} {incr ii} { - set jj [lindex $id $ii] - set name [colorbar get name $jj] - append buttons(color) "$ds9(buttons).color.$name pbuttons(color,$name) " - } - append buttons(color) "$ds9(buttons).color.invert pbuttons(color,invert) " append buttons(color) "$ds9(buttons).color.reset pbuttons(color,reset) " append buttons(color) "$ds9(buttons).color.horz pbuttons(color,horz) " @@ -338,6 +312,20 @@ append buttons(color) "$ds9(buttons).color.params pbuttons(color,params) " } +proc CreateButtonsColorExternal {which} { + global buttons + global icolorbar + global colorbar + global ds9 + + foreach cmap $icolorbar($which,cmaps) { + RadioButton $ds9(buttons).color.$cmap [msgcat::mc $cmap] \ + colorbar(map) $cmap [list ChangeColormapName $cmap] + + append buttons(color) "$ds9(buttons).color.$cmap pbuttons(color,$cmap) " + } +} + proc PrefsDialogButtonbarColor {f} { global icolorbar global buttons @@ -348,17 +336,27 @@ set m $f.menu ThemeMenu $m - set id [colorbar list id] - # base - for {set ii 0} {$ii<$icolorbar(end)} {incr ii} { - set jj [lindex $id $ii] - set name [colorbar get name $jj] - $m add checkbutton -label [msgcat::mc $name] \ - -variable pbuttons(color,$name) \ + foreach cmap $icolorbar(default,cmaps) { + $m add checkbutton -label [msgcat::mc $cmap] \ + -variable pbuttons(color,$cmap) \ -command {UpdateButtons buttons(color)} } $m add separator + $m add cascade -label [msgcat::mc {h5utils}] -menu $m.h5 + $m add cascade -label [msgcat::mc {Matplotlib}] -menu $m.matplotlib + $m add cascade -label [msgcat::mc {Cubehelix}] -menu $m.cubehelix + $m add cascade -label [msgcat::mc {Gist}] -menu $m.gist + $m add cascade -label [msgcat::mc {Topographic}] -menu $m.topo + + PrefsDialogButtonbarColorExternal $m h5 h5 + PrefsDialogButtonbarColorExternal $m matplotlib matplotlib + PrefsDialogButtonbarColorExternal $m matplotlib matplotlib2 + PrefsDialogButtonbarColorExternal $m cubehelix cubehelix + PrefsDialogButtonbarColorExternal $m gist gist + PrefsDialogButtonbarColorExternal $m topo topo + + $m add separator $m add checkbutton -label [msgcat::mc {Invert Colormap}] \ -variable pbuttons(color,invert) \ -command {UpdateButtons buttons(color)} @@ -399,6 +397,19 @@ -command {UpdateButtons buttons(color)} } +proc PrefsDialogButtonbarColorExternal {m mm which} { + global ds9 + global icolorbar + + ThemeMenu $m.$which + + foreach cmap $icolorbar($which,cmaps) { + $m.$mm add checkbutton -label [msgcat::mc $cmap] \ + -variable pbuttons(color,$cmap) \ + -command {UpdateButtons buttons(color)} + } +} + # Support proc UpdateColorMenu {} { @@ -412,16 +423,14 @@ puts stderr "UpdateColorMenu" } - set end [expr $icolorbar(end)+$icolorbar(start)] if {$current(frame) != {}} { switch [$current(frame) get type] { base - 3d { - # menus - # base - for {set ii $icolorbar(start)} {$ii<$end} {incr ii} { - $ds9(mb).color entryconfig $ii -state normal + foreach cmap $icolorbar(default,cmaps) { + $ds9(mb).color entryconfig $cmap -state normal } + $ds9(mb).color entryconfig [msgcat::mc {h5utils}] \ -state normal $ds9(mb).color entryconfig [msgcat::mc {Matplotlib}] \ @@ -435,21 +444,18 @@ $ds9(mb).color entryconfig [msgcat::mc {User}] \ -state normal - # buttons - set id [colorbar list id] - # base - for {set ii 0} {$ii<$icolorbar(end)} {incr ii} { - set jj [lindex $id $ii] - set name [colorbar get name $jj] - $ds9(buttons).color.$name configure -state normal - } + UpdateColorMenuExternal default normal + UpdateColorMenuExternal h5 normal + UpdateColorMenuExternal matplotlib normal + UpdateColorMenuExternal cubehelix normal + UpdateColorMenuExternal gist normal + UpdateColorMenuExternal topo normal } rgb { - # menus - # base - for {set ii $icolorbar(start)} {$ii<$end} {incr ii} { - $ds9(mb).color entryconfig $ii -state disabled + foreach cmap $icolorbar(default,cmaps) { + $ds9(mb).color entryconfig $cmap -state disabled } + $ds9(mb).color entryconfig [msgcat::mc {h5utils}] \ -state disabled $ds9(mb).color entryconfig [msgcat::mc {Matplotlib}] \ @@ -463,22 +469,19 @@ $ds9(mb).color entryconfig [msgcat::mc {User}] \ -state disable - # buttons - set id [colorbar list id] - # base - for {set ii 0} {$ii<$icolorbar(end)} {incr ii} { - set jj [lindex $id $ii] - set name [colorbar get name $jj] - $ds9(buttons).color.$name configure -state disabled - } + UpdateColorMenuExternal default disable + UpdateColorMenuExternal h5 disable + UpdateColorMenuExternal matplotlib disable + UpdateColorMenuExternal cubehelix disable + UpdateColorMenuExternal gist disable + UpdateColorMenuExternal topo disable } } } else { - # menus - # base - for {set ii $icolorbar(start)} {$ii<$end} {incr ii} { - $ds9(mb).color entryconfig $ii -state normal + foreach cmap $icolorbar(default,cmaps) { + $ds9(mb).color entryconfig $cmap -state normal } + $ds9(mb).color entryconfig [msgcat::mc {h5utils}] -state normal $ds9(mb).color entryconfig [msgcat::mc {Matplotlib}] -state normal $ds9(mb).color entryconfig [msgcat::mc {Cubehelix}] -state normal @@ -486,13 +489,20 @@ $ds9(mb).color entryconfig [msgcat::mc {Topographic}] -state normal $ds9(mb).color entryconfig [msgcat::mc {User}] -state normal - # buttons - set id [colorbar list id] - # base - for {set ii 0} {$ii<$icolorbar(end)} {incr ii} { - set jj [lindex $id $ii] - set name [colorbar get name $jj] - $ds9(buttons).color.$name configure -state normal - } + UpdateColorMenuExternal default normal + UpdateColorMenuExternal h5 normal + UpdateColorMenuExternal matplotlib normal + UpdateColorMenuExternal cubehelix normal + UpdateColorMenuExternal gist normal + UpdateColorMenuExternal topo normal + } +} + +proc UpdateColorMenuExternal {which state} { + global icolorbar + global ds9 + + foreach cmap $icolorbar($which,cmaps) { + $ds9(buttons).color.$cmap configure -state $state } } diff -Nru saods9-8.2+repack/ds9/library/mecube.tcl saods9-8.3+repack/ds9/library/mecube.tcl --- saods9-8.2+repack/ds9/library/mecube.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mecube.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/medit.tcl saods9-8.3+repack/ds9/library/medit.tcl --- saods9-8.2+repack/ds9/library/medit.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/medit.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/menu.tcl saods9-8.3+repack/ds9/library/menu.tcl --- saods9-8.2+repack/ds9/library/menu.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/menu.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -116,7 +116,16 @@ proc ThemeConfigPlot {w} { set varname [lindex [split $w {.}] 1] if {$varname != {}} { - PlotUpdateAllElement $varname + # All non-plot blt::graphs need to be listed here + # scale + # horz/vert graph + switch $varname { + scale - + ds9 {} + default { + PlotUpdateAllElement $varname + } + } } } diff -Nru saods9-8.2+repack/ds9/library/mfile.tcl saods9-8.3+repack/ds9/library/mfile.tcl --- saods9-8.2+repack/ds9/library/mfile.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mfile.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -37,8 +37,11 @@ $ds9(mb).file add command -label "[msgcat::mc {Restore}]..." \ -command RestoreDialog $ds9(mb).file add separator - $ds9(mb).file add command -label "[msgcat::mc {Display Header}]..." \ + $ds9(mb).file add command -label [msgcat::mc {Header}] \ -command DisplayHeaderMenu + $ds9(mb).file add command -label [msgcat::mc {Notes}] \ + -command DisplayNotes + $ds9(mb).file add separator $ds9(mb).file add cascade -label [msgcat::mc {Preserve During Load}] \ -menu $ds9(mb).file.preserve $ds9(mb).file add separator @@ -336,6 +339,7 @@ file,backup 0 file,restore 0 file,header 1 + file,notes 1 file,xpa,info 0 file,samp,image 0 file,samp,table 0 @@ -508,6 +512,8 @@ ButtonButton $ds9(buttons).file.header \ [string tolower [msgcat::mc {Header}]] DisplayHeaderMenu + ButtonButton $ds9(buttons).file.notes \ + [string tolower [msgcat::mc {Notes}]] DisplayNotes ButtonButton $ds9(buttons).file.xpainfo \ [string tolower {XPA Info}] XPAInfo @@ -590,6 +596,7 @@ $ds9(buttons).file.backup pbuttons(file,backup) $ds9(buttons).file.restore pbuttons(file,restore) $ds9(buttons).file.header pbuttons(file,header) + $ds9(buttons).file.notes pbuttons(file,notes) $ds9(buttons).file.xpainfo pbuttons(file,xpa,info) $ds9(buttons).file.sampimage pbuttons(file,samp,image) $ds9(buttons).file.samptable pbuttons(file,samp,table) @@ -632,8 +639,10 @@ $m add checkbutton -label "[msgcat::mc {Restore}]..." \ -variable pbuttons(file,restore) -command {UpdateButtons buttons(file)} $m add separator - $m add checkbutton -label "[msgcat::mc {Display Header}]..." \ + $m add checkbutton -label [msgcat::mc {Header}] \ -variable pbuttons(file,header) -command {UpdateButtons buttons(file)} + $m add checkbutton -label [msgcat::mc {Notes}] \ + -variable pbuttons(file,notes) -command {UpdateButtons buttons(file)} $m add separator $m add cascade -label [msgcat::mc {XPA}] -menu $m.xpa $m add cascade -label [msgcat::mc {SAMP}] -menu $m.samp @@ -1143,11 +1152,11 @@ set mm $ds9(mb).file set bb $ds9(buttons).file - $mm entryconfig "[msgcat::mc {Display Header}]..." -state disabled + $mm entryconfig [msgcat::mc {Header}] -state disabled $bb.header configure -state disabled if {$current(frame) != {}} { if {[$current(frame) has fits]} { - $mm entryconfig "[msgcat::mc {Display Header}]..." -state normal + $mm entryconfig [msgcat::mc {Header}] -state normal $bb.header configure -state normal } } diff -Nru saods9-8.2+repack/ds9/library/mframe.tcl saods9-8.3+repack/ds9/library/mframe.tcl --- saods9-8.2+repack/ds9/library/mframe.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mframe.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -1048,7 +1048,7 @@ $ds9(mb).frame entryconfig [msgcat::mc {New Frame RGB}] -state normal $ds9(buttons).frame.newrgb configure -state normal - if {$ds9(active,num) > 0} { + if {[llength $ds9(active)] > 0} { $ds9(mb).frame entryconfig [msgcat::mc {Delete Frame}] -state normal $ds9(mb).frame entryconfig [msgcat::mc {Delete All Frames}] -state normal @@ -1192,10 +1192,10 @@ } set cnt $ds9(menu,size,frame,goto) - foreach f $ds9(frames) { - set which "[msgcat::mc {Frame}] [string range $f 5 end]" - $ds9(mb).frame.goto add radiobutton -label $which \ - -variable ds9(next) -value $f -command GotoFrame + foreach ff $ds9(frames) { + set which "[msgcat::mc {Frame}] [string range $ff 5 end]" + $ds9(mb).frame.goto add command -label $which \ + -command [list GotoFrame $ff] # wrap if needed incr cnt @@ -1211,16 +1211,17 @@ } set cnt $ds9(menu,size,frame,active) - foreach f $ds9(frames) { - set which "[msgcat::mc {Frame}] [string range $f 5 end]" - $ds9(mb).frame.active add checkbutton -label $which \ - -variable active($f) -command UpdateActiveFrames + foreach ff $ds9(frames) { + $ds9(mb).frame.active add checkbutton \ + -label "[msgcat::mc {Frame}] [string range $ff 5 end]" \ + -variable active($ff) -command UpdateActiveFrames # wrap if needed incr cnt if {$cnt>=$ds9(menu,size,wrap)} { set cnt 1 - $ds9(mb).frame.active entryconfig $which -columnbreak 1 + $ds9(mb).frame.active entryconfig \ + "[msgcat::mc {Frame}] [string range $ff 5 end]" -columnbreak 1 } } } diff -Nru saods9-8.2+repack/ds9/library/mhelp.tcl saods9-8.3+repack/ds9/library/mhelp.tcl --- saods9-8.2+repack/ds9/library/mhelp.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mhelp.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/mosaicimageiraf.tcl saods9-8.3+repack/ds9/library/mosaicimageiraf.tcl --- saods9-8.2+repack/ds9/library/mosaicimageiraf.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mosaicimageiraf.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/mosaicimage.tcl saods9-8.3+repack/ds9/library/mosaicimage.tcl --- saods9-8.2+repack/ds9/library/mosaicimage.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mosaicimage.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/mosaicimagewcs.tcl saods9-8.3+repack/ds9/library/mosaicimagewcs.tcl --- saods9-8.2+repack/ds9/library/mosaicimagewcs.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mosaicimagewcs.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/mosaicimagewfpc2.tcl saods9-8.3+repack/ds9/library/mosaicimagewfpc2.tcl --- saods9-8.2+repack/ds9/library/mosaicimagewfpc2.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mosaicimagewfpc2.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/mosaiciraf.tcl saods9-8.3+repack/ds9/library/mosaiciraf.tcl --- saods9-8.2+repack/ds9/library/mosaiciraf.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mosaiciraf.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/mosaic.tcl saods9-8.3+repack/ds9/library/mosaic.tcl --- saods9-8.2+repack/ds9/library/mosaic.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mosaic.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/mosaicwcs.tcl saods9-8.3+repack/ds9/library/mosaicwcs.tcl --- saods9-8.2+repack/ds9/library/mosaicwcs.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mosaicwcs.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/movie.tcl saods9-8.3+repack/ds9/library/movie.tcl --- saods9-8.2+repack/ds9/library/movie.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/movie.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -32,8 +32,6 @@ set movie(status) 0 set movie(abort) 0 set movie(first) 0 - - set movie(error) [msgcat::mc {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.}] } proc MovieDialog {} { @@ -158,7 +156,6 @@ # besure we are on top raise $ds9(top) - # for darwin only set geom [MacOSPhotoFix $ds9(top) 0 1] switch $movie(action) { @@ -174,7 +171,7 @@ } # reset if needed - DarwinPhotoRestore $ds9(top) $geom + MacOSPhotoRestore $ds9(top) $geom } proc MovieFrame {} { @@ -194,15 +191,13 @@ set framesav $current(frame) foreach ff $ds9(active) { - set ds9(next) $ff - GotoFrame + GotoFrame $ff if {[MoviePhoto]} { break } } - set ds9(next) $framesav - GotoFrame + GotoFrame $framesav if {[info exists modesav]} { set current(display) $modesav @@ -405,7 +400,7 @@ set rr [catch {image create photo -format window -data $ds9(canvas)} ph] if {$rr} { - Error $movie(error) + Error [msgcat::mc {An error has occurred while creating}] return $rr } @@ -434,7 +429,7 @@ set rr [catch {image create photo -format window -data $ds9(canvas)} ph] if {$rr} { - Error $movie(error) + Error [msgcat::mc {An error has occurred while creating}] return $rr } diff -Nru saods9-8.2+repack/ds9/library/mregion.tcl saods9-8.3+repack/ds9/library/mregion.tcl --- saods9-8.2+repack/ds9/library/mregion.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mregion.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/mscale.tcl saods9-8.3+repack/ds9/library/mscale.tcl --- saods9-8.2+repack/ds9/library/mscale.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mscale.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/multiframe.tcl saods9-8.3+repack/ds9/library/multiframe.tcl --- saods9-8.2+repack/ds9/library/multiframe.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/multiframe.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -98,7 +98,7 @@ if {$did} { DeleteCurrentFrame - incr ds9(next,num) -1 + incr ds9(seq) -1 } if {!$cnt} { Error "[msgcat::mc {Unable to load}] $loadParam(file,type) $loadParam(file,mode) $loadParam(file,name)" diff -Nru saods9-8.2+repack/ds9/library/mview.tcl saods9-8.3+repack/ds9/library/mview.tcl --- saods9-8.2+repack/ds9/library/mview.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mview.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -11,51 +11,54 @@ ThemeMenu $ds9(mb).view $ds9(mb).view add radiobutton -label [msgcat::mc {Horizontal Layout}] \ - -variable view(layout) -value horizontal -command {ViewHorzCmd} + -variable view(layout) -value horizontal -command LayoutView $ds9(mb).view add radiobutton -label [msgcat::mc {Vertical Layout}] \ - -variable view(layout) -value vertical -command {ViewVertCmd} + -variable view(layout) -value vertical -command LayoutView + $ds9(mb).view add separator + $ds9(mb).view add checkbutton -label [msgcat::mc {Multiple Colorbars}] \ + -variable view(multi) -command LayoutFrames $ds9(mb).view add separator $ds9(mb).view add checkbutton -label [msgcat::mc {Information Panel}] \ - -variable view(info) -command UpdateView + -variable view(info) -command LayoutView $ds9(mb).view add checkbutton -label [msgcat::mc {Panner}] \ - -variable view(panner) -command UpdateView + -variable view(panner) -command LayoutView $ds9(mb).view add checkbutton -label [msgcat::mc {Magnifier}] \ - -variable view(magnifier) -command UpdateView + -variable view(magnifier) -command LayoutView $ds9(mb).view add checkbutton -label [msgcat::mc {Buttons}] \ - -variable view(buttons) -command UpdateView + -variable view(buttons) -command LayoutView $ds9(mb).view add checkbutton -label [msgcat::mc {Colorbar}] \ - -variable view(colorbar) -command UpdateView + -variable view(colorbar) -command LayoutFrames $ds9(mb).view add checkbutton -label [msgcat::mc {Horizontal Graph}] \ - -variable view(graph,horz) -command UpdateView + -variable view(graph,horz) -command LayoutFrames $ds9(mb).view add checkbutton -label [msgcat::mc {Vertical Graph}] \ - -variable view(graph,vert) -command UpdateView + -variable view(graph,vert) -command LayoutFrames $ds9(mb).view add separator $ds9(mb).view add checkbutton -label [msgcat::mc {Filename}] \ - -variable view(info,filename) -command UpdateView + -variable view(info,filename) -command LayoutInfoPanel $ds9(mb).view add checkbutton -label [msgcat::mc {Object}] \ - -variable view(info,object) -command UpdateView + -variable view(info,object) -command LayoutInfoPanel $ds9(mb).view add checkbutton -label [msgcat::mc {Keyword}] \ - -variable view(info,keyword) -command UpdateView + -variable view(info,keyword) -command LayoutInfoPanel $ds9(mb).view add checkbutton -label [msgcat::mc {Min Max}] \ - -variable view(info,minmax) -command UpdateView + -variable view(info,minmax) -command LayoutInfoPanel $ds9(mb).view add checkbutton -label [msgcat::mc {Low High}] \ - -variable view(info,lowhigh) -command UpdateView + -variable view(info,lowhigh) -command LayoutInfoPanel $ds9(mb).view add checkbutton -label [msgcat::mc {Units}] \ - -variable view(info,bunit) -command UpdateView + -variable view(info,bunit) -command LayoutInfoPanel $ds9(mb).view add checkbutton -label [msgcat::mc {WCS}] \ - -variable view(info,wcs) -command UpdateView + -variable view(info,wcs) -command LayoutInfoPanel $ds9(mb).view add cascade -label [msgcat::mc {Multiple WCS}] \ -menu $ds9(mb).view.mwcs $ds9(mb).view add checkbutton -label [msgcat::mc {Image}] \ - -variable view(info,image) -command UpdateView + -variable view(info,image) -command LayoutInfoPanel $ds9(mb).view add checkbutton -label [msgcat::mc {Physical}] \ - -variable view(info,physical) -command UpdateView + -variable view(info,physical) -command LayoutInfoPanel $ds9(mb).view add checkbutton -label [msgcat::mc {Amplifier}] \ - -variable view(info,amplifier) -command UpdateView + -variable view(info,amplifier) -command LayoutInfoPanel $ds9(mb).view add checkbutton -label [msgcat::mc {Detector}] \ - -variable view(info,detector) -command UpdateView + -variable view(info,detector) -command LayoutInfoPanel $ds9(mb).view add checkbutton -label [msgcat::mc {Frame Information}] \ - -variable view(info,frame) -command UpdateView + -variable view(info,frame) -command LayoutInfoPanel # View Info Panel WCS ThemeMenu $ds9(mb).view.mwcs @@ -63,7 +66,7 @@ $ds9(mb).view.mwcs add checkbutton \ -label "[msgcat::mc {WCS}] $l" \ -variable "view(info,wcs$l)" \ - -command UpdateView + -command LayoutInfoPanel } } @@ -82,6 +85,9 @@ $m add radiobutton -label [msgcat::mc {Vertical Layout}] \ -variable pview(layout) -value vertical $m add separator + $m add checkbutton -label [msgcat::mc {Multiple Colorbars}] \ + -variable pview(multi) + $m add separator $m add checkbutton -label [msgcat::mc {Information Panel}] \ -variable pview(info) $m add checkbutton -label [msgcat::mc {Panner}] \ @@ -132,68 +138,6 @@ pack $f -side top -fill both -expand true } -proc PrefsDialogGraph {} { - global dprefs - global ds9 - global pds9 - global pmagnifier - global current - global pgraph - - set w $dprefs(tab) - - $dprefs(listbox) insert {} end -id [ttk::frame $w.graph] \ - -text [msgcat::mc {Graphs}] - - # Horz - set f [ttk::labelframe $w.graph.horz -text [msgcat::mc {Horizontal}]] - - ttk::checkbutton $f.hgrid -text [msgcat::mc {Show Grid}] \ - -variable pgraph(horz,grid) - ttk::label $f.htaxis -text [msgcat::mc {Axis}] - ttk::radiobutton $f.hlaxis -text [msgcat::mc {Linear}] \ - -variable pgraph(horz,log) -value false - ttk::radiobutton $f.hgaxis -text [msgcat::mc {Log}] \ - -variable pgraph(horz,log) -value true - ttk::label $f.htthick -text [msgcat::mc {Thickness}] - ttk::entry $f.hthick -textvariable pgraph(horz,thick) -width 7 - ttk::label $f.htmethod -text [msgcat::mc {Method}] - ttk::radiobutton $f.hamethod -text [msgcat::mc {Average}] \ - -variable pgraph(horz,method) -value average - ttk::radiobutton $f.hsmethod -text [msgcat::mc {Sum}] \ - -variable pgraph(horz,method) -value sum - - grid $f.hgrid -padx 2 -pady 2 -sticky w - grid $f.htaxis $f.hlaxis $f.hgaxis -padx 2 -pady 2 -sticky w - grid $f.htthick $f.hthick -padx 2 -pady 2 -sticky w - grid $f.htmethod $f.hamethod $f.hsmethod -padx 2 -pady 2 -sticky w - - # Vert - set f [ttk::labelframe $w.graph.vert -text [msgcat::mc {Vertical}]] - - ttk::checkbutton $f.vgrid -text [msgcat::mc {Show Grid}] \ - -variable pgraph(vert,grid) - ttk::label $f.vtaxis -text [msgcat::mc {Axis}] - ttk::radiobutton $f.vlaxis -text [msgcat::mc {Linear}] \ - -variable pgraph(vert,log) -value false - ttk::radiobutton $f.vgaxis -text [msgcat::mc {Log}] \ - -variable pgraph(vert,log) -value true - ttk::label $f.vtthick -text [msgcat::mc {Thickness}] - ttk::entry $f.vthick -textvariable pgraph(vert,thick) -width 7 - ttk::label $f.vtmethod -text [msgcat::mc {Method}] - ttk::radiobutton $f.vamethod -text [msgcat::mc {Average}] \ - -variable pgraph(vert,method) -value average - ttk::radiobutton $f.vsmethod -text [msgcat::mc {Sum}] \ - -variable pgraph(vert,method) -value sum - - grid $f.vgrid -padx 2 -pady 2 -sticky w - grid $f.vtaxis $f.vlaxis $f.vgaxis -padx 2 -pady 2 -sticky w - grid $f.vtthick $f.vthick -padx 2 -pady 2 -sticky w - grid $f.vtmethod $f.vamethod $f.vsmethod -padx 2 -pady 2 -sticky w - - pack $w.graph.horz $w.graph.vert -side top -fill both -expand true -} - # Buttons proc ButtonsViewDef {} { @@ -202,6 +146,7 @@ array set pbuttons { view,horizontal 0 view,vertical 0 + view,multi 0 view,info 1 view,panner 1 view,magnifier 1 @@ -232,73 +177,77 @@ RadioButton $ds9(buttons).view.horizontal \ [string tolower [msgcat::mc {Layout Horz}]] \ - view(layout) horizontal {ViewHorzCmd} + view(layout) horizontal LayoutView RadioButton $ds9(buttons).view.vertical \ [string tolower [msgcat::mc {Layout Vert}]] \ - view(layout) vertical {ViewVertCmd} + view(layout) vertical LayoutView + + CheckButton $ds9(buttons).view.multi \ + [string tolower [msgcat::mc {Multi Colorbars}]] \ + view(multi) LayoutFrames CheckButton $ds9(buttons).view.info \ [string tolower [msgcat::mc {Information}]] \ - view(info) UpdateView + view(info) LayoutView CheckButton $ds9(buttons).view.panner \ [string tolower [msgcat::mc {Panner}]] \ - view(panner) UpdateView + view(panner) LayoutView CheckButton $ds9(buttons).view.magnifier \ [string tolower [msgcat::mc {Magnifier}]] \ - view(magnifier) UpdateView + view(magnifier) LayoutView CheckButton $ds9(buttons).view.buttons \ [string tolower [msgcat::mc {Buttons}]] \ - view(buttons) UpdateView + view(buttons) LayoutView CheckButton $ds9(buttons).view.colorbar \ [string tolower [msgcat::mc {Colorbar}]] \ - view(colorbar) UpdateView + view(colorbar) LayoutFrames CheckButton $ds9(buttons).view.graphhorz \ [string tolower [msgcat::mc {Graph Horz}]] \ - view(graph,horz) UpdateView + view(graph,horz) LayoutFrames CheckButton $ds9(buttons).view.graphvert \ [string tolower [msgcat::mc {Graph Vert}]] \ - view(graph,vert) UpdateView - + view(graph,vert) LayoutFrames CheckButton $ds9(buttons).view.filename \ [string tolower [msgcat::mc {Filename}]] \ - view(info,filename) UpdateView + view(info,filename) LayoutInfoPanel CheckButton $ds9(buttons).view.object \ [string tolower [msgcat::mc {Object}]] \ - view(info,object) UpdateView + view(info,object) LayoutInfoPanel CheckButton $ds9(buttons).view.keyword \ [string tolower [msgcat::mc {Keyword}]] \ - view(info,keyword) UpdateView + view(info,keyword) LayoutInfoPanel CheckButton $ds9(buttons).view.minmax \ [string tolower [msgcat::mc {Min Max}]] \ - view(info,minmax) UpdateView + view(info,minmax) LayoutInfoPanel CheckButton $ds9(buttons).view.lowhigh \ [string tolower [msgcat::mc {Low High}]] \ - view(info,lowhigh) UpdateView + view(info,lowhigh) LayoutInfoPanel CheckButton $ds9(buttons).view.bunit \ [string tolower [msgcat::mc {Units}]] \ - view(info,bunit) UpdateView + view(info,bunit) LayoutInfoPanel CheckButton $ds9(buttons).view.wcs \ [string tolower [msgcat::mc {WCS}]] \ - view(info,wcs) UpdateView + view(info,wcs) LayoutInfoPanel CheckButton $ds9(buttons).view.image \ [string tolower [msgcat::mc {Image}]] \ - view(info,image) UpdateView + view(info,image) LayoutInfoPanel CheckButton $ds9(buttons).view.physical \ [string tolower [msgcat::mc {Physical}]] \ - view(info,physical) UpdateView + view(info,physical) LayoutInfoPanel CheckButton $ds9(buttons).view.amplifier \ [string tolower [msgcat::mc {Amplifier}]] \ - view(info,amplifier) UpdateView + view(info,amplifier) LayoutInfoPanel CheckButton $ds9(buttons).view.detector \ [string tolower [msgcat::mc {Detector}]] \ - view(info,detector) UpdateView + view(info,detector) LayoutInfoPanel CheckButton $ds9(buttons).view.frame \ [string tolower [msgcat::mc {Frame}]] \ - view(info,frame) UpdateView + view(info,frame) LayoutInfoPanel set buttons(view) " $ds9(buttons).view.horizontal pbuttons(view,horizontal) $ds9(buttons).view.vertical pbuttons(view,vertical) + $ds9(buttons).view.multi pbuttons(view,multi) $ds9(buttons).view.info pbuttons(view,info) $ds9(buttons).view.panner pbuttons(view,panner) $ds9(buttons).view.magnifier pbuttons(view,magnifier) @@ -335,6 +284,10 @@ -variable pbuttons(view,vertical) \ -command {UpdateButtons buttons(view)} $m add separator + $m add checkbutton -label [msgcat::mc {Multiple Colorbars}] \ + -variable pbuttons(view,multi) \ + -command {UpdateButtons buttons(view)} + $m add separator $m add checkbutton -label [msgcat::mc {Information Panel}] \ -variable pbuttons(view,info) -command {UpdateButtons buttons(view)} $m add checkbutton -label [msgcat::mc {Panner}] \ diff -Nru saods9-8.2+repack/ds9/library/mwcs.tcl saods9-8.3+repack/ds9/library/mwcs.tcl --- saods9-8.2+repack/ds9/library/mwcs.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mwcs.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/mzoom.tcl saods9-8.3+repack/ds9/library/mzoom.tcl --- saods9-8.2+repack/ds9/library/mzoom.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/mzoom.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -385,7 +385,7 @@ puts stderr "UpdateZoomMenu" } - if {$ds9(active,num) > 0} { + if {[llength $ds9(active)] > 0} { $ds9(mb) entryconfig [msgcat::mc {Zoom}] -state normal ConfigureButtons zoom normal } else { diff -Nru saods9-8.2+repack/ds9/library/nameres.tcl saods9-8.3+repack/ds9/library/nameres.tcl --- saods9-8.2+repack/ds9/library/nameres.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/nameres.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/notes.tcl saods9-8.3+repack/ds9/library/notes.tcl --- saods9-8.2+repack/ds9/library/notes.tcl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/library/notes.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,81 @@ +# Copyright (C) 1999-2021 +# Smithsonian Astrophysical Observatory, Cambridge, MA, USA +# For conditions of distribution and use, see copyright notice in "copyright" + +package provide DS9 1.0 + + +proc NotesDef {} { + global ds9notes + + set ds9notes {} +} + +proc DisplayNotes {} { + EditTextDialog notes Notes 80 20 ds9notes +} + +proc ProcessNotesCmd {varname iname} { + upvar $varname var + upvar $iname i + + notes::YY_FLUSH_BUFFER + notes::yy_scan_string [lrange $var $i end] + notes::yyparse + incr i [expr $notes::yycnt-1] +} + +proc ProcessSendNotesCmd {proc id param {sock {}} {fn {}}} { + global ds9notes + $proc $id "$ds9notes\n" +} + +proc NotesCmdAppend {str} { + global ds9notes + + append ds9notes "$str\n" + DisplayNotes +} + +proc NotesCmdInsert {str} { + global ds9notes + + set ds9notes "$str\n$ds9notes" + DisplayNotes +} + +proc NotesCmdClear {} { + global ds9notes + + set ds9notes {} + DisplayNotes +} + +proc NotesCmdLoad {fn} { + global ds9notes + + if {$fn != {}} { + if {[catch {set ch [open "$fn" r]}]} { + Error [msgcat::mc {An error has occurred while loading}] + return + } + set ds9notes [read $ch] + close $ch + + DisplayNotes + } +} + +proc NotesCmdSave {fn} { + global ds9notes + + if {$fn != {}} { + if {[catch {set ch [open "$fn" w]}]} { + Error [msgcat::mc {An error has occurred while saving}] + return + } + puts $ch $ds9notes + close $ch + } +} + diff -Nru saods9-8.2+repack/ds9/library/nrrd.tcl saods9-8.3+repack/ds9/library/nrrd.tcl --- saods9-8.2+repack/ds9/library/nrrd.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/nrrd.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/nsvr.tcl saods9-8.3+repack/ds9/library/nsvr.tcl --- saods9-8.2+repack/ds9/library/nsvr.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/nsvr.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/nvss.tcl saods9-8.3+repack/ds9/library/nvss.tcl --- saods9-8.2+repack/ds9/library/nvss.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/nvss.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/open.tcl saods9-8.3+repack/ds9/library/open.tcl --- saods9-8.2+repack/ds9/library/open.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/open.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/pagesetup.tcl saods9-8.3+repack/ds9/library/pagesetup.tcl --- saods9-8.2+repack/ds9/library/pagesetup.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/pagesetup.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/panner.tcl saods9-8.3+repack/ds9/library/panner.tcl --- saods9-8.2+repack/ds9/library/panner.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/panner.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -141,11 +141,11 @@ } switch $ds9(wm) { - x11 - - aqua { + x11 { focus $ds9(panner) $ds9(panner) focus panner } + aqua - win32 {} } @@ -166,17 +166,16 @@ panner highlite off switch $ds9(wm) { - x11 - - aqua { + x11 { $ds9(panner) focus {} focus {} } + aqua - win32 {} } LeaveInfoBox PixelTableClearDialog - ClearGraphData } proc MotionPanner {x y} { diff -Nru saods9-8.2+repack/ds9/library/panzoom.tcl saods9-8.3+repack/ds9/library/panzoom.tcl --- saods9-8.2+repack/ds9/library/panzoom.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/panzoom.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -190,7 +190,7 @@ proc UpdatePan {which} { LockFrame $which - UpdateGraphAxis $which + UpdateGraphsAxis $which UpdatePanZoomDialog SAMPSendCoordPointAtSkyCmd $which } @@ -271,7 +271,7 @@ proc UpdateZoom {which} { LockFrame $which - UpdateGraphAxis $which + UpdateGraphsAxis $which UpdatePanZoomDialog GridUpdateZoom RefreshInfoBox $which @@ -340,7 +340,7 @@ proc UpdateRotate {which} { LockFrame $which - UpdateGraphAxis $which + UpdateGraphsAxis $which UpdatePanZoomDialog RefreshInfoBox $which } @@ -498,7 +498,7 @@ $current(frame) rotate to $current(rotate) LockFrameCurrent - UpdateGraphAxis $current(frame) + UpdateGraphsAxis $current(frame) UpdatePanZoomDialog GridUpdateZoom RefreshInfoBox $current(frame) @@ -580,7 +580,7 @@ $current(frame) wcs align $current(align) LockFrameCurrent - UpdateGraphAxis $current(frame) + UpdateGraphsAxis $current(frame) } } diff -Nru saods9-8.2+repack/ds9/library/photo.tcl saods9-8.3+repack/ds9/library/photo.tcl --- saods9-8.2+repack/ds9/library/photo.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/photo.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -18,13 +18,13 @@ fconfigure stdin -translation binary -encoding binary if {[catch {image create photo -data [read -nonewline stdin]} ph]} { - Error [msgcat::mc {An error has occurred while reading image.}] + Error [msgcat::mc {An error has occurred while loading}] return } set loadParam(file,name) stdin } else { if {[catch {image create photo -file $fn} ph]} { - Error [msgcat::mc {An error has occurred while reading image.}] + Error [msgcat::mc {An error has occurred while loading}] return } set loadParam(file,name) $fn @@ -47,7 +47,7 @@ set loadParam(load,type) photo if {[catch {image create photo -file $path} ph]} { - Error [msgcat::mc {An error has occurred while reading image.}] + Error [msgcat::mc {An error has occurred while loading}] return } set loadParam(file,name) $fn @@ -71,7 +71,7 @@ fconfigure $ch -translation binary -encoding binary if {[catch {image create photo -data [read $ch]} ph]} { - Error [msgcat::mc {An error has occurred while reading image.}] + Error [msgcat::mc {An error has occurred while loading}] return 0 } set loadParam(var,name) $ph @@ -100,7 +100,7 @@ } if {[catch {image create photo} ph]} { - Error [msgcat::mc {An error has occurred while creating image.}] + Error [msgcat::mc {An error has occurred while creating}] return } @@ -121,7 +121,7 @@ } } if {[catch {$ph write $fn -format $ff}]} { - Error [msgcat::mc {An error has occurred while writing image.}] + Error [msgcat::mc {An error has occurred while saving}] } image delete $ph @@ -139,7 +139,7 @@ } if {[catch {image create photo} ph]} { - Error [msgcat::mc {An error has occurred while creating image.}] + Error [msgcat::mc {An error has occurred while creating}] return } @@ -162,7 +162,7 @@ } } if {[catch {$ph data -format $ff} data]} { - Error [msgcat::mc {An error has occurred while writing image.}] + Error [msgcat::mc {An error has occurred while saving}] return } diff -Nru saods9-8.2+repack/ds9/library/pixel.tcl saods9-8.3+repack/ds9/library/pixel.tcl --- saods9-8.2+repack/ds9/library/pixel.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/pixel.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/plotbackup.tcl saods9-8.3+repack/ds9/library/plotbackup.tcl --- saods9-8.2+repack/ds9/library/plotbackup.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/plotbackup.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2020 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -90,12 +90,8 @@ source $fn if {[info exist apca(version)]} { - switch $apca(version) { - 8.2 { - array set $varname [array get apca] - unset apca - } - } + array set $varname [array get apca] + unset apca $var(graph,proc,updateelement) $varname PlotUpdateCanvas $varname diff -Nru saods9-8.2+repack/ds9/library/plotbar.tcl saods9-8.3+repack/ds9/library/plotbar.tcl --- saods9-8.2+repack/ds9/library/plotbar.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/plotbar.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/plotdata.tcl saods9-8.3+repack/ds9/library/plotdata.tcl --- saods9-8.2+repack/ds9/library/plotdata.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/plotdata.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -78,6 +78,7 @@ set var(graph,ds,bar,color) $pap(graph,ds,bar,color) set var(graph,ds,bar,width) $pap(graph,ds,bar,width) + # backward compatibility # Scatter set var(graph,ds,scatter,symbol) $pap(graph,ds,scatter,symbol) set var(graph,ds,scatter,color) $pap(graph,ds,scatter,color) @@ -306,6 +307,7 @@ set var(graph,ds,bar,color) $var($cc,$mm,bar,color) set var(graph,ds,bar,width) $var($cc,$mm,bar,width) + # backward compatibility # Scatter set var(graph,ds,scatter,symbol) $var($cc,$mm,scatter,symbol) set var(graph,ds,scatter,color) $var($cc,$mm,scatter,color) diff -Nru saods9-8.2+repack/ds9/library/plotdialog.tcl saods9-8.3+repack/ds9/library/plotdialog.tcl --- saods9-8.2+repack/ds9/library/plotdialog.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/plotdialog.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -156,8 +156,6 @@ -command [list PlotAddGraph $varname line] $var(mb).canvas.graph add command -label [msgcat::mc {Bar}] \ -command [list PlotAddGraph $varname bar] - $var(mb).canvas.graph add command -label [msgcat::mc {Scatter}] \ - -command [list PlotAddGraph $varname scatter] ThemeMenu $var(mb).canvas.layout $var(mb).canvas.layout add radiobutton -label [msgcat::mc {Grid}] \ @@ -277,6 +275,7 @@ PlotLineMenus $varname PlotBarMenus $varname + # backward compatibility PlotScatterMenus $varname # GUI @@ -651,12 +650,11 @@ global $varname global iap - # for darwin only set geom [MacOSPhotoFix $var(top) 0 0] set rr [catch {image create photo -format window -data $var(top)} ph] if {$rr} { - Error $iap(error) + Error [msgcat::mc {An error has occurred while creating}] return } @@ -672,7 +670,7 @@ image delete $ph # reset if needed - DarwinPhotoRestore $var(top) $geom + MacOSPhotoRestore $var(top) $geom } proc PlotUpdateMenus {varname} { @@ -759,6 +757,7 @@ -menu $var(mb).databar } scatter { + # backward compatibility $var(mb) add cascade -label [msgcat::mc {Data}] \ -menu $var(mb).datascatter } diff -Nru saods9-8.2+repack/ds9/library/plotgui.tcl saods9-8.3+repack/ds9/library/plotgui.tcl --- saods9-8.2+repack/ds9/library/plotgui.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/plotgui.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -154,14 +154,12 @@ -command [list PlotAddGraph $varname line] ttk::button $f.bar -text [msgcat::mc {Add Bar Graph}] \ -command [list PlotAddGraph $varname bar] - ttk::button $f.scatter -text [msgcat::mc {Add Scatter Graph}] \ - -command [list PlotAddGraph $varname scatter] ttk::button $f.delete -text [msgcat::mc {Delete Graph}] \ -command [list PlotDeleteGraphCurrent $varname] grid $f.tselect $f.select -padx 2 -pady 2 -sticky w grid $f.line $f.bar -padx 2 -pady 2 -sticky w - grid $f.scatter $f.delete -padx 2 -pady 2 -sticky w + grid $f.delete -padx 2 -pady 2 -sticky w # Layout set g [ttk::labelframe $w.layout -text [msgcat::mc {Layout}]] @@ -403,6 +401,7 @@ set ff [ttk::frame $w.bar] PlotGUIBar $varname $ff + # backward compatibility set ff [ttk::frame $w.scatter] PlotGUIScatter $varname $ff } @@ -416,12 +415,16 @@ pack forget $w.line pack forget $w.bar + # backward compatibility pack forget $w.scatter switch $var(graph,type) { line {pack $w.line} bar {pack $w.bar} - scatter {pack $w.scatter} + scatter { + # backward compatibility + pack $w.scatter + } } } } diff -Nru saods9-8.2+repack/ds9/library/plotline.tcl saods9-8.3+repack/ds9/library/plotline.tcl --- saods9-8.2+repack/ds9/library/plotline.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/plotline.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/plotprint.tcl saods9-8.3+repack/ds9/library/plotprint.tcl --- saods9-8.2+repack/ds9/library/plotprint.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/plotprint.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/plotprocess.tcl saods9-8.3+repack/ds9/library/plotprocess.tcl --- saods9-8.2+repack/ds9/library/plotprocess.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/plotprocess.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -135,7 +135,6 @@ PlotPrefsLine $ff PlotPrefsBar $ff - PlotPrefsScatter $ff # Error set f [ttk::labelframe $ff.error -text [msgcat::mc {Errorbar}]] @@ -161,8 +160,7 @@ pack $w.plot.left.canvas $w.plot.left.graph \ -side top -fill both -expand true pack $w.plot.right.ds $w.plot.right.line $w.plot.right.bar \ - $w.plot.right.scatter $w.plot.right.error \ - -side top -fill both -expand true + $w.plot.right.error -side top -fill both -expand true pack $w.plot.left $w.plot.right \ -side left -fill both -expand true @@ -293,6 +291,7 @@ PlotBar $parse(tt) {} $title $xaxis $yaxis $dim $parse(buf) false } +# backward compatibility proc PlotCmdScatter {title xaxis yaxis dim} { global parse PlotScatter $parse(tt) {} $title $xaxis $yaxis $dim $parse(buf) false @@ -310,8 +309,8 @@ if {$parse(buf) == {}} { if {$parse(fn) != {}} { - if {![file exists $fn]} { - Error "[msgcat::mc {File not found}]: $fn" + if {![file exists $parse(fn)]} { + Error "[msgcat::mc {File not found}]: $parse(fn)" return } @@ -319,7 +318,7 @@ set parse(buf) [read $ch] close $ch } else { - Error "[msgcat::mc {Unable to load plot data}] $fn" + Error "[msgcat::mc {Unable to load plot data}] $parse(fn)" } } diff -Nru saods9-8.2+repack/ds9/library/plotscatter.tcl saods9-8.3+repack/ds9/library/plotscatter.tcl --- saods9-8.2+repack/ds9/library/plotscatter.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/plotscatter.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,9 +1,10 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" package provide DS9 1.0 +# backward compatibility # used by backup proc PlotScatterTool {} { global iap @@ -239,22 +240,6 @@ } } -proc PlotPrefsScatter {w} { - set f [ttk::labelframe $w.scatter -text [msgcat::mc {Scatter}]] - - ttk::label $f.tshape -text [msgcat::mc {Shape}] - ttk::menubutton $f.shape -textvariable pap(graph,ds,scatter,symbol) \ - -menu $f.shape.menu - PlotScatterShapeMenu $f.shape.menu pap(graph,ds,scatter,symbol) {} - ttk::label $f.tshapecolor -text [msgcat::mc {Color}] - ColorMenuButton $f.shapecolor pap graph,ds,scatter,color {} - ttk::checkbutton $f.shapefill -text [msgcat::mc {Fill}] \ - -variable pap(graph,ds,scatter,fill) - - grid $f.tshape $f.shape -padx 2 -pady 2 -sticky w - grid $f.tshapecolor $f.shapecolor $f.shapefill -padx 2 -pady 2 -sticky w -} - proc PlotGUIScatter {varname w} { upvar #0 $varname var global $varname diff -Nru saods9-8.2+repack/ds9/library/plotstate.tcl saods9-8.3+repack/ds9/library/plotstate.tcl --- saods9-8.2+repack/ds9/library/plotstate.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/plotstate.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -91,6 +91,7 @@ set pap(graph,ds,bar,color) black set pap(graph,ds,bar,width) 1 + # backward compatibility # Scatter set pap(graph,ds,scatter,symbol) circle set pap(graph,ds,scatter,color) black @@ -220,6 +221,7 @@ set var($cc,$nn,bar,color) $var(graph,ds,bar,color) set var($cc,$nn,bar,width) $var(graph,ds,bar,width) + # backward compatibility # Scatter set var($cc,$nn,scatter,symbol) $var(graph,ds,scatter,symbol) set var($cc,$nn,scatter,color) $var(graph,ds,scatter,color) @@ -310,6 +312,7 @@ set var(graph,ds,bar,color) $var($cc,$nn,bar,color) set var(graph,ds,bar,width) $var($cc,$nn,bar,width) + # backward compatibility # Scatter set var(graph,ds,scatter,symbol) $var($cc,$nn,scatter,symbol) set var(graph,ds,scatter,color) $var($cc,$nn,scatter,color) diff -Nru saods9-8.2+repack/ds9/library/plot.tcl saods9-8.3+repack/ds9/library/plot.tcl --- saods9-8.2+repack/ds9/library/plot.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/plot.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -14,7 +14,6 @@ set iap(jpeg,quality) 75 set iap(tiff,compress) none - set iap(error) [msgcat::mc {An error has occurred while creating the image. Please be sure that the plot window is in the upper left corner of the default screen and the entire window is visible.}] PlotDefState } @@ -99,6 +98,7 @@ set var(graph,proc,button) PlotButton } scatter { + # backward compatibility PlotScatterAddGraph $varname set var(graph,proc,updateelement) PlotScatterUpdateElement set var(graph,proc,highlite) PlotScatterHighliteElement @@ -424,8 +424,8 @@ set nn $var(graph,ds,current) foreach gg $var(graphs) { set var(graph,current) $gg - foreach nn $var($gg,dss) { - set var(graph,ds,current) $nn + foreach hh $var($gg,dss) { + set var(graph,ds,current) $hh PlotRestoreState $varname $var(graph,proc,updateelement) $varname } diff -Nru saods9-8.2+repack/ds9/library/plotzoomstack.tcl saods9-8.3+repack/ds9/library/plotzoomstack.tcl --- saods9-8.2+repack/ds9/library/plotzoomstack.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/plotzoomstack.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2019 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/point.tcl saods9-8.3+repack/ds9/library/point.tcl --- saods9-8.2+repack/ds9/library/point.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/point.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/polygon.tcl saods9-8.3+repack/ds9/library/polygon.tcl --- saods9-8.2+repack/ds9/library/polygon.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/polygon.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/prefsdialog.tcl saods9-8.3+repack/ds9/library/prefsdialog.tcl --- saods9-8.2+repack/ds9/library/prefsdialog.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/prefsdialog.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -61,7 +61,6 @@ PrefsDialogPanner PrefsDialogMagnifier PrefsDialog3d - PrefsDialogGraph PrefsDialogBin PrefsDialogZoom PrefsDialogScale @@ -71,6 +70,7 @@ PrefsDialogPanda PrefsDialogAnalysis PrefsDialogPixelTable + PrefsDialogGraph PrefsDialogContour PrefsDialogSmooth PrefsDialogCatalog diff -Nru saods9-8.2+repack/ds9/library/prefs.tcl saods9-8.3+repack/ds9/library/prefs.tcl --- saods9-8.2+repack/ds9/library/prefs.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/prefs.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -470,6 +470,7 @@ FixPrefs7.6to8.0 FixPrefs8.0to8.1 FixPrefs8.1to8.2 + FixPrefs8.2to8.3 } 6.0 { FixPrefs6.0to6.1 @@ -484,6 +485,7 @@ FixPrefs7.6to8.0 FixPrefs8.0to8.1 FixPrefs8.1to8.2 + FixPrefs8.2to8.3 } 6.1 - 6.1.1 - @@ -499,6 +501,7 @@ FixPrefs7.6to8.0 FixPrefs8.0to8.1 FixPrefs8.1to8.2 + FixPrefs8.2to8.3 } 6.2 { FixPrefs6.2to7.0 @@ -511,8 +514,10 @@ FixPrefs7.6to8.0 FixPrefs8.0to8.1 FixPrefs8.1to8.2 + FixPrefs8.2to8.3 } - 7.0 { + 7.0 - + 7.0.1 { FixPrefs7.0to7.1 FixPrefs7.1to7.2 FixPrefs7.2to7.3 @@ -522,6 +527,7 @@ FixPrefs7.6to8.0 FixPrefs8.0to8.1 FixPrefs8.1to8.2 + FixPrefs8.2to8.3 } 7.1 { FixPrefs7.1to7.2 @@ -532,6 +538,7 @@ FixPrefs7.6to8.0 FixPrefs8.0to8.1 FixPrefs8.1to8.2 + FixPrefs8.2to8.3 } 7.2 { FixPrefs7.2to7.3 @@ -541,6 +548,7 @@ FixPrefs7.6to8.0 FixPrefs8.0to8.1 FixPrefs8.1to8.2 + FixPrefs8.2to8.3 } 7.3 - 7.3.1 - @@ -551,6 +559,7 @@ FixPrefs7.6to8.0 FixPrefs8.0to8.1 FixPrefs8.1to8.2 + FixPrefs8.2to8.3 } 7.4 { FixPrefs7.4to7.5 @@ -558,26 +567,37 @@ FixPrefs7.6to8.0 FixPrefs8.0to8.1 FixPrefs8.1to8.2 + FixPrefs8.2to8.3 } 7.5 { FixPrefs7.5to7.6 FixPrefs7.6to8.0 FixPrefs8.0to8.1 FixPrefs8.1to8.2 + FixPrefs8.2to8.3 } 7.6 { FixPrefs7.6to8.0 FixPrefs8.0to8.1 FixPrefs8.1to8.2 + FixPrefs8.2to8.3 } 8.0 { FixPrefs8.0to8.1 FixPrefs8.1to8.2 + FixPrefs8.2to8.3 } 8.1 { FixPrefs8.1to8.2 + FixPrefs8.2to8.3 + } + 8.2 { + FixPrefs8.2to8.3 + } + 8.3 { + # beta fix + FixPrefs8.3to8.3 } - 8.2 {} } } @@ -612,6 +632,8 @@ # 8.2 FixVar pbuttons(region,delete) pbuttons(region,deleteall) + # 8.3 + # and fix any previous theme issues global pds9 global ds9 @@ -628,6 +650,47 @@ } } +proc FixPrefs8.3to8.3 {} { + global pcolorbar + switch $pcolorbar(orientation) { + horizontal {set pcolorbar(orientation) 0} + vertical {set pcolorbar(orientation) 1} + } + + global colorbar + switch $colorbar(orientation) { + horizontal {set colorbar(orientation) 0} + vertical {set colorbar(orientation) 1} + } +} + +proc FixPrefs8.2to8.3 {} { + global view + set view(multi) 0 + + global pcolorbar + switch $pcolorbar(orientation) { + horizontal {set pcolorbar(orientation) 0} + vertical {set pcolorbar(orientation) 1} + } + + global colorbar + switch $colorbar(orientation) { + horizontal {set colorbar(orientation) 0} + vertical {set colorbar(orientation) 1} + } + + FixVar pgraph(thick) pgraph(horz,thick) + FixVar pgraph(log) pgraph(horz,log) + FixVar pgraph(grid) pgraph(horz,grid) + FixVar pgraph(method) pgraph(horz,method) + + FixVar graph(thick) graph(horz,thick) + FixVar graph(log) graph(horz,log) + FixVar graph(grid) graph(horz,grid) + FixVar graph(method) graph(horz,method) +} + proc FixPrefs8.1to8.2 {} { FixVar pap(canvas,layout) pap(layout) FixVar pap(canvas,layout,strip,scale) pap(layout,strip,scale) diff -Nru saods9-8.2+repack/ds9/library/print.tcl saods9-8.3+repack/ds9/library/print.tcl --- saods9-8.2+repack/ds9/library/print.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/print.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -123,15 +123,15 @@ colorbar postscript colorspace $ps(color) colorbar postscript resolution $res - colorbarrgb postscript level $ps(level) - colorbarrgb postscript colorspace $ps(color) - colorbarrgb postscript resolution $res - # set frame specific postscript options foreach ff $ds9(frames) { $ff postscript level $ps(level) $ff postscript colorspace $ps(color) $ff postscript resolution $res + + ${ff}cb postscript level $ps(level) + ${ff}cb postscript colorspace $ps(color) + ${ff}cb postscript resolution $res } # now invoke canvas postscript command @@ -192,15 +192,15 @@ colorbar postscript colorspace $color colorbar postscript resolution $resolution - colorbarrgb postscript level $level - colorbarrgb postscript colorspace $color - colorbarrgb postscript resolution $resolution - # set frame specific postscript options foreach ff $ds9(frames) { $ff postscript level $level $ff postscript colorspace $color $ff postscript resolution $resolution + + ${ff}cb postscript level $level + ${ff}cb postscript colorspace $color + ${ff}cb postscript resolution $resolution } # now invoke canvas postscript command @@ -420,36 +420,13 @@ upvar $varname var upvar $iname i - global ds9 - - switch $ds9(wm) { - x11 - - aqua - - win32 {ProcessPSPrintCmd var i} - } -} - -proc ProcessSendPrintCmd {proc id param {sock {}} {fn {}}} { - global ds9 - - switch $ds9(wm) { - x11 - - aqua - - win32 {ProcessSendPSPrintCmd $proc $id $param} - } -} - -proc ProcessPSPrintCmd {varname iname} { - upvar $varname var - upvar $iname i - ps::YY_FLUSH_BUFFER ps::yy_scan_string [lrange $var $i end] ps::yyparse incr i [expr $ps::yycnt-1] } -proc ProcessSendPSPrintCmd {proc id param {sock {}} {fn {}}} { +proc ProcessSendPrintCmd {proc id param {sock {}} {fn {}}} { global parse set parse(proc) $proc set parse(id) $id diff -Nru saods9-8.2+repack/ds9/library/prism.tcl saods9-8.3+repack/ds9/library/prism.tcl --- saods9-8.2+repack/ds9/library/prism.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/prism.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2020 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -48,11 +48,13 @@ set var(fn) {} set var(rows) 0 set var(type) fits + set var(offset) 0 set var(load) mmapincr set var(ext) 0 set var(extname) {} set var(extnames) {} set var(extnum) 0 + set var(search) {} set var(canvas,theme) $pap(canvas,theme) @@ -66,7 +68,7 @@ set var(yerr) {} set var(graph,ds,line,color) blue - set var(graph,ds,line,width) 1 + set var(graph,ds,line,width) 0 set var(graph,ds,line,dash) 0 set var(graph,ds,line,shape,symbol) circle set var(graph,ds,line,shape,color) blue @@ -109,6 +111,7 @@ -command [list PrismLoadFile $varname] -accelerator "${ds9(ctrl)}O" $mb.file add separator $mb.file add cascade -label [msgcat::mc {Import}] -menu $mb.file.import + $mb.file add cascade -label [msgcat::mc {Export}] -menu $mb.file.export $mb.file add separator $mb.file add command -label [msgcat::mc {Image}] \ -command [list PrismImage $varname] @@ -127,6 +130,15 @@ $mb.file.import add command -label "[msgcat::mc {Tab-Separated-Value}]..." \ -command [list PrismImportTSVFile $varname] + # Export + ThemeMenu $mb.file.export + $mb.file.export add command -label "[msgcat::mc {VOTable}]..." \ + -command [list TBLSaveVOTFile $varname] + $mb.file.export add command -label "[msgcat::mc {Starbase}]..." \ + -command [list TBLSaveRDBFile $varname] + $mb.file.export add command -label "[msgcat::mc {Tab-Separated-Value}]..." \ + -command [list TBLSaveTSVFile $varname] + ThemeMenu $mb.edit $mb.edit add command -label [msgcat::mc {Cut}] \ -state disabled -accelerator "${ds9(ctrl)}X" @@ -196,8 +208,7 @@ bind $var(dir) <> [list PrismExtCmd $varname] # Header - set f [ttk::labelframe $p.header -padding {0 2} \ - -text [msgcat::mc {Header Keywords}]] + set f [ttk::labelframe $p.header -padding {0 2} -text [msgcat::mc {Header}]] set var(text) $f.text roText::roText $var(text) @@ -266,7 +277,7 @@ -fg [ThemeSelectedForeground] -bg [ThemeSelectedBackground] $var(tbl) tag configure title \ -fg [ThemeForeground] -bg [ThemeBackground] -bd 0 - $prism(tbl) width 0 7 + $var(tbl) width 0 8 ttk::scrollbar $f.xscroll -command [list $var(tbl) xview] -orient horizontal ttk::scrollbar $f.yscroll -command [list $var(tbl) yview] -orient vertical @@ -586,21 +597,29 @@ $reader $var(tbldb) $fn $var(tbl) configure -titlerows 1 + set var(offset) 0 + + # starbase_ncols is just cols + # configure cols includes extra row set nc [starbase_ncols $var(tbldb)] - if {$nc > $iprism(mincols)} { - $var(tbl) configure -cols $nc + set cc [expr $nc+1] + if {$cc > $iprism(mincols)} { + $var(tbl) configure -cols $cc } else { $var(tbl) configure -cols $iprism(mincols) } + # starbase_nrows is just rows + # configure rows includes all header set nr [starbase_nrows $var(tbldb)] - if {$nr > $iprism(minrows)} { - $var(tbl) configure -rows [expr $nr+1] + set cc [expr $nr+1] + if {$cc > $iprism(minrows)} { + $var(tbl) configure -rows $cc } else { $var(tbl) configure -rows $iprism(minrows) } set var(rows) $nr - + set info \ "[starbase_ncols $var(tbldb)] cols, [starbase_nrows $var(tbldb)] rows" $var(dir) insert {} end -id 0 -values [list [file tail $fn] "Table" "$info"] @@ -617,6 +636,8 @@ set $var(tbldb)($ii,0) $ii } + $var(tbl) see 1,1 + # need this so that PrismExtCmd is invoked before next command update @@ -639,6 +660,7 @@ set var(fn) {} set var(rows) 0 set var(type) fits + set var(offset) 0 set var(load) {} set var(ext) 0 set var(extname) {} @@ -1752,30 +1774,43 @@ $var(tbl) configure -rows $iprism(minrows) $var(tbl) configure -titlerows 1 + set var(offset) 0 PrismDialogUpdate $varname return } - # init db - fitsy table $var(tbldb) true $var(start) $iprism(block) + set t $var(tbldb) + upvar #0 $t T + global $t + + fitsy table $t true $var(start) $iprism(block) fitsy close - $var(tbl) configure -titlerows 2 - - set t $var(tbldb) + set T(HLines) 2 + set T(H_1) $T(Header) + set T(H_2) [regsub -all {[A-Za-z0-9]} $T(Header) {-}] starbase_colmap $t + $var(tbl) configure -titlerows 2 + set var(offset) 1 + + # starbase_ncols is just cols + # configure cols includes extra row set nc [starbase_ncols $t] - if {$nc > $iprism(mincols)} { - $var(tbl) configure -cols $nc + set cc [expr $nc+1] + if {$cc > $iprism(mincols)} { + $var(tbl) configure -cols $cc } else { $var(tbl) configure -cols $iprism(mincols) } + # starbase_nrows includes 1 extra header + # configure rows includes all header set nr [starbase_nrows $t] - if {$nr > $iprism(minrows)} { - $var(tbl) configure -rows [expr $nr+1] + set cc [expr $nr-1+2] + if {$cc > $iprism(minrows)} { + $var(tbl) configure -rows $cc } else { $var(tbl) configure -rows $iprism(minrows) } @@ -1789,6 +1824,9 @@ $var(tbl) see 2,1 + # need this so that PrismExtCmd is invoked before next command + update + PrismDialogUpdate $varname } @@ -1951,6 +1989,10 @@ proc PrismExtAsciiCmd {varname} { upvar #0 $varname var global $varname + + # header + $var(text) delete 1.0 end + $var(text) insert end [TBLGetHeader $varname] } # Process Cmds @@ -2020,6 +2062,9 @@ proc PrismCmdExt {ext} { global iprism global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar if {$ext >= 0 && $ext <= $cvar(extnum)} { @@ -2035,6 +2080,9 @@ proc PrismCmdExtName {extname} { global iprism global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar set ext [lsearch $cvar(extnames) $extname] @@ -2052,16 +2100,20 @@ proc PrismBackup {ch dir} { global iprism - global pds9 foreach ww $iprism(prisms) { set varname $ww upvar #0 $varname var global $varname - + + # if we have no filename, don't save + if {$var(fn) == {}} { + continue + } + set fdir [file join $dir $ww] set rdir "./[lindex [file split $dir] end]/$ww" - + # create dir if needed if {![file isdirectory $fdir]} { if {[catch {file mkdir $fdir}]} { @@ -2071,52 +2123,72 @@ } puts $ch "PrismDialog $varname" - if {$var(fn) != {}} { - set fn $var(fn) - # check for extension - set id [string first "\[" $var(fn)] - if {$id > 0} { - set fn [string range $var(fn) 0 [expr $id-1]] - set ext [string range $var(fn) $id end] - } else { - set fn $var(fn) - set ext {} - } - - if {![file exists $fn]} { - return 0 - } - - if {$pds9(backup)} { - # look for sym links - switch [file type $fn] { - file {} - link {set fn [file join [file dirname $fn] [file readlink $fn]]} - default { - return 0 - } - } + switch $var(type) { + fits {PrismBackupFits $varname $ch $fdir $rdir} + ascii {PrismBackupAscii $varname $ch $fdir $rdir} + } + } +} - set src [lindex [file split $fn] end] - if {![file exists [file join $fdir $src]]} { - if {[catch {file copy $var(fn) $fdir}]} { - return 0 - } - } - puts $ch "PrismLoad $varname $rdir/[file tail $fn]" - } else { - if {[file pathtype $fn] == {relative}} { - puts $ch "PrismLoad $varname [file join [pwd] $fn]" - } else { - puts $ch "PrismLoad $varname $fn" - } +proc PrismBackupFits {varname ch fdir rdir} { + upvar #0 $varname var + global $varname + + set fn $var(fn) + + # check for extension + set id [string first "\[" $var(fn)] + if {$id > 0} { + set fn [string range $var(fn) 0 [expr $id-1]] + set ext [string range $var(fn) $id end] + } else { + set fn $var(fn) + set ext {} + } + + if {![file exists $fn]} { + return + } + + global pds9 + if {$pds9(backup)} { + # look for sym links + switch [file type $fn] { + file {} + link {set fn [file join [file dirname $fn] [file readlink $fn]]} + default { + return } } - if {$var(ext) > 0} { - puts $ch "PrismSetExt $varname $var(ext)" + set src [lindex [file split $fn] end] + if {![file exists [file join $fdir $src]]} { + if {[catch {file copy $var(fn) $fdir}]} { + return + } + } + puts $ch "PrismLoad $varname $rdir/[file tail $fn]" + } else { + if {[file pathtype $fn] == {relative}} { + puts $ch "PrismLoad $varname [file join [pwd] $fn]" + } else { + puts $ch "PrismLoad $varname $fn" } } + + if {$var(ext) > 0} { + puts $ch "PrismSetExt $varname $var(ext)" + } } +proc PrismBackupAscii {varname ch fdir rdir} { + upvar #0 $varname var + global $varname + + set fn [file rootname [file tail $var(fn)]] + append fn {.xml} + + VOTWrite $var(tbldb) $fdir/$fn + puts $ch "PrismImportFn $varname $rdir/$fn VOTRead" +} diff -Nru saods9-8.2+repack/ds9/library/projection.tcl saods9-8.3+repack/ds9/library/projection.tcl --- saods9-8.2+repack/ds9/library/projection.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/projection.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/rgbarray.tcl saods9-8.3+repack/ds9/library/rgbarray.tcl --- saods9-8.2+repack/ds9/library/rgbarray.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/rgbarray.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/rgbcube.tcl saods9-8.3+repack/ds9/library/rgbcube.tcl --- saods9-8.2+repack/ds9/library/rgbcube.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/rgbcube.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/rgbimage.tcl saods9-8.3+repack/ds9/library/rgbimage.tcl --- saods9-8.2+repack/ds9/library/rgbimage.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/rgbimage.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/rgb.tcl saods9-8.3+repack/ds9/library/rgb.tcl --- saods9-8.2+repack/ds9/library/rgb.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/rgb.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -66,19 +66,27 @@ } } -proc RGBEvalLockColorbar {cmd} { +proc RGBEvalLockColorbarCurrent {cmd} { + global current + + RGBEvalLockColorbar $current(frame) $cmd +} + +proc RGBEvalLockColorbar {which cmd} { global current global scale global rgb - if {$rgb(lock,colorbar) && [$current(frame) get type] == {rgb}} { - set ch $current(rgb) - foreach c {red green blue} { - colorbarrgb rgb channel $c + set cb ${which}cb + if {$rgb(lock,colorbar) && [$which get type] == {rgb}} { + set ch [$which get rgb channel] + foreach cc {red green blue} { + $which rgb channel $cc + $cb rgb channel $cc eval $cmd } - set current(rgb) $ch - colorbarrgb rgb channel $current(rgb) + $which rgb channel $ch + $cb rgb channel $ch } else { eval $cmd } @@ -89,7 +97,7 @@ if {$current(frame) != {}} { if {[$current(frame) get type] == {rgb}} { - colorbarrgb rgb channel $current(rgb) + $current(colorbar) rgb channel $current(rgb) } $current(frame) rgb channel $current(rgb) UpdateDS9 diff -Nru saods9-8.2+repack/ds9/library/ruler.tcl saods9-8.3+repack/ds9/library/ruler.tcl --- saods9-8.2+repack/ds9/library/ruler.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/ruler.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/samphub.tcl saods9-8.3+repack/ds9/library/samphub.tcl --- saods9-8.2+repack/ds9/library/samphub.tcl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/library/samphub.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,6 @@ +# Copyright (C) 1999-2021 +# Smithsonian Astrophysical Observatory, Cambridge, MA, USA +# For conditions of distribution and use, see copyright notice in "copyright" + +package provide DS9 1.0 + diff -Nru saods9-8.2+repack/ds9/library/samp.tcl saods9-8.3+repack/ds9/library/samp.tcl --- saods9-8.2+repack/ds9/library/samp.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/samp.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -39,14 +39,10 @@ set samp(apps,image) {} set samp(apps,table) {} set samp(apps,votable) {} + set samp(tmp,files) {} # these are to try to prevent feedback problems with - # other probgrams - set samp(rcvd,lock) 0 - set samp(send,lock) 0 - - # delete any old tmp files - SAMPDelTmpFiles + set samp(lock) 0 # can we find a hub? if {![SAMPParseHub]} { @@ -221,21 +217,14 @@ return } - # are we locked? - if {$samp(rcvd,lock)} { - if {$debug(tcl,samp)} { - puts stderr "SAMP: ABORT Rcvd locked" - } - return - } - # got something to send? if {![$current(frame) has fits]} { return } # save current frame - set fn [tmpnam {.samp}] + set fn [tmpnam {.fits}] + lappend samp(tmp,files) $fn catch {$current(frame) save fits image file "\{$fn\}"} # name to use @@ -272,10 +261,6 @@ Error "SAMP: [msgcat::mc {internal error}] $rr" } } - - # set lock - set samp(send,lock) 1 - after $isamp(timeout) SAMPClearSendLock } proc SAMPSendTableLoadFits {id} { @@ -297,21 +282,14 @@ return } - # are we locked? - if {$samp(rcvd,lock)} { - if {$debug(tcl,samp)} { - puts stderr "SAMP: ABORT Rcvd locked" - } - return - } - # got something to send? if {![$current(frame) has fits] && [$current(frame) has fits bin]} { return } # save current frame - set fn [tmpnam {.samp}] + set fn [tmpnam {.fits}] + lappend samp(tmp,files) $fn catch {$current(frame) save fits table file "\{$fn\}"} # name to use @@ -348,10 +326,6 @@ Error "SAMP: [msgcat::mc {internal error}] $rr" } } - - # set lock - set samp(send,lock) 1 - after $isamp(timeout) SAMPClearSendLock } proc SAMPSendTableLoadVotable {id varname} { @@ -375,20 +349,13 @@ return } - # are we locked? - if {$samp(rcvd,lock)} { - if {$debug(tcl,samp)} { - puts stderr "SAMP: ABORT Rcvd locked" - } - return - } - # remember set samp(icat,$varname$samp(port)) $varname set samp(ocat,$varname) $varname$samp(port) # save votable - set fn [tmpnam {.samp}] + set fn [tmpnam {.xml}] + lappend samp(tmp,files) $fn TBLSaveFn $varname $fn VOTWrite # cmd @@ -420,10 +387,31 @@ Error "SAMP: [msgcat::mc {internal error}] $rr" } } +} + +proc SAMPSendTableRowListCmd {varname rowlist} { + global ds9 + global samp + + # connected? + if {![info exists samp]} { + return + } - # set lock - set samp(send,lock) 1 - after $isamp(timeout) SAMPClearSendLock + if {$samp(apps,votable) == {}} { + return + } + + # are we good? + if {![info exists samp(ocat,$varname)]} { + return + } + + switch -- [llength $rowlist] { + 0 {} + 1 {SAMPSendTableHighlightRow {} $varname $rowlist} + default {SAMPSendTableSelectRowList {} $varname $rowlist} + } } proc SAMPSendTableHighlightRow {id varname row} { @@ -468,10 +456,6 @@ Error "SAMP: [msgcat::mc {internal error}] $rr" } } - - # set lock - set samp(send,lock) 1 - after $isamp(timeout) SAMPClearSendLock } proc SAMPSendTableSelectRowList {id varname rows} { @@ -520,13 +504,9 @@ Error "SAMP: [msgcat::mc {internal error}] $rr" } } - - # set lock - set samp(send,lock) 1 - after $isamp(timeout) SAMPClearSendLock } -proc SAMPSendTableRowListCmd {varname rowlist} { +proc SAMPSendCoordPointAtSkyCmd {which} { global ds9 global samp @@ -535,28 +515,24 @@ return } - if {$samp(apps,votable) == {}} { - return - } - - # are we good? - if {![info exists samp(ocat,$varname)]} { - return - } - # are we locked? - if {$samp(rcvd,lock)} { + if {$samp(lock)} { global debug if {$debug(tcl,samp)} { - puts stderr "SAMP: ABORT Rcvd locked" + puts stderr "SAMP: SAMPSendCoordPointAtSkyCmd: ABORT locked" } return } - switch -- [llength $rowlist] { - 0 {} - 1 {SAMPSendTableHighlightRow {} $varname $rowlist} - default {SAMPSendTableSelectRowList {} $varname $rowlist} + if {$samp(apps,image) == {} || $samp(apps,table) == {}} { + return + } + + if {[$which has wcs celestial wcs]} { + set coord [$which get coordinates [$which get cursor canvas] wcs fk5 degrees] + if {$coord != {}} { + SAMPSendCoordPointAtSky {} "$coord" + } } } @@ -598,40 +574,6 @@ Error "SAMP: [msgcat::mc {internal error}] $rr" } } - - # set lock - set samp(send,lock) 1 - after $isamp(timeout) SAMPClearSendLock -} - -proc SAMPSendCoordPointAtSkyCmd {which} { - global ds9 - global samp - - # connected? - if {![info exists samp]} { - return - } - - # are we locked? - if {$samp(rcvd,lock)} { - global debug - if {$debug(tcl,samp)} { - puts stderr "SAMP: ABORT Rcvd locked" - } - return - } - - if {$samp(apps,image) == {} || $samp(apps,table) == {}} { - return - } - - if {[$which has wcs celestial wcs]} { - set coord [$which get coordinates [$which get cursor canvas] wcs fk5 degrees] - if {$coord != {}} { - SAMPSendCoordPointAtSky {} "$coord" - } - } } # Support @@ -765,6 +707,7 @@ if {$debug(tcl,samp)} { puts stderr "SAMPSend Result: $result" } + return 1 } @@ -831,33 +774,16 @@ } global samp - - # are we locked? - if {$samp(send,lock)} { - if {$debug(tcl,samp)} { - puts stderr "SAMP: ABORT Send locked" - } - return - } - SAMPReply $msgid OK "$str" } -proc SAMPClearSendLock {} { - global samp - global debug - if {$debug(tcl,samp)} { - puts stderr "SAMPClearSendLock" - } - set samp(send,lock) 0 -} - # receiveNotification(string sender-id, map message) proc samp.client.receiveNotification {args} { global debug if {$debug(tcl,samp)} { puts stderr "SAMPReceivedNotification: $args" } + set secret [lindex $args 0] set id [lindex $args 1] set map [lindex $args 2] @@ -873,6 +799,9 @@ } } + # be sure to lock any command that may cause a + # SAMPSendCoordPointAtSkyCmd response + global samp switch -- $mtype { samp.hub.event.shutdown { SAMPRcvdEventShutdown params @@ -887,28 +816,42 @@ SAMPRcvdDisconnect params } image.load.fits { + set samp(lock) 1 SAMPRcvdImageLoadFits params + set samp(lock) 0 } table.load.fits { + set samp(lock) 1 SAMPRcvdTableLoadFits params + set samp(lock) 0 } table.load.votable { SAMPRcvdTableLoadVotable params } table.highlight.row { + set samp(lock) 1 SAMPRcvdTableHighlightRow params + set samp(lock) 0 } table.select.rowList { + set samp(lock) 1 SAMPRcvdTableSelectRowList params + set samp(lock) 0 } coord.pointAt.sky { + set samp(lock) 1 SAMPRcvdCoordPointAtSky params + set samp(lock) 0 } ds9.set { + set samp(lock) 1 SAMPRcvdDS9Set {} params 0 + set samp(lock) 0 } ds9.restricted-set { + set samp(lock) 1 SAMPRcvdDS9Set {} params 1 + set samp(lock) 0 } default { if {$debug(tcl,samp)} { @@ -916,13 +859,13 @@ } } } + return {string OK} } # receiveCall(string sender-id, string msg-id, map message) proc samp.client.receiveCall {args} { global ds9 - global debug if {$debug(tcl,samp)} { puts stderr "SAMPReceivedCall: $args" @@ -944,16 +887,23 @@ } } + # be sure to lock any command that may cause a + # SAMPSendCoordPointAtSkyCmd response + global samp switch -- $mtype { samp.app.ping { SAMPReply $msgid OK } image.load.fits { + set samp(lock) 1 SAMPRcvdImageLoadFits params + set samp(lock) 0 SAMPReply $msgid OK } table.load.fits { + set samp(lock) 1 SAMPRcvdTableLoadFits params + set samp(lock) 0 SAMPReply $msgid OK } table.load.votable { @@ -961,15 +911,21 @@ SAMPReply $msgid OK } table.highlight.row { + set samp(lock) 1 SAMPRcvdTableHighlightRow params + set samp(lock) 0 SAMPReply $msgid OK } table.select.rowList { + set samp(lock) 1 SAMPRcvdTableSelectRowList params + set samp(lock) 0 SAMPReply $msgid OK } coord.pointAt.sky { + set samp(lock) 1 SAMPRcvdCoordPointAtSky params + set samp(lock) 0 SAMPReply $msgid OK } client.env.get { @@ -998,16 +954,24 @@ SAMPReplySimple $msgid OK "$ds9(version,display)" } ds9.get { + set samp(lock) 1 SAMPRcvdDS9Get $msgid params + set samp(lock) 0 } ds9.set { + set samp(lock) 1 SAMPRcvdDS9Set $msgid params 0 + set samp(lock) 0 } ds9.restricted-get { + set samp(lock) 1 SAMPRcvdDS9Get $msgid params + set samp(lock) 0 } ds9.restricted-set { + set samp(lock) 1 SAMPRcvdDS9Set $msgid params 1 + set samp(lock) 0 } default { SAMPReply $msgid ERROR {} {} "[msgcat::mc {Unknown command}]: $mtype" @@ -1016,6 +980,7 @@ } } } + return {string OK} } @@ -1050,6 +1015,7 @@ switch -- $rr(scheme) { ftp { set fn [tmpnam {.samp}] + lappend samp(tmp,files) $fn GetFileFTP $rr(authority) $rr(path) $fn } file {set fn $rr(path)} @@ -1057,6 +1023,7 @@ https - default { set fn [tmpnam {.samp}] + lappend samp(tmp,files) $fn GetFileHTTP $url $fn } } @@ -1253,14 +1220,6 @@ global current global samp - # are we locked? - if {$samp(send,lock)} { - if {$debug(tcl,samp)} { - puts stderr "SAMP: ABORT Send locked" - } - return - } - set url {} set imageid {} set name {} @@ -1296,14 +1255,6 @@ global current global samp - # are we locked? - if {$samp(send,lock)} { - if {$debug(tcl,samp)} { - puts stderr "SAMP: ABORT Send locked" - } - return - } - set url {} set imageid {} set name {} @@ -1337,14 +1288,6 @@ puts stderr "SAMPRcvdTableLoadVotable: $args" } - # are we locked? - if {$samp(send,lock)} { - if {$debug(tcl,samp)} { - puts stderr "SAMP: ABORT Send locked" - } - return - } - set url {} set tabid {} set name {} @@ -1383,14 +1326,6 @@ puts stderr "SAMPRcvdTableHighlightRow: $args" } - # are we locked? - if {$samp(send,lock)} { - if {$debug(tcl,samp)} { - puts stderr "SAMP: ABORT Send locked" - } - return - } - set url {} set tabid {} set row {} @@ -1411,7 +1346,7 @@ if {$tabid != {} && $row != {}} { if {[info exists samp(icat,$tabid)]} { - CATSelectRows $samp(icat,$tabid) samp [expr $row+1] + CATSelectRows $samp(icat,$tabid) samp [expr $row+1] 1 } } } @@ -1425,14 +1360,6 @@ puts stderr "SAMPRcvdTableSelectRowList: $args" } - # are we locked? - if {$samp(send,lock)} { - if {$debug(tcl,samp)} { - puts stderr "SAMP: ABORT Send locked" - } - return - } - set url {} set tabid {} set rowlist {} @@ -1457,7 +1384,7 @@ if {$tabid != {} && [llength $rowlist] != 0} { if {[info exists samp(icat,$tabid)]} { - CATSelectRows $samp(icat,$tabid) samp $rowlist + CATSelectRows $samp(icat,$tabid) samp $rowlist 1 } } } @@ -1471,14 +1398,6 @@ puts stderr "SAMPRcvdCoordPointAtSky: $args" } - # are we locked? - if {$samp(send,lock)} { - if {$debug(tcl,samp)} { - puts stderr "SAMP: ABORT Send locked" - } - return - } - set ra {} set dec {} @@ -1497,9 +1416,7 @@ global current if {$ra != {} && $dec != {} && [$current(frame) has wcs celestial wcs]} { - set samp(rcvd,lock) 1 PanTo $ra $dec wcs fk5 - set samp(rcvd,lock) 0 } } @@ -1512,14 +1429,6 @@ puts stderr "SAMPRcvdClientEnvGet: $msgid $args" } - # are we locked? - if {$samp(send,lock)} { - if {$debug(tcl,samp)} { - puts stderr "SAMP: ABORT Send locked" - } - return - } - set name {} foreach arg $args { @@ -1555,14 +1464,6 @@ global current global samp - # are we locked? - if {$samp(send,lock)} { - if {$debug(tcl,samp)} { - puts stderr "SAMP: ABORT Send locked" - } - return - } - set url {} set cmd {} @@ -1579,7 +1480,8 @@ InitError samp if {$url != {}} { - set fn [tmpnam {.samp}] + set fn [tmpnam {.xpa}] + lappend samp(tmp,files) $fn GetFileURL $url fn } CommSet $fn $cmd $safemode @@ -1626,14 +1528,6 @@ global current global samp - # are we locked? - if {$samp(send,lock)} { - if {$debug(tcl,samp)} { - puts stderr "SAMP: ABORT Send locked" - } - return - } - set url {} set cmd {} @@ -1646,7 +1540,8 @@ } } - set fn [tmpnam {.samp}] + set fn [tmpnam {.xpa}] + lappend samp(tmp,files) $fn InitError samp CommGet SAMPRcvdDS9GetReply $msgid $cmd $fn } @@ -1688,10 +1583,10 @@ } proc SAMPDelTmpFiles {} { - global ds9 + global samp - # delete any previous files - foreach fn [glob -directory $ds9(tmpdir) -nocomplain {ds9*samp*}] { + # delete any tmp files + foreach fn $samp(tmp,files) { catch {file delete -force "$fn"} } } @@ -1722,6 +1617,16 @@ incr i [expr $samp::yycnt-1] } +proc ProcessSendSAMPCmd {proc id param {sock {}} {fn {}}} { + global samp + + if {[info exists samp]} { + $proc $id "yes\n" + } else { + $proc $id "no\n" + } +} + proc SAMPCmdSendImage {name} { global samp diff -Nru saods9-8.2+repack/ds9/library/sao.tcl saods9-8.3+repack/ds9/library/sao.tcl --- saods9-8.2+repack/ds9/library/sao.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/sao.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/saveimage.tcl saods9-8.3+repack/ds9/library/saveimage.tcl --- saods9-8.2+repack/ds9/library/saveimage.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/saveimage.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -9,8 +9,6 @@ set saveimage(jpeg,quality) 75 set saveimage(tiff,compress) none - - set saveimage(error) [msgcat::mc {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.}] } proc SaveImageDialog {format} { @@ -93,13 +91,12 @@ global tcl_platform global saveimage - # for darwin only set geom [MacOSPhotoFix $ds9(top) 0 1] set rr [catch {image create photo -format window -data $ds9(canvas)} ph] if {$rr} { - DarwinPhotoRestore $ds9(top) $geom - Error $saveimage(error) + MacOSPhotoRestore $ds9(top) $geom + Error [msgcat::mc {An error has occurred while creating}] return } @@ -115,7 +112,7 @@ image delete $ph # reset if needed - DarwinPhotoRestore $ds9(top) $geom + MacOSPhotoRestore $ds9(top) $geom } # Process Cmds diff -Nru saods9-8.2+repack/ds9/library/save.tcl saods9-8.3+repack/ds9/library/save.tcl --- saods9-8.2+repack/ds9/library/save.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/save.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/scale.tcl saods9-8.3+repack/ds9/library/scale.tcl --- saods9-8.2+repack/ds9/library/scale.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/scale.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -176,7 +176,6 @@ UpdateScaleMenu UpdateScaleDialog UpdateContourScale - UpdateGraphAxis $current(frame) UpdateInfoBoxFrame $current(frame) UpdateMain } @@ -341,9 +340,10 @@ -color [ThemeTreeForeground] \ -titlecolor [ThemeTreeForeground] - set dscale(xdata) histX - set dscale(ydata) histY + set dscale(xdata) scaleHistX + set dscale(ydata) scaleHistY blt::vector create $dscale(xdata) $dscale(ydata) + $dscale(hist) element create bar1 \ -smooth step \ -xdata $dscale(xdata) \ @@ -451,6 +451,7 @@ destroy $iscale(top) destroy $iscale(mb) blt::vector destroy $dscale(xdata) $dscale(ydata) + destroy $dscale(hist) unset dscale } } diff -Nru saods9-8.2+repack/ds9/library/segment.tcl saods9-8.3+repack/ds9/library/segment.tcl --- saods9-8.2+repack/ds9/library/segment.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/segment.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/sfits.tcl saods9-8.3+repack/ds9/library/sfits.tcl --- saods9-8.2+repack/ds9/library/sfits.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/sfits.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/shm.tcl saods9-8.3+repack/ds9/library/shm.tcl --- saods9-8.2+repack/ds9/library/shm.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/shm.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/siadialog.tcl saods9-8.3+repack/ds9/library/siadialog.tcl --- saods9-8.2+repack/ds9/library/siadialog.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/siadialog.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -39,7 +39,7 @@ ARInit $varname SIAServer # procs - set var(proc,process) SIAProcess + set var(proc,exec) SIAExec set var(proc,load) SIALoad set var(proc,error) SIAError set var(proc,done) SIADone diff -Nru saods9-8.2+repack/ds9/library/sia.tcl saods9-8.3+repack/ds9/library/sia.tcl --- saods9-8.2+repack/ds9/library/sia.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/sia.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -22,43 +22,39 @@ set isia(save) 0 set isia(def) { \ - {{2MASS (NASA/IPAC)} \ - sia2mass \ - {http://irsa.ipac.caltech.edu/cgi-bin/2MASS/IM/nph-im_sia}\ - {} \ - } \ {{AKARI (ISAS/JAXA)} \ siaakari \ - {http://jvo.nao.ac.jp/skynode/do/siap/akari/fis_image_v1/1.0}\ + {https://jvo.nao.ac.jp/skynode/do/siap/akari/fis_image_v1/1.0} \ {} \ } \ {{Chandra (NASA/CXC)} \ siacxc \ - {http://cda.harvard.edu/cxcsiap/queryImages}\ + {https://cda.harvard.edu/cxcsiap/queryImages} \ {} \ } \ {{Hubble Legacy Archive (STSCI)} \ siahla \ - {http://hla.stsci.edu/cgi-bin/hlaSIAP.cgi}\ + {https://hla.stsci.edu/cgi-bin/hlaSIAP.cgi} \ {} \ } \ {{MAST (STSCI)} \ siamast \ - {http://archive.stsci.edu/siap/search.php}\ + {https://archive.stsci.edu/siap/search.php} \ {} \ } \ {{SkyView (NASA/HEASARC)} \ siaskyview \ - {http://skyview.gsfc.nasa.gov/cgi-bin/vo/sia.pl}\ + {https://skyview.gsfc.nasa.gov/current/cgi/vo/sia.pl} \ {} \ } \ {{TGSSADR (GMRT)} \ siatgssadr \ - {http://vo.astron.nl/tgssadr/q_fits/imgs/siap.xml}\ + {https://vo.astron.nl/tgssadr/q_fits/imgs/siap.xml} \ {} \ } \ } + #{{2MASS (NASA/IPAC)} sia2mass {https://irsa.ipac.caltech.edu/cgi-bin/2MASS/IM/nph-im_sia} {}} #{{Astro-Wise} siaastrowise {http://vo.astro-wise.org/SIAP} {VERB=2&FORM=VOTable&PROJECT=ALL&INSTRUMENT=ALL&}} #{{CADC} siacadc {http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/sia/query} {}} #{{SDSS DR12} siasdss {http://skyserver.sdss.org/SkyserverWS/dr12/SIAP/getSIAP} {} } @@ -99,13 +95,13 @@ return } -proc SIAProcess {varname} { +proc SIAExec {varname} { upvar #0 $varname var global $varname global debug if {$debug(tcl,sia)} { - puts stderr "SIAProcess $varname" + puts stderr "SIAExec $varname" } VOTParse $var(tbldb) $var(token) @@ -136,7 +132,7 @@ global $var(tbldb) $var(found) configure -textvariable ${var(tbldb)}(Nrows) -# starbase_writefp $var(tbldb) stdout + # starbase_writefp $var(tbldb) stdout if {[starbase_nrows $var(tbldb)] == 0} { ARStatus $varname [msgcat::mc {No Items Found}] @@ -242,8 +238,10 @@ if {$title != {-} && "sia${ref}" == $vars} { SIADialog $vars $title $url $opts sync + return } } + Error "SIA site no longer supported: $ref" } } diff -Nru saods9-8.2+repack/ds9/library/simpletext.tcl saods9-8.3+repack/ds9/library/simpletext.tcl --- saods9-8.2+repack/ds9/library/simpletext.tcl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/library/simpletext.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,344 @@ +# Copyright (C) 1999-2021 +# Smithsonian Astrophysical Observatory, Cambridge, MA, USA +# For conditions of distribution and use, see copyright notice in "copyright" + +package provide DS9 1.0 + +proc SimpleTextDef {} { + global istxt + + set istxt(dialogs) {} +} + +proc SimpleTextDialog {varname title width height action pos txt + {destroyCB {}} {destroyParam {}}} { + upvar #0 $varname var + global $varname + + global istxt + global ds9 + global pds9 + + set var(top) ".${varname}" + set var(mb) ".${varname}mb" + + if {[winfo exists $var(top)]} { + raise $var(top) + } else { + # create window + Toplevel $var(top) $var(mb) 7 $title "SimpleTextDestroy $varname" + + lappend istxt(dialogs) $varname + + set var(search) {} + set var(destroyCB) $destroyCB + set var(destroyParam) $destroyParam + set var(font) $pds9(text,font) + set var(font,size) $pds9(text,font,size) + set var(font,weight) $pds9(text,font,weight) + set var(font,slant) $pds9(text,font,slant) + + $var(mb) add cascade -label [msgcat::mc {File}] -menu $var(mb).file + ThemeMenu $var(mb).file + $var(mb).file add command -label "[msgcat::mc {Save}]..." \ + -command "SimpleTextSaveFile $varname" -accelerator "${ds9(ctrl)}S" + $var(mb).file add separator + $var(mb).file add command -label "[msgcat::mc {Print}]..." \ + -command "SimpleTextPrint $varname" \ + -accelerator "${ds9(ctrl)}P" + $var(mb).file add separator + $var(mb).file add command -label [msgcat::mc {Close}] \ + -command "SimpleTextDestroy $varname" -accelerator "${ds9(ctrl)}W" + + $var(mb) add cascade -label [msgcat::mc {Edit}] -menu $var(mb).edit + ThemeMenu $var(mb).edit + $var(mb).edit add command -label [msgcat::mc {Cut}] \-state disabled -accelerator "${ds9(ctrl)}X" +# $var(mb).edit add command -label [msgcat::mc {Cut}] -command "SimpleTextCut $varname" -accelerator "${ds9(ctrl)}X" + $var(mb).edit add command -label [msgcat::mc {Copy}] \ + -command "SimpleTextCopy $varname" -accelerator "${ds9(ctrl)}C" + $var(mb).edit add command -label [msgcat::mc {Paste}] \ + -state disabled -accelerator "${ds9(ctrl)}V" +# $var(mb).edit add command -label [msgcat::mc {Clear}] -command "SimpleTextClear $varname" + $var(mb).edit add separator + $var(mb).edit add command -label [msgcat::mc {Select All}] \ + -command "SimpleTextSelectAll $varname" + $var(mb).edit add command -label [msgcat::mc {Select None}] \ + -command "SimpleTextSelectNone $varname" + $var(mb).edit add separator + $var(mb).edit add command -label "[msgcat::mc {Find}]..." \ + -command "SimpleTextFind $varname" -accelerator "${ds9(ctrl)}F" + $var(mb).edit add command -label [msgcat::mc {Find Next}] \ + -command "SimpleTextFindNext $varname" -accelerator "${ds9(ctrl)}G" + + $var(mb) add cascade -label [msgcat::mc {Font}] -menu $var(mb).font + FontMenu $var(mb).font $varname font font,size font,weight font,slant \ + [list SimpleTextFont $varname] + + set var(text) $var(top).text + roText::roText $var(text) + + $var(text) configure \ + -height $height \ + -width $width \ + -wrap none \ + -yscrollcommand [list $var(top).yscroll set] \ + -xscrollcommand [list $var(top).xscroll set] \ + -fg [ThemeTreeForeground] \ + -bg [ThemeTreeBackground] \ + -state normal + + ttk::scrollbar $var(top).yscroll \ + -command [list roText::$var(text) yview] -orient vertical + ttk::scrollbar $var(top).xscroll \ + -command [list roText::$var(text) xview] -orient horizontal + + grid $var(text) $var(top).yscroll -sticky news + grid $var(top).xscroll -stick news + grid rowconfigure $var(top) 0 -weight 1 + grid columnconfigure $var(top) 0 -weight 1 + + bind $var(top) <> [list SimpleTextFind $varname] + bind $var(top) <> [list SimpleTextFindNext $varname] + bind $var(top) <> [list SimpleTextSaveFile $varname] + bind $var(top) <> [list SimpleTextDestroy $varname] + bind $var(top) <> [list SimpleTextPrint $varname] + } + + if {$action != {append}} { + $var(text) delete 1.0 end + } + $var(text) insert end $txt + switch -- $pos { + top {$var(text) see 1.0} + bottom {$var(text) see end} + } + + SimpleTextFont $varname +} + +proc SimpleTextDestroy {varname} { + global istxt + + upvar #0 $varname var + global $varname + + if {$var(destroyCB) != {}} { + eval $var(destroyCB) $var(destroyParam) + } + + if {[winfo exists $var(top)]} { + destroy $var(top) + destroy $var(mb) + } + + set ii [lsearch $istxt(dialogs) $varname] + if {$ii>=0} { + set istxt(dialogs) [lreplace $istxt(dialogs) $ii $ii] + } + + unset $varname +} + +proc SimpleTextFont {varname} { + upvar #0 $varname var + global $varname + + global ds9 + + $var(text) configure -font \ + "{$ds9($var(font))} $var(font,size) $var(font,weight) $var(font,slant)" +} + +proc SimpleTextUpdateFont {} { + global istxt + global pds9 + + foreach varname $istxt(dialogs) { + upvar #0 $varname var + global $varname + + set var(font) $pds9(text,font) + set var(font,size) $pds9(text,font,size) + set var(font,weight) $pds9(text,font,weight) + set var(font,slant) $pds9(text,font,slant) + + SimpleTextFont $varname + } +} + +proc SimpleTextCut {varname} { + upvar #0 $varname var + global $varname + + tk_textCut $var(text) +} + +proc SimpleTextCopy {varname} { + upvar #0 $varname var + global $varname + + tk_textCopy $var(text) +} + +proc SimpleTextClear {varname} { + upvar #0 $varname var + global $varname + + $var(text) configure -state normal + $var(text) delete 1.0 end + $var(text) configure -state disabled +} + +proc SimpleTextSelectAll {varname} { + upvar #0 $varname var + global $varname + + $var(text) tag add sel 1.0 end +} + +proc SimpleTextSelectNone {varname} { + upvar #0 $varname var + global $varname + + $var(text) tag remove sel 1.0 end +} + +proc SimpleTextFind {varname} { + upvar #0 $varname var + global $varname + + $var(text) tag remove sel 1.0 end + set result "$var(search)" + if {[EntryDialog [msgcat::mc {Search}] [msgcat::mc {Enter Search Expression}] 40 result]} { + set var(search) "$result" + set start [$var(text) search -nocase -count ::roText::cnt \ + -regexp -- $result 1.0 end] + if {$start != {}} { + $var(text) tag add sel $start "$start + $::roText::cnt chars" + $var(text) see $start + } else { + Error "$var(search) [msgcat::mc {Not Found}]" + } + } +} + +proc SimpleTextFindNext {varname} { + upvar #0 $varname var + global $varname + + if {$var(search) != {}} { + if {[$var(text) tag ranges sel] != {}} { + set ss {sel.last} + } else { + set ss {1.0} + } + + set start [$var(text) search -nocase -count ::roText::cnt \ + -regexp -- $var(search) $ss end] + if {$start != {}} { + $var(text) tag remove sel 1.0 end + $var(text) tag add sel $start "$start + $::roText::cnt chars" + $var(text) see $start + } else { + # wrap + set start [$var(text) search -nocase -count ::roText::cnt \ + -regexp -- $var(search) 1.0 end] + if {$start != {}} { + $var(text) tag remove sel 1.0 end + $var(text) tag add sel $start "$start + $::roText::cnt chars" + $var(text) see $start + } else { + Error "$var(search) [msgcat::mc {Not Found}]" + } + } + } +} + +proc SimpleTextPrint {varname} { + upvar #0 $varname var + global $varname + + if {[PRPrintDialog]} { + if {[catch {SimpleTextPostScript $varname} printError]} { + Error "[msgcat::mc {An error has occurred while printing}] $printError" + } + } +} + +proc SimpleTextPostScript {varname} { + upvar #0 $varname var + global $varname + + global ps + + if {$ps(dest) == "file"} { + if {[catch {set ch [open "$ps(filename,txt)" w]}]} { + Error [msgcat::mc {An error has occurred while saving}] + return + } + } else { + if {[catch {set ch [open "| $ps(cmd)" w]}]} { + Error [msgcat::mc {An error has occurred while saving}] + return + } + } + puts -nonewline $ch [$var(text) get 1.0 end] + close $ch +} + +proc SimpleTextSaveFile {varname} { + upvar #0 $varname var + global $varname + + set filename [SaveFileDialog textfbox $var(top)] + if {$filename != {}} { + if {[catch {set ch [open "$filename" w]}]} { + Error [msgcat::mc {An error has occurred while saving}] + return + } + puts -nonewline $ch [$var(text) get 1.0 end] + close $ch + } +} + +# read only text widget, idea and code by emiliano and ccbbaa, tested: tcl/tk8.6, linux - version 20191217-0 +namespace eval ::roText { + proc roText {w args} { + if {[info exists ::roText::$w]} { + puts stderr "::roText::$w and possibly $w already exist" + return ;# discuss: better way to flag error to caller, return "" for now + } + text $w {*}$args + bind $w break ;# delete all + bind $w break ;# kill line + bind $w break ;# Backspace alternate + bind $w break ;# Del alternate + bind $w break ;# Ins newline + bind $w break + bind $w break + rename $w ::roText::$w + + proc ::$w {cmd args} [format { + set w %s + ::roText::$w $cmd {*}$args + } $w $w] + + if {0} { + proc ::$w {cmd args} [format { + set w %s + set inf [lindex [info level 1] 0] ;# caller proc name; find tk vs scr. + #puts "* $cmd $args ([info level]) '$inf'" ;# debug + if {($cmd ni "insert delete") || ( ($cmd in "insert delete") \ + && ([string range $inf 0 3] != "tk::") \ + && ($inf != "tk_textCut") && ($inf != "tk_textPaste") ) \ + } { + ::roText::$w $cmd {*}$args + } + } $w $w] + } + + bind ::$w [list rename $w {}] + return $w ;# created + } +} + diff -Nru saods9-8.2+repack/ds9/library/skyview.tcl saods9-8.3+repack/ds9/library/skyview.tcl --- saods9-8.2+repack/ds9/library/skyview.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/skyview.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/slider.tcl saods9-8.3+repack/ds9/library/slider.tcl --- saods9-8.2+repack/ds9/library/slider.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/slider.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/smooth.tcl saods9-8.3+repack/ds9/library/smooth.tcl --- saods9-8.2+repack/ds9/library/smooth.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/smooth.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -42,7 +42,7 @@ UpdateContourScale UpdateContourDialog UpdateScaleDialog - UpdateGraphAxis $current(frame) + UpdateGraphsAxis $current(frame) UpdateMain } diff -Nru saods9-8.2+repack/ds9/library/smosaiciraf.tcl saods9-8.3+repack/ds9/library/smosaiciraf.tcl --- saods9-8.2+repack/ds9/library/smosaiciraf.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/smosaiciraf.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/smosaic.tcl saods9-8.3+repack/ds9/library/smosaic.tcl --- saods9-8.2+repack/ds9/library/smosaic.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/smosaic.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/smosaicwcs.tcl saods9-8.3+repack/ds9/library/smosaicwcs.tcl --- saods9-8.2+repack/ds9/library/smosaicwcs.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/smosaicwcs.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/srgbcube.tcl saods9-8.3+repack/ds9/library/srgbcube.tcl --- saods9-8.2+repack/ds9/library/srgbcube.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/srgbcube.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/starbase.tcl saods9-8.3+repack/ds9/library/starbase.tcl --- saods9-8.2+repack/ds9/library/starbase.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/starbase.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -27,7 +27,7 @@ proc starbase_get { D row col } { upvar $D data; return $data($row,$col) } proc starbase_set { D row col val } { upvar $D data; set data($row,$col) $val; } proc starbase_colname { D num } { upvar $D data; return $data(0,$num) } -#proc starbase_columns { D } { upvar $D data; return $data(Header) } +proc starbase_columns { D } { upvar $D data; return $data(Header) } proc starbase_colnum { D name } { upvar $D data; return $data($name) } proc starbase_columns {t} { @@ -141,34 +141,8 @@ proc starbase_header { h fp } { upvar $h H - global starbase_line set N 1 - if { [info exists starbase_line] } { - set line $starbase_line - set n 1 - - set H(H_$n) $line - if { [regexp -- {^ *(-)+ *(\t *(-)+ *)*} $line] } break - if { $n >= 2 } { - set ind [string first "\t" $H(H_[expr $n-1])] - if { $ind >= 0 } { - set name [string range $H(H_[expr $n-1]) 0 [expr $ind - 1]] - incr ind - set H(H_$name) [string range $H(H_[expr $n-1]) $ind end] - set H(N_$name) [expr $n-1] - } -# set l [split $H(H_[expr $n-1]) "\t"] -# if { [llength $l] > 1 } { -# set name [lindex $l 0] -# set H(H_$name) [lrange $l 1 end] -# set H(N_$name) [expr $n-1] -# } - } - - unset starbase_line - set N 2 - } for { set n $N } { [set eof [gets $fp line]] != -1 } { incr n } { set H(H_$n) $line if { [regexp -- {^ *(-)+ *(\t *(-)+ *)*} $line] } break @@ -313,11 +287,6 @@ set NCols [starbase_ncols T] for { set r 1 } { [gets $fp line] != -1 } { incr r } { - if { [string index $line 0] == "\f" } { - global starbase_line - set starbase_line [string range $line 1 end] - break - } set c 1 foreach val [split $line "\t"] { set T($r,$c) [string trim $val] @@ -340,7 +309,7 @@ set T(filename) $file } -proc starbase_writefp { t fp } { +proc starbase_writefp { t fp {offset 0}} { upvar $t T starbase_hdrput T $fp @@ -351,7 +320,7 @@ set nr $T(Nrows) set nc $T(Ncols) - for { set r 1 } { $r <= $nr } { incr r } { + for { set r [expr 1+$offset] } { $r <= $nr } { incr r } { for { set c 1 } { $c < $nc } { incr c } { if { [catch { set val $T($r,$c) }] } { set val "" @@ -366,15 +335,15 @@ } } -proc starbase_write { t file } { +proc starbase_write { t file {offset 0}} { upvar $t T set fp [open $file w] - starbase_writefp T $fp + starbase_writefp T $fp $offset close $fp } -proc starbase_write_ { t } { +proc starbase_write_ { t {offset 0}} { upvar $t T set rr {} @@ -386,7 +355,7 @@ set nr $T(Nrows) set nc $T(Ncols) - for { set r 1 } { $r <= $nr } { incr r } { + for { set r [expr 1+$offset] } { $r <= $nr } { incr r } { for { set c 1 } { $c < $nc } { incr c } { if { [catch { set val $T($r,$c) }] } { set val "" diff -Nru saods9-8.2+repack/ds9/library/stdfbox.tcl saods9-8.3+repack/ds9/library/stdfbox.tcl --- saods9-8.2+repack/ds9/library/stdfbox.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/stdfbox.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/stsci.tcl saods9-8.3+repack/ds9/library/stsci.tcl --- saods9-8.2+repack/ds9/library/stsci.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/stsci.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/tableflt.tcl saods9-8.3+repack/ds9/library/tableflt.tcl --- saods9-8.2+repack/ds9/library/tableflt.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/tableflt.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -18,10 +18,8 @@ set catdest(Header) $catsrc(Header) starbase_colmap catdest - set catdest(Ndshs) [llength $catdest(Header)] set catdest(Nrows) 0 set catdest(HLines) $catsrc(HLines) - set catdest(Dashes) $catsrc(Dashes) # optional if {[info exists catsrc(DataType)]} { diff -Nru saods9-8.2+repack/ds9/library/table.tcl saods9-8.3+repack/ds9/library/table.tcl --- saods9-8.2+repack/ds9/library/table.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/table.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -67,13 +67,10 @@ # Result? switch -- $code { - {} - 200 - 203 - 404 - - 503 { - eval [list $var(proc,process) $varname] - } + 503 {eval [list $var(proc,exec) $varname]} 201 - 300 - @@ -447,8 +444,11 @@ return } - $writer $var(tbldb) $fn - ARDone $varname + if {[info exists var(offset)]} { + $writer $var(tbldb) $fn $var(offset) + } else { + $writer $var(tbldb) $fn + } } # Sort @@ -751,10 +751,34 @@ } } +proc TBLGetHeader {varname} { + upvar #0 $varname var + global $varname + global $var(tbldb) + + set t $var(tbldb) + upvar #0 $t T + + if {![TBLValidDB $var(tbldb)]} { + return {} + } + + # last 2 lines are cols and dashes, ignore + set hdr {} + set nl [expr $T(HLines)-2] + for {set ll 1} {$ll <= $nl} {incr ll} { + append hdr "$T(H_$ll)\n" + } + return $hdr +} + # Cmd proc TBLCmdSave {fn writer} { global cvarname + if {$cvarname == {}} { + return + } if {$fn != {}} { TBLSaveFn $cvarname $fn $writer @@ -764,6 +788,9 @@ proc TBLCmdCoord {xx yy sky} { global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar set cvar(x) $xx @@ -773,6 +800,9 @@ proc TBLCmdSize {radius rformat} { global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar set cvar(radius) $radius @@ -782,6 +812,9 @@ proc TBLCmdSkyframe {skyframe} { global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar set cvar(sky) $skyframe @@ -790,6 +823,9 @@ proc TBLCmdSystem {sys} { global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar set cvar(system) $sys @@ -798,6 +834,9 @@ proc TBLCmdFilterLoad {fn} { global cvarname + if {$cvarname == {}} { + return + } upvar #0 $cvarname cvar if {$fn != {}} { @@ -817,19 +856,6 @@ proc TBLPrint {varname} { upvar #0 $varname var global $varname - global $var(tbldb) - - global ds9 - switch $ds9(wm) { - x11 - - aqua - - win32 {TBLPSPrint $varname} - } -} - -proc TBLPSPrint {varname} { - upvar #0 $varname var - global $varname if {[PRPrintDialog]} { if {[catch {TBLPostScript $varname} printError]} { @@ -846,11 +872,16 @@ global ps if {$ps(dest) == "file"} { - set ch [open "| cat > $ps(filename,txt)" w] + if {[catch {set ch [open "$ps(filename,txt)" w]}]} { + Error [msgcat::mc {An error has occurred while saving}] + return + } } else { - set ch [open "| $ps(cmd)" w] + if {[catch {set ch [open "| $ps(cmd)" w]}]} { + Error [msgcat::mc {An error has occurred while saving}] + return + } } - starbase_writefp $var(tbldb) $ch close $ch } diff -Nru saods9-8.2+repack/ds9/library/template.tcl saods9-8.3+repack/ds9/library/template.tcl --- saods9-8.2+repack/ds9/library/template.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/template.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/text.tcl saods9-8.3+repack/ds9/library/text.tcl --- saods9-8.2+repack/ds9/library/text.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/text.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/tsv.tcl saods9-8.3+repack/ds9/library/tsv.tcl --- saods9-8.2+repack/ds9/library/tsv.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/tsv.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -73,15 +73,10 @@ } # process header - # cols - incr ${t}(HLines) - set n $T(HLines) - set T(H_$n) $line - set T(Header) [split $T(H_$n) $ss] - - # dashes - set T(Dashes) [regsub -all {[A-Za-z0-9]} $T(H_$n) {-}] - set T(Ndshs) [llength $T(Dashes)] + set T(Header) [split $line $ss] + set T(HLines) 2 + set T(H_1) $T(Header) + set T(H_2) [regsub -all {[A-Za-z0-9]} $T(Header) {-}] starbase_colmap $t # process table @@ -125,7 +120,7 @@ } } -proc TSVWrite {t fn} { +proc TSVWrite {t fn {offset 0}} { upvar #0 $t T global $t @@ -150,7 +145,7 @@ puts $fp "[lindex $T(Header) [expr $nc-1]]" # data - for {set rr 1} {$rr <= $nr} {incr rr} { + for {set rr [expr 1+$offset]} {$rr <= $nr} {incr rr} { for {set cc 1} {$cc < $nc} {incr cc} { puts -nonewline $fp "$T($rr,$cc)\t" } diff -Nru saods9-8.2+repack/ds9/library/url.tcl saods9-8.3+repack/ds9/library/url.tcl --- saods9-8.2+repack/ds9/library/url.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/url.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/util.tcl saods9-8.3+repack/ds9/library/util.tcl --- saods9-8.2+repack/ds9/library/util.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/util.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -10,8 +10,8 @@ global ds9 set current(frame) {} - set current(ext) {} set current(colorbar) {} + set current(ext) {} set current(cursor) {} set current(rgb) red @@ -89,6 +89,7 @@ # wcs(system) set here UpdateWCSMenu UpdateAnalysisMenu + UpdateAnalysisButtonbar UpdateMaskMenu UpdateContourMenu @@ -116,8 +117,6 @@ UpdateContourDialog UpdateGridDialog - UpdateGraphAxis $current(frame) - RefreshInfoBox $current(frame) UpdateColormapLevel @@ -147,7 +146,7 @@ # just in case we have a mosaic UpdateColormapLevelMosaic $current(frame) $x $y canvas UpdatePixelTableDialog $current(frame) $x $y canvas - UpdateGraphData $current(frame) $x $y canvas + UpdateGraphsData $current(frame) $x $y canvas } } none - @@ -647,27 +646,8 @@ # if the user did not explicitly specify one ... if {![info exists env(FILTER_CC)]} { switch -- $ds9(wm) { - x11 {} - aqua { - if {![file exists /usr/bin/gcc]} { - # pcc is hardwired to be installed in /tmp - set pccroot "/tmp/pcc" - set pcc "$pccroot/bin/pcc" - set tar "pcc-i386-snowleopard.tar.gz" - - if {[file readable "$ds9(root)/$tar"]} { - exec cp "$ds9(root)/$tar" "/tmp/$tar" - exec tar xfPz "/tmp/$tar" -C /tmp - exec rm -f "/tmp/$tar" - } - - if {[file exists $pcc]} { - set env(FILTER_CC) $pcc - set env(FILTER_CFLAGS) "-isystem $pccroot/lib/pcc" - set env(PATH) "$pccroot/bin:$env(PATH)" - } - } - } + x11 - + aqua {} win32 { set tcc [file join $ds9(root) tcc/tcc.exe] if {[file exists $tcc]} { @@ -806,6 +786,19 @@ } proc AboutBox {} { + global ds9 + global pds9 + + switch $ds9(wm) { + x11 - + win32 {AboutBoxDefault} + aqua { + ::tk::mac::standardAboutPanel + } + } +} + +proc AboutBoxDefault {} { global help global ds9 global ed @@ -818,7 +811,7 @@ # Param set f [ttk::frame $w.param] - canvas $f.c -background white -height 450 -width 500 + canvas $f.c -background white -height 300 -width 500 pack $f.c -fill both -expand true set ed(sun) [image create photo -format gif -file $ds9(root)/doc/sun.gif] @@ -934,13 +927,14 @@ $ff marker catalog unhighlite all $ff marker unselect all $ff marker unhighlite all + + HideGraphsData $ff } UpdateRegionMenu RefreshInfoBox $current(frame) PixelTableClearDialog - ClearGraphData switch -- $current(mode) { none - @@ -951,6 +945,7 @@ crosshair { foreach ff $ds9(frames) { $ff crosshair on + ShowGraphsData $ff } SetCursor crosshair } @@ -1040,7 +1035,6 @@ global ifp UpdateScaleDialogFont - UpdateGraphFont TBLUpdateFont $icat(cats) TBLUpdateFont $isia(sias) TBLUpdateFont $ifp(fps) @@ -1057,6 +1051,7 @@ if {$which} { SimpleTextUpdateFont + EditTextUpdateFont } } @@ -1225,12 +1220,17 @@ DisplayLog "url: $t(url)\n" DisplayLog "http: $t(http)\n" DisplayLog "type: $t(type)\n" + DisplayLog "binary: $t(binary)\n" + DisplayLog "coding: $t(coding)\n" DisplayLog "currentsize: $t(currentsize)\n" DisplayLog "totalsize: $t(totalsize)\n" DisplayLog "status: $t(status)\n" if {[info exists t(error)]} { DisplayLog "error: $t(error)\n" } + if {[info exists t(posterror)]} { + DisplayLog "posterror: $t(posterror)\n" + } DisplayLog "meta: [BreakUp $t(meta)]\n" } } @@ -1369,7 +1369,7 @@ return {} } -proc DarwinPhotoRestore {top geom} { +proc MacOSPhotoRestore {top geom} { global ds9 global tcl_platform diff -Nru saods9-8.2+repack/ds9/library/var.tcl saods9-8.3+repack/ds9/library/var.tcl --- saods9-8.2+repack/ds9/library/var.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/var.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/vector.tcl saods9-8.3+repack/ds9/library/vector.tcl --- saods9-8.2+repack/ds9/library/vector.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/vector.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/vla.tcl saods9-8.3+repack/ds9/library/vla.tcl --- saods9-8.2+repack/ds9/library/vla.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/vla.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/vlss.tcl saods9-8.3+repack/ds9/library/vlss.tcl --- saods9-8.2+repack/ds9/library/vlss.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/vlss.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/vo.tcl saods9-8.3+repack/ds9/library/vo.tcl --- saods9-8.2+repack/ds9/library/vo.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/vo.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/ds9/library/vot.tcl saods9-8.3+repack/ds9/library/vot.tcl --- saods9-8.2+repack/ds9/library/vot.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/vot.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -73,7 +73,7 @@ } } -proc VOTWrite {t fn} { +proc VOTWrite {t fn {offset 0}} { upvar #0 $t T global $t @@ -169,7 +169,7 @@ puts $fp {} puts $fp {} - for {set rr 1} {$rr <= $nr} {incr rr} { + for {set rr [expr 1+$offset]} {$rr <= $nr} {incr rr} { puts -nonewline $fp {} for {set cc 1} {$cc <= $nc} {incr cc} { puts -nonewline $fp "[XMLQuote $T($rr,$cc)]" @@ -207,6 +207,9 @@ VOTABLE - RESOURCE - TABLE { + # don't save general description + # wait until FIELD + if {0} { foreach ll [split [string trim $data] "\n"] { incr ${t}(HLines) set n $T(HLines) @@ -216,6 +219,7 @@ set T(H_$n) "# $ll" } } + } } FIELD { set T(Description) \ @@ -291,10 +295,6 @@ # ok, we now need to build the header starbase_colmap $t - incr ${t}(HLines) - set n $T(HLines) - set T(H_$n) {} - set nc $T(Ncols) for {set cc 1} {$cc <= $nc} {incr cc} { set hdr "# name=[lindex $T(Header) [expr $cc-1]] " @@ -360,12 +360,9 @@ set n $T(HLines) set T(H_$n) [join $T(Header)] - set T(Dashes) [regsub -all {[A-Za-z0-9]} $T(H_$n) {-}] - set T(Ndshs) [llength $T(Header)] - incr ${t}(HLines) set n $T(HLines) - set T(H_$n) [join $T(Dashes)] + set T(H_$n) [regsub -all {[A-Za-z0-9]} $T(Header) {-}] } TR { incr ${t}(Nrows) diff -Nru saods9-8.2+repack/ds9/library/wcs.tcl saods9-8.3+repack/ds9/library/wcs.tcl --- saods9-8.2+repack/ds9/library/wcs.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/wcs.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -158,14 +158,13 @@ # vars set dwcs(system) $wcs(system) set dwcs(ext) 1 - set dwcs(prev) {} Toplevel $w $mb 6 [msgcat::mc {WCS Parameters}] WCSDestroyDialog $mb add cascade -label [msgcat::mc {File}] -menu $mb.file $mb add cascade -label [msgcat::mc {Edit}] -menu $mb.edit $mb add cascade -label [msgcat::mc {WCS}] -menu $mb.wcs - $mb add cascade -label [msgcat::mc {Extention}] -menu $mb.ext + $mb add cascade -label [msgcat::mc {Extension}] -menu $mb.ext ThemeMenu $mb.file $mb.file add command -label "[msgcat::mc {Open}]..." \ @@ -211,114 +210,200 @@ $tt add $bp0 -text {BP_p_q} $tt select $base + # PAGE Base + ttk::label $base.twcsname -text "WCSNAME" + ttk::entry $base.wcsname -textvariable dwcs(wcsname) -width 14 + grid $base.twcsname $base.wcsname -padx 2 -pady 2 -sticky w + + ttk::label $base.twcsaxes -text "WCSAXES" + ttk::entry $base.wcsaxes -textvariable dwcs(wcsaxes) -width 14 + grid $base.twcsaxes $base.wcsaxes -padx 2 -pady 2 -sticky w + + ttk::label $base.tradesys -text "RADESYS" + ttk::entry $base.radesys -textvariable dwcs(radesys) -width 14 + grid $base.tradesys $base.radesys -padx 2 -pady 2 -sticky w + + ttk::label $base.tequinox -text "EQUINOX" + ttk::entry $base.equinox -textvariable dwcs(equinox) -width 14 + ttk::label $base.tepoch -text "EPOCH" + ttk::entry $base.epoch -textvariable dwcs(epoch) -width 14 + grid $base.tequinox $base.equinox $base.tepoch $base.epoch \ + -padx 2 -pady 2 -sticky w + ttk::label $base.tmjdobs -text "MJD-OBS" ttk::entry $base.mjdobs -textvariable dwcs(mjd-obs) -width 14 - ttk::label $base.tdateobs -text "DATE-OBS" ttk::entry $base.dateobs -textvariable dwcs(date-obs) -width 14 + grid $base.tmjdobs $base.mjdobs $base.tdateobs $base.dateobs \ + -padx 2 -pady 2 -sticky w - ttk::label $base.tepoch -text "EPOCH" - ttk::entry $base.epoch -textvariable dwcs(epoch) -width 14 + # CTYPEx CRPIXx CRVALx CUNITx CDELTx + for {set ii 1} {$ii<=4} {incr ii} { + ttk::label $base.tctype${ii} -text "CTYPE${ii}" + ttk::entry $base.ctype${ii} -textvariable dwcs(ctype${ii}) -width 14 + + ttk::label $base.tcrpix${ii} -text "CRPIX${ii}" + ttk::entry $base.crpix${ii} -textvariable dwcs(crpix${ii}) -width 14 + + ttk::label $base.tcrval${ii} -text "CRVAL${ii}" + ttk::entry $base.crval${ii} -textvariable dwcs(crval${ii}) -width 14 + + ttk::label $base.tcunit${ii} -text "CUNIT${ii}" + ttk::entry $base.cunit${ii} -textvariable dwcs(cunit${ii}) -width 14 + + ttk::label $base.tcdelt${ii} -text "CDELT${ii}" + ttk::entry $base.cdelt${ii} -textvariable dwcs(cdelt${ii}) -width 14 + } + grid $base.tctype1 $base.ctype1 \ + $base.tctype2 $base.ctype2 \ + $base.tctype3 $base.ctype3 \ + $base.tctype4 $base.ctype4 \ + -padx 2 -pady 2 -sticky w + grid $base.tcrpix1 $base.crpix1 \ + $base.tcrpix2 $base.crpix2 \ + $base.tcrpix3 $base.crpix3 \ + $base.tcrpix4 $base.crpix4 \ + -padx 2 -pady 2 -sticky w + grid $base.tcrval1 $base.crval1 \ + $base.tcrval2 $base.crval2 \ + $base.tcrval3 $base.crval3 \ + $base.tcrval4 $base.crval4 \ + -padx 2 -pady 2 -sticky w + grid $base.tcunit1 $base.cunit1 \ + $base.tcunit2 $base.cunit2 \ + $base.tcunit3 $base.cunit3 \ + $base.tcunit4 $base.cunit4 \ + -padx 2 -pady 2 -sticky w + grid $base.tcdelt1 $base.cdelt1 \ + $base.tcdelt2 $base.cdelt2 \ + $base.tcdelt3 $base.cdelt3 \ + $base.tcdelt4 $base.cdelt4 \ + -padx 2 -pady 2 -sticky w - foreach aa {{} a b c d e f g h i j k l m n o p q r s t u v w x y z} { - set bb [string toupper $aa] + # CDx_x + for {set ii 1} {$ii<=4} {incr ii} { + for {set jj 1} {$jj<=4} {incr jj} { + ttk::label $base.tcd${ii}_${jj} -text "CD${ii}_${jj}" + ttk::entry $base.cd${ii}_${jj} \ + -textvariable dwcs(cd${ii}_${jj}) -width 14 + } + } + grid $base.tcd1_1 $base.cd1_1 \ + $base.tcd2_1 $base.cd2_1 \ + $base.tcd3_1 $base.cd3_1 \ + $base.tcd4_1 $base.cd4_1 \ + -padx 2 -pady 2 -sticky w + grid $base.tcd1_2 $base.cd1_2 \ + $base.tcd2_2 $base.cd2_2 \ + $base.tcd3_2 $base.cd3_2 \ + $base.tcd4_2 $base.cd4_2 \ + -padx 2 -pady 2 -sticky w + grid $base.tcd1_3 $base.cd1_3 \ + $base.tcd2_3 $base.cd2_3 \ + $base.tcd3_3 $base.cd3_3 \ + $base.tcd4_3 $base.cd4_3 \ + -padx 2 -pady 2 -sticky w + grid $base.tcd1_4 $base.cd1_4 \ + $base.tcd2_4 $base.cd2_4 \ + $base.tcd3_4 $base.cd3_4 \ + $base.tcd4_4 $base.cd4_4 \ + -padx 2 -pady 2 -sticky w - ttk::label $base.twcsname${aa} -text "WCSNAME${bb}" - ttk::entry $base.wcsname${aa} \ - -textvariable dwcs(wcsname${aa}) -width 14 - - ttk::label $base.twcsaxes${aa} -text "WCSAXES${bb}" - ttk::entry $base.wcsaxes${aa} \ - -textvariable dwcs(wcsaxes${aa}) -width 14 - - ttk::label $base.tradesys${aa} -text "RADESYS${bb}" - ttk::entry $base.radesys${aa} \ - -textvariable dwcs(radesys${aa}) -width 14 - - ttk::label $base.tequinox${aa} -text "EQUINOX${bb}" - ttk::entry $base.equinox${aa} \ - -textvariable dwcs(equinox${aa}) -width 14 - - ttk::label $base.tlatpole${aa} -text "LATPOLE${bb}" - ttk::entry $base.latpole${aa} \ - -textvariable dwcs(latpole${aa}) -width 14 - - ttk::label $base.tlonpole${aa} -text "LONPOLE${bb}" - ttk::entry $base.lonpole${aa} \ - -textvariable dwcs(lonpole${aa}) -width 14 - - # CTYPEx CRPIXx CRVALx CUNITx CDELTx - for {set ii 1} {$ii<=4} {incr ii} { - ttk::label $base.tctype${ii}${aa} -text "CTYPE${ii}${bb}" - ttk::entry $base.ctype${ii}${aa} \ - -textvariable dwcs(ctype${ii}${aa}) -width 14 - - ttk::label $base.tcrpix${ii}${aa} -text "CRPIX${ii}${bb}" - ttk::entry $base.crpix${ii}${aa} \ - -textvariable dwcs(crpix${ii}${aa}) -width 14 - - ttk::label $base.tcrval${ii}${aa} -text "CRVAL${ii}${bb}" - ttk::entry $base.crval${ii}${aa} \ - -textvariable dwcs(crval${ii}${aa}) -width 14 - - ttk::label $base.tcunit${ii}${aa} -text "CUNIT${ii}${bb}" - ttk::entry $base.cunit${ii}${aa} \ - -textvariable dwcs(cunit${ii}${aa}) -width 14 - - ttk::label $base.tcdelt${ii}${aa} -text "CDELT${ii}${bb}" - ttk::entry $base.cdelt${ii}${aa} \ - -textvariable dwcs(cdelt${ii}${aa}) -width 14 - } - - # CDx_x PCx_x - for {set ii 1} {$ii<=4} {incr ii} { - for {set jj 1} {$jj<=4} {incr jj} { - ttk::label $base.tcd${ii}_${jj}${aa} \ - -text "CD${ii}_${jj}${bb}" - ttk::entry $base.cd${ii}_${jj}${aa} \ - -textvariable dwcs(cd${ii}_${jj}${aa}) -width 14 - - ttk::label $base.tpc${ii}_${jj}${aa} \ - -text "PC${ii}_${jj}${bb}" - ttk::entry $base.pc${ii}_${jj}${aa} \ - -textvariable dwcs(pc${ii}_${jj}${aa}) -width 14 + # PCx_x + for {set ii 1} {$ii<=4} {incr ii} { + for {set jj 1} {$jj<=4} {incr jj} { + ttk::label $base.tpc${ii}_${jj} -text "PC${ii}_${jj}" + ttk::entry $base.pc${ii}_${jj} \ + -textvariable dwcs(pc${ii}_${jj}) -width 14 - } } + } + grid $base.tpc1_1 $base.pc1_1 \ + $base.tpc2_1 $base.pc2_1 \ + $base.tpc3_1 $base.pc3_1 \ + $base.tpc4_1 $base.pc4_1 \ + -padx 2 -pady 2 -sticky w + grid $base.tpc1_2 $base.pc1_2 \ + $base.tpc2_2 $base.pc2_2 \ + $base.tpc3_2 $base.pc3_2 \ + $base.tpc4_2 $base.pc4_2 \ + -padx 2 -pady 2 -sticky w + grid $base.tpc1_3 $base.pc1_3 \ + $base.tpc2_3 $base.pc2_3 \ + $base.tpc3_3 $base.pc3_3 \ + $base.tpc4_3 $base.pc4_3 \ + -padx 2 -pady 2 -sticky w + grid $base.tpc1_4 $base.pc1_4 \ + $base.tpc2_4 $base.pc2_4 \ + $base.tpc3_4 $base.pc3_4 \ + $base.tpc4_4 $base.pc4_4 \ + -padx 2 -pady 2 -sticky w - # PSx_x - for {set ii 1} {$ii<=4} {incr ii} { - for {set jj 0} {$jj<=1} {incr jj} { - ttk::label $base.tps${ii}_${jj}${aa} \ - -text "PS${ii}_${jj}${bb}" - ttk::entry $base.ps${ii}_${jj}${aa} \ - -textvariable dwcs(ps${ii}_${jj}${aa}) -width 14 - } + # PSx_x + for {set ii 1} {$ii<=4} {incr ii} { + for {set jj 0} {$jj<=1} {incr jj} { + ttk::label $base.tps${ii}_${jj} -text "PS${ii}_${jj}" + ttk::entry $base.ps${ii}_${jj} \ + -textvariable dwcs(ps${ii}_${jj}) -width 14 } + } + grid $base.tps1_0 $base.ps1_0 \ + $base.tps2_0 $base.ps2_0 \ + $base.tps3_0 $base.ps3_0 \ + $base.tps4_0 $base.ps4_0 \ + -padx 2 -pady 2 -sticky w + grid $base.tps1_1 $base.ps1_1 \ + $base.tps2_1 $base.ps2_1 \ + $base.tps3_1 $base.ps3_1 \ + $base.tps4_1 $base.ps4_1 \ + -padx 2 -pady 2 -sticky w + ttk::label $base.tlatpole -text "LATPOLE" + ttk::entry $base.latpole -textvariable dwcs(latpole) -width 14 + ttk::label $base.tlonpole -text "LONPOLE" + ttk::entry $base.lonpole -textvariable dwcs(lonpole) -width 14 + grid $base.tlatpole $base.latpole $base.tlonpole $base.lonpole \ + -padx 2 -pady 2 -sticky w - # PVx_x - for {set ii 1} {$ii<=4} {incr ii} { - for {set mm 0} {$mm<18} {incr mm} { - ttk::label $pv00.tpv${ii}_${mm}${aa} \ - -text "PV${ii}_${mm}${bb}" - ttk::entry $pv00.pv${ii}_${mm}${aa} \ - -textvariable dwcs(pv${ii}_${mm}${aa}) -width 14 - } - for {set mm 18} {$mm<36} {incr mm} { - ttk::label $pv18.tpv${ii}_${mm}${aa} \ - -text "PV${ii}_${mm}${bb}" - ttk::entry $pv18.pv${ii}_${mm}${aa} \ - -textvariable dwcs(pv${ii}_${mm}${aa}) -width 14 - } + # PAGE PVx_00 + for {set ii 1} {$ii<=4} {incr ii} { + for {set mm 0} {$mm<18} {incr mm} { + ttk::label $pv00.tpv${ii}_${mm} -text "PV${ii}_${mm}" + ttk::entry $pv00.pv${ii}_${mm} \ + -textvariable dwcs(pv${ii}_${mm}) -width 14 + } + } + for {set mm 0} {$mm<18} {incr mm} { + grid $pv00.tpv1_${mm} $pv00.pv1_${mm} \ + $pv00.tpv2_${mm} $pv00.pv2_${mm} \ + $pv00.tpv3_${mm} $pv00.pv3_${mm} \ + $pv00.tpv4_${mm} $pv00.pv4_${mm} \ + -padx 2 -pady 2 -sticky w + } + + # PAGE PVx_18 + for {set ii 1} {$ii<=4} {incr ii} { + for {set mm 18} {$mm<36} {incr mm} { + ttk::label $pv18.tpv${ii}_${mm} -text "PV${ii}_${mm}" + ttk::entry $pv18.pv${ii}_${mm} \ + -textvariable dwcs(pv${ii}_${mm}) -width 14 } } + for {set mm 18} {$mm<36} {incr mm} { + grid $pv18.tpv1_${mm} $pv18.pv1_${mm} \ + $pv18.tpv2_${mm} $pv18.pv2_${mm} \ + $pv18.tpv3_${mm} $pv18.pv3_${mm} \ + $pv18.tpv4_${mm} $pv18.pv4_${mm} \ + -padx 2 -pady 2 -sticky w + } - # only in primary + + # PAGE A_p_q ttk::label $aa0.ta -text "A_ORDER" ttk::entry $aa0.a -textvariable dwcs(a_order) -width 14 ttk::label $aa0.tx -text "A_DMAX" ttk::entry $aa0.x -textvariable dwcs(a_dmax) -width 14 + grid $aa0.ta $aa0.a $aa0.tx $aa0.x -padx 2 -pady 2 -sticky w for {set mm 0} {$mm<=9} {incr mm} { for {set nn 0} {$nn<=9} {incr nn} { @@ -329,11 +414,36 @@ } } } + for {set mm 0} {$mm<=9} {incr mm} { + for {set nn 0} {$nn<=9} {incr nn} { + if {[expr (($nn+$mm) <= 9) && !($nn == 0 && $mm == 0)]} { + set rr [expr $mm*3 + 2] + set cc [expr $nn*2] + if {[expr $nn >= 4]} { + incr rr + incr cc -8 + } + if {[expr $nn >= 8]} { + incr rr + incr cc -8 + } + grid configure \ + $aa0.ta_${mm}_${nn} \ + -row $rr -column $cc -padx 2 -pady 2 -sticky w + incr cc + grid configure \ + $aa0.a_${mm}_${nn} \ + -row $rr -column $cc -padx 2 -pady 2 -sticky w + } + } + } + # PAGE B_p_q ttk::label $bb0.tb -text "B_ORDER" ttk::entry $bb0.b -textvariable dwcs(b_order) -width 14 ttk::label $bb0.tx -text "B_DMAX" ttk::entry $bb0.x -textvariable dwcs(b_dmax) -width 14 + grid $bb0.tb $bb0.b $bb0.tx $bb0.x -padx 2 -pady 2 -sticky w for {set mm 0} {$mm<=9} {incr mm} { for {set nn 0} {$nn<=9} {incr nn} { @@ -342,9 +452,34 @@ -textvariable dwcs(b_${mm}_${nn}) -width 14 } } + for {set mm 0} {$mm<=9} {incr mm} { + for {set nn 0} {$nn<=9} {incr nn} { + if {[expr (($nn+$mm) <= 9) && !($nn == 0 && $mm == 0)]} { + set rr [expr $mm*3 + 2] + set cc [expr $nn*2] + if {[expr $nn >= 4]} { + incr rr + incr cc -8 + } + if {[expr $nn >= 8]} { + incr rr + incr cc -8 + } + grid configure \ + $bb0.tb_${mm}_${nn} \ + -row $rr -column $cc -padx 2 -pady 2 -sticky w + incr cc + grid configure \ + $bb0.b_${mm}_${nn} \ + -row $rr -column $cc -padx 2 -pady 2 -sticky w + } + } + } + # PAGE AP_p_q ttk::label $ap0.ta -text "AP_ORDER" ttk::entry $ap0.a -textvariable dwcs(a_order) -width 14 + grid $ap0.ta $ap0.a -padx 2 -pady 2 -sticky w for {set mm 0} {$mm<=9} {incr mm} { for {set nn 0} {$nn<=9} {incr nn} { @@ -353,9 +488,34 @@ -textvariable dwcs(a_${mm}_${nn}) -width 14 } } + for {set mm 0} {$mm<=9} {incr mm} { + for {set nn 0} {$nn<=9} {incr nn} { + if {[expr (($nn+$mm) <= 9) && !($nn == 0 && $mm == 0)]} { + set rr [expr $mm*3 + 2] + set cc [expr $nn*2] + if {[expr $nn >= 4]} { + incr rr + incr cc -8 + } + if {[expr $nn >= 8]} { + incr rr + incr cc -8 + } + grid configure \ + $ap0.ta_${mm}_${nn} \ + -row $rr -column $cc -padx 2 -pady 2 -sticky w + incr cc + grid configure \ + $ap0.a_${mm}_${nn} \ + -row $rr -column $cc -padx 2 -pady 2 -sticky w + } + } + } + # PAGE BP_p_q ttk::label $bp0.tb -text "BP_ORDER" ttk::entry $bp0.b -textvariable dwcs(b_order) -width 14 + grid $bp0.tb $bp0.b -padx 2 -pady 2 -sticky w for {set mm 0} {$mm<=9} {incr mm} { for {set nn 0} {$nn<=9} {incr nn} { @@ -364,6 +524,29 @@ -textvariable dwcs(b_${mm}_${nn}) -width 14 } } + for {set mm 0} {$mm<=9} {incr mm} { + for {set nn 0} {$nn<=9} {incr nn} { + if {[expr (($nn+$mm) <= 9) && !($nn == 0 && $mm == 0)]} { + set rr [expr $mm*3 + 2] + set cc [expr $nn*2] + if {[expr $nn >= 4]} { + incr rr + incr cc -8 + } + if {[expr $nn >= 8]} { + incr rr + incr cc -8 + } + grid configure \ + $bp0.tb_${mm}_${nn} \ + -row $rr -column $cc -padx 2 -pady 2 -sticky w + incr cc + grid configure \ + $bp0.b_${mm}_${nn} \ + -row $rr -column $cc -padx 2 -pady 2 -sticky w + } + } + } # Buttons set f [ttk::frame $w.buttons] @@ -493,7 +676,7 @@ WCSToVar {} } -proc ConfigWCSDialog {{force {0}}} { +proc ConfigWCSDialog {} { global wcs global iwcs global dwcs @@ -508,10 +691,9 @@ return } - # do we need to re-grid wcs vars? - if {!$force && $dwcs(prev) == $dwcs(system)} { - return - } + # display new sys vars + set aa [string tolower [string range $dwcs(system) 3 3]] + set bb [string toupper $aa] set tt $iwcs(top).param set base $tt.base @@ -521,293 +703,86 @@ set bb0 $tt.bb0 set ap0 $tt.ap0 set bp0 $tt.bp0 + + # PAGE Base + $base.twcsname configure -text "WCSNAME${bb}" + $base.wcsname configure -textvariable dwcs(wcsname${aa}) + $base.twcsaxes configure -text "WCSAXES${bb}" + $base.wcsaxes configure -textvariable dwcs(wcsaxes${aa}) + $base.tradesys configure -text "RADESYS${bb}" + $base.radesys configure -textvariable dwcs(radesys${aa}) + + $base.tequinox configure -text "EQUINOX${bb}" + $base.equinox configure -textvariable dwcs(equinox${aa}) + $base.tepoch configure -text "EPOCH${bb}" + $base.epoch configure -textvariable dwcs(epoch${aa}) + + $base.tmjdobs configure -text "MJD-OBS${bb}" + $base.mjdobs configure -textvariable dwcs(mjd-obs${aa}) + $base.tdateobs configure -text "DATE-OBS${bb}" + $base.dateobs configure -textvariable dwcs(date-obs${aa}) - grid forget $base.tmjdobs $base.mjdobs - grid forget $base.tdateobs $base.dateobs - grid forget $base.tepoch $base.epoch - - # forget current sys vars - set aa [string tolower [string range $dwcs(prev) 3 3]] - - grid forget $base.twcsname${aa} $base.wcsname${aa} - grid forget $base.twcsaxes${aa} $base.wcsaxes${aa} - grid forget $base.tradesys${aa} $base.radesys${aa} - grid forget $base.tequinox${aa} $base.equinox${aa} - grid forget $base.tlatpole${aa} $base.latpole${aa} - grid forget $base.tlonpole${aa} $base.lonpole${aa} - - for {set ii 1} {$ii<=4} {incr ii} { - grid forget $base.tctype${ii}${aa} $base.ctype${ii}${aa} - grid forget $base.tcunit${ii}${aa} $base.cunit${ii}${aa} - grid forget $base.tcrpix${ii}${aa} $base.crpix${ii}${aa} - grid forget $base.tcrval${ii}${aa} $base.crval${ii}${aa} - grid forget $base.tcdelt${ii}${aa} $base.cdelt${ii}${aa} - } - + # CTYPEx CRPIXx CRVALx CUNITx CDELTx for {set ii 1} {$ii<=4} {incr ii} { - for {set jj 1} {$jj<=4} {incr jj} { - grid forget $base.tcd${ii}_${jj}${aa} $base.cd${ii}_${jj}${aa} - grid forget $base.tpc${ii}_${jj}${aa} $base.pc${ii}_${jj}${aa} - } - } + $base.tctype${ii} configure -text "CTYPE${ii}${bb}" + $base.ctype${ii} configure -textvariable dwcs(ctype${ii}${aa}) + + $base.tcrpix${ii} configure -text "CRPIX${ii}${bb}" + $base.crpix${ii} configure -textvariable dwcs(crpix${ii}${aa}) - for {set ii 1} {$ii<=4} {incr ii} { - for {set jj 0} {$jj<=1} {incr jj} { - grid forget $base.tps${ii}_${jj}${aa} $base.ps${ii}_${jj}${aa} - } - } + $base.tcrval${ii} configure -text "CRVAL${ii}${bb}" + $base.crval${ii} configure -textvariable dwcs(crval${ii}${aa}) - for {set ii 1} {$ii<=4} {incr ii} { - for {set mm 0} {$mm<18} {incr mm} { - grid forget $pv00.tpv${ii}_${mm}${aa} $pv00.pv${ii}_${mm}${aa} - } - for {set mm 18} {$mm<36} {incr mm} { - grid forget $pv18.tpv${ii}_${mm}${aa} $pv18.pv${ii}_${mm}${aa} - } - } + $base.tcunit${ii} configure -text "CUNIT${ii}${bb}" + $base.cunit${ii} configure -textvariable dwcs(cunit${ii}${aa}) - # only in primary - grid forget $aa0.ta $aa0.a - grid forget $aa0.tx $aa0.x - for {set mm 0} {$mm<=9} {incr mm} { - for {set nn 0} {$nn<=9} {incr nn} { - if {[expr ($nn+$mm) <= 9]} { - grid forget $aa0.ta_${mm}_${nn} $aa0.a_${mm}_${nn} - } - } + $base.tcdelt${ii} configure -text "CDELT${ii}${bb}" + $base.cdelt${ii} configure -textvariable dwcs(cdelt${ii}${aa}) } - grid forget $bb0.tb $bb0.b - grid forget $bb0.tx $bb0.x - for {set mm 0} {$mm<=9} {incr mm} { - for {set nn 0} {$nn<=9} {incr nn} { - grid forget $bb0.tb_${mm}_${nn} $bb0.b_${mm}_${nn} + # CDx_x + for {set ii 1} {$ii<=4} {incr ii} { + for {set jj 1} {$jj<=4} {incr jj} { + $base.tcd${ii}_${jj} configure -text "CD${ii}_${jj}${bb}" + $base.cd${ii}_${jj} configure -textvariable dwcs(cd${ii}_${jj}${aa}) } } - grid forget $ap0.ta $ap0.a - for {set mm 0} {$mm<=9} {incr mm} { - for {set nn 0} {$nn<=9} {incr nn} { - grid forget $ap0.ta_${mm}_${nn} $ap0.a_${mm}_${nn} - } - } + # PCx_x + for {set ii 1} {$ii<=4} {incr ii} { + for {set jj 1} {$jj<=4} {incr jj} { + $base.tpc${ii}_${jj} configure -text "PC${ii}_${jj}${bb}" + $base.pc${ii}_${jj} configure -textvariable dwcs(pc${ii}_${jj}${aa}) - grid forget $bp0.tb $bp0.b - for {set mm 0} {$mm<=9} {incr mm} { - for {set nn 0} {$nn<=9} {incr nn} { - grid forget $bp0.tb_${mm}_${nn} $bp0.b_${mm}_${nn} } } - # display new sys vars - set dwcs(prev) $dwcs(system) - set aa [string tolower [string range $dwcs(system) 3 3]] - - grid $base.twcsname${aa} $base.wcsname${aa} -padx 2 -pady 2 -sticky w - grid $base.twcsaxes${aa} $base.wcsaxes${aa} -padx 2 -pady 2 -sticky w - grid $base.tradesys${aa} $base.radesys${aa} -padx 2 -pady 2 -sticky w - - grid $base.tequinox${aa} $base.equinox${aa} \ - $base.tepoch $base.epoch -padx 2 -pady 2 -sticky w - grid $base.tmjdobs $base.mjdobs \ - $base.tdateobs $base.dateobs \ - -padx 2 -pady 2 -sticky w - - grid $base.tctype1${aa} $base.ctype1${aa} \ - $base.tctype2${aa} $base.ctype2${aa} \ - $base.tctype3${aa} $base.ctype3${aa} \ - $base.tctype4${aa} $base.ctype4${aa} \ - -padx 2 -pady 2 -sticky w - grid $base.tcrpix1${aa} $base.crpix1${aa} \ - $base.tcrpix2${aa} $base.crpix2${aa} \ - $base.tcrpix3${aa} $base.crpix3${aa} \ - $base.tcrpix4${aa} $base.crpix4${aa} \ - -padx 2 -pady 2 -sticky w - grid $base.tcrval1${aa} $base.crval1${aa} \ - $base.tcrval2${aa} $base.crval2${aa} \ - $base.tcrval3${aa} $base.crval3${aa} \ - $base.tcrval4${aa} $base.crval4${aa} \ - -padx 2 -pady 2 -sticky w - grid $base.tcunit1${aa} $base.cunit1${aa} \ - $base.tcunit2${aa} $base.cunit2${aa} \ - $base.tcunit3${aa} $base.cunit3${aa} \ - $base.tcunit4${aa} $base.cunit4${aa} \ - -padx 2 -pady 2 -sticky w - grid $base.tcdelt1${aa} $base.cdelt1${aa} \ - $base.tcdelt2${aa} $base.cdelt2${aa} \ - $base.tcdelt3${aa} $base.cdelt3${aa} \ - $base.tcdelt4${aa} $base.cdelt4${aa} \ - -padx 2 -pady 2 -sticky w - - grid $base.tcd1_1${aa} $base.cd1_1${aa} \ - $base.tcd2_1${aa} $base.cd2_1${aa} \ - $base.tcd3_1${aa} $base.cd3_1${aa} \ - $base.tcd4_1${aa} $base.cd4_1${aa} \ - -padx 2 -pady 2 -sticky w - grid $base.tcd1_2${aa} $base.cd1_2${aa} \ - $base.tcd2_2${aa} $base.cd2_2${aa} \ - $base.tcd3_2${aa} $base.cd3_2${aa} \ - $base.tcd4_2${aa} $base.cd4_2${aa} \ - -padx 2 -pady 2 -sticky w - grid $base.tcd1_3${aa} $base.cd1_3${aa} \ - $base.tcd2_3${aa} $base.cd2_3${aa} \ - $base.tcd3_3${aa} $base.cd3_3${aa} \ - $base.tcd4_3${aa} $base.cd4_3${aa} \ - -padx 2 -pady 2 -sticky w - grid $base.tcd1_4${aa} $base.cd1_4${aa} \ - $base.tcd2_4${aa} $base.cd2_4${aa} \ - $base.tcd3_4${aa} $base.cd3_4${aa} \ - $base.tcd4_4${aa} $base.cd4_4${aa} \ - -padx 2 -pady 2 -sticky w - - grid $base.tpc1_1${aa} $base.pc1_1${aa} \ - $base.tpc2_1${aa} $base.pc2_1${aa} \ - $base.tpc3_1${aa} $base.pc3_1${aa} \ - $base.tpc4_1${aa} $base.pc4_1${aa} \ - -padx 2 -pady 2 -sticky w - grid $base.tpc1_2${aa} $base.pc1_2${aa} \ - $base.tpc2_2${aa} $base.pc2_2${aa} \ - $base.tpc3_2${aa} $base.pc3_2${aa} \ - $base.tpc4_2${aa} $base.pc4_2${aa} \ - -padx 2 -pady 2 -sticky w - grid $base.tpc1_3${aa} $base.pc1_3${aa} \ - $base.tpc2_3${aa} $base.pc2_3${aa} \ - $base.tpc3_3${aa} $base.pc3_3${aa} \ - $base.tpc4_3${aa} $base.pc4_3${aa} \ - -padx 2 -pady 2 -sticky w - grid $base.tpc1_4${aa} $base.pc1_4${aa} \ - $base.tpc2_4${aa} $base.pc2_4${aa} \ - $base.tpc3_4${aa} $base.pc3_4${aa} \ - $base.tpc4_4${aa} $base.pc4_4${aa} \ - -padx 2 -pady 2 -sticky w - - grid $base.tps1_0${aa} $base.ps1_0${aa} \ - $base.tps2_0${aa} $base.ps2_0${aa} \ - $base.tps3_0${aa} $base.ps3_0${aa} \ - $base.tps4_0${aa} $base.ps4_0${aa} \ - -padx 2 -pady 2 -sticky w - grid $base.tps1_1${aa} $base.ps1_1${aa} \ - $base.tps2_1${aa} $base.ps2_1${aa} \ - $base.tps3_1${aa} $base.ps3_1${aa} \ - $base.tps4_1${aa} $base.ps4_1${aa} \ - -padx 2 -pady 2 -sticky w - - grid $base.tlatpole${aa} $base.latpole${aa} \ - $base.tlonpole${aa} $base.lonpole${aa} -padx 2 -pady 2 -sticky w - - for {set mm 0} {$mm<18} {incr mm} { - grid $pv00.tpv1_${mm}${aa} $pv00.pv1_${mm}${aa} \ - $pv00.tpv2_${mm}${aa} $pv00.pv2_${mm}${aa} \ - $pv00.tpv3_${mm}${aa} $pv00.pv3_${mm}${aa} \ - $pv00.tpv4_${mm}${aa} $pv00.pv4_${mm}${aa} \ - -padx 2 -pady 2 -sticky w - } - for {set mm 18} {$mm<36} {incr mm} { - grid $pv18.tpv1_${mm}${aa} $pv18.pv1_${mm}${aa} \ - $pv18.tpv2_${mm}${aa} $pv18.pv2_${mm}${aa} \ - $pv18.tpv3_${mm}${aa} $pv18.pv3_${mm}${aa} \ - $pv18.tpv4_${mm}${aa} $pv18.pv4_${mm}${aa} \ - -padx 2 -pady 2 -sticky w - } - - # only in primary - grid $aa0.ta $aa0.a $aa0.tx $aa0.x -padx 2 -pady 2 -sticky w - for {set mm 0} {$mm<=9} {incr mm} { - for {set nn 0} {$nn<=9} {incr nn} { - if {[expr (($nn+$mm) <= 9) && !($nn == 0 && $mm == 0)]} { - set rr [expr $mm*3 + 2] - set cc [expr $nn*2] - if {[expr $nn >= 4]} { - incr rr - incr cc -8 - } - if {[expr $nn >= 8]} { - incr rr - incr cc -8 - } - grid configure \ - $aa0.ta_${mm}_${nn} \ - -row $rr -column $cc -padx 2 -pady 2 -sticky w - incr cc - grid configure \ - $aa0.a_${mm}_${nn} \ - -row $rr -column $cc -padx 2 -pady 2 -sticky w - } + # PSx_x + for {set ii 1} {$ii<=4} {incr ii} { + for {set jj 0} {$jj<=1} {incr jj} { + $base.tps${ii}_${jj} configure -text "PS${ii}_${jj}${bb}" + $base.ps${ii}_${jj} configure -textvariable dwcs(ps${ii}_${jj}${aa}) } } - grid $bb0.tb $bb0.b $bb0.tx $bb0.x -padx 2 -pady 2 -sticky w - for {set mm 0} {$mm<=9} {incr mm} { - for {set nn 0} {$nn<=9} {incr nn} { - if {[expr (($nn+$mm) <= 9) && !($nn == 0 && $mm == 0)]} { - set rr [expr $mm*3 + 2] - set cc [expr $nn*2] - if {[expr $nn >= 4]} { - incr rr - incr cc -8 - } - if {[expr $nn >= 8]} { - incr rr - incr cc -8 - } - grid configure \ - $bb0.tb_${mm}_${nn} \ - -row $rr -column $cc -padx 2 -pady 2 -sticky w - incr cc - grid configure \ - $bb0.b_${mm}_${nn} \ - -row $rr -column $cc -padx 2 -pady 2 -sticky w - } - } - } + $base.tlatpole configure -text "LATPOLE${bb}" + $base.latpole configure -textvariable dwcs(latpole${aa}) + $base.tlonpole configure -text "LONPOLE${bb}" + $base.lonpole configure -textvariable dwcs(lonpole${aa}) - grid $ap0.ta $ap0.a -padx 2 -pady 2 -sticky w - for {set mm 0} {$mm<=9} {incr mm} { - for {set nn 0} {$nn<=9} {incr nn} { - if {[expr (($nn+$mm) <= 9) && !($nn == 0 && $mm == 0)]} { - set rr [expr $mm*3 + 2] - set cc [expr $nn*2] - if {[expr $nn >= 4]} { - incr rr - incr cc -8 - } - if {[expr $nn >= 8]} { - incr rr - incr cc -8 - } - grid configure \ - $ap0.ta_${mm}_${nn} \ - -row $rr -column $cc -padx 2 -pady 2 -sticky w - incr cc - grid configure \ - $ap0.a_${mm}_${nn} \ - -row $rr -column $cc -padx 2 -pady 2 -sticky w - } + # PAGE PVx_00 + for {set ii 1} {$ii<=4} {incr ii} { + for {set mm 0} {$mm<18} {incr mm} { + $pv00.tpv${ii}_${mm} configure -text "PV${ii}_${mm}${bb}" + $pv00.pv${ii}_${mm} configure -textvariable dwcs(pv${ii}_${mm}${aa}) } } - grid $bp0.tb $bp0.b -padx 2 -pady 2 -sticky w - for {set mm 0} {$mm<=9} {incr mm} { - for {set nn 0} {$nn<=9} {incr nn} { - if {[expr (($nn+$mm) <= 9) && !($nn == 0 && $mm == 0)]} { - set rr [expr $mm*3 + 2] - set cc [expr $nn*2] - if {[expr $nn >= 4]} { - incr rr - incr cc -8 - } - if {[expr $nn >= 8]} { - incr rr - incr cc -8 - } - grid configure \ - $bp0.tb_${mm}_${nn} \ - -row $rr -column $cc -padx 2 -pady 2 -sticky w - incr cc - grid configure \ - $bp0.b_${mm}_${nn} \ - -row $rr -column $cc -padx 2 -pady 2 -sticky w - } + # PAGE PVx_18 + for {set ii 1} {$ii<=4} {incr ii} { + for {set mm 18} {$mm<36} {incr mm} { + $pv18.tpv${ii}_${mm} configure -text "PV${ii}_${mm}${bb}" + $pv18.pv${ii}_${mm} configure -textvariable dwcs(pv${ii}_${mm}${aa}) } } } @@ -838,14 +813,14 @@ } if {$nn > 1} { - $iwcs(mb) entryconfig [msgcat::mc {Extention}] -state normal + $iwcs(mb) entryconfig [msgcat::mc {Extension}] -state normal for {set ii 1} {$ii<=$nn} {incr ii} { $iwcs(mb).ext add radiobutton -label $item($ii) \ -variable dwcs(ext) -value $val($ii) -command UpdateWCSVars } } else { - $iwcs(mb) entryconfig [msgcat::mc {Extention}] -state disabled + $iwcs(mb) entryconfig [msgcat::mc {Extension}] -state disabled } } diff -Nru saods9-8.2+repack/ds9/library/win32.tcl saods9-8.3+repack/ds9/library/win32.tcl --- saods9-8.2+repack/ds9/library/win32.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/win32.tcl 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -# Copyright (C) 1999-2018 -# Smithsonian Astrophysical Observatory, Cambridge, MA, USA -# For conditions of distribution and use, see copyright notice in "copyright" - -package provide DS9 1.0 - -proc Win32Print {} { - global ds9 - - # we need to be realized - RealizeDS9 - # need the colorbar levels updated - UpdateColormapLevel - - if {[win32 pm print begin [winfo width $ds9(canvas)] [winfo height $ds9(canvas)] yes]} { - foreach f $ds9(frames) { - $f win32 print - } - colorbar win32 print - colorbarrgb win32 print - win32 pm print end - } -} - -proc Win32PageSetup {} { - win32 pm pagesetup -} diff -Nru saods9-8.2+repack/ds9/library/xpa.tcl saods9-8.3+repack/ds9/library/xpa.tcl --- saods9-8.2+repack/ds9/library/xpa.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/library/xpa.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 +# Copyright (C) 1999-2021 # Smithsonian Astrophysical Observatory, Cambridge, MA, USA # For conditions of distribution and use, see copyright notice in "copyright" @@ -229,6 +229,11 @@ XPASendGIF {} {} \ XPARcvdGIF {} "fillbuf=false" + xpacmdadd $xpa graph \ + {} \ + XPASendGraph {} {} \ + XPARcvdGraph {} "fillbuf=false" + xpacmdadd $xpa grid \ {} \ XPASendGrid {} {} \ @@ -380,6 +385,11 @@ XPASendNan {} {} \ XPARcvdNan {} {} + xpacmdadd $xpa notes \ + {} \ + XPASendNotes {} {} \ + XPARcvdNotes {} {} + xpacmdadd $xpa nrrd \ {} \ XPASendNRRD {} {} \ @@ -457,8 +467,8 @@ xpacmdadd $xpa psprint \ {} \ - XPASendPSPrint {} {} \ - XPARcvdPSPrint {} "fillbuf=false" + XPASendPrint {} {} \ + XPARcvdPrint {} "fillbuf=false" xpacmdadd $xpa quit \ {} \ @@ -510,6 +520,11 @@ XPASendRotate {} {} \ XPARcvdRotate {} "fillbuf=false" + xpacmdadd $xpa samp \ + {} \ + XPASendSAMP {} {} \ + XPARcvdSAMP {} "fillbuf=false" + xpacmdadd $xpa save \ {} \ {} {} {} \ @@ -1110,6 +1125,19 @@ XPACatchError $xpa } +proc XPASendGraph {xpa cdata param} { + InitError xpa + catch {ProcessSendGraphCmd xpasetbuf $xpa $param} + XPACatchError $xpa +} + +proc XPARcvdGraph {xpa cdata param buf len} { + XPADebug "XPARcvdGraph" $param + InitError xpa + catch {set i 0; ProcessGraphCmd param i} + XPACatchError $xpa +} + proc XPASendGrid {xpa cdata param} { InitError xpa catch {ProcessSendGridCmd xpasetbuf $xpa $param} @@ -1414,6 +1442,19 @@ XPACatchError $xpa } +proc XPASendNotes {xpa cdata param} { + InitError xpa + catch {ProcessSendNotesCmd xpasetbuf $xpa $param} + XPACatchError $xpa +} + +proc XPARcvdNotes {xpa cdata param buf len} { + XPADebug "XPARcvdNotes" $param + InitError xpa + catch {set i 0; ProcessNotesCmd param i} + XPACatchError $xpa +} + proc XPASendNRES {xpa cdata param} { InitError xpa catch {ProcessSendNRESCmd xpasetbuf $xpa $param} @@ -1635,7 +1676,7 @@ proc XPASendPSPrint {xpa cdata param} { InitError xpa - catch {ProcessSendPSPrintCmd xpasetbuf $xpa $param} + catch {ProcessSendPrintCmd xpasetbuf $xpa $param} XPACatchError $xpa } @@ -1645,7 +1686,7 @@ catch { if {[XPAIsLocal]} { set i 0 - ProcessPSPrintCmd param i + ProcessPrintCmd param i } else { Error [msgcat::mc {This function is not available.}] } @@ -1745,6 +1786,19 @@ XPACatchError $xpa } +proc XPASendSAMP {xpa cdata param} { + InitError xpa + catch {ProcessSendSAMPCmd xpasetbuf $xpa $param} + XPACatchError $xpa +} + +proc XPARcvdSAMP {xpa cdata param buf len} { + XPADebug "XPARcvdSAMP" $param + InitError xpa + catch {set i 0; ProcessSAMPCmd param i} + XPACatchError $xpa +} + proc XPARcvdSave {xpa cdata param buf len} { XPADebug "XPARcvdSave" $param InitError xpa @@ -2259,11 +2313,5 @@ } proc ProcessSendXPACmd {proc id param {sock {}} {fn {}}} { - global parse - set parse(proc) $proc - set parse(id) $id - - xpasend::YY_FLUSH_BUFFER - xpasend::yy_scan_string $param - xpasend::yyparse + $proc $id "[XPAInfoResult]\n" } diff -Nru saods9-8.2+repack/ds9/msgs/cs.msg saods9-8.3+repack/ds9/msgs/cs.msg --- saods9-8.2+repack/ds9/msgs/cs.msg 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/msgs/cs.msg 2021-11-08 15:46:07.000000000 +0000 @@ -10,7 +10,6 @@ ::msgcat::mcset cs {Add Bar Graph} ::msgcat::mcset cs {Add Graph} ::msgcat::mcset cs {Add Line Graph} -::msgcat::mcset cs {Add Scatter Graph} ::msgcat::mcset cs {Add} [encoding convertfrom iso8859-2 {Pøidat}] ::msgcat::mcset cs {Advanced} [encoding convertfrom iso8859-2 {Dal¹í nastavení}] ::msgcat::mcset cs {Align} [encoding convertfrom iso8859-2 {Zarovnat}] @@ -22,13 +21,10 @@ ::msgcat::mcset cs {An error has occurred during backup} [encoding convertfrom iso8859-2 {Chyba pøi poøizování zálohy}] ::msgcat::mcset cs {An error has occurred during restore} [encoding convertfrom iso8859-2 {Chyba pøi obnovì zálohy}] ::msgcat::mcset cs {An error has occurred invoking the Analysis task} [encoding convertfrom iso8859-2 {Chyba pøi spou¹tìní Analýzy}] -::msgcat::mcset cs {An error has occurred while creating image.} [encoding convertfrom iso8859-2 {Chyba pøi vytváøení obrázku.}] -::msgcat::mcset cs {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.} [encoding convertfrom iso8859-2 {Chyba pøi vytváøení obrázku. Prosím ujistìte se ¾e okno s DS9tkou je ve vrchním levém rohu výchozí obrazovky a ¾e je celé viditelné.}] -::msgcat::mcset cs {An error has occurred while creating the image. Please be sure that the plot window is in the upper left corner of the default screen and the entire window is visible.} +::msgcat::mcset cs {An error has occurred while creating} +::msgcat::mcset cs {An error has occurred while loading} ::msgcat::mcset cs {An error has occurred while printing} [encoding convertfrom iso8859-2 {Pøi tisku se vyskytla chyba}] -::msgcat::mcset cs {An error has occurred while reading image.} [encoding convertfrom iso8859-2 {Chyba pøi ètení obrázku.}] ::msgcat::mcset cs {An error has occurred while saving} [encoding convertfrom iso8859-2 {Chyba pøi ukládání souboru}] -::msgcat::mcset cs {An error has occurred while writing image.} ::msgcat::mcset cs {An internal error has been detected} [encoding convertfrom iso8859-2 {Byla detekována vnitøní chyba programu}] ::msgcat::mcset cs {Analysis Command Log} [encoding convertfrom iso8859-2 {Poøizovat záznam analytických pøíkazù}] ::msgcat::mcset cs {Analysis Commands} [encoding convertfrom iso8859-2 {Analytické pøíkazy}] @@ -251,7 +247,6 @@ ::msgcat::mcset cs {Dimension} [encoding convertfrom iso8859-2 {Rozmìr}] ::msgcat::mcset cs {Direction} ::msgcat::mcset cs {Disconnect} -::msgcat::mcset cs {Display Header} ::msgcat::mcset cs {Display Size} [encoding convertfrom iso8859-2 {Velikost displeje}] ::msgcat::mcset cs {Dissolve} ::msgcat::mcset cs {Distance} [encoding convertfrom iso8859-2 {Vzdálenost}] @@ -305,7 +300,6 @@ ::msgcat::mcset cs {Extension not found} ::msgcat::mcset cs {Extensions} ::msgcat::mcset cs {Extension} -::msgcat::mcset cs {Extention} ::msgcat::mcset cs {Exterior Axes} ::msgcat::mcset cs {Exterior Numerics} ::msgcat::mcset cs {FAQ} @@ -373,7 +367,6 @@ ::msgcat::mcset cs {Groups} [encoding convertfrom iso8859-2 {Skupiny}] ::msgcat::mcset cs {HMS} ::msgcat::mcset cs {HTTP} -::msgcat::mcset cs {Header Keywords} ::msgcat::mcset cs {Header} [encoding convertfrom iso8859-2 {Hlavièka}] ::msgcat::mcset cs {Height} [encoding convertfrom iso8859-2 {Vý¹ka}] ::msgcat::mcset cs {Help Desk} [encoding convertfrom iso8859-2 {Podpora}] @@ -582,6 +575,8 @@ ::msgcat::mcset cs {Movie} ::msgcat::mcset cs {Muliple Extension Cube} ::msgcat::mcset cs {Muliple Extension Frames} +::msgcat::mcset cs {Multi Colorbars} +::msgcat::mcset cs {Multiple Colorbars} ::msgcat::mcset cs {Multiple Extension Cube} ::msgcat::mcset cs {Multiple Extension Frames} ::msgcat::mcset cs {Multiple WCS} [encoding convertfrom iso8859-2 {Multi WCS}] @@ -615,6 +610,7 @@ ::msgcat::mcset cs {Not Found} ::msgcat::mcset cs {Not Supported} ::msgcat::mcset cs {Not valid export format} +::msgcat::mcset cs {Notes} ::msgcat::mcset cs {Number of Samples} ::msgcat::mcset cs {Number of Threads} ::msgcat::mcset cs {Number of Ticks} @@ -648,6 +644,7 @@ ::msgcat::mcset cs {Other} ::msgcat::mcset cs {Outer} ::msgcat::mcset cs {Overplot} +::msgcat::mcset cs {Override Color} ::msgcat::mcset cs {PNG} ::msgcat::mcset cs {PS Page Setup} ::msgcat::mcset cs {PS Print} @@ -785,7 +782,6 @@ ::msgcat::mcset cs {Scan} ::msgcat::mcset cs {Scatter Dataset} ::msgcat::mcset cs {Scatter Plot Tool} -::msgcat::mcset cs {Scatter} ::msgcat::mcset cs {Scope} ::msgcat::mcset cs {Screen} ::msgcat::mcset cs {Search for Catalogs} @@ -805,7 +801,6 @@ ::msgcat::mcset cs {Show All} [encoding convertfrom iso8859-2 {Zobrazit v¹e}] ::msgcat::mcset cs {Show Command} ::msgcat::mcset cs {Show Compass} -::msgcat::mcset cs {Show Grid} ::msgcat::mcset cs {Show Legend} ::msgcat::mcset cs {Show Text} ::msgcat::mcset cs {Show/Hide Frames} [encoding convertfrom iso8859-2 {Zobrazit/skrýt snímky}] @@ -917,7 +912,6 @@ ::msgcat::mcset cs {Upper Right Back} ::msgcat::mcset cs {Upper Right Front} ::msgcat::mcset cs {Use Authentication} -::msgcat::mcset cs {Use Color} ::msgcat::mcset cs {Use Current Frame on Download} ::msgcat::mcset cs {Use Internal Web Browser} ::msgcat::mcset cs {Use Original Color/Width} @@ -971,26 +965,17 @@ ::msgcat::mcset cs {Zoom} [encoding convertfrom iso8859-2 {Zvìt¹ení}] ::msgcat::mcset cs {already connected} ::msgcat::mcset cs {and} -::msgcat::mcset cs {blue} [encoding convertfrom iso8859-2 {modrá}] ::msgcat::mcset cs {b} -::msgcat::mcset cs {color} [encoding convertfrom iso8859-2 {barva}] -::msgcat::mcset cs {cool} [encoding convertfrom iso8859-2 {chlad}] -::msgcat::mcset cs {green} [encoding convertfrom iso8859-2 {zelená}] -::msgcat::mcset cs {grey} [encoding convertfrom iso8859-2 {¹edá}] +::msgcat::mcset cs {graph} ::msgcat::mcset cs {g} ::msgcat::mcset cs {h5utils} -::msgcat::mcset cs {heat} [encoding convertfrom iso8859-2 {horko}] ::msgcat::mcset cs {hundredths second} ::msgcat::mcset cs {internal error} ::msgcat::mcset cs {not connected} ::msgcat::mcset cs {not} ::msgcat::mcset cs {only} ::msgcat::mcset cs {or center of data} -::msgcat::mcset cs {rainbow} [encoding convertfrom iso8859-2 {duha}] -::msgcat::mcset cs {red} [encoding convertfrom iso8859-2 {èervená}] ::msgcat::mcset cs {rows of data have been downloaded. More may be available. You may wish to adjust the maximum allowed} [encoding convertfrom iso8859-2 {øádkù dat. Více jich mù¾e být k dispozici. Zkuste zmìnit povolené maximum}] ::msgcat::mcset cs {r} -::msgcat::mcset cs {staircase} [encoding convertfrom iso8859-2 {schodi¹tì}] -::msgcat::mcset cs {standard} ::msgcat::mcset cs {unable to locate HUB} ::msgcat::mcset cs {x} diff -Nru saods9-8.2+repack/ds9/msgs/da.msg saods9-8.3+repack/ds9/msgs/da.msg --- saods9-8.2+repack/ds9/msgs/da.msg 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/msgs/da.msg 2021-11-08 15:46:07.000000000 +0000 @@ -10,7 +10,6 @@ ::msgcat::mcset da {Add Bar Graph} ::msgcat::mcset da {Add Graph} ::msgcat::mcset da {Add Line Graph} -::msgcat::mcset da {Add Scatter Graph} ::msgcat::mcset da {Add} [encoding convertfrom iso8859-1 {Tilføj}] ::msgcat::mcset da {Advanced} {Avanceret} ::msgcat::mcset da {Align} {Juster} @@ -22,13 +21,10 @@ ::msgcat::mcset da {An error has occurred during backup} ::msgcat::mcset da {An error has occurred during restore} ::msgcat::mcset da {An error has occurred invoking the Analysis task} [encoding convertfrom iso8859-1 {Fejl opstået ved kald til analyse program}] -::msgcat::mcset da {An error has occurred while creating image.} -::msgcat::mcset da {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.} -::msgcat::mcset da {An error has occurred while creating the image. Please be sure that the plot window is in the upper left corner of the default screen and the entire window is visible.} +::msgcat::mcset da {An error has occurred while creating} +::msgcat::mcset da {An error has occurred while loading} ::msgcat::mcset da {An error has occurred while printing} [encoding convertfrom iso8859-1 {Fejl opstået under udskrivning}] -::msgcat::mcset da {An error has occurred while reading image.} ::msgcat::mcset da {An error has occurred while saving} [encoding convertfrom iso8859-1 {Fejl opstået under gemning}] -::msgcat::mcset da {An error has occurred while writing image.} ::msgcat::mcset da {An internal error has been detected} ::msgcat::mcset da {Analysis Command Log} {Analyse kommando logbog} ::msgcat::mcset da {Analysis Commands} [encoding convertfrom iso8859-1 {Analyse muligheder}] @@ -251,7 +247,6 @@ ::msgcat::mcset da {Dimension} {Dimension} ::msgcat::mcset da {Direction} ::msgcat::mcset da {Disconnect} -::msgcat::mcset da {Display Header} ::msgcat::mcset da {Display Size} [encoding convertfrom iso8859-1 {Vis størrelse}] ::msgcat::mcset da {Dissolve} [encoding convertfrom iso8859-1 {Opløs}] ::msgcat::mcset da {Distance} @@ -305,7 +300,6 @@ ::msgcat::mcset da {Extension not found} ::msgcat::mcset da {Extensions} ::msgcat::mcset da {Extension} -::msgcat::mcset da {Extention} ::msgcat::mcset da {Exterior Axes} {Udvendige akser} ::msgcat::mcset da {Exterior Numerics} {Udvendige tal} ::msgcat::mcset da {FAQ} [encoding convertfrom iso8859-1 {Ofte Stillede Spørgsmål}] @@ -373,7 +367,6 @@ ::msgcat::mcset da {Groups} {Gupper} ::msgcat::mcset da {HMS} ::msgcat::mcset da {HTTP} {HTTP} -::msgcat::mcset da {Header Keywords} ::msgcat::mcset da {Header} {Hovede} ::msgcat::mcset da {Height} [encoding convertfrom iso8859-1 {Højde}] ::msgcat::mcset da {Help Desk} [encoding convertfrom iso8859-1 {Hjælp}] @@ -582,6 +575,8 @@ ::msgcat::mcset da {Movie} ::msgcat::mcset da {Muliple Extension Cube} ::msgcat::mcset da {Muliple Extension Frames} +::msgcat::mcset da {Multi Colorbars} +::msgcat::mcset da {Multiple Colorbars} ::msgcat::mcset da {Multiple Extension Cube} ::msgcat::mcset da {Multiple Extension Frames} ::msgcat::mcset da {Multiple WCS} {Multipel WCS} @@ -615,6 +610,7 @@ ::msgcat::mcset da {Not Found} ::msgcat::mcset da {Not Supported} ::msgcat::mcset da {Not valid export format} +::msgcat::mcset da {Notes} ::msgcat::mcset da {Number of Samples} {Antal} ::msgcat::mcset da {Number of Threads} ::msgcat::mcset da {Number of Ticks} @@ -648,6 +644,7 @@ ::msgcat::mcset da {Other} {Anden} ::msgcat::mcset da {Outer} {Ydre} ::msgcat::mcset da {Overplot} +::msgcat::mcset da {Override Color} ::msgcat::mcset da {PNG} ::msgcat::mcset da {PS Page Setup} {PS side opsætning} ::msgcat::mcset da {PS Print} {PS udskrift} @@ -785,7 +782,6 @@ ::msgcat::mcset da {Scan} {skan} ::msgcat::mcset da {Scatter Dataset} ::msgcat::mcset da {Scatter Plot Tool} -::msgcat::mcset da {Scatter} ::msgcat::mcset da {Scope} [encoding convertfrom iso8859-1 {Gældende}] ::msgcat::mcset da {Screen} ::msgcat::mcset da {Search for Catalogs} [encoding convertfrom iso8859-1 {søg efter kataloger}] @@ -805,7 +801,6 @@ ::msgcat::mcset da {Show All} {Vis alle} ::msgcat::mcset da {Show Command} ::msgcat::mcset da {Show Compass} -::msgcat::mcset da {Show Grid} ::msgcat::mcset da {Show Legend} ::msgcat::mcset da {Show Text} {Vis tekst} ::msgcat::mcset da {Show/Hide Frames} {Vis/skjul rammer} @@ -917,7 +912,6 @@ ::msgcat::mcset da {Upper Right Back} ::msgcat::mcset da {Upper Right Front} ::msgcat::mcset da {Use Authentication} [encoding convertfrom iso8859-1 {Anvend bekræftelse}] -::msgcat::mcset da {Use Color} ::msgcat::mcset da {Use Current Frame on Download} {Brug nuværende ramme til download} ::msgcat::mcset da {Use Internal Web Browser} {Brug intern web browser} ::msgcat::mcset da {Use Original Color/Width} @@ -971,26 +965,17 @@ ::msgcat::mcset da {Zoom} ::msgcat::mcset da {already connected} ::msgcat::mcset da {and} -::msgcat::mcset da {blue} ::msgcat::mcset da {b} -::msgcat::mcset da {color} -::msgcat::mcset da {cool} -::msgcat::mcset da {green} -::msgcat::mcset da {grey} [encoding convertfrom iso8859-1 {grå}] +::msgcat::mcset da {graph} ::msgcat::mcset da {g} ::msgcat::mcset da {h5utils} -::msgcat::mcset da {heat} ::msgcat::mcset da {hundredths second} ::msgcat::mcset da {internal error} ::msgcat::mcset da {not connected} ::msgcat::mcset da {not} ::msgcat::mcset da {only} ::msgcat::mcset da {or center of data} {eller center for data} -::msgcat::mcset da {rainbow} {regnbue} -::msgcat::mcset da {red} ::msgcat::mcset da {rows of data have been downloaded. More may be available. You may wish to adjust the maximum allowed} [encoding convertfrom iso8859-1 {rækker af data er blevet hentet. Der kan være flere tilgængelige. Du bør måske ændre det maksimalt tilladte antal}] ::msgcat::mcset da {r} -::msgcat::mcset da {staircase} {trappe} -::msgcat::mcset da {standard} ::msgcat::mcset da {unable to locate HUB} ::msgcat::mcset da {x} diff -Nru saods9-8.2+repack/ds9/msgs/de.msg saods9-8.3+repack/ds9/msgs/de.msg --- saods9-8.2+repack/ds9/msgs/de.msg 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/msgs/de.msg 2021-11-08 15:46:07.000000000 +0000 @@ -10,7 +10,6 @@ ::msgcat::mcset de {Add Bar Graph} ::msgcat::mcset de {Add Graph} ::msgcat::mcset de {Add Line Graph} -::msgcat::mcset de {Add Scatter Graph} ::msgcat::mcset de {Add} [encoding convertfrom iso8859-1 {Hinzufügen}] ::msgcat::mcset de {Advanced} {Erweitert} ::msgcat::mcset de {Align} {Ausrichten} @@ -22,13 +21,10 @@ ::msgcat::mcset de {An error has occurred during backup} ::msgcat::mcset de {An error has occurred during restore} ::msgcat::mcset de {An error has occurred invoking the Analysis task} {Beim Aufrufen des Analysetasks ist ein Fehler aufgetreten} -::msgcat::mcset de {An error has occurred while creating image.} -::msgcat::mcset de {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.} -::msgcat::mcset de {An error has occurred while creating the image. Please be sure that the plot window is in the upper left corner of the default screen and the entire window is visible.} +::msgcat::mcset de {An error has occurred while creating} +::msgcat::mcset de {An error has occurred while loading} ::msgcat::mcset de {An error has occurred while printing} {Beim Drucken ist ein Fehler aufgetreten} -::msgcat::mcset de {An error has occurred while reading image.} ::msgcat::mcset de {An error has occurred while saving} {Beim Speichern ist ein Fehler aufgetreten} -::msgcat::mcset de {An error has occurred while writing image.} ::msgcat::mcset de {An internal error has been detected} ::msgcat::mcset de {Analysis Command Log} {Analysebefehlslog} ::msgcat::mcset de {Analysis Commands} @@ -251,7 +247,6 @@ ::msgcat::mcset de {Dimension} ::msgcat::mcset de {Direction} ::msgcat::mcset de {Disconnect} -::msgcat::mcset de {Display Header} ::msgcat::mcset de {Display Size} [encoding convertfrom iso8859-1 {Größe zeigen}] ::msgcat::mcset de {Dissolve} ::msgcat::mcset de {Distance} @@ -305,7 +300,6 @@ ::msgcat::mcset de {Extension not found} ::msgcat::mcset de {Extensions} ::msgcat::mcset de {Extension} -::msgcat::mcset de {Extention} ::msgcat::mcset de {Exterior Axes} [encoding convertfrom iso8859-1 {Äußere Achsen}] ::msgcat::mcset de {Exterior Numerics} [encoding convertfrom iso8859-1 {Äußere Ziffern}] ::msgcat::mcset de {FAQ} @@ -373,7 +367,6 @@ ::msgcat::mcset de {Groups} {Gruppen} ::msgcat::mcset de {HMS} ::msgcat::mcset de {HTTP} -::msgcat::mcset de {Header Keywords} ::msgcat::mcset de {Header} {Dateikopf} ::msgcat::mcset de {Height} [encoding convertfrom iso8859-1 {Höhe}] ::msgcat::mcset de {Help Desk} {Hilfestelle} @@ -582,6 +575,8 @@ ::msgcat::mcset de {Movie} ::msgcat::mcset de {Muliple Extension Cube} ::msgcat::mcset de {Muliple Extension Frames} +::msgcat::mcset de {Multi Colorbars} +::msgcat::mcset de {Multiple Colorbars} ::msgcat::mcset de {Multiple Extension Cube} ::msgcat::mcset de {Multiple Extension Frames} ::msgcat::mcset de {Multiple WCS} {Mehrere WCS} @@ -615,6 +610,7 @@ ::msgcat::mcset de {Not Found} ::msgcat::mcset de {Not Supported} ::msgcat::mcset de {Not valid export format} +::msgcat::mcset de {Notes} ::msgcat::mcset de {Number of Samples} {Anzahl der Stichproben} ::msgcat::mcset de {Number of Threads} ::msgcat::mcset de {Number of Ticks} @@ -648,6 +644,7 @@ ::msgcat::mcset de {Other} {Andere} ::msgcat::mcset de {Outer} [encoding convertfrom iso8859-1 {Äußerer}] ::msgcat::mcset de {Overplot} +::msgcat::mcset de {Override Color} ::msgcat::mcset de {PNG} ::msgcat::mcset de {PS Page Setup} ::msgcat::mcset de {PS Print} @@ -785,7 +782,6 @@ ::msgcat::mcset de {Scan} {Abtastung} ::msgcat::mcset de {Scatter Dataset} ::msgcat::mcset de {Scatter Plot Tool} -::msgcat::mcset de {Scatter} ::msgcat::mcset de {Scope} {Anwendungsbereich} ::msgcat::mcset de {Screen} ::msgcat::mcset de {Search for Catalogs} {Nach Katalogen suchen} @@ -805,7 +801,6 @@ ::msgcat::mcset de {Show All} {Alle zeigen} ::msgcat::mcset de {Show Command} ::msgcat::mcset de {Show Compass} -::msgcat::mcset de {Show Grid} ::msgcat::mcset de {Show Legend} ::msgcat::mcset de {Show Text} ::msgcat::mcset de {Show/Hide Frames} {Rahmen zeigen/verstecken} @@ -917,7 +912,6 @@ ::msgcat::mcset de {Upper Right Back} ::msgcat::mcset de {Upper Right Front} ::msgcat::mcset de {Use Authentication} {Authentifizierung verwenden} -::msgcat::mcset de {Use Color} ::msgcat::mcset de {Use Current Frame on Download} {Aktuellen rahmen bei Download verwenden} ::msgcat::mcset de {Use Internal Web Browser} {Internen Webbrowser verwenden} ::msgcat::mcset de {Use Original Color/Width} @@ -971,26 +965,17 @@ ::msgcat::mcset de {Zoom} ::msgcat::mcset de {already connected} ::msgcat::mcset de {and} -::msgcat::mcset de {blue} ::msgcat::mcset de {b} -::msgcat::mcset de {color} -::msgcat::mcset de {cool} -::msgcat::mcset de {green} -::msgcat::mcset de {grey} +::msgcat::mcset de {graph} ::msgcat::mcset de {g} ::msgcat::mcset de {h5utils} -::msgcat::mcset de {heat} ::msgcat::mcset de {hundredths second} ::msgcat::mcset de {internal error} ::msgcat::mcset de {not connected} ::msgcat::mcset de {not} ::msgcat::mcset de {only} ::msgcat::mcset de {or center of data} {oder Zentrum der Daten} -::msgcat::mcset de {rainbow} -::msgcat::mcset de {red} ::msgcat::mcset de {rows of data have been downloaded. More may be available. You may wish to adjust the maximum allowed} [encoding convertfrom iso8859-1 {Datenreihen wurden heruntergeladen. Mehr sind vielleicht verfügbar. Sie können die maximale Anzahl anpassen.}] ::msgcat::mcset de {r} -::msgcat::mcset de {staircase} -::msgcat::mcset de {standard} ::msgcat::mcset de {unable to locate HUB} ::msgcat::mcset de {x} diff -Nru saods9-8.2+repack/ds9/msgs/es.msg saods9-8.3+repack/ds9/msgs/es.msg --- saods9-8.2+repack/ds9/msgs/es.msg 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/msgs/es.msg 2021-11-08 15:46:07.000000000 +0000 @@ -10,7 +10,6 @@ ::msgcat::mcset es {Add Bar Graph} ::msgcat::mcset es {Add Graph} ::msgcat::mcset es {Add Line Graph} -::msgcat::mcset es {Add Scatter Graph} ::msgcat::mcset es {Add} {Agregar} ::msgcat::mcset es {Advanced} {Avanzado} ::msgcat::mcset es {Align} {Alinear} @@ -22,13 +21,10 @@ ::msgcat::mcset es {An error has occurred during backup} ::msgcat::mcset es {An error has occurred during restore} ::msgcat::mcset es {An error has occurred invoking the Analysis task} [encoding convertfrom iso8859-1 {Un error ha ocurrido mientras se invocaba la tarea de análisis}] -::msgcat::mcset es {An error has occurred while creating image.} -::msgcat::mcset es {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.} -::msgcat::mcset es {An error has occurred while creating the image. Please be sure that the plot window is in the upper left corner of the default screen and the entire window is visible.} +::msgcat::mcset es {An error has occurred while creating} +::msgcat::mcset es {An error has occurred while loading} ::msgcat::mcset es {An error has occurred while printing} {Un error ha ocurrido al imprimir} -::msgcat::mcset es {An error has occurred while reading image.} ::msgcat::mcset es {An error has occurred while saving} {Un error ha ocurrido al guardar} -::msgcat::mcset es {An error has occurred while writing image.} ::msgcat::mcset es {An internal error has been detected} ::msgcat::mcset es {Analysis Command Log} [encoding convertfrom iso8859-1 {Log de instrucciones de análisis}] ::msgcat::mcset es {Analysis Commands} [encoding convertfrom iso8859-1 {Comandos de análisis}] @@ -251,7 +247,6 @@ ::msgcat::mcset es {Dimension} [encoding convertfrom iso8859-1 {Dimensión}] ::msgcat::mcset es {Direction} ::msgcat::mcset es {Disconnect} -::msgcat::mcset es {Display Header} ::msgcat::mcset es {Display Size} [encoding convertfrom iso8859-1 {Mostrar el tamaño}] ::msgcat::mcset es {Dissolve} {Disolver} ::msgcat::mcset es {Distance} @@ -305,7 +300,6 @@ ::msgcat::mcset es {Extension not found} ::msgcat::mcset es {Extensions} ::msgcat::mcset es {Extension} -::msgcat::mcset es {Extention} ::msgcat::mcset es {Exterior Axes} {Ejes exteriores} ::msgcat::mcset es {Exterior Numerics} {Numeración exterior} ::msgcat::mcset es {FAQ} @@ -373,7 +367,6 @@ ::msgcat::mcset es {Groups} {Grupos} ::msgcat::mcset es {HMS} ::msgcat::mcset es {HTTP} -::msgcat::mcset es {Header Keywords} ::msgcat::mcset es {Header} {Cabecera} ::msgcat::mcset es {Height} {Altura} ::msgcat::mcset es {Help Desk} {Mesa de ayuda} @@ -582,6 +575,8 @@ ::msgcat::mcset es {Movie} ::msgcat::mcset es {Muliple Extension Cube} ::msgcat::mcset es {Muliple Extension Frames} +::msgcat::mcset es {Multi Colorbars} +::msgcat::mcset es {Multiple Colorbars} ::msgcat::mcset es {Multiple Extension Cube} ::msgcat::mcset es {Multiple Extension Frames} ::msgcat::mcset es {Multiple WCS} [encoding convertfrom iso8859-1 {Múltiple WCS}] @@ -615,6 +610,7 @@ ::msgcat::mcset es {Not Found} ::msgcat::mcset es {Not Supported} ::msgcat::mcset es {Not valid export format} +::msgcat::mcset es {Notes} ::msgcat::mcset es {Number of Samples} [encoding convertfrom iso8859-1 {Número de muestreos}] ::msgcat::mcset es {Number of Threads} ::msgcat::mcset es {Number of Ticks} @@ -648,6 +644,7 @@ ::msgcat::mcset es {Other} {Otro} ::msgcat::mcset es {Outer} {Exterior} ::msgcat::mcset es {Overplot} +::msgcat::mcset es {Override Color} ::msgcat::mcset es {PNG} ::msgcat::mcset es {PS Page Setup} [encoding convertfrom iso8859-1 {Setup para Página PS}] ::msgcat::mcset es {PS Print} {Imprimir PS} @@ -785,7 +782,6 @@ ::msgcat::mcset es {Scan} {Escanear} ::msgcat::mcset es {Scatter Dataset} ::msgcat::mcset es {Scatter Plot Tool} -::msgcat::mcset es {Scatter} ::msgcat::mcset es {Scope} {Alcance} ::msgcat::mcset es {Screen} ::msgcat::mcset es {Search for Catalogs} [encoding convertfrom iso8859-1 {Buscar por catálogos}] @@ -805,7 +801,6 @@ ::msgcat::mcset es {Show All} {Mostrarlos todos} ::msgcat::mcset es {Show Command} ::msgcat::mcset es {Show Compass} -::msgcat::mcset es {Show Grid} ::msgcat::mcset es {Show Legend} ::msgcat::mcset es {Show Text} {Mostrar Texto} ::msgcat::mcset es {Show/Hide Frames} {Mostar/ocultar marcos} @@ -917,7 +912,6 @@ ::msgcat::mcset es {Upper Right Back} ::msgcat::mcset es {Upper Right Front} ::msgcat::mcset es {Use Authentication} [encoding convertfrom iso8859-1 {Usa autenticación}] -::msgcat::mcset es {Use Color} ::msgcat::mcset es {Use Current Frame on Download} {Usar marco actual al transferir} ::msgcat::mcset es {Use Internal Web Browser} {Usar Web Browser interno} ::msgcat::mcset es {Use Original Color/Width} @@ -971,26 +965,17 @@ ::msgcat::mcset es {Zoom} {Zoom} ::msgcat::mcset es {already connected} ::msgcat::mcset es {and} -::msgcat::mcset es {blue} ::msgcat::mcset es {b} -::msgcat::mcset es {color} -::msgcat::mcset es {cool} -::msgcat::mcset es {green} -::msgcat::mcset es {grey} {gris} +::msgcat::mcset es {graph} ::msgcat::mcset es {g} ::msgcat::mcset es {h5utils} -::msgcat::mcset es {heat} ::msgcat::mcset es {hundredths second} ::msgcat::mcset es {internal error} ::msgcat::mcset es {not connected} ::msgcat::mcset es {not} ::msgcat::mcset es {only} ::msgcat::mcset es {or center of data} {o centro de los datos} -::msgcat::mcset es {rainbow} -::msgcat::mcset es {red} ::msgcat::mcset es {rows of data have been downloaded. More may be available. You may wish to adjust the maximum allowed} [encoding convertfrom iso8859-1 {Filas de datos transferidas. Puede que haya más disponibles. Quizá quiera ajustar el máximo permitido.}] ::msgcat::mcset es {r} -::msgcat::mcset es {staircase} -::msgcat::mcset es {standard} [encoding convertfrom iso8859-1 {estándar}] ::msgcat::mcset es {unable to locate HUB} ::msgcat::mcset es {x} diff -Nru saods9-8.2+repack/ds9/msgs/fr.msg saods9-8.3+repack/ds9/msgs/fr.msg --- saods9-8.2+repack/ds9/msgs/fr.msg 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/msgs/fr.msg 2021-11-08 15:46:07.000000000 +0000 @@ -10,7 +10,6 @@ ::msgcat::mcset fr {Add Bar Graph} ::msgcat::mcset fr {Add Graph} ::msgcat::mcset fr {Add Line Graph} -::msgcat::mcset fr {Add Scatter Graph} ::msgcat::mcset fr {Add} {Ajouter} ::msgcat::mcset fr {Advanced} [encoding convertfrom iso8859-1 {Avancé}] ::msgcat::mcset fr {Align} {Aligner} @@ -22,13 +21,10 @@ ::msgcat::mcset fr {An error has occurred during backup} ::msgcat::mcset fr {An error has occurred during restore} ::msgcat::mcset fr {An error has occurred invoking the Analysis task} [encoding convertfrom iso8859-1 {Une erreur s'est produite en invoquant la tâche d'analyse}] -::msgcat::mcset fr {An error has occurred while creating image.} -::msgcat::mcset fr {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.} -::msgcat::mcset fr {An error has occurred while creating the image. Please be sure that the plot window is in the upper left corner of the default screen and the entire window is visible.} +::msgcat::mcset fr {An error has occurred while creating} +::msgcat::mcset fr {An error has occurred while loading} ::msgcat::mcset fr {An error has occurred while printing} {Une erreur s'est produite pendant l'impression} -::msgcat::mcset fr {An error has occurred while reading image.} ::msgcat::mcset fr {An error has occurred while saving} {Une erreur s'est produite pendant la sauvegarde} -::msgcat::mcset fr {An error has occurred while writing image.} ::msgcat::mcset fr {An internal error has been detected} ::msgcat::mcset fr {Analysis Command Log} {Enregistrement des commandes d'analyse} ::msgcat::mcset fr {Analysis Commands} @@ -251,7 +247,6 @@ ::msgcat::mcset fr {Dimension} {Dimention} ::msgcat::mcset fr {Direction} ::msgcat::mcset fr {Disconnect} -::msgcat::mcset fr {Display Header} ::msgcat::mcset fr {Display Size} {Afficher la taille} ::msgcat::mcset fr {Dissolve} ::msgcat::mcset fr {Distance} @@ -305,7 +300,6 @@ ::msgcat::mcset fr {Extension not found} ::msgcat::mcset fr {Extensions} ::msgcat::mcset fr {Extension} -::msgcat::mcset fr {Extention} ::msgcat::mcset fr {Exterior Axes} {Axes exterieurs} ::msgcat::mcset fr {Exterior Numerics} {Chiffres exterieurs} ::msgcat::mcset fr {FAQ} {Foire-Aux-Questions} @@ -373,7 +367,6 @@ ::msgcat::mcset fr {Groups} {Groupes} ::msgcat::mcset fr {HMS} ::msgcat::mcset fr {HTTP} -::msgcat::mcset fr {Header Keywords} ::msgcat::mcset fr {Header} [encoding convertfrom iso8859-1 {Entête}] ::msgcat::mcset fr {Height} {Hauteur} ::msgcat::mcset fr {Help Desk} {Contacts} @@ -582,6 +575,8 @@ ::msgcat::mcset fr {Movie} ::msgcat::mcset fr {Muliple Extension Cube} ::msgcat::mcset fr {Muliple Extension Frames} +::msgcat::mcset fr {Multi Colorbars} +::msgcat::mcset fr {Multiple Colorbars} ::msgcat::mcset fr {Multiple Extension Cube} ::msgcat::mcset fr {Multiple Extension Frames} ::msgcat::mcset fr {Multiple WCS} @@ -615,6 +610,7 @@ ::msgcat::mcset fr {Not Found} ::msgcat::mcset fr {Not Supported} ::msgcat::mcset fr {Not valid export format} +::msgcat::mcset fr {Notes} ::msgcat::mcset fr {Number of Samples} [encoding convertfrom iso8859-1 {Nombre d'échantillons}] ::msgcat::mcset fr {Number of Threads} ::msgcat::mcset fr {Number of Ticks} @@ -648,6 +644,7 @@ ::msgcat::mcset fr {Other} {Autre} ::msgcat::mcset fr {Outer} {Externe} ::msgcat::mcset fr {Overplot} +::msgcat::mcset fr {Override Color} ::msgcat::mcset fr {PNG} ::msgcat::mcset fr {PS Page Setup} ::msgcat::mcset fr {PS Print} @@ -785,7 +782,6 @@ ::msgcat::mcset fr {Scan} ::msgcat::mcset fr {Scatter Dataset} ::msgcat::mcset fr {Scatter Plot Tool} -::msgcat::mcset fr {Scatter} ::msgcat::mcset fr {Scope} ::msgcat::mcset fr {Screen} ::msgcat::mcset fr {Search for Catalogs} @@ -805,7 +801,6 @@ ::msgcat::mcset fr {Show All} {Montrer tous} ::msgcat::mcset fr {Show Command} ::msgcat::mcset fr {Show Compass} -::msgcat::mcset fr {Show Grid} ::msgcat::mcset fr {Show Legend} ::msgcat::mcset fr {Show Text} ::msgcat::mcset fr {Show/Hide Frames} [encoding convertfrom iso8859-1 {Montrer/Cacher les fenêtres}] @@ -917,7 +912,6 @@ ::msgcat::mcset fr {Upper Right Back} ::msgcat::mcset fr {Upper Right Front} ::msgcat::mcset fr {Use Authentication} -::msgcat::mcset fr {Use Color} ::msgcat::mcset fr {Use Current Frame on Download} ::msgcat::mcset fr {Use Internal Web Browser} ::msgcat::mcset fr {Use Original Color/Width} @@ -971,26 +965,17 @@ ::msgcat::mcset fr {Zoom} ::msgcat::mcset fr {already connected} ::msgcat::mcset fr {and} -::msgcat::mcset fr {blue} ::msgcat::mcset fr {b} -::msgcat::mcset fr {color} -::msgcat::mcset fr {cool} -::msgcat::mcset fr {green} -::msgcat::mcset fr {grey} +::msgcat::mcset fr {graph} ::msgcat::mcset fr {g} ::msgcat::mcset fr {h5utils} -::msgcat::mcset fr {heat} ::msgcat::mcset fr {hundredths second} ::msgcat::mcset fr {internal error} ::msgcat::mcset fr {not connected} ::msgcat::mcset fr {not} ::msgcat::mcset fr {only} ::msgcat::mcset fr {or center of data} -::msgcat::mcset fr {rainbow} -::msgcat::mcset fr {red} ::msgcat::mcset fr {rows of data have been downloaded. More may be available. You may wish to adjust the maximum allowed} ::msgcat::mcset fr {r} -::msgcat::mcset fr {staircase} -::msgcat::mcset fr {standard} ::msgcat::mcset fr {unable to locate HUB} ::msgcat::mcset fr {x} diff -Nru saods9-8.2+repack/ds9/msgs/ja.msg saods9-8.3+repack/ds9/msgs/ja.msg --- saods9-8.2+repack/ds9/msgs/ja.msg 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/msgs/ja.msg 2021-11-08 15:46:07.000000000 +0000 @@ -10,7 +10,6 @@ ::msgcat::mcset ja {Add Bar Graph} ::msgcat::mcset ja {Add Graph} ::msgcat::mcset ja {Add Line Graph} -::msgcat::mcset ja {Add Scatter Graph} ::msgcat::mcset ja {Add} [encoding convertfrom euc-jp "\xc4\xc9\xb2\xc3"] ::msgcat::mcset ja {Advanced} [encoding convertfrom euc-jp "\xb9\xe2\xc5\xd9\xa4\xca\xc0\xdf\xc4\xea"] ::msgcat::mcset ja {Align} [encoding convertfrom euc-jp "\xc0\xb0\xce\xf3"] @@ -22,13 +21,10 @@ ::msgcat::mcset ja {An error has occurred during backup} ::msgcat::mcset ja {An error has occurred during restore} ::msgcat::mcset ja {An error has occurred invoking the Analysis task} [encoding convertfrom euc-jp "\xb2\xf2\xc0\xcf\xa5\xbf\xa5\xb9\xa5\xaf\xa4\xce\xb5\xaf\xc6\xb0\xa4\xcb\xbc\xba\xc7\xd4\xa4\xb7\xa4\xde\xa4\xb7\xa4\xbf\xa1\xa3"] -::msgcat::mcset ja {An error has occurred while creating image.} -::msgcat::mcset ja {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.} -::msgcat::mcset ja {An error has occurred while creating the image. Please be sure that the plot window is in the upper left corner of the default screen and the entire window is visible.} +::msgcat::mcset ja {An error has occurred while creating} +::msgcat::mcset ja {An error has occurred while loading} ::msgcat::mcset ja {An error has occurred while printing} [encoding convertfrom euc-jp "\xb0\xf5\xba\xfe\xa4\xcb\xbc\xba\xc7\xd4\xa4\xb7\xa4\xde\xa4\xb7\xa4\xbf\xa1\xa3"] -::msgcat::mcset ja {An error has occurred while reading image.} ::msgcat::mcset ja {An error has occurred while saving} [encoding convertfrom euc-jp "\xca\xdd\xc2\xb8\xa4\xcb\xbc\xba\xc7\xd4\xa4\xb7\xa4\xde\xa4\xb7\xa4\xbf\xa1\xa3"] -::msgcat::mcset ja {An error has occurred while writing image.} ::msgcat::mcset ja {An internal error has been detected} ::msgcat::mcset ja {Analysis Command Log} [encoding convertfrom euc-jp "\xb2\xf2\xc0\xcf\xa5\xb3\xa5\xde\xa5\xf3\xa5\xc9\xa4\xce\xb5\xad\xcf\xbf"] ::msgcat::mcset ja {Analysis Commands} [encoding convertfrom euc-jp "\xb2\xf2\xc0\xcf\xa5\xb3\xa5\xde\xa5\xf3\xa5\xc9"] @@ -251,7 +247,6 @@ ::msgcat::mcset ja {Dimension} [encoding convertfrom euc-jp "\xbc\xa1\xb8\xb5"] ::msgcat::mcset ja {Direction} ::msgcat::mcset ja {Disconnect} [encoding convertfrom euc-jp "\xc0\xdc\xc2\xb3\xbd\xaa\xce\xbb"] -::msgcat::mcset ja {Display Header} ::msgcat::mcset ja {Display Size} [encoding convertfrom euc-jp "\xa5\xb5\xa5\xa4\xa5\xba\xa4\xf2\xc9\xbd\xbc\xa8"] ::msgcat::mcset ja {Dissolve} [encoding convertfrom euc-jp "\xca\xac\xb2\xf2"] ::msgcat::mcset ja {Distance} @@ -305,7 +300,6 @@ ::msgcat::mcset ja {Extension not found} ::msgcat::mcset ja {Extensions} ::msgcat::mcset ja {Extension} -::msgcat::mcset ja {Extention} ::msgcat::mcset ja {Exterior Axes} [encoding convertfrom euc-jp "\xbc\xb4\xa4\xf2\xb3\xb0\xc2\xa6\xa4\xcb"] ::msgcat::mcset ja {Exterior Numerics} [encoding convertfrom euc-jp "\xbf\xf4\xc3\xcd\xa4\xf2\xb3\xb0\xc2\xa6\xa4\xcb"] ::msgcat::mcset ja {FAQ} [encoding convertfrom euc-jp "\xa4\xe8\xa4\xaf\xa4\xa2\xa4\xeb\xbc\xc1\xcc\xe4\xa4\xc8\xc5\xfa\xa4\xa8"] @@ -373,7 +367,6 @@ ::msgcat::mcset ja {Groups} [encoding convertfrom euc-jp "\xa5\xb0\xa5\xeb\xa1\xbc\xa5\xd7"] ::msgcat::mcset ja {HMS} ::msgcat::mcset ja {HTTP} [encoding convertfrom euc-jp "\x48\x54\x54\x50"] -::msgcat::mcset ja {Header Keywords} ::msgcat::mcset ja {Header} [encoding convertfrom euc-jp "\xa5\xd8\xa5\xc3\xa5\xc0"] ::msgcat::mcset ja {Height} [encoding convertfrom euc-jp "\xb9\xe2\xa4\xb5"] ::msgcat::mcset ja {Help Desk} [encoding convertfrom euc-jp "\xa5\xd8\xa5\xeb\xa5\xd7\xa5\xc7\xa5\xb9\xa5\xaf"] @@ -582,6 +575,8 @@ ::msgcat::mcset ja {Movie} ::msgcat::mcset ja {Muliple Extension Cube} ::msgcat::mcset ja {Muliple Extension Frames} +::msgcat::mcset ja {Multi Colorbars} +::msgcat::mcset ja {Multiple Colorbars} ::msgcat::mcset ja {Multiple Extension Cube} ::msgcat::mcset ja {Multiple Extension Frames} ::msgcat::mcset ja {Multiple WCS} [encoding convertfrom euc-jp "\xca\xa3\xbf\xf4\x57\x43\x53"] @@ -615,6 +610,7 @@ ::msgcat::mcset ja {Not Found} ::msgcat::mcset ja {Not Supported} ::msgcat::mcset ja {Not valid export format} +::msgcat::mcset ja {Notes} ::msgcat::mcset ja {Number of Samples} [encoding convertfrom euc-jp "\xa5\xb5\xa5\xf3\xa5\xd7\xa5\xeb\xa4\xce\xbf\xf4"] ::msgcat::mcset ja {Number of Threads} ::msgcat::mcset ja {Number of Ticks} @@ -648,6 +644,7 @@ ::msgcat::mcset ja {Other} [encoding convertfrom euc-jp "\xa4\xbd\xa4\xce\xc2\xbe"] ::msgcat::mcset ja {Outer} [encoding convertfrom euc-jp "\xb3\xb0\xb7\xc2"] ::msgcat::mcset ja {Overplot} +::msgcat::mcset ja {Override Color} ::msgcat::mcset ja {PNG} ::msgcat::mcset ja {PS Page Setup} [encoding convertfrom euc-jp "\x50\x53\xa5\xda\xa1\xbc\xa5\xb8\xc0\xdf\xc4\xea"] ::msgcat::mcset ja {PS Print} [encoding convertfrom euc-jp "\x50\x53\xb0\xf5\xba\xfe"] @@ -785,7 +782,6 @@ ::msgcat::mcset ja {Scan} [encoding convertfrom euc-jp "\xa5\xb9\xa5\xad\xa5\xe3\xa5\xf3"] ::msgcat::mcset ja {Scatter Dataset} ::msgcat::mcset ja {Scatter Plot Tool} -::msgcat::mcset ja {Scatter} ::msgcat::mcset ja {Scope} [encoding convertfrom euc-jp "\xa5\xb9\xa5\xb3\xa1\xbc\xa5\xd7"] ::msgcat::mcset ja {Screen} ::msgcat::mcset ja {Search for Catalogs} [encoding convertfrom euc-jp "\xa5\xab\xa5\xbf\xa5\xed\xa5\xb0\xa4\xf2\xb8\xa1\xba\xf7"] @@ -805,7 +801,6 @@ ::msgcat::mcset ja {Show All} [encoding convertfrom euc-jp "\xc1\xb4\xa4\xc6\xc9\xbd\xbc\xa8"] ::msgcat::mcset ja {Show Command} ::msgcat::mcset ja {Show Compass} -::msgcat::mcset ja {Show Grid} ::msgcat::mcset ja {Show Legend} ::msgcat::mcset ja {Show Text} [encoding convertfrom euc-jp "\xca\xb8\xbb\xfa\xa4\xf2\xc9\xbd\xbc\xa8"] ::msgcat::mcset ja {Show/Hide Frames} [encoding convertfrom euc-jp "\xa5\xd5\xa5\xec\xa1\xbc\xa5\xe0\xa4\xce\xc9\xbd\xbc\xa8\x2f\xc8\xf3\xc9\xbd\xbc\xa8"] @@ -917,7 +912,6 @@ ::msgcat::mcset ja {Upper Right Back} ::msgcat::mcset ja {Upper Right Front} ::msgcat::mcset ja {Use Authentication} [encoding convertfrom euc-jp "\xc7\xa7\xbe\xda\xa4\xf2\xbb\xc8\xcd\xd1"] -::msgcat::mcset ja {Use Color} ::msgcat::mcset ja {Use Current Frame on Download} [encoding convertfrom euc-jp "\xa5\xc0\xa5\xa6\xa5\xf3\xa5\xed\xa1\xbc\xa5\xc9\xbb\xfe\xa4\xcb\xc1\xaa\xc2\xf2\xc3\xe6\xa4\xce\xa5\xd5\xa5\xec\xa1\xbc\xa5\xe0\xa4\xf2\xbb\xc8\xcd\xd1"] ::msgcat::mcset ja {Use Internal Web Browser} [encoding convertfrom euc-jp "\xc6\xe2\xc9\xf4\xa5\xd6\xa5\xe9\xa5\xa6\xa5\xb6\xa4\xf2\xbb\xc8\xcd\xd1"] ::msgcat::mcset ja {Use Original Color/Width} @@ -971,26 +965,17 @@ ::msgcat::mcset ja {Zoom} [encoding convertfrom euc-jp "\xa5\xba\xa1\xbc\xa5\xe0"] ::msgcat::mcset ja {already connected} ::msgcat::mcset ja {and} -::msgcat::mcset ja {blue} ::msgcat::mcset ja {b} -::msgcat::mcset ja {color} -::msgcat::mcset ja {cool} -::msgcat::mcset ja {green} -::msgcat::mcset ja {grey} +::msgcat::mcset ja {graph} ::msgcat::mcset ja {g} ::msgcat::mcset ja {h5utils} -::msgcat::mcset ja {heat} ::msgcat::mcset ja {hundredths second} ::msgcat::mcset ja {internal error} ::msgcat::mcset ja {not connected} ::msgcat::mcset ja {not} ::msgcat::mcset ja {only} ::msgcat::mcset ja {or center of data} [encoding convertfrom euc-jp "\xa4\xe2\xa4\xb7\xa4\xaf\xa4\xcf\xa5\xc7\xa1\xbc\xa5\xbf\xa4\xce\xc3\xe6\xbf\xb4"] -::msgcat::mcset ja {rainbow} -::msgcat::mcset ja {red} ::msgcat::mcset ja {rows of data have been downloaded. More may be available. You may wish to adjust the maximum allowed} [encoding convertfrom euc-jp "\xb9\xd4\xa4\xce\xa5\xc7\xa1\xbc\xa5\xbf\xa4\xac\xa5\xc0\xa5\xa6\xa5\xf3\xa5\xed\xa1\xbc\xa5\xc9\xa4\xb5\xa4\xec\xa4\xde\xa4\xb7\xa4\xbf\xa1\xa3\xa4\xb5\xa4\xe9\xa4\xcb\xa5\xc0\xa5\xa6\xa5\xf3\xa5\xed\xa1\xbc\xa5\xc9\xa4\xb9\xa4\xeb\xbe\xec\xb9\xe7\xa4\xcf\xa1\xa2\xba\xc7\xc2\xe7\xb9\xd4\xbf\xf4\xa4\xf2\xc0\xdf\xc4\xea\xa4\xb7\xa4\xca\xa4\xaa\xa4\xb7\xa4\xc6\xa4\xaf\xa4\xc0\xa4\xb5\xa4\xa4\xa1\xa3"] ::msgcat::mcset ja {r} -::msgcat::mcset ja {staircase} -::msgcat::mcset ja {standard} ::msgcat::mcset ja {unable to locate HUB} ::msgcat::mcset ja {x} diff -Nru saods9-8.2+repack/ds9/msgs/pt.msg saods9-8.3+repack/ds9/msgs/pt.msg --- saods9-8.2+repack/ds9/msgs/pt.msg 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/msgs/pt.msg 2021-11-08 15:46:07.000000000 +0000 @@ -10,7 +10,6 @@ ::msgcat::mcset pt {Add Bar Graph} ::msgcat::mcset pt {Add Graph} ::msgcat::mcset pt {Add Line Graph} -::msgcat::mcset pt {Add Scatter Graph} ::msgcat::mcset pt {Add} {Adicionar} ::msgcat::mcset pt {Advanced} [encoding convertfrom iso8859-1 {Avançado}] ::msgcat::mcset pt {Align} {Alinhar} @@ -22,13 +21,10 @@ ::msgcat::mcset pt {An error has occurred during backup} ::msgcat::mcset pt {An error has occurred during restore} ::msgcat::mcset pt {An error has occurred invoking the Analysis task} [encoding convertfrom iso8859-1 {Um erro ocorreu ao chamar a tarefa de Análise}] -::msgcat::mcset pt {An error has occurred while creating image.} -::msgcat::mcset pt {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.} -::msgcat::mcset pt {An error has occurred while creating the image. Please be sure that the plot window is in the upper left corner of the default screen and the entire window is visible.} +::msgcat::mcset pt {An error has occurred while creating} +::msgcat::mcset pt {An error has occurred while loading} ::msgcat::mcset pt {An error has occurred while printing} {Um erro ocorreu ao imprimir} -::msgcat::mcset pt {An error has occurred while reading image.} ::msgcat::mcset pt {An error has occurred while saving} {Um erro ocorreu ao salvar} -::msgcat::mcset pt {An error has occurred while writing image.} ::msgcat::mcset pt {An internal error has been detected} ::msgcat::mcset pt {Analysis Command Log} [encoding convertfrom iso8859-1 {Registro de Comandos de Análise}] ::msgcat::mcset pt {Analysis Commands} @@ -251,7 +247,6 @@ ::msgcat::mcset pt {Dimension} [encoding convertfrom iso8859-1 {Dimensão}] ::msgcat::mcset pt {Direction} ::msgcat::mcset pt {Disconnect} -::msgcat::mcset pt {Display Header} ::msgcat::mcset pt {Display Size} {Mostar tamanho} ::msgcat::mcset pt {Dissolve} ::msgcat::mcset pt {Distance} @@ -305,7 +300,6 @@ ::msgcat::mcset pt {Extension not found} ::msgcat::mcset pt {Extensions} ::msgcat::mcset pt {Extension} -::msgcat::mcset pt {Extention} ::msgcat::mcset pt {Exterior Axes} {Eixos exteriores} ::msgcat::mcset pt {Exterior Numerics} [encoding convertfrom iso8859-1 {Numeração exterior}] ::msgcat::mcset pt {FAQ} @@ -373,7 +367,6 @@ ::msgcat::mcset pt {Groups} {Grupos} ::msgcat::mcset pt {HMS} ::msgcat::mcset pt {HTTP} -::msgcat::mcset pt {Header Keywords} ::msgcat::mcset pt {Header} [encoding convertfrom iso8859-1 {Cabeçário}] ::msgcat::mcset pt {Height} {Altura} ::msgcat::mcset pt {Help Desk} {Centro de ajuda} @@ -582,6 +575,8 @@ ::msgcat::mcset pt {Movie} ::msgcat::mcset pt {Muliple Extension Cube} ::msgcat::mcset pt {Muliple Extension Frames} +::msgcat::mcset pt {Multi Colorbars} +::msgcat::mcset pt {Multiple Colorbars} ::msgcat::mcset pt {Multiple Extension Cube} ::msgcat::mcset pt {Multiple Extension Frames} ::msgcat::mcset pt {Multiple WCS} {Multiplos WCS} @@ -615,6 +610,7 @@ ::msgcat::mcset pt {Not Found} ::msgcat::mcset pt {Not Supported} ::msgcat::mcset pt {Not valid export format} +::msgcat::mcset pt {Notes} ::msgcat::mcset pt {Number of Samples} ::msgcat::mcset pt {Number of Threads} ::msgcat::mcset pt {Number of Ticks} @@ -648,6 +644,7 @@ ::msgcat::mcset pt {Other} {Outro} ::msgcat::mcset pt {Outer} {Fora} ::msgcat::mcset pt {Overplot} +::msgcat::mcset pt {Override Color} ::msgcat::mcset pt {PNG} ::msgcat::mcset pt {PS Page Setup} ::msgcat::mcset pt {PS Print} @@ -785,7 +782,6 @@ ::msgcat::mcset pt {Scan} ::msgcat::mcset pt {Scatter Dataset} ::msgcat::mcset pt {Scatter Plot Tool} -::msgcat::mcset pt {Scatter} ::msgcat::mcset pt {Scope} {Escopo} ::msgcat::mcset pt {Screen} ::msgcat::mcset pt {Search for Catalogs} [encoding convertfrom iso8859-1 {Buscar Catálogos}] @@ -805,7 +801,6 @@ ::msgcat::mcset pt {Show All} {Mostre todos} ::msgcat::mcset pt {Show Command} ::msgcat::mcset pt {Show Compass} -::msgcat::mcset pt {Show Grid} ::msgcat::mcset pt {Show Legend} ::msgcat::mcset pt {Show Text} ::msgcat::mcset pt {Show/Hide Frames} {Mostra/Esconde Frames} @@ -917,7 +912,6 @@ ::msgcat::mcset pt {Upper Right Back} ::msgcat::mcset pt {Upper Right Front} ::msgcat::mcset pt {Use Authentication} [encoding convertfrom iso8859-1 {Utilizar Autenticação}] -::msgcat::mcset pt {Use Color} ::msgcat::mcset pt {Use Current Frame on Download} {Utilizar Frame Atual ao Descarregar} ::msgcat::mcset pt {Use Internal Web Browser} {Utilizar Navegador Web Interno} ::msgcat::mcset pt {Use Original Color/Width} @@ -971,26 +965,17 @@ ::msgcat::mcset pt {Zoom} {Fator} ::msgcat::mcset pt {already connected} ::msgcat::mcset pt {and} -::msgcat::mcset pt {blue} ::msgcat::mcset pt {b} -::msgcat::mcset pt {color} -::msgcat::mcset pt {cool} -::msgcat::mcset pt {green} -::msgcat::mcset pt {grey} +::msgcat::mcset pt {graph} ::msgcat::mcset pt {g} ::msgcat::mcset pt {h5utils} -::msgcat::mcset pt {heat} ::msgcat::mcset pt {hundredths second} ::msgcat::mcset pt {internal error} ::msgcat::mcset pt {not connected} ::msgcat::mcset pt {not} ::msgcat::mcset pt {only} ::msgcat::mcset pt {or center of data} {ou centro dos dados} -::msgcat::mcset pt {rainbow} -::msgcat::mcset pt {red} ::msgcat::mcset pt {rows of data have been downloaded. More may be available. You may wish to adjust the maximum allowed} [encoding convertfrom iso8859-1 {colunas de dados foram descarregadas. Mais podem estar disponíveis. Você pode querer ajustar o máximo permitido}] ::msgcat::mcset pt {r} -::msgcat::mcset pt {staircase} -::msgcat::mcset pt {standard} ::msgcat::mcset pt {unable to locate HUB} ::msgcat::mcset pt {x} diff -Nru saods9-8.2+repack/ds9/msgs/zh.msg saods9-8.3+repack/ds9/msgs/zh.msg --- saods9-8.2+repack/ds9/msgs/zh.msg 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/msgs/zh.msg 2021-11-08 15:46:07.000000000 +0000 @@ -10,7 +10,6 @@ ::msgcat::mcset zh {Add Bar Graph} ::msgcat::mcset zh {Add Graph} ::msgcat::mcset zh {Add Line Graph} -::msgcat::mcset zh {Add Scatter Graph} ::msgcat::mcset zh {Add} ::msgcat::mcset zh {Advanced} ::msgcat::mcset zh {Align} [encoding convertfrom big5 "\xB9\xEF \xBB\xF4 \xA4\xE8 \xA6\xEC"] @@ -22,13 +21,10 @@ ::msgcat::mcset zh {An error has occurred during backup} ::msgcat::mcset zh {An error has occurred during restore} ::msgcat::mcset zh {An error has occurred invoking the Analysis task} -::msgcat::mcset zh {An error has occurred while creating image.} -::msgcat::mcset zh {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.} -::msgcat::mcset zh {An error has occurred while creating the image. Please be sure that the plot window is in the upper left corner of the default screen and the entire window is visible.} +::msgcat::mcset zh {An error has occurred while creating} +::msgcat::mcset zh {An error has occurred while loading} ::msgcat::mcset zh {An error has occurred while printing} -::msgcat::mcset zh {An error has occurred while reading image.} ::msgcat::mcset zh {An error has occurred while saving} -::msgcat::mcset zh {An error has occurred while writing image.} ::msgcat::mcset zh {An internal error has been detected} ::msgcat::mcset zh {Analysis Command Log} ::msgcat::mcset zh {Analysis Commands} @@ -251,7 +247,6 @@ ::msgcat::mcset zh {Dimension} ::msgcat::mcset zh {Direction} ::msgcat::mcset zh {Disconnect} -::msgcat::mcset zh {Display Header} ::msgcat::mcset zh {Display Size} ::msgcat::mcset zh {Dissolve} [encoding convertfrom big5 "\xB8\xD1 \xB4\xB2"] ::msgcat::mcset zh {Distance} @@ -305,7 +300,6 @@ ::msgcat::mcset zh {Extension not found} ::msgcat::mcset zh {Extensions} ::msgcat::mcset zh {Extension} -::msgcat::mcset zh {Extention} ::msgcat::mcset zh {Exterior Axes} ::msgcat::mcset zh {Exterior Numerics} ::msgcat::mcset zh {FAQ} @@ -373,7 +367,6 @@ ::msgcat::mcset zh {Groups} ::msgcat::mcset zh {HMS} ::msgcat::mcset zh {HTTP} -::msgcat::mcset zh {Header Keywords} ::msgcat::mcset zh {Header} ::msgcat::mcset zh {Height} ::msgcat::mcset zh {Help Desk} @@ -582,6 +575,8 @@ ::msgcat::mcset zh {Movie} ::msgcat::mcset zh {Muliple Extension Cube} ::msgcat::mcset zh {Muliple Extension Frames} +::msgcat::mcset zh {Multi Colorbars} +::msgcat::mcset zh {Multiple Colorbars} ::msgcat::mcset zh {Multiple Extension Cube} ::msgcat::mcset zh {Multiple Extension Frames} ::msgcat::mcset zh {Multiple WCS} @@ -615,6 +610,7 @@ ::msgcat::mcset zh {Not Found} ::msgcat::mcset zh {Not Supported} ::msgcat::mcset zh {Not valid export format} +::msgcat::mcset zh {Notes} ::msgcat::mcset zh {Number of Samples} ::msgcat::mcset zh {Number of Threads} ::msgcat::mcset zh {Number of Ticks} @@ -648,6 +644,7 @@ ::msgcat::mcset zh {Other} [encoding convertfrom big5 "\xA8\xE4 \xA5\xA6"] ::msgcat::mcset zh {Outer} ::msgcat::mcset zh {Overplot} +::msgcat::mcset zh {Override Color} ::msgcat::mcset zh {PNG} ::msgcat::mcset zh {PS Page Setup} ::msgcat::mcset zh {PS Print} @@ -785,7 +782,6 @@ ::msgcat::mcset zh {Scan} ::msgcat::mcset zh {Scatter Dataset} ::msgcat::mcset zh {Scatter Plot Tool} -::msgcat::mcset zh {Scatter} ::msgcat::mcset zh {Scope} ::msgcat::mcset zh {Screen} ::msgcat::mcset zh {Search for Catalogs} @@ -805,7 +801,6 @@ ::msgcat::mcset zh {Show All} [encoding convertfrom big5 "\xC5\xE3 \xA5\xDC \xA5\xFE \xB3\xA1"] ::msgcat::mcset zh {Show Command} ::msgcat::mcset zh {Show Compass} -::msgcat::mcset zh {Show Grid} ::msgcat::mcset zh {Show Legend} ::msgcat::mcset zh {Show Text} ::msgcat::mcset zh {Show/Hide Frames} @@ -917,7 +912,6 @@ ::msgcat::mcset zh {Upper Right Back} ::msgcat::mcset zh {Upper Right Front} ::msgcat::mcset zh {Use Authentication} -::msgcat::mcset zh {Use Color} ::msgcat::mcset zh {Use Current Frame on Download} ::msgcat::mcset zh {Use Internal Web Browser} ::msgcat::mcset zh {Use Original Color/Width} @@ -971,26 +965,17 @@ ::msgcat::mcset zh {Zoom} [encoding convertfrom big5 "\xC1\x59 \xA9\xF1"] ::msgcat::mcset zh {already connected} ::msgcat::mcset zh {and} -::msgcat::mcset zh {blue} [encoding convertfrom big5 "\xC2\xC5"] ::msgcat::mcset zh {b} -::msgcat::mcset zh {color} -::msgcat::mcset zh {cool} -::msgcat::mcset zh {green} [encoding convertfrom big5 "\xBA\xF1"] -::msgcat::mcset zh {grey} [encoding convertfrom big5 "\xA6\xC7"] +::msgcat::mcset zh {graph} ::msgcat::mcset zh {g} ::msgcat::mcset zh {h5utils} -::msgcat::mcset zh {heat} ::msgcat::mcset zh {hundredths second} ::msgcat::mcset zh {internal error} ::msgcat::mcset zh {not connected} ::msgcat::mcset zh {not} ::msgcat::mcset zh {only} ::msgcat::mcset zh {or center of data} -::msgcat::mcset zh {rainbow} -::msgcat::mcset zh {red} [encoding convertfrom big5 "\xAC\xF5"] ::msgcat::mcset zh {rows of data have been downloaded. More may be available. You may wish to adjust the maximum allowed} ::msgcat::mcset zh {r} -::msgcat::mcset zh {staircase} -::msgcat::mcset zh {standard} ::msgcat::mcset zh {unable to locate HUB} ::msgcat::mcset zh {x} diff -Nru saods9-8.2+repack/ds9/parsers/analysissendlex.fcl saods9-8.3+repack/ds9/parsers/analysissendlex.fcl --- saods9-8.2+repack/ds9/parsers/analysissendlex.fcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/analysissendlex.fcl 2021-11-08 15:46:07.000000000 +0000 @@ -8,8 +8,11 @@ %% entry {return $ENTRY_} +filedialog {return $FILEDIALOG_} message {return $MESSAGE_} mode {return $MODE_} +open {return $OPEN_} +save {return $SAVE_} task {return $TASK_} lock {return $LOCK_} diff -Nru saods9-8.2+repack/ds9/parsers/analysissendlex.tcl saods9-8.3+repack/ds9/parsers/analysissendlex.tcl --- saods9-8.2+repack/ds9/parsers/analysissendlex.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/analysissendlex.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -181,13 +181,16 @@ set STRING_ 257 set ENTRY_ 258 -set MESSAGE_ 259 -set MODE_ 260 -set TASK_ 261 -set LOCK_ 262 -set OK_ 263 -set OKCANCEL_ 264 -set YESNO_ 265 +set FILEDIALOG_ 259 +set MESSAGE_ 260 +set MODE_ 261 +set OPEN_ 262 +set SAVE_ 263 +set TASK_ 264 +set LOCK_ 265 +set OK_ 266 +set OKCANCEL_ 267 +set YESNO_ 268 while {1} { if {[string length $yy_current_buffer] - $index_ < 1024} { @@ -216,97 +219,118 @@ set yyleng [string length $yytext] set matched_rule 0 } - # rule 1: message - if {[regexp -start $index_ -indices -line -nocase -- {\A(message)} $yy_current_buffer match] > 0 && \ + # rule 1: filedialog + if {[regexp -start $index_ -indices -line -nocase -- {\A(filedialog)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 1 } - # rule 2: mode - if {[regexp -start $index_ -indices -line -nocase -- {\A(mode)} $yy_current_buffer match] > 0 && \ + # rule 2: message + if {[regexp -start $index_ -indices -line -nocase -- {\A(message)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 2 } - # rule 3: task - if {[regexp -start $index_ -indices -line -nocase -- {\A(task)} $yy_current_buffer match] > 0 && \ + # rule 3: mode + if {[regexp -start $index_ -indices -line -nocase -- {\A(mode)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 3 } - # rule 4: lock - if {[regexp -start $index_ -indices -line -nocase -- {\A(lock)} $yy_current_buffer match] > 0 && \ + # rule 4: open + if {[regexp -start $index_ -indices -line -nocase -- {\A(open)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 4 } - # rule 5: ok - if {[regexp -start $index_ -indices -line -nocase -- {\A(ok)} $yy_current_buffer match] > 0 && \ + # rule 5: save + if {[regexp -start $index_ -indices -line -nocase -- {\A(save)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 5 } - # rule 6: okcancel - if {[regexp -start $index_ -indices -line -nocase -- {\A(okcancel)} $yy_current_buffer match] > 0 && \ + # rule 6: task + if {[regexp -start $index_ -indices -line -nocase -- {\A(task)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 6 } - # rule 7: yesno - if {[regexp -start $index_ -indices -line -nocase -- {\A(yesno)} $yy_current_buffer match] > 0 && \ + # rule 7: lock + if {[regexp -start $index_ -indices -line -nocase -- {\A(lock)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 7 } - # rule 8: \"[^\"]*\" - if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ + # rule 8: ok + if {[regexp -start $index_ -indices -line -nocase -- {\A(ok)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 8 } - # rule 9: \'[^\']*\' - if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ + # rule 9: okcancel + if {[regexp -start $index_ -indices -line -nocase -- {\A(okcancel)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 9 } - # rule 10: \{[^\}]*\} - if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ + # rule 10: yesno + if {[regexp -start $index_ -indices -line -nocase -- {\A(yesno)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 10 } - # rule 11: \S+\S+ - if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ + # rule 11: \"[^\"]*\" + if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 11 } - # rule 12: \s - if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ + # rule 12: \'[^\']*\' + if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 12 } - # rule 13: . - if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + # rule 13: \{[^\}]*\} + if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 13 } + # rule 14: \S+\S+ + if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 14 + } + # rule 15: \s + if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 15 + } + # rule 16: . + if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 16 + } if {$matched_rule == -1} { set yytext [string index $yy_current_buffer $index_] set yyleng 1 @@ -323,42 +347,51 @@ return $ENTRY_ } 1 { -return $MESSAGE_ +return $FILEDIALOG_ } 2 { -return $MODE_ +return $MESSAGE_ } 3 { -return $TASK_ +return $MODE_ } 4 { -return $LOCK_ +return $OPEN_ } 5 { -return $OK_ +return $SAVE_ } 6 { -return $OKCANCEL_ +return $TASK_ } 7 { -return $YESNO_ +return $LOCK_ } 8 { -set yylval [string range $yytext 1 end-1]; return $STRING_ +return $OK_ } 9 { -set yylval [string range $yytext 1 end-1]; return $STRING_ +return $OKCANCEL_ } 10 { -set yylval [string range $yytext 1 end-1]; return $STRING_ +return $YESNO_ } 11 { -set yylval $yytext; return $STRING_ +set yylval [string range $yytext 1 end-1]; return $STRING_ } 12 { -# ignore whitespace +set yylval [string range $yytext 1 end-1]; return $STRING_ } 13 { +set yylval [string range $yytext 1 end-1]; return $STRING_ + } + 14 { +set yylval $yytext; return $STRING_ + } + 15 { +# ignore whitespace + } + 16 { set yylval $yytext; return $yylval } default diff -Nru saods9-8.2+repack/ds9/parsers/analysissendparser.tab.tcl saods9-8.3+repack/ds9/parsers/analysissendparser.tab.tcl --- saods9-8.2+repack/ds9/parsers/analysissendparser.tab.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/analysissendparser.tab.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,9 +1,12 @@ set STRING_ 257 set ENTRY_ 258 -set MESSAGE_ 259 -set MODE_ 260 -set TASK_ 261 -set LOCK_ 262 -set OK_ 263 -set OKCANCEL_ 264 -set YESNO_ 265 +set FILEDIALOG_ 259 +set MESSAGE_ 260 +set MODE_ 261 +set OPEN_ 262 +set SAVE_ 263 +set TASK_ 264 +set LOCK_ 265 +set OK_ 266 +set OKCANCEL_ 267 +set YESNO_ 268 diff -Nru saods9-8.2+repack/ds9/parsers/analysissendparser.tac saods9-8.3+repack/ds9/parsers/analysissendparser.tac --- saods9-8.2+repack/ds9/parsers/analysissendparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/analysissendparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -7,8 +7,11 @@ %start analysissend %token ENTRY_ +%token FILEDIALOG_ %token MESSAGE_ %token MODE_ +%token OPEN_ +%token SAVE_ %token TASK_ %token LOCK_ @@ -22,6 +25,7 @@ | ENTRY_ STRING_ {AnalysisSendCmdEntry $2} | MESSAGE_ type STRING_ {AnalysisSendCmdMessage $2 $3} | MODE_ {ProcessSendCmdGet ime task} + | FILEDIALOG_ which {AnalysisSendCmdFileDialog $2} | TASK_ {AnalysisSendCmdTask} | LOCK_ {ProcessSendCmdGet ime lock} ; @@ -32,6 +36,11 @@ | YESNO_ {set _ yesno} ; +which : {set _ open} + | OPEN_ {set _ open} + | SAVE_ {set _ save} + ; + %% proc analysissend::yyerror {msg} { diff -Nru saods9-8.2+repack/ds9/parsers/analysissendparser.tcl saods9-8.3+repack/ds9/parsers/analysissendparser.tcl --- saods9-8.2+repack/ds9/parsers/analysissendparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/analysissendparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -61,179 +61,231 @@ } array set analysissend::table { - 6:0 accept - 3:0,target 4 - 7:0 reduce - 1:257 shift + 3:268,target 14 0:258 shift - 5:0,target 6 - 2:257 reduce 0:259 shift 0:260 shift - 8:257,target 8 - 2:264,target 9 - 0:266,target 6 + 5:0,target 6 0:261 shift - 7:0,target 2 - 1:257,target 7 - 0:262 shift - 0:258,target 1 - 12:0 reduce - 11:257,target 12 + 9:0 reduce + 11:0 reduce + 0:264 shift + 2:262 shift + 3:257,target 8 + 0:265 shift + 2:263 shift + 3:267,target 13 + 15:257,target 16 + 0:265,target 6 + 2:263,target 10 + 0:269 goto + 6:0,target 7 + 16:0,target 3 + 2:0 reduce + 2:271 goto + 3:266,target 12 + 6:0 reduce + 0:264,target 5 + 2:262,target 9 + 1:257,target 8 + 7:0,target 0 0:0,target 1 + 10:0,target 14 + 13:257,target 10 + 16:0 reduce + 2:271,target 11 + 12:257 reduce + 14:257 reduce + 8:0,target 2 + 11:0,target 5 + 1:257 shift + 7:0 accept + 3:257 reduce + 9:0,target 13 0:261,target 4 - 2:263 shift - 12:0,target 3 - 8:257 reduce - 2:264 shift - 0:266 goto - 10:257 reduce - 9:257 reduce - 4:0,target 5 - 2:265 shift - 11:257 shift - 2:263,target 8 + 2:0,target 12 0:0 reduce - 6:0,target 0 - 2:267 goto - 10:257,target 10 - 9:257,target 9 - 2:265,target 10 - 3:0 reduce - 2:257,target 7 - 0:259,target 2 + 3:266 shift + 3:267 shift 0:260,target 3 + 0:259,target 2 + 3:268 shift + 0:269,target 7 + 3:270 goto 4:0 reduce - 2:267,target 11 + 14:257,target 11 + 8:0 reduce + 10:0 reduce + 0:258,target 1 + 3:270,target 15 + 4:0,target 4 + 13:257 reduce + 15:257 shift + 12:257,target 9 5:0 reduce - 0:262,target 5 } array set analysissend::rules { - 9,l 267 - 2,l 266 - 6,l 266 - 3,l 266 - 7,l 267 - 0,l 268 - 4,l 266 - 8,l 267 - 10,l 267 - 1,l 266 - 5,l 266 + 9,l 270 + 11,l 270 + 2,l 269 + 6,l 269 + 12,l 271 + 3,l 269 + 7,l 269 + 13,l 271 + 0,l 272 + 4,l 269 + 8,l 270 + 10,l 270 + 14,l 271 + 1,l 269 + 5,l 269 } array set analysissend::rules { - 5,dc 1 + 5,dc 2 0,dc 1 - 8,dc 1 + 12,dc 0 + 8,dc 0 3,dc 3 10,dc 1 6,dc 1 1,dc 0 + 13,dc 1 9,dc 1 4,dc 1 - 7,dc 0 + 11,dc 1 + 7,dc 1 2,dc 2 + 14,dc 1 } array set analysissend::rules { - 7,line 32 - 10,line 35 - 4,line 27 - 1,line 24 - 9,line 34 - 6,line 29 - 3,line 26 - 8,line 33 - 5,line 28 - 2,line 25 + 13,line 43 + 7,line 33 + 10,line 38 + 4,line 30 + 1,line 27 + 9,line 37 + 12,line 42 + 6,line 32 + 3,line 29 + 14,line 44 + 8,line 36 + 11,line 39 + 5,line 31 + 2,line 28 } array set analysissend::lr1_table { - 0 {{0 0 0} {1 0 0} {2 0 0} {3 0 0} {4 0 0} {5 0 0} {6 0 0}} + 13,trans {} + 0 {{0 0 0} {1 0 0} {2 0 0} {3 0 0} {4 0 0} {5 0 0} {6 0 0} {7 0 0}} + 14,trans {} 1 {{2 0 1}} - 2 {{3 0 1} {7 257 0} {8 257 0} {9 257 0} {10 257 0}} - 3 {{4 0 1}} - 4 {{5 0 1}} - 0,trans {{258 1} {259 2} {260 3} {261 4} {262 5} {266 6}} + 15,trans {{257 16}} + 2 {{5 0 1} {12 0 0} {13 0 0} {14 0 0}} + 16,trans {} + 3 {{3 0 1} {8 257 0} {9 257 0} {10 257 0} {11 257 0}} + 4 {{4 0 1}} + 0,trans {{258 1} {259 2} {260 3} {261 4} {264 5} {265 6} {269 7}} 5 {{6 0 1}} - 1,trans {{257 7}} - 2,trans {{263 8} {264 9} {265 10} {267 11}} - 6 {{0 0 1}} - 3,trans {} - 7 {{2 0 2}} + 1,trans {{257 8}} + 2,trans {{262 9} {263 10} {271 11}} + 6 {{7 0 1}} + 3,trans {{266 12} {267 13} {268 14} {270 15}} + 7 {{0 0 1}} 4,trans {} - 8 {{8 257 1}} + 8 {{2 0 2}} 5,trans {} - 10 {{10 257 1}} - 9 {{9 257 1}} + 10 {{14 0 1}} + 9 {{13 0 1}} 6,trans {} - 11 {{3 0 2}} - 12 {{3 0 3}} + 11 {{5 0 2}} 7,trans {} + 12 {{9 257 1}} 8,trans {} + 13 {{10 257 1}} 10,trans {} 9,trans {} - 11,trans {{257 12}} + 14 {{11 257 1}} + 11,trans {} + 15 {{3 0 2}} + 16 {{3 0 3}} 12,trans {} } array set analysissend::token_id_table { - 264,line 18 - 265,title YESNO + 264,line 17 + 270,t 1 + 269,t 1 + 265,title LOCK 261,line 14 257,t 0 + 270,title {} + 269,title {} 257,line 7 262,t 0 - 259,title MESSAGE - 260,title MODE - 266,t 1 - 264,title OKCANCEL + 270,line 35 + 269,line 26 + 259,title FILEDIALOG + 260,title MESSAGE + 266,t 0 + 271,t 1 error error - 266,line 23 - 268,title {} - error,line 22 + 264,title TASK + 266,line 20 + error,line 25 + 268,title YESNO 258,t 0 - 263,line 17 + 263,line 16 error,title {} 263,t 0 259,line 12 260,line 13 258,title ENTRY - 267,t 1 - 263,title OK - 268,line 36 - 267,title {} + 272,line 45 + 267,t 0 + 263,title SAVE + 272,t 1 + 268,line 22 + 267,title OKCANCEL 257 STRING_ 258 ENTRY_ 259,t 0 - 259 MESSAGE_ - 260 MODE_ + 259 FILEDIALOG_ + 260 MESSAGE_ 260,t 0 - 261 TASK_ - 265,line 19 - 262 LOCK_ - 263 OK_ + 272,title {} + 261 MODE_ + 265,line 18 + 262 OPEN_ + 263 SAVE_ 257,title string - 264 OKCANCEL_ + 264 TASK_ 264,t 0 - 265 YESNO_ + 265 LOCK_ 262,line 15 - 266 analysissend - 267 type - 268,t 1 - 268 start' - 262,title LOCK - 0 {$} + 266 OK_ + 267 OKCANCEL_ 0,t 0 + 0 {$} + 262,title OPEN + 268 YESNO_ + 268,t 0 + 270 type + 269 analysissend + 271 which error,t 0 + 272 start' 258,line 11 - 266,title {} + 266,title OK + 271,line 41 + 271,title {} 261,t 0 - 267,line 31 + 267,line 21 265,t 0 - 261,title TASK + 261,title MODE } proc analysissend::yyparse {} { @@ -334,12 +386,16 @@ 2 { AnalysisSendCmdEntry $2 } 3 { AnalysisSendCmdMessage $2 $3 } 4 { ProcessSendCmdGet ime task } - 5 { AnalysisSendCmdTask } - 6 { ProcessSendCmdGet ime lock } - 7 { set _ ok } + 5 { AnalysisSendCmdFileDialog $2 } + 6 { AnalysisSendCmdTask } + 7 { ProcessSendCmdGet ime lock } 8 { set _ ok } - 9 { set _ okcancel } - 10 { set _ yesno } + 9 { set _ ok } + 10 { set _ okcancel } + 11 { set _ yesno } + 12 { set _ open } + 13 { set _ open } + 14 { set _ save } } unsetupvalues $dc # pop off tokens from the stack if normal rule diff -Nru saods9-8.2+repack/ds9/parsers/catlex.fcl saods9-8.3+repack/ds9/parsers/catlex.fcl --- saods9-8.2+repack/ds9/parsers/catlex.fcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/catlex.fcl 2021-11-08 15:46:07.000000000 +0000 @@ -31,7 +31,6 @@ coordinate {return $COORDINATE_} cross {return $CROSS_} crosshair {return $CROSSHAIR_} -csv {return $CSV_} current {return $CURRENT_} dec {return $DEC_} decr {return $DECR_} @@ -62,14 +61,12 @@ psystem {return $PSYSTEM_} ra {return $RA_} radius {return $RADIUS_} -rdb {return $RDB_} regions {return $REGIONS_} remove {return $REMOVE_} retrieve {return $RETRIEVE_} return {return $RETURN_} samp {return $SAMP_} save {return $SAVE_} -sb {return $SB_} server {return $SERVER_} shape {return $SHAPE_} show {return $SHOW_} @@ -78,16 +75,12 @@ sky {return $SKY_} skyformat {return $SKYFORMAT_} sort {return $SORT_} -starbase {return $STARBASE_} symbol {return $SYMBOL_} system {return $SYSTEM_} text {return $TEXT_} -tsv {return $TSV_} unique {return $UNIQUE_} units {return $UNITS_} update {return $UPDATE_} -vot {return $VOT_} -xml {return $XML_} cds {return $CDS_} adac {return $ADAC_} @@ -99,6 +92,7 @@ bejing {return $BEJING_} saao {return $SAAO_} +#include reader.fin #include yesno.fin #include fonts.fin #include wcssys.fin diff -Nru saods9-8.2+repack/ds9/parsers/catlex.tcl saods9-8.3+repack/ds9/parsers/catlex.tcl --- saods9-8.2+repack/ds9/parsers/catlex.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/catlex.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -179,155 +179,153 @@ variable done_ variable state_table_ -set YES_ 257 -set NO_ 258 -set ON_ 259 -set OFF_ 260 -set TRUE_ 261 -set FALSE_ 262 -set FONT_ 263 -set FONTSIZE_ 264 -set FONTSLANT_ 265 -set FONTSTYLE_ 266 -set FONTWEIGHT_ 267 -set TIMES_ 268 -set HELVETICA_ 269 -set COURIER_ 270 -set NORMAL_ 271 -set BOLD_ 272 -set ROMAN_ 273 -set ITALIC_ 274 -set WCS_ 275 -set WCSA_ 276 -set WCSB_ 277 -set WCSC_ 278 -set WCSD_ 279 -set WCSE_ 280 -set WCSF_ 281 -set WCSG_ 282 -set WCSH_ 283 -set WCSI_ 284 -set WCSJ_ 285 -set WCSK_ 286 -set WCSL_ 287 -set WCSM_ 288 -set WCSN_ 289 -set WCSO_ 290 -set WCSP_ 291 -set WCSQ_ 292 -set WCSR_ 293 -set WCSS_ 294 -set WCST_ 295 -set WCSU_ 296 -set WCSV_ 297 -set WCSW_ 298 -set WCSX_ 299 -set WCSY_ 300 -set WCSZ_ 301 -set FK4_ 302 -set B1950_ 303 -set FK5_ 304 -set J2000_ 305 -set ICRS_ 306 -set GALACTIC_ 307 -set ECLIPTIC_ 308 -set DEGREES_ 309 -set ARCMIN_ 310 -set ARCSEC_ 311 -set SEXAGESIMAL_ 312 -set INT_ 313 -set REAL_ 314 -set SEXSTR_ 315 -set STRING_ 316 -set 1AND2_ 317 -set 1NOT2_ 318 -set 1ONLY_ 319 -set 2NOT1_ 320 -set 2ONLY_ 321 -set ADD_ 322 -set ALLCOLS_ 323 -set ALLROWS_ 324 -set ANGLE_ 325 -set ARROW_ 326 -set BOX_ 327 -set BOXCIRCLE_ 328 -set BROADCAST_ 329 -set CANCEL_ 330 -set CDS_ 331 -set CIRCLE_ 332 -set CLEAR_ 333 -set CLOSE_ 334 -set COLOR_ 335 -set CONDITION_ 336 -set COORDINATE_ 337 -set CROSS_ 338 -set CROSSHAIR_ 339 -set CSV_ 340 -set CURRENT_ 341 -set DEC_ 342 -set DECR_ 343 -set DIAMOND_ 344 -set EDIT_ 345 -set ELLIPSE_ 346 -set EXPORT_ 347 -set ERROR_ 348 -set FILE_ 349 -set FILTER_ 350 -set FITS_ 351 -set FUNCTION_ 352 -set HEADER_ 353 -set HIDE_ 354 -set IMPORT_ 355 -set INCR_ 356 -set LOAD_ 357 -set LOCATION_ 358 -set MATCH_ 359 -set MAXROWS_ 360 -set NAME_ 361 -set NEW_ 362 -set PANTO_ 363 -set PLOT_ 364 -set POINT_ 365 -set PRINT_ 366 -set PSKY_ 367 -set PSYSTEM_ 368 -set RA_ 369 -set RADIUS_ 370 -set RDB_ 371 -set REGIONS_ 372 -set REMOVE_ 373 -set RETRIEVE_ 374 -set RETURN_ 375 -set SAMP_ 376 -set SAVE_ 377 -set SB_ 378 -set SEND_ 379 -set SERVER_ 380 -set SHAPE_ 381 -set SHOW_ 382 -set SIZE_ 383 -set SIZE2_ 384 -set SKY_ 385 -set SKYFORMAT_ 386 -set SORT_ 387 -set STARBASE_ 388 -set SYMBOL_ 389 -set SYSTEM_ 390 -set TEXT_ 391 -set TSV_ 392 +set RDB_ 257 +set SB_ 258 +set STARBASE_ 259 +set CSV_ 260 +set TSV_ 261 +set YES_ 262 +set NO_ 263 +set ON_ 264 +set OFF_ 265 +set TRUE_ 266 +set FALSE_ 267 +set FONT_ 268 +set FONTSIZE_ 269 +set FONTSLANT_ 270 +set FONTSTYLE_ 271 +set FONTWEIGHT_ 272 +set TIMES_ 273 +set HELVETICA_ 274 +set COURIER_ 275 +set NORMAL_ 276 +set BOLD_ 277 +set ROMAN_ 278 +set ITALIC_ 279 +set WCS_ 280 +set WCSA_ 281 +set WCSB_ 282 +set WCSC_ 283 +set WCSD_ 284 +set WCSE_ 285 +set WCSF_ 286 +set WCSG_ 287 +set WCSH_ 288 +set WCSI_ 289 +set WCSJ_ 290 +set WCSK_ 291 +set WCSL_ 292 +set WCSM_ 293 +set WCSN_ 294 +set WCSO_ 295 +set WCSP_ 296 +set WCSQ_ 297 +set WCSR_ 298 +set WCSS_ 299 +set WCST_ 300 +set WCSU_ 301 +set WCSV_ 302 +set WCSW_ 303 +set WCSX_ 304 +set WCSY_ 305 +set WCSZ_ 306 +set FK4_ 307 +set B1950_ 308 +set FK5_ 309 +set J2000_ 310 +set ICRS_ 311 +set GALACTIC_ 312 +set ECLIPTIC_ 313 +set DEGREES_ 314 +set ARCMIN_ 315 +set ARCSEC_ 316 +set SEXAGESIMAL_ 317 +set INT_ 318 +set REAL_ 319 +set SEXSTR_ 320 +set STRING_ 321 +set 1AND2_ 322 +set 1NOT2_ 323 +set 1ONLY_ 324 +set 2NOT1_ 325 +set 2ONLY_ 326 +set ADD_ 327 +set ALLCOLS_ 328 +set ALLROWS_ 329 +set ANGLE_ 330 +set ARROW_ 331 +set BOX_ 332 +set BOXCIRCLE_ 333 +set BROADCAST_ 334 +set CANCEL_ 335 +set CDS_ 336 +set CIRCLE_ 337 +set CLEAR_ 338 +set CLOSE_ 339 +set COLOR_ 340 +set CONDITION_ 341 +set COORDINATE_ 342 +set CROSS_ 343 +set CROSSHAIR_ 344 +set CURRENT_ 345 +set DEC_ 346 +set DECR_ 347 +set DIAMOND_ 348 +set EDIT_ 349 +set ELLIPSE_ 350 +set EXPORT_ 351 +set ERROR_ 352 +set FILE_ 353 +set FILTER_ 354 +set FITS_ 355 +set FUNCTION_ 356 +set HEADER_ 357 +set HIDE_ 358 +set IMPORT_ 359 +set INCR_ 360 +set LOAD_ 361 +set LOCATION_ 362 +set MATCH_ 363 +set MAXROWS_ 364 +set NAME_ 365 +set NEW_ 366 +set PANTO_ 367 +set PLOT_ 368 +set POINT_ 369 +set PRINT_ 370 +set PSKY_ 371 +set PSYSTEM_ 372 +set RA_ 373 +set RADIUS_ 374 +set REGIONS_ 375 +set REMOVE_ 376 +set RETRIEVE_ 377 +set RETURN_ 378 +set SAMP_ 379 +set SAVE_ 380 +set SEND_ 381 +set SERVER_ 382 +set SHAPE_ 383 +set SHOW_ 384 +set SIZE_ 385 +set SIZE2_ 386 +set SKY_ 387 +set SKYFORMAT_ 388 +set SORT_ 389 +set SYMBOL_ 390 +set SYSTEM_ 391 +set TEXT_ 392 set UNIQUE_ 393 set UNITS_ 394 set UPDATE_ 395 -set VOT_ 396 -set XML_ 397 -set ADAC_ 398 -set CADC_ 399 -set CAMBRIDGE_ 400 -set SAO_ 401 -set UKIRT_ 402 -set IUCAA_ 403 -set BEJING_ 404 -set SAAO_ 405 +set ADAC_ 396 +set CADC_ 397 +set CAMBRIDGE_ 398 +set SAO_ 399 +set UKIRT_ 400 +set IUCAA_ 401 +set BEJING_ 402 +set SAAO_ 403 while {1} { if {[string length $yy_current_buffer] - $index_ < 1024} { @@ -517,936 +515,922 @@ set yyleng [string length $yytext] set matched_rule 23 } - # rule 24: csv - if {[regexp -start $index_ -indices -line -nocase -- {\A(csv)} $yy_current_buffer match] > 0 && \ + # rule 24: current + if {[regexp -start $index_ -indices -line -nocase -- {\A(current)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 24 } - # rule 25: current - if {[regexp -start $index_ -indices -line -nocase -- {\A(current)} $yy_current_buffer match] > 0 && \ + # rule 25: dec + if {[regexp -start $index_ -indices -line -nocase -- {\A(dec)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 25 } - # rule 26: dec - if {[regexp -start $index_ -indices -line -nocase -- {\A(dec)} $yy_current_buffer match] > 0 && \ + # rule 26: decr + if {[regexp -start $index_ -indices -line -nocase -- {\A(decr)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 26 } - # rule 27: decr - if {[regexp -start $index_ -indices -line -nocase -- {\A(decr)} $yy_current_buffer match] > 0 && \ + # rule 27: diamond + if {[regexp -start $index_ -indices -line -nocase -- {\A(diamond)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 27 } - # rule 28: diamond - if {[regexp -start $index_ -indices -line -nocase -- {\A(diamond)} $yy_current_buffer match] > 0 && \ + # rule 28: edit + if {[regexp -start $index_ -indices -line -nocase -- {\A(edit)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 28 } - # rule 29: edit - if {[regexp -start $index_ -indices -line -nocase -- {\A(edit)} $yy_current_buffer match] > 0 && \ + # rule 29: ellipse + if {[regexp -start $index_ -indices -line -nocase -- {\A(ellipse)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 29 } - # rule 30: ellipse - if {[regexp -start $index_ -indices -line -nocase -- {\A(ellipse)} $yy_current_buffer match] > 0 && \ + # rule 30: error + if {[regexp -start $index_ -indices -line -nocase -- {\A(error)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 30 } - # rule 31: error - if {[regexp -start $index_ -indices -line -nocase -- {\A(error)} $yy_current_buffer match] > 0 && \ + # rule 31: export + if {[regexp -start $index_ -indices -line -nocase -- {\A(export)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 31 } - # rule 32: export - if {[regexp -start $index_ -indices -line -nocase -- {\A(export)} $yy_current_buffer match] > 0 && \ + # rule 32: file + if {[regexp -start $index_ -indices -line -nocase -- {\A(file)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 32 } - # rule 33: file - if {[regexp -start $index_ -indices -line -nocase -- {\A(file)} $yy_current_buffer match] > 0 && \ + # rule 33: filter + if {[regexp -start $index_ -indices -line -nocase -- {\A(filter)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 33 } - # rule 34: filter - if {[regexp -start $index_ -indices -line -nocase -- {\A(filter)} $yy_current_buffer match] > 0 && \ + # rule 34: fits + if {[regexp -start $index_ -indices -line -nocase -- {\A(fits)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 34 } - # rule 35: fits - if {[regexp -start $index_ -indices -line -nocase -- {\A(fits)} $yy_current_buffer match] > 0 && \ + # rule 35: function + if {[regexp -start $index_ -indices -line -nocase -- {\A(function)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 35 } - # rule 36: function - if {[regexp -start $index_ -indices -line -nocase -- {\A(function)} $yy_current_buffer match] > 0 && \ + # rule 36: header + if {[regexp -start $index_ -indices -line -nocase -- {\A(header)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 36 } - # rule 37: header - if {[regexp -start $index_ -indices -line -nocase -- {\A(header)} $yy_current_buffer match] > 0 && \ + # rule 37: hide + if {[regexp -start $index_ -indices -line -nocase -- {\A(hide)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 37 } - # rule 38: hide - if {[regexp -start $index_ -indices -line -nocase -- {\A(hide)} $yy_current_buffer match] > 0 && \ + # rule 38: import + if {[regexp -start $index_ -indices -line -nocase -- {\A(import)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 38 } - # rule 39: import - if {[regexp -start $index_ -indices -line -nocase -- {\A(import)} $yy_current_buffer match] > 0 && \ + # rule 39: incr + if {[regexp -start $index_ -indices -line -nocase -- {\A(incr)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 39 } - # rule 40: incr - if {[regexp -start $index_ -indices -line -nocase -- {\A(incr)} $yy_current_buffer match] > 0 && \ + # rule 40: load + if {[regexp -start $index_ -indices -line -nocase -- {\A(load)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 40 } - # rule 41: load - if {[regexp -start $index_ -indices -line -nocase -- {\A(load)} $yy_current_buffer match] > 0 && \ + # rule 41: location + if {[regexp -start $index_ -indices -line -nocase -- {\A(location)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 41 } - # rule 42: location - if {[regexp -start $index_ -indices -line -nocase -- {\A(location)} $yy_current_buffer match] > 0 && \ + # rule 42: match + if {[regexp -start $index_ -indices -line -nocase -- {\A(match)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 42 } - # rule 43: match - if {[regexp -start $index_ -indices -line -nocase -- {\A(match)} $yy_current_buffer match] > 0 && \ + # rule 43: maxrows + if {[regexp -start $index_ -indices -line -nocase -- {\A(maxrows)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 43 } - # rule 44: maxrows - if {[regexp -start $index_ -indices -line -nocase -- {\A(maxrows)} $yy_current_buffer match] > 0 && \ + # rule 44: name + if {[regexp -start $index_ -indices -line -nocase -- {\A(name)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 44 } - # rule 45: name - if {[regexp -start $index_ -indices -line -nocase -- {\A(name)} $yy_current_buffer match] > 0 && \ + # rule 45: new + if {[regexp -start $index_ -indices -line -nocase -- {\A(new)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 45 } - # rule 46: new - if {[regexp -start $index_ -indices -line -nocase -- {\A(new)} $yy_current_buffer match] > 0 && \ + # rule 46: panto + if {[regexp -start $index_ -indices -line -nocase -- {\A(panto)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 46 } - # rule 47: panto - if {[regexp -start $index_ -indices -line -nocase -- {\A(panto)} $yy_current_buffer match] > 0 && \ + # rule 47: plot + if {[regexp -start $index_ -indices -line -nocase -- {\A(plot)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 47 } - # rule 48: plot - if {[regexp -start $index_ -indices -line -nocase -- {\A(plot)} $yy_current_buffer match] > 0 && \ + # rule 48: point + if {[regexp -start $index_ -indices -line -nocase -- {\A(point)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 48 } - # rule 49: point - if {[regexp -start $index_ -indices -line -nocase -- {\A(point)} $yy_current_buffer match] > 0 && \ + # rule 49: print + if {[regexp -start $index_ -indices -line -nocase -- {\A(print)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 49 } - # rule 50: print - if {[regexp -start $index_ -indices -line -nocase -- {\A(print)} $yy_current_buffer match] > 0 && \ + # rule 50: psky + if {[regexp -start $index_ -indices -line -nocase -- {\A(psky)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 50 } - # rule 51: psky - if {[regexp -start $index_ -indices -line -nocase -- {\A(psky)} $yy_current_buffer match] > 0 && \ + # rule 51: psystem + if {[regexp -start $index_ -indices -line -nocase -- {\A(psystem)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 51 } - # rule 52: psystem - if {[regexp -start $index_ -indices -line -nocase -- {\A(psystem)} $yy_current_buffer match] > 0 && \ + # rule 52: ra + if {[regexp -start $index_ -indices -line -nocase -- {\A(ra)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 52 } - # rule 53: ra - if {[regexp -start $index_ -indices -line -nocase -- {\A(ra)} $yy_current_buffer match] > 0 && \ + # rule 53: radius + if {[regexp -start $index_ -indices -line -nocase -- {\A(radius)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 53 } - # rule 54: radius - if {[regexp -start $index_ -indices -line -nocase -- {\A(radius)} $yy_current_buffer match] > 0 && \ + # rule 54: regions + if {[regexp -start $index_ -indices -line -nocase -- {\A(regions)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 54 } - # rule 55: rdb - if {[regexp -start $index_ -indices -line -nocase -- {\A(rdb)} $yy_current_buffer match] > 0 && \ + # rule 55: remove + if {[regexp -start $index_ -indices -line -nocase -- {\A(remove)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 55 } - # rule 56: regions - if {[regexp -start $index_ -indices -line -nocase -- {\A(regions)} $yy_current_buffer match] > 0 && \ + # rule 56: retrieve + if {[regexp -start $index_ -indices -line -nocase -- {\A(retrieve)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 56 } - # rule 57: remove - if {[regexp -start $index_ -indices -line -nocase -- {\A(remove)} $yy_current_buffer match] > 0 && \ + # rule 57: return + if {[regexp -start $index_ -indices -line -nocase -- {\A(return)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 57 } - # rule 58: retrieve - if {[regexp -start $index_ -indices -line -nocase -- {\A(retrieve)} $yy_current_buffer match] > 0 && \ + # rule 58: samp + if {[regexp -start $index_ -indices -line -nocase -- {\A(samp)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 58 } - # rule 59: return - if {[regexp -start $index_ -indices -line -nocase -- {\A(return)} $yy_current_buffer match] > 0 && \ + # rule 59: save + if {[regexp -start $index_ -indices -line -nocase -- {\A(save)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 59 } - # rule 60: samp - if {[regexp -start $index_ -indices -line -nocase -- {\A(samp)} $yy_current_buffer match] > 0 && \ + # rule 60: server + if {[regexp -start $index_ -indices -line -nocase -- {\A(server)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 60 } - # rule 61: save - if {[regexp -start $index_ -indices -line -nocase -- {\A(save)} $yy_current_buffer match] > 0 && \ + # rule 61: shape + if {[regexp -start $index_ -indices -line -nocase -- {\A(shape)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 61 } - # rule 62: sb - if {[regexp -start $index_ -indices -line -nocase -- {\A(sb)} $yy_current_buffer match] > 0 && \ + # rule 62: show + if {[regexp -start $index_ -indices -line -nocase -- {\A(show)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 62 } - # rule 63: server - if {[regexp -start $index_ -indices -line -nocase -- {\A(server)} $yy_current_buffer match] > 0 && \ + # rule 63: size + if {[regexp -start $index_ -indices -line -nocase -- {\A(size)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 63 } - # rule 64: shape - if {[regexp -start $index_ -indices -line -nocase -- {\A(shape)} $yy_current_buffer match] > 0 && \ + # rule 64: size2 + if {[regexp -start $index_ -indices -line -nocase -- {\A(size2)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 64 } - # rule 65: show - if {[regexp -start $index_ -indices -line -nocase -- {\A(show)} $yy_current_buffer match] > 0 && \ + # rule 65: sky + if {[regexp -start $index_ -indices -line -nocase -- {\A(sky)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 65 } - # rule 66: size - if {[regexp -start $index_ -indices -line -nocase -- {\A(size)} $yy_current_buffer match] > 0 && \ + # rule 66: skyformat + if {[regexp -start $index_ -indices -line -nocase -- {\A(skyformat)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 66 } - # rule 67: size2 - if {[regexp -start $index_ -indices -line -nocase -- {\A(size2)} $yy_current_buffer match] > 0 && \ + # rule 67: sort + if {[regexp -start $index_ -indices -line -nocase -- {\A(sort)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 67 } - # rule 68: sky - if {[regexp -start $index_ -indices -line -nocase -- {\A(sky)} $yy_current_buffer match] > 0 && \ + # rule 68: symbol + if {[regexp -start $index_ -indices -line -nocase -- {\A(symbol)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 68 } - # rule 69: skyformat - if {[regexp -start $index_ -indices -line -nocase -- {\A(skyformat)} $yy_current_buffer match] > 0 && \ + # rule 69: system + if {[regexp -start $index_ -indices -line -nocase -- {\A(system)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 69 } - # rule 70: sort - if {[regexp -start $index_ -indices -line -nocase -- {\A(sort)} $yy_current_buffer match] > 0 && \ + # rule 70: text + if {[regexp -start $index_ -indices -line -nocase -- {\A(text)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 70 } - # rule 71: starbase - if {[regexp -start $index_ -indices -line -nocase -- {\A(starbase)} $yy_current_buffer match] > 0 && \ + # rule 71: unique + if {[regexp -start $index_ -indices -line -nocase -- {\A(unique)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 71 } - # rule 72: symbol - if {[regexp -start $index_ -indices -line -nocase -- {\A(symbol)} $yy_current_buffer match] > 0 && \ + # rule 72: units + if {[regexp -start $index_ -indices -line -nocase -- {\A(units)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 72 } - # rule 73: system - if {[regexp -start $index_ -indices -line -nocase -- {\A(system)} $yy_current_buffer match] > 0 && \ + # rule 73: update + if {[regexp -start $index_ -indices -line -nocase -- {\A(update)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 73 } - # rule 74: text - if {[regexp -start $index_ -indices -line -nocase -- {\A(text)} $yy_current_buffer match] > 0 && \ + # rule 74: cds + if {[regexp -start $index_ -indices -line -nocase -- {\A(cds)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 74 } - # rule 75: tsv - if {[regexp -start $index_ -indices -line -nocase -- {\A(tsv)} $yy_current_buffer match] > 0 && \ + # rule 75: adac + if {[regexp -start $index_ -indices -line -nocase -- {\A(adac)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 75 } - # rule 76: unique - if {[regexp -start $index_ -indices -line -nocase -- {\A(unique)} $yy_current_buffer match] > 0 && \ + # rule 76: cadc + if {[regexp -start $index_ -indices -line -nocase -- {\A(cadc)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 76 } - # rule 77: units - if {[regexp -start $index_ -indices -line -nocase -- {\A(units)} $yy_current_buffer match] > 0 && \ + # rule 77: cambridge + if {[regexp -start $index_ -indices -line -nocase -- {\A(cambridge)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 77 } - # rule 78: update - if {[regexp -start $index_ -indices -line -nocase -- {\A(update)} $yy_current_buffer match] > 0 && \ + # rule 78: sao + if {[regexp -start $index_ -indices -line -nocase -- {\A(sao)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 78 } - # rule 79: vot - if {[regexp -start $index_ -indices -line -nocase -- {\A(vot)} $yy_current_buffer match] > 0 && \ + # rule 79: ukirt + if {[regexp -start $index_ -indices -line -nocase -- {\A(ukirt)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 79 } - # rule 80: xml - if {[regexp -start $index_ -indices -line -nocase -- {\A(xml)} $yy_current_buffer match] > 0 && \ + # rule 80: iucaa + if {[regexp -start $index_ -indices -line -nocase -- {\A(iucaa)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 80 } - # rule 81: cds - if {[regexp -start $index_ -indices -line -nocase -- {\A(cds)} $yy_current_buffer match] > 0 && \ + # rule 81: bejing + if {[regexp -start $index_ -indices -line -nocase -- {\A(bejing)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 81 } - # rule 82: adac - if {[regexp -start $index_ -indices -line -nocase -- {\A(adac)} $yy_current_buffer match] > 0 && \ + # rule 82: saao + if {[regexp -start $index_ -indices -line -nocase -- {\A(saao)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 82 } - # rule 83: cadc - if {[regexp -start $index_ -indices -line -nocase -- {\A(cadc)} $yy_current_buffer match] > 0 && \ + # rule 83: rdb + if {[regexp -start $index_ -indices -line -nocase -- {\A(rdb)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 83 } - # rule 84: cambridge - if {[regexp -start $index_ -indices -line -nocase -- {\A(cambridge)} $yy_current_buffer match] > 0 && \ + # rule 84: sb + if {[regexp -start $index_ -indices -line -nocase -- {\A(sb)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 84 } - # rule 85: sao - if {[regexp -start $index_ -indices -line -nocase -- {\A(sao)} $yy_current_buffer match] > 0 && \ + # rule 85: starbase + if {[regexp -start $index_ -indices -line -nocase -- {\A(starbase)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 85 } - # rule 86: ukirt - if {[regexp -start $index_ -indices -line -nocase -- {\A(ukirt)} $yy_current_buffer match] > 0 && \ + # rule 86: csv + if {[regexp -start $index_ -indices -line -nocase -- {\A(csv)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 86 } - # rule 87: iucaa - if {[regexp -start $index_ -indices -line -nocase -- {\A(iucaa)} $yy_current_buffer match] > 0 && \ + # rule 87: tsv + if {[regexp -start $index_ -indices -line -nocase -- {\A(tsv)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 87 } - # rule 88: bejing - if {[regexp -start $index_ -indices -line -nocase -- {\A(bejing)} $yy_current_buffer match] > 0 && \ + # rule 88: yes + if {[regexp -start $index_ -indices -line -nocase -- {\A(yes)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 88 } - # rule 89: saao - if {[regexp -start $index_ -indices -line -nocase -- {\A(saao)} $yy_current_buffer match] > 0 && \ + # rule 89: no + if {[regexp -start $index_ -indices -line -nocase -- {\A(no)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 89 } - # rule 90: yes - if {[regexp -start $index_ -indices -line -nocase -- {\A(yes)} $yy_current_buffer match] > 0 && \ + # rule 90: on + if {[regexp -start $index_ -indices -line -nocase -- {\A(on)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 90 } - # rule 91: no - if {[regexp -start $index_ -indices -line -nocase -- {\A(no)} $yy_current_buffer match] > 0 && \ + # rule 91: off + if {[regexp -start $index_ -indices -line -nocase -- {\A(off)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 91 } - # rule 92: on - if {[regexp -start $index_ -indices -line -nocase -- {\A(on)} $yy_current_buffer match] > 0 && \ + # rule 92: true + if {[regexp -start $index_ -indices -line -nocase -- {\A(true)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 92 } - # rule 93: off - if {[regexp -start $index_ -indices -line -nocase -- {\A(off)} $yy_current_buffer match] > 0 && \ + # rule 93: false + if {[regexp -start $index_ -indices -line -nocase -- {\A(false)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 93 } - # rule 94: true - if {[regexp -start $index_ -indices -line -nocase -- {\A(true)} $yy_current_buffer match] > 0 && \ + # rule 94: font + if {[regexp -start $index_ -indices -line -nocase -- {\A(font)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 94 } - # rule 95: false - if {[regexp -start $index_ -indices -line -nocase -- {\A(false)} $yy_current_buffer match] > 0 && \ + # rule 95: fontsize + if {[regexp -start $index_ -indices -line -nocase -- {\A(fontsize)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 95 } - # rule 96: font - if {[regexp -start $index_ -indices -line -nocase -- {\A(font)} $yy_current_buffer match] > 0 && \ + # rule 96: fontslant + if {[regexp -start $index_ -indices -line -nocase -- {\A(fontslant)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 96 } - # rule 97: fontsize - if {[regexp -start $index_ -indices -line -nocase -- {\A(fontsize)} $yy_current_buffer match] > 0 && \ + # rule 97: fontstyle + if {[regexp -start $index_ -indices -line -nocase -- {\A(fontstyle)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 97 } - # rule 98: fontslant - if {[regexp -start $index_ -indices -line -nocase -- {\A(fontslant)} $yy_current_buffer match] > 0 && \ + # rule 98: fontweight + if {[regexp -start $index_ -indices -line -nocase -- {\A(fontweight)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 98 } - # rule 99: fontstyle - if {[regexp -start $index_ -indices -line -nocase -- {\A(fontstyle)} $yy_current_buffer match] > 0 && \ + # rule 99: times + if {[regexp -start $index_ -indices -line -nocase -- {\A(times)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 99 } - # rule 100: fontweight - if {[regexp -start $index_ -indices -line -nocase -- {\A(fontweight)} $yy_current_buffer match] > 0 && \ + # rule 100: helvetica + if {[regexp -start $index_ -indices -line -nocase -- {\A(helvetica)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 100 } - # rule 101: times - if {[regexp -start $index_ -indices -line -nocase -- {\A(times)} $yy_current_buffer match] > 0 && \ + # rule 101: courier + if {[regexp -start $index_ -indices -line -nocase -- {\A(courier)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 101 } - # rule 102: helvetica - if {[regexp -start $index_ -indices -line -nocase -- {\A(helvetica)} $yy_current_buffer match] > 0 && \ + # rule 102: normal + if {[regexp -start $index_ -indices -line -nocase -- {\A(normal)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 102 } - # rule 103: courier - if {[regexp -start $index_ -indices -line -nocase -- {\A(courier)} $yy_current_buffer match] > 0 && \ + # rule 103: bold + if {[regexp -start $index_ -indices -line -nocase -- {\A(bold)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 103 } - # rule 104: normal - if {[regexp -start $index_ -indices -line -nocase -- {\A(normal)} $yy_current_buffer match] > 0 && \ + # rule 104: roman + if {[regexp -start $index_ -indices -line -nocase -- {\A(roman)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 104 } - # rule 105: bold - if {[regexp -start $index_ -indices -line -nocase -- {\A(bold)} $yy_current_buffer match] > 0 && \ + # rule 105: italic + if {[regexp -start $index_ -indices -line -nocase -- {\A(italic)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 105 } - # rule 106: roman - if {[regexp -start $index_ -indices -line -nocase -- {\A(roman)} $yy_current_buffer match] > 0 && \ + # rule 106: wcs + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcs)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 106 } - # rule 107: italic - if {[regexp -start $index_ -indices -line -nocase -- {\A(italic)} $yy_current_buffer match] > 0 && \ + # rule 107: wcsa + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsa)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 107 } - # rule 108: wcs - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcs)} $yy_current_buffer match] > 0 && \ + # rule 108: wcsb + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsb)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 108 } - # rule 109: wcsa - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsa)} $yy_current_buffer match] > 0 && \ + # rule 109: wcsc + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsc)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 109 } - # rule 110: wcsb - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsb)} $yy_current_buffer match] > 0 && \ + # rule 110: wcsd + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsd)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 110 } - # rule 111: wcsc - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsc)} $yy_current_buffer match] > 0 && \ + # rule 111: wcse + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcse)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 111 } - # rule 112: wcsd - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsd)} $yy_current_buffer match] > 0 && \ + # rule 112: wcsf + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsf)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 112 } - # rule 113: wcse - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcse)} $yy_current_buffer match] > 0 && \ + # rule 113: wcsg + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsg)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 113 } - # rule 114: wcsf - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsf)} $yy_current_buffer match] > 0 && \ + # rule 114: wcsh + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsh)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 114 } - # rule 115: wcsg - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsg)} $yy_current_buffer match] > 0 && \ + # rule 115: wcsi + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsi)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 115 } - # rule 116: wcsh - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsh)} $yy_current_buffer match] > 0 && \ + # rule 116: wcsj + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsj)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 116 } - # rule 117: wcsi - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsi)} $yy_current_buffer match] > 0 && \ + # rule 117: wcsk + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsk)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 117 } - # rule 118: wcsj - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsj)} $yy_current_buffer match] > 0 && \ + # rule 118: wcsl + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsl)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 118 } - # rule 119: wcsk - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsk)} $yy_current_buffer match] > 0 && \ + # rule 119: wcsm + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsm)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 119 } - # rule 120: wcsl - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsl)} $yy_current_buffer match] > 0 && \ + # rule 120: wcsn + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsn)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 120 } - # rule 121: wcsm - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsm)} $yy_current_buffer match] > 0 && \ + # rule 121: wcso + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcso)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 121 } - # rule 122: wcsn - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsn)} $yy_current_buffer match] > 0 && \ + # rule 122: wcsp + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsp)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 122 } - # rule 123: wcso - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcso)} $yy_current_buffer match] > 0 && \ + # rule 123: wcsq + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsq)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 123 } - # rule 124: wcsp - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsp)} $yy_current_buffer match] > 0 && \ + # rule 124: wcsr + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsr)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 124 } - # rule 125: wcsq - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsq)} $yy_current_buffer match] > 0 && \ + # rule 125: wcss + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcss)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 125 } - # rule 126: wcsr - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsr)} $yy_current_buffer match] > 0 && \ + # rule 126: wcst + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcst)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 126 } - # rule 127: wcss - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcss)} $yy_current_buffer match] > 0 && \ + # rule 127: wcsu + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsu)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 127 } - # rule 128: wcst - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcst)} $yy_current_buffer match] > 0 && \ + # rule 128: wcsv + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsv)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 128 } - # rule 129: wcsu - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsu)} $yy_current_buffer match] > 0 && \ + # rule 129: wcsw + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsw)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 129 } - # rule 130: wcsv - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsv)} $yy_current_buffer match] > 0 && \ + # rule 130: wcsx + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsx)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 130 } - # rule 131: wcsw - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsw)} $yy_current_buffer match] > 0 && \ + # rule 131: wcsy + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsy)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 131 } - # rule 132: wcsx - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsx)} $yy_current_buffer match] > 0 && \ + # rule 132: wcsz + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsz)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 132 } - # rule 133: wcsy - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsy)} $yy_current_buffer match] > 0 && \ + # rule 133: fk4 + if {[regexp -start $index_ -indices -line -nocase -- {\A(fk4)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 133 } - # rule 134: wcsz - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsz)} $yy_current_buffer match] > 0 && \ + # rule 134: b1950 + if {[regexp -start $index_ -indices -line -nocase -- {\A(b1950)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 134 } - # rule 135: fk4 - if {[regexp -start $index_ -indices -line -nocase -- {\A(fk4)} $yy_current_buffer match] > 0 && \ + # rule 135: fk5 + if {[regexp -start $index_ -indices -line -nocase -- {\A(fk5)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 135 } - # rule 136: b1950 - if {[regexp -start $index_ -indices -line -nocase -- {\A(b1950)} $yy_current_buffer match] > 0 && \ + # rule 136: j2000 + if {[regexp -start $index_ -indices -line -nocase -- {\A(j2000)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 136 } - # rule 137: fk5 - if {[regexp -start $index_ -indices -line -nocase -- {\A(fk5)} $yy_current_buffer match] > 0 && \ + # rule 137: icrs + if {[regexp -start $index_ -indices -line -nocase -- {\A(icrs)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 137 } - # rule 138: j2000 - if {[regexp -start $index_ -indices -line -nocase -- {\A(j2000)} $yy_current_buffer match] > 0 && \ + # rule 138: galactic + if {[regexp -start $index_ -indices -line -nocase -- {\A(galactic)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 138 } - # rule 139: icrs - if {[regexp -start $index_ -indices -line -nocase -- {\A(icrs)} $yy_current_buffer match] > 0 && \ + # rule 139: ecliptic + if {[regexp -start $index_ -indices -line -nocase -- {\A(ecliptic)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 139 } - # rule 140: galactic - if {[regexp -start $index_ -indices -line -nocase -- {\A(galactic)} $yy_current_buffer match] > 0 && \ + # rule 140: degrees + if {[regexp -start $index_ -indices -line -nocase -- {\A(degrees)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 140 } - # rule 141: ecliptic - if {[regexp -start $index_ -indices -line -nocase -- {\A(ecliptic)} $yy_current_buffer match] > 0 && \ + # rule 141: arcmin + if {[regexp -start $index_ -indices -line -nocase -- {\A(arcmin)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 141 } - # rule 142: degrees - if {[regexp -start $index_ -indices -line -nocase -- {\A(degrees)} $yy_current_buffer match] > 0 && \ + # rule 142: arcsec + if {[regexp -start $index_ -indices -line -nocase -- {\A(arcsec)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 142 } - # rule 143: arcmin - if {[regexp -start $index_ -indices -line -nocase -- {\A(arcmin)} $yy_current_buffer match] > 0 && \ + # rule 143: sexagesimal + if {[regexp -start $index_ -indices -line -nocase -- {\A(sexagesimal)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 143 } - # rule 144: arcsec - if {[regexp -start $index_ -indices -line -nocase -- {\A(arcsec)} $yy_current_buffer match] > 0 && \ + # rule 144: [+-]?{D}+ + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 144 } - # rule 145: sexagesimal - if {[regexp -start $index_ -indices -line -nocase -- {\A(sexagesimal)} $yy_current_buffer match] > 0 && \ + # rule 145: [+-]?{D}+\.?({E})? + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+\.?(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 145 } - # rule 146: [+-]?{D}+ - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+)} $yy_current_buffer match] > 0 && \ + # rule 146: [+-]?{D}*\.{D}+({E})? + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])*\.([0-9])+(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 146 } - # rule 147: [+-]?{D}+\.?({E})? - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+\.?(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ + # rule 147: [+-]?{D}+:{D}+:{D}+\.? + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+:([0-9])+:([0-9])+\.?)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 147 } - # rule 148: [+-]?{D}*\.{D}+({E})? - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])*\.([0-9])+(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ + # rule 148: [+-]?{D}+:{D}+:{D}*\.{D}+ + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+:([0-9])+:([0-9])*\.([0-9])+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 148 } - # rule 149: [+-]?{D}+:{D}+:{D}+\.? - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+:([0-9])+:([0-9])+\.?)} $yy_current_buffer match] > 0 && \ + # rule 149: \"[^\"]*\" + if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 149 } - # rule 150: [+-]?{D}+:{D}+:{D}*\.{D}+ - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+:([0-9])+:([0-9])*\.([0-9])+)} $yy_current_buffer match] > 0 && \ + # rule 150: \'[^\']*\' + if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 150 } - # rule 151: \"[^\"]*\" - if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ + # rule 151: \{[^\}]*\} + if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 151 } - # rule 152: \'[^\']*\' - if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ + # rule 152: \S+\S+ + if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 152 } - # rule 153: \{[^\}]*\} - if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ - [lindex $match 1] - $index_ + 1 > $yyleng} { - set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] - set yyleng [string length $yytext] - set matched_rule 153 - } - # rule 154: \S+\S+ - if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ - [lindex $match 1] - $index_ + 1 > $yyleng} { - set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] - set yyleng [string length $yytext] - set matched_rule 154 - } - # rule 155: \s + # rule 153: \s if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 155 + set matched_rule 153 } - # rule 156: . + # rule 154: . if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 156 + set matched_rule 154 } if {$matched_rule == -1} { set yytext [string index $yy_current_buffer $index_] @@ -1533,398 +1517,392 @@ return $CROSSHAIR_ } 24 { -return $CSV_ +return $CURRENT_ } 25 { -return $CURRENT_ +return $DEC_ } 26 { -return $DEC_ +return $DECR_ } 27 { -return $DECR_ +return $DIAMOND_ } 28 { -return $DIAMOND_ +return $EDIT_ } 29 { -return $EDIT_ +return $ELLIPSE_ } 30 { -return $ELLIPSE_ +return $ERROR_ } 31 { -return $ERROR_ +return $EXPORT_ } 32 { -return $EXPORT_ +return $FILE_ } 33 { -return $FILE_ +return $FILTER_ } 34 { -return $FILTER_ +return $FITS_ } 35 { -return $FITS_ +return $FUNCTION_ } 36 { -return $FUNCTION_ +return $HEADER_ } 37 { -return $HEADER_ +return $HIDE_ } 38 { -return $HIDE_ +return $IMPORT_ } 39 { -return $IMPORT_ +return $INCR_ } 40 { -return $INCR_ +return $LOAD_ } 41 { -return $LOAD_ +return $LOCATION_ } 42 { -return $LOCATION_ +return $MATCH_ } 43 { -return $MATCH_ +return $MAXROWS_ } 44 { -return $MAXROWS_ +return $NAME_ } 45 { -return $NAME_ +return $NEW_ } 46 { -return $NEW_ +return $PANTO_ } 47 { -return $PANTO_ +return $PLOT_ } 48 { -return $PLOT_ +return $POINT_ } 49 { -return $POINT_ +return $PRINT_ } 50 { -return $PRINT_ +return $PSKY_ } 51 { -return $PSKY_ +return $PSYSTEM_ } 52 { -return $PSYSTEM_ +return $RA_ } 53 { -return $RA_ +return $RADIUS_ } 54 { -return $RADIUS_ +return $REGIONS_ } 55 { -return $RDB_ +return $REMOVE_ } 56 { -return $REGIONS_ +return $RETRIEVE_ } 57 { -return $REMOVE_ +return $RETURN_ } 58 { -return $RETRIEVE_ +return $SAMP_ } 59 { -return $RETURN_ +return $SAVE_ } 60 { -return $SAMP_ +return $SERVER_ } 61 { -return $SAVE_ +return $SHAPE_ } 62 { -return $SB_ +return $SHOW_ } 63 { -return $SERVER_ +return $SIZE_ } 64 { -return $SHAPE_ +return $SIZE2_ } 65 { -return $SHOW_ +return $SKY_ } 66 { -return $SIZE_ +return $SKYFORMAT_ } 67 { -return $SIZE2_ +return $SORT_ } 68 { -return $SKY_ +return $SYMBOL_ } 69 { -return $SKYFORMAT_ +return $SYSTEM_ } 70 { -return $SORT_ +return $TEXT_ } 71 { -return $STARBASE_ +return $UNIQUE_ } 72 { -return $SYMBOL_ +return $UNITS_ } 73 { -return $SYSTEM_ +return $UPDATE_ } 74 { -return $TEXT_ +return $CDS_ } 75 { -return $TSV_ +return $ADAC_ } 76 { -return $UNIQUE_ +return $CADC_ } 77 { -return $UNITS_ +return $CAMBRIDGE_ } 78 { -return $UPDATE_ +return $SAO_ } 79 { -return $VOT_ +return $UKIRT_ } 80 { -return $XML_ +return $IUCAA_ } 81 { -return $CDS_ +return $BEJING_ } 82 { -return $ADAC_ +return $SAAO_ } 83 { -return $CADC_ +return $RDB_ } 84 { -return $CAMBRIDGE_ +return $SB_ } 85 { -return $SAO_ +return $STARBASE_ } 86 { -return $UKIRT_ +return $CSV_ } 87 { -return $IUCAA_ +return $TSV_ } 88 { -return $BEJING_ +return $YES_ } 89 { -return $SAAO_ +return $NO_ } 90 { -return $YES_ +return $ON_ } 91 { -return $NO_ +return $OFF_ } 92 { -return $ON_ +return $TRUE_ } 93 { -return $OFF_ +return $FALSE_ } 94 { -return $TRUE_ +return $FONT_ } 95 { -return $FALSE_ +return $FONTSIZE_ } 96 { -return $FONT_ +return $FONTSLANT_ } 97 { -return $FONTSIZE_ +return $FONTSTYLE_ } 98 { -return $FONTSLANT_ +return $FONTWEIGHT_ } 99 { -return $FONTSTYLE_ +return $TIMES_ } 100 { -return $FONTWEIGHT_ +return $HELVETICA_ } 101 { -return $TIMES_ +return $COURIER_ } 102 { -return $HELVETICA_ +return $NORMAL_ } 103 { -return $COURIER_ +return $BOLD_ } 104 { -return $NORMAL_ +return $ROMAN_ } 105 { -return $BOLD_ +return $ITALIC_ } 106 { -return $ROMAN_ +return $WCS_ } 107 { -return $ITALIC_ +return $WCSA_ } 108 { -return $WCS_ +return $WCSB_ } 109 { -return $WCSA_ +return $WCSC_ } 110 { -return $WCSB_ +return $WCSD_ } 111 { -return $WCSC_ +return $WCSE_ } 112 { -return $WCSD_ +return $WCSF_ } 113 { -return $WCSE_ +return $WCSG_ } 114 { -return $WCSF_ +return $WCSH_ } 115 { -return $WCSG_ +return $WCSI_ } 116 { -return $WCSH_ +return $WCSJ_ } 117 { -return $WCSI_ +return $WCSK_ } 118 { -return $WCSJ_ +return $WCSL_ } 119 { -return $WCSK_ +return $WCSM_ } 120 { -return $WCSL_ +return $WCSN_ } 121 { -return $WCSM_ +return $WCSO_ } 122 { -return $WCSN_ +return $WCSP_ } 123 { -return $WCSO_ +return $WCSQ_ } 124 { -return $WCSP_ +return $WCSR_ } 125 { -return $WCSQ_ +return $WCSS_ } 126 { -return $WCSR_ +return $WCST_ } 127 { -return $WCSS_ +return $WCSU_ } 128 { -return $WCST_ +return $WCSV_ } 129 { -return $WCSU_ +return $WCSW_ } 130 { -return $WCSV_ +return $WCSX_ } 131 { -return $WCSW_ +return $WCSY_ } 132 { -return $WCSX_ +return $WCSZ_ } 133 { -return $WCSY_ +return $FK4_ } 134 { -return $WCSZ_ +return $FK4_ } 135 { -return $FK4_ +return $FK5_ } 136 { -return $FK4_ +return $FK5_ } 137 { -return $FK5_ +return $ICRS_ } 138 { -return $FK5_ +return $GALACTIC_ } 139 { -return $ICRS_ +return $ECLIPTIC_ } 140 { -return $GALACTIC_ +return $DEGREES_ } 141 { -return $ECLIPTIC_ +return $ARCMIN_ } 142 { -return $DEGREES_ +return $ARCSEC_ } 143 { -return $ARCMIN_ +return $SEXAGESIMAL_ } 144 { -return $ARCSEC_ - } - 145 { -return $SEXAGESIMAL_ +set yylval $yytext; return $INT_ } + 145 - 146 { -set yylval $yytext; return $INT_ +set yylval $yytext; return $REAL_ } 147 - 148 { -set yylval $yytext; return $REAL_ - } - 149 - - 150 { set yylval $yytext; return $SEXSTR_ } - 151 { + 149 { set yylval [string range $yytext 1 end-1]; return $STRING_ } - 152 { + 150 { set yylval [string range $yytext 1 end-1]; return $STRING_ } - 153 { + 151 { set yylval [string range $yytext 1 end-1]; return $STRING_ } - 154 { + 152 { set yylval $yytext; return $STRING_ } - 155 { + 153 { # ignore whitespace } - 156 { + 154 { set yylval $yytext; return $yylval } default diff -Nru saods9-8.2+repack/ds9/parsers/catparser.tab.tcl saods9-8.3+repack/ds9/parsers/catparser.tab.tcl --- saods9-8.2+repack/ds9/parsers/catparser.tab.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/catparser.tab.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,149 +1,147 @@ -set YES_ 257 -set NO_ 258 -set ON_ 259 -set OFF_ 260 -set TRUE_ 261 -set FALSE_ 262 -set FONT_ 263 -set FONTSIZE_ 264 -set FONTSLANT_ 265 -set FONTSTYLE_ 266 -set FONTWEIGHT_ 267 -set TIMES_ 268 -set HELVETICA_ 269 -set COURIER_ 270 -set NORMAL_ 271 -set BOLD_ 272 -set ROMAN_ 273 -set ITALIC_ 274 -set WCS_ 275 -set WCSA_ 276 -set WCSB_ 277 -set WCSC_ 278 -set WCSD_ 279 -set WCSE_ 280 -set WCSF_ 281 -set WCSG_ 282 -set WCSH_ 283 -set WCSI_ 284 -set WCSJ_ 285 -set WCSK_ 286 -set WCSL_ 287 -set WCSM_ 288 -set WCSN_ 289 -set WCSO_ 290 -set WCSP_ 291 -set WCSQ_ 292 -set WCSR_ 293 -set WCSS_ 294 -set WCST_ 295 -set WCSU_ 296 -set WCSV_ 297 -set WCSW_ 298 -set WCSX_ 299 -set WCSY_ 300 -set WCSZ_ 301 -set FK4_ 302 -set B1950_ 303 -set FK5_ 304 -set J2000_ 305 -set ICRS_ 306 -set GALACTIC_ 307 -set ECLIPTIC_ 308 -set DEGREES_ 309 -set ARCMIN_ 310 -set ARCSEC_ 311 -set SEXAGESIMAL_ 312 -set INT_ 313 -set REAL_ 314 -set SEXSTR_ 315 -set STRING_ 316 -set 1AND2_ 317 -set 1NOT2_ 318 -set 1ONLY_ 319 -set 2NOT1_ 320 -set 2ONLY_ 321 -set ADD_ 322 -set ALLCOLS_ 323 -set ALLROWS_ 324 -set ANGLE_ 325 -set ARROW_ 326 -set BOX_ 327 -set BOXCIRCLE_ 328 -set BROADCAST_ 329 -set CANCEL_ 330 -set CDS_ 331 -set CIRCLE_ 332 -set CLEAR_ 333 -set CLOSE_ 334 -set COLOR_ 335 -set CONDITION_ 336 -set COORDINATE_ 337 -set CROSS_ 338 -set CROSSHAIR_ 339 -set CSV_ 340 -set CURRENT_ 341 -set DEC_ 342 -set DECR_ 343 -set DIAMOND_ 344 -set EDIT_ 345 -set ELLIPSE_ 346 -set EXPORT_ 347 -set ERROR_ 348 -set FILE_ 349 -set FILTER_ 350 -set FITS_ 351 -set FUNCTION_ 352 -set HEADER_ 353 -set HIDE_ 354 -set IMPORT_ 355 -set INCR_ 356 -set LOAD_ 357 -set LOCATION_ 358 -set MATCH_ 359 -set MAXROWS_ 360 -set NAME_ 361 -set NEW_ 362 -set PANTO_ 363 -set PLOT_ 364 -set POINT_ 365 -set PRINT_ 366 -set PSKY_ 367 -set PSYSTEM_ 368 -set RA_ 369 -set RADIUS_ 370 -set RDB_ 371 -set REGIONS_ 372 -set REMOVE_ 373 -set RETRIEVE_ 374 -set RETURN_ 375 -set SAMP_ 376 -set SAVE_ 377 -set SB_ 378 -set SEND_ 379 -set SERVER_ 380 -set SHAPE_ 381 -set SHOW_ 382 -set SIZE_ 383 -set SIZE2_ 384 -set SKY_ 385 -set SKYFORMAT_ 386 -set SORT_ 387 -set STARBASE_ 388 -set SYMBOL_ 389 -set SYSTEM_ 390 -set TEXT_ 391 -set TSV_ 392 +set RDB_ 257 +set SB_ 258 +set STARBASE_ 259 +set CSV_ 260 +set TSV_ 261 +set YES_ 262 +set NO_ 263 +set ON_ 264 +set OFF_ 265 +set TRUE_ 266 +set FALSE_ 267 +set FONT_ 268 +set FONTSIZE_ 269 +set FONTSLANT_ 270 +set FONTSTYLE_ 271 +set FONTWEIGHT_ 272 +set TIMES_ 273 +set HELVETICA_ 274 +set COURIER_ 275 +set NORMAL_ 276 +set BOLD_ 277 +set ROMAN_ 278 +set ITALIC_ 279 +set WCS_ 280 +set WCSA_ 281 +set WCSB_ 282 +set WCSC_ 283 +set WCSD_ 284 +set WCSE_ 285 +set WCSF_ 286 +set WCSG_ 287 +set WCSH_ 288 +set WCSI_ 289 +set WCSJ_ 290 +set WCSK_ 291 +set WCSL_ 292 +set WCSM_ 293 +set WCSN_ 294 +set WCSO_ 295 +set WCSP_ 296 +set WCSQ_ 297 +set WCSR_ 298 +set WCSS_ 299 +set WCST_ 300 +set WCSU_ 301 +set WCSV_ 302 +set WCSW_ 303 +set WCSX_ 304 +set WCSY_ 305 +set WCSZ_ 306 +set FK4_ 307 +set B1950_ 308 +set FK5_ 309 +set J2000_ 310 +set ICRS_ 311 +set GALACTIC_ 312 +set ECLIPTIC_ 313 +set DEGREES_ 314 +set ARCMIN_ 315 +set ARCSEC_ 316 +set SEXAGESIMAL_ 317 +set INT_ 318 +set REAL_ 319 +set SEXSTR_ 320 +set STRING_ 321 +set 1AND2_ 322 +set 1NOT2_ 323 +set 1ONLY_ 324 +set 2NOT1_ 325 +set 2ONLY_ 326 +set ADD_ 327 +set ALLCOLS_ 328 +set ALLROWS_ 329 +set ANGLE_ 330 +set ARROW_ 331 +set BOX_ 332 +set BOXCIRCLE_ 333 +set BROADCAST_ 334 +set CANCEL_ 335 +set CDS_ 336 +set CIRCLE_ 337 +set CLEAR_ 338 +set CLOSE_ 339 +set COLOR_ 340 +set CONDITION_ 341 +set COORDINATE_ 342 +set CROSS_ 343 +set CROSSHAIR_ 344 +set CURRENT_ 345 +set DEC_ 346 +set DECR_ 347 +set DIAMOND_ 348 +set EDIT_ 349 +set ELLIPSE_ 350 +set EXPORT_ 351 +set ERROR_ 352 +set FILE_ 353 +set FILTER_ 354 +set FITS_ 355 +set FUNCTION_ 356 +set HEADER_ 357 +set HIDE_ 358 +set IMPORT_ 359 +set INCR_ 360 +set LOAD_ 361 +set LOCATION_ 362 +set MATCH_ 363 +set MAXROWS_ 364 +set NAME_ 365 +set NEW_ 366 +set PANTO_ 367 +set PLOT_ 368 +set POINT_ 369 +set PRINT_ 370 +set PSKY_ 371 +set PSYSTEM_ 372 +set RA_ 373 +set RADIUS_ 374 +set REGIONS_ 375 +set REMOVE_ 376 +set RETRIEVE_ 377 +set RETURN_ 378 +set SAMP_ 379 +set SAVE_ 380 +set SEND_ 381 +set SERVER_ 382 +set SHAPE_ 383 +set SHOW_ 384 +set SIZE_ 385 +set SIZE2_ 386 +set SKY_ 387 +set SKYFORMAT_ 388 +set SORT_ 389 +set SYMBOL_ 390 +set SYSTEM_ 391 +set TEXT_ 392 set UNIQUE_ 393 set UNITS_ 394 set UPDATE_ 395 -set VOT_ 396 -set XML_ 397 -set ADAC_ 398 -set CADC_ 399 -set CAMBRIDGE_ 400 -set SAO_ 401 -set UKIRT_ 402 -set IUCAA_ 403 -set BEJING_ 404 -set SAAO_ 405 +set ADAC_ 396 +set CADC_ 397 +set CAMBRIDGE_ 398 +set SAO_ 399 +set UKIRT_ 400 +set IUCAA_ 401 +set BEJING_ 402 +set SAAO_ 403 diff -Nru saods9-8.2+repack/ds9/parsers/catparser.tac saods9-8.3+repack/ds9/parsers/catparser.tac --- saods9-8.2+repack/ds9/parsers/catparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/catparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -2,6 +2,7 @@ %} #include def.tin +#include reader.tin #include yesno.tin #include fonts.tin #include wcssys.tin @@ -36,7 +37,6 @@ %token COORDINATE_ %token CROSS_ %token CROSSHAIR_ -%token CSV_ %token CURRENT_ %token DEC_ %token DECR_ @@ -67,14 +67,12 @@ %token PSYSTEM_ %token RA_ %token RADIUS_ -%token RDB_ %token REGIONS_ %token REMOVE_ %token RETRIEVE_ %token RETURN_ %token SAMP_ %token SAVE_ -%token SB_ %token SEND_ %token SERVER_ %token SHAPE_ @@ -84,16 +82,12 @@ %token SKY_ %token SKYFORMAT_ %token SORT_ -%token STARBASE_ %token SYMBOL_ %token SYSTEM_ %token TEXT_ -%token TSV_ %token UNIQUE_ %token UNITS_ %token UPDATE_ -%token VOT_ -%token XML_ %token CDS_ %token ADAC_ @@ -107,6 +101,8 @@ %% +#include reader.trl +#include writer.trl #include yesno.trl #include fonts.trl #include wcssys.trl @@ -131,7 +127,10 @@ | LOAD_ STRING_ {CatalogCmdLoad $2 VOTRead} # backward compatibility | FILE_ STRING_ {CatalogCmdLoad $2 VOTRead} + | IMPORT_ reader STRING_ {CatalogCmdLoad $3 $2} + | IMPORT_ FITS_ STRING_ {CatalogCmdLoad $3 FITSRead} + | EXPORT_ writer STRING_ {TBLCmdSave $3 $2} | ALLCOLS_ yesno {ProcessCmdCVAR allcols $2} | ALLROWS_ yesno {ProcessCmdCVAR allrows $2} @@ -146,7 +145,6 @@ # backward compatibility | CURRENT_ SAO_ {CatalogCmdRef sao} | EDIT_ yesno {ProcessCmdCVAR edit $2 CATEdit} - | EXPORT_ writer STRING_ {TBLCmdSave $3 $2} | FILTER_ filter | HEADER_ {ProcessCmdCVAR0 CATHeader} # backward compatibilty @@ -173,7 +171,7 @@ | SKYFORMAT_ skyformat {ProcessCmdCVAR skyformat $2} | SORT_ sort | SYMBOL_ {ProcessCmdCVAR row 1} symbol - | SYMBOL_ INT_ {CagtalogCmdCat row $2} symbol + | SYMBOL_ INT_ {CatalogCmdCVAR row $2} symbol | SYSTEM_ wcssys {CatalogCmdSystem $2} | UPDATE_ {ProcessCmdCVAR0 TBLUpdate} | 'x' STRING_ {ProcessCmdCVAR colx $2 CATGenerate} @@ -210,16 +208,6 @@ | 2ONLY_ {set _ 2only} ; -reader : XML_ {set _ VOTRead} - | VOT_ {set _ VOTRead} - | RDB_ {set _ starbase_read} - | SB_ {set _ starbase_read} - | STARBASE_ {set _ starbase_read} - | CSV_ {set _ TSVRead} - | TSV_ {set _ TSVRead} - | FITS_ {set _ FITSRead} - ; - samp : {CatalogCmdSAMP} | BROADCAST_ {CatalogCmdSAMP} | SEND_ STRING_ {CatalogCmdSAMPSend $2} @@ -292,15 +280,6 @@ | STRING_ {set _ $1} ; -writer : XML_ {set _ VOTWrite} - | VOT_ {set _ VOTWrite} - | RDB_ {set _ starbase_write} - | SB_ {set _ starbase_write} - | STARBASE_ {set _ starbase_write} - | CSV_ {set _ TSVWrite} - | TSV_ {set _ TSVWrite} - ; - %% proc cat::yyerror {msg} { diff -Nru saods9-8.2+repack/ds9/parsers/catparser.tcl saods9-8.3+repack/ds9/parsers/catparser.tcl --- saods9-8.2+repack/ds9/parsers/catparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/catparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -62,1892 +62,1876 @@ array set cat::table { 257:0 reduce - 166:325 shift - 166:394,target 212 - 122:0,target 27 - 106:316 reduce - 81:316 reduce - 47:383,target 105 - 195:263,target 196 - 51:313 shift - 51:314 shift - 166:335 shift - 111:316,target 51 - 175:414,target 216 - 166:336 shift - 156:316,target 99 + 196:410,target 228 + 136:321 reduce + 122:0,target 41 + 17:266,target 62 + 47:272,target 116 + 47:383,target 116 + 106:321 reduce + 81:321 reduce + 161:376 reduce + 192:271,target 196 135:0 reduce - 212:316,target 257 - 257:316,target 173 - 0:386,target 45 - 41:398,target 148 - 21:316 reduce - 64:0,target 70 - 248:365,target 264 + 95:0,target 11 + 9:321,target 84 + 51:318 shift + 161:380 reduce + 51:319 shift + 162:376,target 203 + 41:398,target 146 + 64:0,target 82 + 161:383 reduce + 47:341,target 116 177:0 reduce - 242:316 reduce - 9:316 reduce - 253:0,target 171 + 161:385 reduce + 161:386 reduce + 94:324,target 178 + 21:321 reduce + 205:332,target 242 + 135:321,target 54 + 181:321,target 135 + 236:321,target 166 + 4:319,target 68 + 253:0,target 175 230:0 reduce 229:0 reduce 8:406,target 65 - 212:316 shift - 222:0,target 10 - 39:427 goto - 7:259,target 60 - 7:260,target 61 - 142:310 shift - 142:309 shift + 31:321,target 100 + 242:321 reduce + 192:340,target 200 + 161:392 reduce + 0:344,target 14 + 76:321,target 10 + 9:321 reduce + 161:394 reduce + 39:426 goto + 222:0,target 23 + 172:314 shift + 172:315 shift 21:0 reduce - 191:414 goto - 172:316 reduce - 166:357 shift - 142:311 shift - 44:306,target 109 - 181:0,target 131 - 195:391,target 211 + 195:279,target 223 + 172:316 shift + 181:0,target 135 + 164:412,target 211 + 20:361,target 80 107:0 reduce - 30:406,target 103 - 150:0,target 147 - 149:0,target 146 - 112:316,target 92 + 30:406,target 99 + 161:420,target 192 + 150:0,target 154 + 149:0,target 153 63:0 reduce - 157:316,target 100 - 213:316,target 106 - 258:316,target 90 - 118:0,target 23 - 47:357,target 105 - 53:316,target 60 + 142:321 reduce + 118:0,target 37 + 161:420 goto 150:0 reduce 149:0 reduce - 112:316 reduce - 249:365,target 265 - 86:316 reduce - 166:373 shift - 15:401 shift - 192:0 reduce - 0:361,target 28 - 56:316 reduce - 166:377 shift - 33:304,target 107 - 199:272,target 229 - 166:381 shift + 205:348,target 246 + 112:321 reduce + 136:321,target 104 + 182:321,target 214 + 86:321 reduce + 237:321,target 162 + 5:320,target 57 + 0:361,target 24 + 32:321,target 102 + 23:258,target 83 + 77:321,target 167 45:413 goto - 48:288,target 126 + 48:288,target 117 + 56:321 reduce 244:0 reduce - 198:409,target 227 - 26:316 shift - 34:277,target 115 - 61:0,target 6 - 166:383 shift - 3:311,target 57 - 8:259,target 60 - 8:260,target 61 - 166:384 shift - 29:0,target 62 - 30:0,target 1 - 247:316 reduce - 202:314,target 4 - 41:331,target 147 - 17:257,target 58 - 47:263,target 105 - 250:0,target 175 - 249:0,target 181 - 166:391 shift - 113:316,target 18 - 57:308,target 111 - 196:407 goto - 217:316 shift - 214:316,target 116 - 260:316,target 188 - 259:316,target 186 - 166:394 shift + 61:0,target 16 + 3:311,target 67 + 15:399 shift + 196:279,target 227 + 26:321 shift + 29:0,target 72 + 30:0,target 11 + 0:318,target 3 + 250:0,target 174 + 249:0,target 180 + 57:308,target 102 + 247:321 reduce + 196:410 goto 122:0 reduce - 242:365 shift - 218:0,target 101 - 30:259,target 60 - 30:260,target 61 - 54:316,target 76 - 99:316,target 1 - 177:316 reduce + 218:0,target 19 + 217:321 reduce 9:0 reduce - 177:0,target 128 + 242:369 shift + 206:415 goto + 177:0,target 141 164:0 reduce - 36:313,target 3 - 42:262,target 63 - 0:377,target 40 - 41:400,target 150 - 147:316 reduce - 146:0,target 98 + 42:262,target 58 + 137:321,target 123 + 0:377,target 38 + 41:400,target 148 + 183:321,target 64 + 177:321 reduce + 26:378,target 94 + 238:321,target 163 + 146:0,target 150 + 78:321,target 78 216:0 reduce - 34:294,target 132 - 115:0,target 20 - 199:410,target 231 - 117:316 reduce - 4:311,target 58 - 92:316 shift + 34:294,target 123 + 34:304,target 133 + 147:321 reduce + 115:0,target 34 + 4:311,target 68 + 0:335,target 9 258:0 reduce - 26:348 shift + 117:321 reduce + 92:318 shift + 92:319 shift + 206:432 goto + 18:257,target 72 26:352 shift - 43:314,target 4 - 62:316 reduce - 114:316,target 19 - 47:391,target 105 - 165:265,target 107 - 160:316,target 52 - 159:316,target 102 - 175:311,target 188 - 166:431 goto 49:0 reduce 50:0 reduce - 261:316,target 180 - 10:316,target 66 - 32:316 reduce - 55:316,target 111 - 57:0,target 117 + 26:356 shift + 62:321 reduce + 57:0,target 128 51:415 goto 136:0 reduce 0:x,target 1 - 26:0,target 121 - 253:316 reduce - 208:332,target 247 - 246:0,target 189 + 26:0,target 132 + 32:321 reduce + 184:321,target 65 + 246:0,target 184 + 240:321,target 194 + 239:321,target 188 + 253:321 reduce 178:0 reduce - 223:316 reduce - 247:365 shift - 215:0,target 61 + 79:321,target 131 + 80:321,target 168 + 215:0,target 112 + 39:381,target 140 + 223:321 reduce 231:0 reduce - 183:316 reduce - 174:0,target 126 - 26:375 shift - 48:279,target 117 - 48:280,target 118 - 208:391,target 252 - 153:316 reduce - 143:0,target 142 - 3:302,target 57 - 115:316,target 20 + 174:0,target 139 + 164:308,target 102 + 7:267,target 63 + 48:280,target 109 + 183:321 reduce + 26:378 shift + 172:414 goto + 143:0,target 147 + 95:263,target 59 22:0 reduce - 166:265,target 198 - 161:316,target 53 - 216:316,target 122 - 262:316,target 190 - 112:0,target 92 - 11:316,target 73 - 142:414 goto - 123:316 reduce - 56:316,target 113 + 153:321 reduce + 112:0,target 31 108:0 reduce 0:421,target 54 64:0 reduce - 97:317 shift - 97:318 shift - 97:320 shift + 123:321 reduce + 140:321,target 187 + 139:321,target 145 + 97:321 reduce + 185:321,target 66 151:0 reduce 26:393 shift - 67:316 reduce - 0:368,target 34 - 37:316 reduce - 54:0,target 76 - 193:0 reduce - 36:415,target 142 - 48:296,target 134 - 258:316 reduce - 168:412,target 214 - 34:285,target 123 + 241:321,target 190 + 35:321,target 137 + 81:321,target 93 + 67:321 reduce + 0:368,target 31 + 54:0,target 88 + 203:0 reduce + 36:415,target 138 + 93:323,target 174 + 33:312,target 106 + 37:321 reduce + 48:296,target 125 + 48:306,target 135 + 34:285,target 114 + 3:318,target 67 + 8:267,target 63 245:0 reduce - 243:0,target 191 - 4:302,target 58 - 165:420,target 195 - 116:316,target 21 - 228:316 reduce - 162:316,target 103 - 217:316,target 258 - 263:316,target 179 - 12:316,target 74 - 202:433,target 237 + 243:0,target 192 + 45:314,target 156 + 258:321 reduce + 212:0,target 71 + 17:265,target 61 + 47:271,target 116 + 188:314 shift 26:423 goto - 57:316,target 117 - 208:365,target 251 - 188:316 reduce - 171:0,target 81 - 158:313 shift - 158:314 shift + 228:321 reduce + 188:315 shift + 188:316 shift + 171:0,target 137 + 30:267,target 63 123:0 reduce - 195:373,target 206 - 140:0,target 93 - 139:0,target 44 - 0:385,target 44 - 108:0,target 48 - 128:316 reduce - 165:325,target 107 - 8:0,target 1 - 73:316 reduce - 117:316,target 22 - 43:313 shift - 163:316,target 153 - 43:314 shift + 141:321,target 108 + 78:0 reduce + 192:270,target 195 + 192:269,target 194 + 186:321,target 105 + 139:0,target 145 + 242:321,target 179 + 161:392,target 118 + 0:385,target 43 + 41:397,target 145 + 82:321,target 1 + 158:321 reduce + 108:0,target 103 + 47:340,target 116 + 23:404,target 88 + 205:331,target 241 + 128:321 reduce + 217:0 reduce + 4:318,target 68 + 8:0,target 11 + 92:415 goto + 18:257 shift 260:0 reduce 259:0 reduce - 218:316,target 101 - 264:316,target 184 - 7:258,target 59 - 58:316,target 2 - 13:313 shift - 44:305,target 108 - 13:314 shift - 7:257 shift - 13:315 shift - 39:329,target 143 - 264:316 reduce - 165:384,target 107 - 7:258 shift - 7:260 shift - 7:259 shift - 7:261 shift - 240:0,target 159 - 239:0,target 163 + 197:408,target 231 + 18:258 shift + 73:321 reduce + 18:259 shift + 18:260 shift + 18:261 shift + 195:278,target 222 + 43:318 shift + 43:319 shift + 25:318,target 90 + 142:321,target 109 + 13:318 shift + 240:0,target 194 + 239:0,target 188 + 187:321,target 146 7:262 shift - 48:275 shift - 234:316 reduce + 13:320 shift + 13:319 shift + 243:321,target 192 + 162:392,target 208 + 7:263 shift 137:0 reduce - 48:276 shift - 93:0 reduce - 2:316 shift - 48:277 shift - 48:278 shift - 48:279 shift + 7:264 shift + 37:321,target 106 + 7:265 shift + 83:321,target 2 + 198:0,target 160 + 164:307 shift + 7:266 shift + 164:308 shift + 7:267 shift 48:280 shift + 234:321 reduce + 164:310 shift + 164:309 shift 48:281 shift - 204:316 shift - 194:316 reduce + 164:311 shift + 2:321 shift 48:282 shift 180:0 reduce 179:0 reduce - 167:0,target 109 + 167:0,target 81 + 164:312 shift 48:283 shift - 166:325,target 202 + 194:318 shift + 164:313 shift 48:284 shift 48:285 shift - 0:360,target 27 - 0:359,target 26 + 204:321 shift + 0:359,target 23 48:286 shift - 199:271 shift - 164:316 reduce - 136:0,target 41 + 136:0,target 104 48:287 shift - 199:272 shift + 23:257,target 82 48:288 shift 232:0 reduce - 118:316,target 23 - 33:303,target 106 48:289 shift 48:290 shift 48:300 shift - 199:274 shift - 199:271,target 228 - 164:316,target 104 - 48:287,target 125 + 48:287,target 116 48:291 shift 48:301 shift - 220:316,target 8 - 219:316,target 108 - 105:0,target 45 - 34:276,target 114 + 164:321 reduce + 105:0,target 59 48:292 shift - 265:316,target 182 - 134:316 reduce - 3:310,target 57 - 3:309,target 57 - 8:258,target 59 - 14:316,target 77 + 48:302 shift + 3:310,target 67 + 3:309,target 67 48:293 shift + 48:303 shift 48:294 shift - 59:316,target 5 - 60:316,target 3 + 48:304 shift 48:295 shift + 48:305 shift 48:296 shift - 202:313,target 3 + 48:306 shift + 134:321 reduce 48:297 shift - 166:384,target 210 - 104:316 shift 48:298 shift 48:299 shift - 57:307,target 110 - 78:316 reduce + 143:321,target 147 + 57:307,target 101 110:0 reduce 109:0 reduce - 47:373,target 105 + 78:0,target 78 + 244:321,target 177 + 193:407,target 220 + 104:321 reduce 65:0 reduce - 30:258,target 59 + 38:321,target 107 + 78:321 reduce + 84:321,target 3 + 161:272,target 118 152:0 reduce - 97:424 goto - 42:261,target 62 - 0:376,target 39 - 168:308,target 111 - 236:0,target 192 - 194:0 reduce - 240:316 reduce - 239:316 reduce - 120:316,target 25 - 119:316,target 24 - 34:293,target 131 - 195:322,target 201 - 7:316 reduce - 221:316,target 9 - 210:313 shift - 209:313 shift - 210:314 shift - 209:314 shift - 4:310,target 58 - 4:309,target 58 - 15:316,target 68 + 161:383,target 118 + 236:0,target 166 + 138:414,target 186 + 34:293,target 122 + 34:303,target 132 + 161:341,target 118 + 94:425,target 180 + 4:310,target 68 + 4:309,target 68 246:0 reduce - 61:316,target 6 - 210:316 shift - 209:316 shift - 0:334,target 12 - 164:0,target 104 - 43:313,target 3 - 170:316 reduce - 169:316 shift - 133:0,target 38 + 240:321 reduce + 239:321 reduce + 192:330,target 199 + 7:321 reduce + 164:0,target 126 + 199:318 shift + 199:319 shift + 27:318,target 97 + 210:321 reduce + 209:321 shift + 199:321 shift + 188:414 goto + 144:321,target 148 + 133:0,target 52 37:0 reduce - 165:264,target 107 - 175:310,target 187 - 175:309,target 186 - 195:381,target 208 - 102:0,target 88 - 140:316 reduce - 139:316 reduce + 200:321,target 235 + 190:321,target 158 + 189:321,target 159 + 245:321,target 186 + 39:321,target 144 + 40:321,target 142 + 170:321 reduce + 169:321 reduce + 102:0,target 56 + 85:321,target 4 + 162:272,target 197 124:0 reduce - 158:415 goto - 18:340 shift - 80:0 reduce - 110:316 reduce - 109:316 reduce - 210:314,target 4 - 209:314,target 4 - 84:316 reduce - 53:417,target 169 - 121:316,target 26 - 30:257 shift - 30:258 shift - 39:379,target 144 - 222:316,target 10 + 79:0 reduce + 162:383,target 205 + 140:321 shift + 139:321 reduce + 166:0 reduce + 53:417,target 165 + 110:321 reduce + 109:321 reduce + 84:321 reduce 218:0 reduce - 30:259 shift - 30:260 shift - 54:316 reduce - 16:316,target 70 - 30:261 shift - 26:352,target 97 + 162:341,target 201 + 0:351,target 18 + 26:352,target 92 30:262 shift - 62:316,target 4 - 264:0,target 184 - 24:316 shift - 48:278,target 116 + 30:263 shift + 30:264 shift + 54:321 reduce + 164:307,target 101 + 7:266,target 62 + 30:265 shift 261:0 reduce + 30:266 shift 43:415 goto - 233:0,target 12 - 196:270,target 222 - 196:269,target 221 - 166:264,target 197 - 245:316 reduce + 100:321,target 182 + 30:267 shift + 44:313,target 107 + 233:0,target 195 + 145:321,target 149 + 95:262,target 58 + 201:321,target 236 + 191:321,target 157 + 24:321 shift + 246:321,target 184 13:415 goto - 192:0,target 156 52:0 accept - 202:415,target 236 - 175:310 shift - 175:309 shift - 175:311 shift - 161:0,target 53 + 86:321,target 5 + 245:321 reduce 13:421 goto - 138:0 reduce - 18:371 shift - 94:0 reduce - 130:0,target 35 - 129:0,target 34 - 51:314,target 4 + 215:321 reduce + 130:0,target 49 + 129:0,target 48 + 239:369 shift 181:0 reduce - 122:316,target 27 - 96:314,target 4 - 167:316,target 109 - 0:367,target 33 - 18:378 shift - 223:316,target 164 - 145:316 reduce - 17:316,target 1 - 47:322,target 105 - 63:316,target 7 - 48:295,target 133 + 164:412 goto + 175:321 reduce + 0:367,target 30 + 93:322,target 173 + 33:311,target 105 + 48:295,target 124 + 48:305,target 134 233:0 reduce - 34:284,target 122 - 115:316 reduce - 90:316 reduce - 89:316 reduce - 18:388 shift - 196:407,target 223 - 18:392 shift - 59:316 reduce - 60:316 reduce - 47:381,target 105 + 145:321 reduce + 95:262 shift + 34:284,target 113 + 95:263 shift + 8:266,target 62 + 95:264 shift + 101:321,target 55 + 95:265 shift + 146:321,target 150 + 95:266 shift + 202:321,target 237 + 115:321 reduce + 95:267 shift + 247:321,target 178 + 90:321 reduce + 89:321 reduce + 17:264,target 60 + 42:321,target 11 + 47:269,target 116 + 47:270,target 116 + 87:321,target 169 + 18:405 goto 48:411 goto 111:0 reduce - 18:396 shift - 261:0,target 180 - 18:397 shift - 43:415,target 158 + 261:0,target 187 + 30:266,target 62 + 43:415,target 154 + 59:321 reduce + 60:321 reduce 66:0 reduce - 29:316 reduce - 30:316 reduce - 230:0,target 17 - 229:0,target 16 + 192:268,target 193 + 230:0,target 22 + 229:0,target 21 153:0 reduce 7:406 goto - 251:316 reduce - 142:414,target 189 - 123:316,target 28 - 188:0,target 56 - 168:316,target 115 - 224:316,target 165 - 221:316 reduce - 64:316,target 70 - 199:410 goto - 157:0,target 100 - 245:365 shift - 181:316 reduce - 126:0,target 31 - 0:342,target 16 + 29:321 reduce + 30:321 reduce + 36:319,target 4 + 192:380,target 204 + 0:384,target 42 + 41:396,target 144 + 251:321 reduce + 94:322,target 177 + 157:0,target 63 + 221:321 reduce + 126:0,target 45 + 102:321,target 56 + 0:342,target 13 247:0 reduce - 210:415 goto - 209:415 goto - 7:257,target 58 - 13:315,target 5 - 151:316 reduce - 23:351,target 85 - 44:304,target 107 + 245:369 shift + 199:415 goto + 147:321,target 151 + 203:321,target 161 + 248:321,target 181 + 181:321 reduce + 88:321,target 170 + 239:369,target 256 38:0 reduce - 18:434 goto - 165:383,target 107 - 99:0,target 1 - 121:316 reduce + 151:321 reduce + 99:0,target 100 125:0 reduce - 95:316 shift - 68:0,target 78 + 68:0,target 90 81:0 reduce - 208:338,target 248 - 42:406,target 157 - 124:316,target 29 - 210:433 goto - 209:433 goto - 170:316,target 118 - 169:316,target 215 - 37:0,target 95 - 65:316 reduce - 225:316,target 13 + 121:321 reduce + 42:406,target 153 + 199:432 goto + 95:321 reduce + 188:414,target 215 + 37:0,target 106 167:0 reduce - 98:425,target 183 - 19:316,target 80 - 20:316,target 81 - 210:433,target 255 - 209:433,target 254 - 65:316,target 71 - 257:0,target 173 - 35:316 shift - 197:313,target 224 - 0:358,target 25 + 257:0,target 191 + 65:321 reduce + 0:358,target 22 220:0 reduce 219:0 reduce - 226:0,target 14 - 47:313,target 165 - 33:302,target 105 - 256:316 reduce - 48:286,target 124 - 34:275,target 113 - 3:308,target 57 - 8:257,target 58 + 226:0,target 26 + 103:321,target 57 + 148:321,target 152 + 35:321 shift + 204:321,target 238 + 48:286,target 115 + 250:321,target 174 + 249:321,target 180 + 185:0,target 66 + 93:424,target 176 + 3:308,target 67 262:0 reduce + 90:321,target 96 + 89:321,target 77 11:0 reduce - 18:392,target 76 - 226:316 reduce - 154:0,target 151 - 0:316,target 6 - 166:383,target 209 + 256:321 reduce + 196:277,target 226 + 241:369,target 257 + 15:399,target 69 + 226:321 reduce 53:0 reduce - 57:306,target 109 - 186:316 reduce - 158:314,target 4 - 123:0,target 28 - 30:257,target 58 - 140:0 reduce + 123:0,target 42 + 192:268 shift + 192:270 shift + 192:269 shift + 186:321 reduce + 161:271,target 118 139:0 reduce - 125:316,target 30 - 175:414 goto - 171:316,target 81 - 165:357,target 107 - 156:316 reduce - 226:316,target 14 - 21:316,target 83 - 42:259,target 60 - 42:260,target 61 - 66:316,target 66 - 182:0 reduce - 126:316 reduce - 168:307,target 110 - 65:0,target 71 - 99:262,target 63 - 34:292,target 130 + 192:271 shift + 95:0 reduce + 192:272 shift + 162:268 shift + 162:270 shift + 162:269 shift + 156:321 reduce + 96:0,target 97 + 0:375,target 37 + 162:271 shift + 162:272 shift + 47:330,target 116 + 104:321,target 58 + 65:0,target 83 + 150:321,target 154 + 149:321,target 153 + 126:321 reduce + 34:292,target 121 + 34:302,target 131 + 205:321,target 240 + 251:321,target 172 234:0 reduce - 4:308,target 58 - 71:316 reduce - 0:333,target 11 + 161:340,target 118 + 4:308,target 68 + 91:321,target 171 + 197:277,target 230 + 242:369,target 258 + 206:415,target 233 30:406 goto - 254:0,target 169 - 1:316,target 55 - 223:0,target 164 - 165:263,target 107 - 262:316 reduce + 254:0,target 176 + 71:321 reduce + 92:415,target 172 + 223:0,target 24 112:0 reduce - 11:316 reduce 67:0 reduce - 182:0,target 132 - 126:316,target 31 - 191:414,target 218 - 172:316,target 119 - 166:357,target 205 - 142:311,target 188 - 0:313 shift - 227:316,target 167 - 0:314 shift + 162:271,target 196 + 205:x shift + 172:316,target 185 + 262:321 reduce 0:0 reduce - 232:316 reduce - 0:315 shift - 22:316,target 84 - 154:0 reduce - 151:0,target 148 - 0:316 shift - 26:393,target 99 - 67:316,target 75 - 202:313 shift - 202:314 shift - 41:331 shift - 210:313,target 3 - 209:313,target 3 - 202:316 shift - 192:316 reduce - 120:0,target 25 - 119:0,target 24 - 206:0 reduce - 0:323 shift - 0:324 shift - 162:316 reduce - 0:349,target 19 - 0:350,target 20 + 11:321 reduce + 151:0,target 155 + 26:393,target 95 + 0:318 shift + 232:321 reduce + 0:319 shift + 0:320 shift + 120:0,target 39 + 119:0,target 38 + 0:321 shift + 205:337,target 244 + 105:321,target 59 + 151:321,target 155 + 206:321,target 232 + 41:336 shift + 252:321,target 173 + 202:321 shift + 162:340,target 200 + 0:349,target 17 + 46:321,target 159 + 206:432,target 251 + 0:328 shift 248:0 reduce - 0:330 shift - 93:0,target 67 - 2:316,target 56 - 0:331 shift - 48:277,target 115 - 132:316 reduce - 0:333 shift - 0:334 shift - 196:268,target 220 - 166:263,target 196 - 62:0,target 4 - 165:391,target 107 + 243:369,target 259 + 207:415,target 233 + 0:329 shift + 7:265,target 61 + 197:276 shift + 192:327 shift + 95:406 goto + 197:277 shift + 44:312,target 106 + 192:330 shift + 0:335 shift + 62:0,target 14 + 132:321 reduce + 0:336 shift 39:0 reduce - 102:316 reduce - 0:337 shift - 15:401,target 69 - 127:316,target 32 + 162:327 shift + 0:338 shift + 162:330 shift 0:339 shift - 76:316 reduce - 173:316,target 69 0:418,target 53 - 0:341 shift - 228:316,target 15 126:0 reduce + 102:321 reduce 0:342 shift - 208:346,target 250 - 251:0,target 178 - 68:316,target 78 + 251:0,target 172 + 192:340 shift + 0:344 shift + 76:321 reduce + 192:341 shift 0:345 shift - 46:316 shift - 0:347 shift - 220:0,target 8 - 219:0,target 108 + 0:346 shift + 220:0,target 167 + 219:0,target 20 168:0 reduce + 162:340 shift + 106:321,target 60 0:349 shift - 0:350 shift - 51:313,target 3 - 96:313,target 3 - 16:316 shift - 0:366,target 32 - 178:0,target 129 + 46:321 shift + 162:341 shift + 152:321,target 110 + 0:351 shift + 207:321,target 232 + 0:366,target 29 + 253:321,target 175 + 178:0,target 142 0:353 shift 0:354 shift 221:0 reduce - 0:355 shift - 237:316 reduce - 5:315 shift - 48:294,target 132 - 147:0,target 144 + 207:432,target 252 + 16:321 shift + 33:309,target 103 + 33:310,target 104 + 48:294,target 123 + 48:304,target 133 + 244:369,target 260 + 147:0,target 151 0:357 shift - 34:283,target 121 - 197:313 shift - 3:316,target 57 + 34:283,target 112 + 159:347,target 189 + 3:316,target 67 0:358 shift - 0:360 shift + 8:265,target 61 0:359 shift + 237:321 reduce + 5:320 shift 0:361 shift - 45:312,target 161 - 263:0 reduce - 207:316 shift - 116:0,target 21 + 116:0,target 35 0:362 shift 12:0 reduce 0:363 shift - 0:324,target 8 - 166:391,target 211 + 41:336,target 143 + 207:318 shift 0:364 shift + 207:319 shift + 192:361 shift + 0:365 shift + 17:263,target 59 + 47:268,target 116 + 207:321 shift 0:366 shift - 167:316 reduce - 128:316,target 33 0:367 shift - 174:316,target 126 0:368 shift + 47:380,target 116 54:0 reduce - 230:316,target 17 - 229:316,target 16 - 0:369 shift 0:370 shift - 24:316,target 93 + 162:361 shift + 0:371 shift + 30:265,target 61 + 167:321 reduce + 90:0,target 96 + 89:0,target 77 0:372 shift - 69:316,target 79 - 70:316,target 114 - 137:316 reduce + 0:373 shift 141:0 reduce 0:374 shift - 0:376 shift - 58:0,target 2 - 0:383,target 43 + 96:0 reduce + 0:375 shift + 36:318,target 3 + 42:267,target 63 + 58:0,target 12 + 137:321 reduce + 107:321,target 61 0:377 shift 41:400 shift - 41:405,target 155 - 107:316 reduce + 153:321,target 111 41:401 shift - 163:356,target 193 + 208:321,target 253 + 198:321,target 160 0:380 shift + 0:379 shift 41:402 shift + 254:321,target 176 + 192:376 shift 183:0 reduce 41:403 shift - 82:316 shift - 97:424,target 179 0:382 shift - 41:404 shift - 208:432,target 253 - 0:383 shift - 23:392,target 89 - 34:299,target 137 - 41:405 shift - 247:0,target 174 - 210:415,target 236 - 209:415,target 236 + 107:321 reduce + 34:299,target 128 + 192:380 shift + 154:415,target 188 + 0:384 shift + 41:396 shift + 247:0,target 178 + 245:369,target 261 + 199:415,target 233 0:385 shift - 4:316,target 58 - 0:386 shift + 41:397 shift + 82:321 reduce + 162:376 shift + 4:316,target 68 41:398 shift 235:0 reduce + 192:383 shift 0:387 shift 41:399 shift - 0:341,target 15 - 216:0,target 122 + 0:388 shift + 216:0,target 119 + 192:385 shift + 162:380 shift 0:390 shift 0:389 shift - 0:401 shift - 22:316 reduce - 13:314,target 4 + 192:386 shift + 0:391 shift + 162:383 shift + 43:319,target 4 + 175:0,target 140 0:x shift 26:0 reduce - 130:316,target 35 - 129:316,target 34 + 162:385 shift 0:y shift 0:395 shift - 44:303,target 106 - 243:316 reduce - 231:316,target 168 - 191:311,target 188 - 20:357,target 82 + 192:392 shift + 162:386 shift + 22:321 reduce + 192:394 shift + 144:0,target 148 113:0 reduce - 71:316,target 80 + 0:399 shift 68:0 reduce - 213:316 reduce - 113:0,target 18 + 243:321 reduce + 162:392 shift + 113:0,target 32 + 0:399,target 50 + 162:394 shift + 108:321,target 103 0:415 goto + 41:427 goto 155:0 reduce 0:416 goto - 41:428 goto - 173:316 reduce + 213:321 reduce + 210:321,target 117 + 209:321,target 254 + 199:321,target 232 + 255:321,target 101 0:418 goto - 202:415 goto + 49:321,target 121 + 50:321,target 75 + 199:432,target 234 + 95:321,target 11 0:421 goto - 57:302 shift - 143:316 reduce - 0:357,target 24 - 57:303 shift - 51:415,target 168 - 57:304 shift - 96:415,target 175 - 57:305 shift - 55:0,target 111 - 57:306 shift - 48:285,target 123 + 246:369,target 262 + 173:321 reduce + 0:357,target 21 + 51:415,target 164 + 55:0,target 122 + 143:321 reduce + 48:285,target 114 57:307 shift 250:0 reduce 249:0 reduce - 113:316 reduce 57:308 shift - 3:307,target 57 - 33:412,target 112 - 87:316 reduce - 131:316,target 36 - 176:316,target 127 - 232:316,target 11 - 0:315,target 5 - 244:0,target 187 - 26:316,target 95 - 202:433 goto - 57:316 reduce - 72:316,target 199 - 57:305,target 108 - 158:313,target 3 - 27:313 shift - 213:0,target 106 + 3:307,target 67 + 33:412,target 108 + 57:309 shift + 57:310 shift + 57:311 shift + 196:276,target 225 + 57:312 shift + 192:430 goto + 113:321 reduce + 57:313 shift + 244:0,target 177 + 87:321 shift + 162:430 goto + 213:0,target 133 127:0 reduce - 83:0 reduce - 172:0,target 119 - 248:316 reduce + 57:321 reduce + 110:321,target 29 + 109:321,target 28 + 161:270,target 118 + 161:269,target 118 + 155:321,target 113 + 211:321,target 127 + 27:318 shift + 256:321,target 189 170:0 reduce - 42:258,target 59 - 141:0,target 112 - 0:374,target 38 - 26:375,target 98 - 168:306,target 109 - 6:316,target 64 - 218:316 reduce - 110:0,target 50 - 109:0,target 49 + 169:0 reduce + 96:321,target 97 + 141:0,target 108 + 0:374,target 36 + 248:321 reduce + 197:408 goto + 110:0,target 29 + 109:0,target 28 222:0 reduce - 99:261,target 62 - 34:291,target 129 - 34:301,target 139 - 4:307,target 58 - 46:429 goto - 195:431,target 219 - 178:316 reduce - 132:316,target 37 - 264:0 reduce - 177:316,target 128 - 9:0,target 72 - 233:316,target 12 - 83:0,target 82 - 148:316 reduce - 73:316,target 196 - 195:267,target 200 - 100:0 reduce + 34:291,target 120 + 34:301,target 130 + 46:428 goto + 218:321 reduce + 4:307,target 68 + 205:431,target 250 + 243:369 shift + 207:415 goto + 197:276,target 229 + 192:327,target 198 + 95:406,target 181 + 9:0,target 84 + 178:321 reduce 52:0,target 0 55:0 reduce - 33:302 shift - 165:373,target 107 - 118:316 reduce - 33:303 shift - 33:304 shift - 142:310,target 187 - 142:309,target 186 - 93:316 reduce - 21:0,target 83 - 33:305 shift - 33:306 shift - 0:401,target 50 + 148:321 reduce + 111:321,target 30 + 162:270,target 195 + 162:269,target 194 + 156:321,target 62 + 172:315,target 184 + 21:0,target 94 + 257:321,target 191 + 142:0 reduce + 192:386,target 207 + 118:321 reduce + 97:0 reduce + 0:391,target 48 33:307 shift + 97:321,target 98 33:308 shift - 241:0,target 160 - 208:328,target 246 - 63:316 reduce - 7:316,target 1 + 241:0,target 190 + 207:432 goto + 33:309 shift + 33:310 shift + 93:322 shift + 33:311 shift + 93:323 shift + 33:312 shift 184:0 reduce - 195:336,target 204 - 18:434,target 79 - 168:0,target 115 + 33:313 shift + 210:0,target 117 + 93:325 shift + 63:321 reduce + 206:319,target 4 + 168:0,target 130 236:0 reduce - 133:316,target 38 - 254:316 reduce - 178:316,target 129 - 234:316,target 166 - 137:0,target 42 - 48:276,target 114 - 28:316,target 102 - 74:316,target 197 - 224:316 reduce - 106:0,target 46 - 248:365 shift - 166:373,target 206 + 92:319,target 4 + 137:0,target 123 + 7:264,target 60 + 44:311,target 105 + 254:321 reduce + 106:0,target 60 + 112:321,target 31 + 224:321 reduce + 193:275,target 219 + 157:321,target 63 114:0 reduce - 184:316 reduce + 213:321,target 133 69:0 reduce 70:0 reduce - 6:0,target 64 - 98:321,target 182 - 158:415,target 191 - 18:340,target 72 - 80:0,target 68 - 200:271 shift + 258:321,target 183 + 6:0,target 74 + 53:321,target 70 + 98:321,target 99 + 184:321 reduce + 79:0,target 131 156:0 reduce - 154:316 reduce - 23:426,target 92 - 200:272 shift - 8:316,target 1 - 124:316 reduce - 17:0,target 1 - 98:317 shift - 33:308,target 111 - 134:316,target 39 - 48:293,target 131 - 180:316,target 130 - 179:316,target 123 - 98:319 shift - 34:282,target 120 - 237:0,target 161 - 235:316,target 193 - 98:321 shift + 154:318 shift + 154:319 shift + 207:319,target 4 + 192:361,target 202 + 0:365,target 28 + 198:0 reduce + 17:0,target 11 + 33:308,target 102 + 124:321 reduce + 48:293,target 122 + 48:303,target 132 + 34:282,target 111 + 237:0,target 162 + 98:321 reduce + 3:315,target 67 + 8:264,target 60 251:0 reduce - 29:316,target 62 - 30:316,target 1 - 68:316 reduce - 75:316,target 198 - 206:0,target 158 - 0:323,target 7 + 161:330,target 118 57:412 goto - 17:262,target 63 - 38:316 reduce - 47:267,target 105 + 68:321 reduce + 17:262,target 58 + 192:430,target 216 + 113:321,target 32 42:0 reduce - 260:316 reduce - 259:316 reduce - 134:0,target 39 + 57:313,target 107 + 158:321,target 114 + 214:321,target 255 + 260:321,target 182 + 259:321,target 193 + 38:321 reduce + 30:264,target 60 + 54:321,target 88 + 134:0,target 53 128:0 reduce - 9:316,target 72 - 230:316 reduce - 229:316 reduce - 103:0,target 89 - 0:382,target 42 - 41:404,target 154 + 99:321,target 100 + 205:369,target 248 + 260:321 reduce + 259:321 reduce + 103:0,target 57 + 42:266,target 62 + 0:382,target 41 171:0 reduce - 195:263 shift - 47:336,target 105 - 195:264 shift - 195:265 shift - 190:316 reduce - 189:316 reduce - 195:266 shift - 34:298,target 136 - 195:267 shift - 165:322,target 107 - 135:316,target 40 - 3:0,target 57 + 230:321 reduce + 229:321 reduce + 34:298,target 127 + 3:0,target 67 223:0 reduce - 181:316,target 131 - 165:263 reduce - 236:316,target 192 - 165:264 reduce - 165:265 reduce - 160:316 reduce - 159:316 reduce - 31:316,target 104 - 165:266 reduce - 0:339,target 14 - 76:316,target 200 - 165:267 reduce - 265:0 reduce + 200:321 shift + 190:321 reduce + 189:321 reduce + 4:315,target 68 + 162:330,target 199 + 0:339,target 12 + 160:321 reduce + 159:321 reduce 14:0 reduce - 44:302 shift - 130:316 reduce - 129:316 reduce - 13:313,target 3 - 44:303 shift - 44:304 shift - 265:0,target 182 - 14:0,target 77 - 44:302,target 105 - 44:305 shift - 44:306 shift - 191:310,target 187 - 191:309,target 186 + 43:318,target 3 + 114:321,target 33 + 195:278 shift + 160:321,target 115 + 159:321,target 156 + 14:0,target 89 + 215:321,target 112 + 195:279 shift + 261:321,target 187 + 130:321 reduce + 129:321 reduce 101:0 reduce + 10:321,target 66 44:307 shift - 165:381,target 107 - 100:316 reduce 44:308 shift + 55:321,target 122 56:0 reduce - 234:0,target 166 - 74:316 reduce - 193:0,target 155 + 234:0,target 164 + 44:309 shift + 44:310 shift + 44:311 shift + 44:312 shift + 192:394,target 209 + 100:321 shift + 44:313 shift + 203:0,target 161 143:0 reduce - 3:302 reduce - 3:303 reduce - 3:304 reduce - 3:305 reduce - 162:0,target 103 - 3:306 reduce + 98:0 reduce + 74:321 reduce + 154:319,target 4 + 199:319,target 4 3:307 reduce 33:412 goto + 185:0 reduce + 93:424 goto 3:308 reduce - 8:257 shift - 265:316 reduce - 166:322,target 201 - 136:316,target 41 - 99:406,target 184 3:310 reduce 3:309 reduce - 8:258 shift - 14:316 reduce - 182:316,target 132 - 131:0,target 36 + 131:0,target 50 3:311 reduce - 8:259 shift - 8:260 shift - 237:316,target 161 - 5:315,target 57 - 8:261 shift + 3:312 reduce 3:313 reduce 8:262 shift - 32:316,target 91 3:314 reduce - 77:316,target 195 + 8:263 shift + 14:321 reduce 237:0 reduce - 235:316 reduce - 100:0,target 86 + 3:315 reduce + 8:264 shift + 194:318,target 221 + 164:313,target 107 + 159:347 shift 3:316 reduce - 48:284,target 122 - 3:306,target 57 - 205:316 shift - 0:314,target 4 - 0:0,target 63 - 166:381,target 208 - 45:413,target 162 - 195:322 shift - 57:304,target 107 + 8:265 shift + 48:284,target 113 + 8:266 shift + 3:318 reduce + 8:267 shift + 235:321 reduce + 115:321,target 34 + 95:267,target 63 + 3:319 reduce + 3:321 reduce + 216:321,target 119 + 262:321,target 185 + 0:0,target 73 + 11:321,target 85 + 45:413,target 158 + 56:321,target 124 + 205:321 shift 115:0 reduce + 159:360 shift 71:0 reduce - 195:325 shift - 42:0,target 1 - 208:x shift - 165:322 reduce - 135:316 reduce + 42:0,target 11 + 165:321 shift + 161:268,target 118 3:0 reduce - 262:0,target 190 + 154:415 goto + 262:0,target 185 157:0 reduce - 11:0,target 73 - 165:325 reduce - 42:257,target 58 - 137:316,target 42 - 105:316 reduce - 231:0,target 168 - 183:316,target 125 - 238:316,target 162 - 195:335 shift - 168:305,target 108 - 79:316 shift - 80:316 reduce - 195:336 shift - 78:316,target 194 - 190:0,target 143 - 189:0,target 94 - 99:260,target 61 - 99:259,target 60 - 34:289,target 127 - 34:290,target 128 - 34:300,target 138 - 165:335 reduce - 49:316 reduce - 50:316 reduce - 165:336 reduce - 4:306,target 58 - 34:411,target 140 + 11:0,target 85 + 205:331 shift + 161:380,target 118 + 51:319,target 4 + 205:332 shift + 135:321 reduce + 205:333 shift + 0:373,target 35 + 231:0,target 169 + 47:327,target 116 + 210:0 reduce + 205:337 shift + 105:321 reduce + 190:0,target 158 + 189:0,target 159 + 34:289,target 118 + 34:290,target 119 + 34:300,target 129 + 79:321 reduce + 80:321 shift + 34:411,target 136 252:0 reduce - 0:331,target 10 - 98:425 goto - 19:316 shift - 20:316 shift - 127:0,target 32 - 23:340,target 84 - 195:266,target 199 - 241:316 reduce + 205:343 shift + 158:0,target 114 + 116:321,target 35 + 217:321,target 18 + 49:321 reduce + 50:321 reduce + 12:321,target 86 + 127:0,target 46 + 57:321,target 128 + 205:348 shift + 205:350 shift + 47:386,target 116 + 19:321 shift + 20:321 shift 13:415,target 51 - 8:316 reduce - 195:377,target 207 + 162:268,target 193 130:0 reduce 129:0 reduce - 211:316 shift - 200:408 goto - 195:357 shift - 0:390,target 48 - 0:389,target 47 - 97:320,target 178 - 208:327,target 245 - 138:316,target 43 - 184:316,target 124 - 172:0 reduce - 69:0,target 79 - 70:0,target 114 - 240:316,target 159 - 239:316,target 163 - 171:316 reduce - 165:357 reduce - 195:335,target 203 - 79:316,target 171 - 80:316,target 68 - 38:0,target 96 + 241:321 reduce + 172:314,target 183 + 8:321 reduce + 192:385,target 206 + 162:380,target 204 + 0:390,target 47 + 0:389,target 46 + 138:316,target 185 + 211:321 reduce + 69:0,target 91 + 70:0,target 125 + 38:0,target 107 + 206:318,target 3 + 171:321 reduce 224:0 reduce - 141:316 reduce - 0:347,target 18 - 258:0,target 90 - 26:348,target 96 - 195:373 shift - 46:429,target 164 - 111:316 reduce - 48:275,target 113 - 227:0,target 167 - 85:316 reduce - 195:377 shift - 165:373 reduce - 195:394,target 212 - 186:0,target 54 - 195:381 shift + 205:369 shift + 258:0,target 183 + 117:321,target 36 + 92:318,target 3 + 163:321,target 120 + 218:321,target 19 + 141:321 reduce + 7:263,target 59 + 227:0,target 27 + 58:321,target 12 + 44:309,target 103 + 44:310,target 104 + 111:321 reduce + 39:334,target 139 + 186:0,target 105 102:0 reduce - 55:316 reduce + 85:321 reduce 57:0 reduce - 195:383 shift - 165:377 reduce - 195:384 shift - 155:0,target 152 + 193:274,target 218 + 159:429 goto + 155:0,target 113 0:416,target 52 - 25:313 shift - 41:428,target 156 44:412 goto - 208:344,target 249 - 165:381 reduce - 98:319,target 181 - 20:357 shift - 165:383 reduce - 140:316,target 93 - 139:316,target 44 - 124:0,target 29 + 47:361,target 116 + 55:321 reduce + 144:0 reduce + 124:0,target 43 99:0 reduce - 185:316,target 217 - 165:384 reduce - 241:316,target 160 - 195:391 shift - 35:316,target 141 - 246:316 reduce - 81:316,target 120 - 195:394 shift + 25:318 shift + 20:361 shift + 205:392 shift 186:0 reduce - 0:364,target 31 - 165:391 reduce - 216:316 reduce - 33:307,target 110 - 165:394 reduce - 48:292,target 130 + 207:318,target 3 + 0:364,target 27 + 246:321 reduce + 47:318,target 161 + 118:321,target 37 + 97:0,target 98 + 33:307,target 101 + 195:409 goto + 164:321,target 126 + 48:292,target 121 + 48:302,target 131 238:0 reduce - 34:281,target 119 - 3:314,target 57 - 18:397,target 78 - 66:0,target 66 - 176:316 reduce - 45:309,target 160 + 220:321,target 167 + 219:321,target 20 + 34:281,target 110 + 3:314,target 67 + 8:263,target 59 + 14:321,target 89 + 216:321 reduce + 59:321,target 15 + 60:321,target 13 + 66:0,target 76 + 241:369 shift 29:0 reduce 30:0 reduce - 17:261,target 62 - 47:266,target 105 - 146:316 reduce - 255:0,target 170 - 47:377,target 105 + 176:321 reduce + 57:312,target 106 + 255:0,target 101 116:0 reduce - 165:420 goto - 116:316 reduce - 224:0,target 165 - 141:316,target 112 - 186:316,target 54 - 91:316 reduce + 146:321 reduce + 30:263,target 59 + 224:0,target 170 4:0 reduce - 242:316,target 185 - 195:431 goto - 183:0,target 125 - 41:403,target 153 - 82:316,target 172 - 47:335,target 105 - 61:316 reduce - 152:0,target 149 - 34:297,target 135 - 208:x,target 242 - 31:316 shift - 121:0,target 26 - 4:314,target 58 + 158:0 reduce + 116:321 reduce + 42:265,target 61 + 205:431 goto + 192:376,target 203 + 183:0,target 64 + 41:403,target 151 + 91:321 shift + 152:0,target 110 + 211:0 reduce + 120:321,target 39 + 119:321,target 38 + 34:297,target 126 + 165:321,target 212 + 61:321 reduce + 221:321,target 168 + 121:0,target 40 + 4:314,target 68 + 15:321,target 68 + 61:321,target 16 + 0:338,target 11 253:0 reduce 8:406 goto - 252:316 reduce - 47:394,target 105 - 222:316 reduce - 94:0,target 85 - 246:365 shift + 31:321 shift + 18:261,target 76 + 47:394,target 116 + 252:321 reduce 20:422 goto - 44:412,target 159 - 63:0,target 7 - 187:316,target 55 - 182:316 reduce + 44:412,target 155 + 222:321 reduce + 63:0,target 17 131:0 reduce - 243:316,target 191 - 37:316,target 95 - 83:316,target 82 - 32:0,target 91 - 152:316 reduce + 246:369 shift + 32:0,target 102 + 182:321 shift + 154:318,target 3 + 199:318,target 3 173:0 reduce - 252:0,target 177 - 96:313 shift - 122:316 reduce - 96:314 shift - 221:0,target 9 - 0:355,target 23 + 252:0,target 173 + 205:343,target 245 + 121:321,target 40 + 166:321,target 129 + 152:321 reduce + 222:321,target 23 + 221:0,target 168 + 16:321,target 70 225:0 reduce - 180:0,target 130 - 179:0,target 123 - 42:257 shift - 48:283,target 121 - 42:258 shift - 3:305,target 57 - 42:259 shift - 42:260 shift - 66:316 reduce - 18:388,target 75 - 42:261 shift - 148:0,target 145 - 36:313 shift + 26:356,target 93 + 62:321,target 14 + 122:321 reduce + 180:0,target 136 + 179:0,target 143 + 164:312,target 106 + 48:283,target 112 + 96:321 reduce + 95:266,target 62 + 148:0,target 152 42:262 shift - 36:314 shift - 0:313,target 3 - 117:0,target 22 + 42:263 shift + 205:x,target 239 + 42:264 shift + 66:321 reduce + 42:265 shift + 117:0,target 36 103:0 reduce - 143:316,target 142 - 57:303,target 106 + 42:266 shift + 36:318 shift + 42:267 shift 58:0 reduce - 188:316,target 56 - 244:316,target 187 - 257:316 reduce - 38:316,target 96 - 84:316,target 138 + 188:316,target 185 + 36:319 shift 145:0 reduce - 227:316 reduce - 0:372,target 37 + 257:321 reduce + 51:318,target 3 + 122:321,target 41 + 167:321,target 81 + 0:372,target 34 + 223:321,target 24 187:0 reduce - 168:304,target 107 - 59:0,target 5 - 60:0,target 3 - 187:316 reduce - 48:299,target 137 - 99:258,target 59 - 34:288,target 126 + 227:321 reduce + 17:321,target 11 + 59:0,target 15 + 60:0,target 13 + 63:321,target 17 + 48:299,target 128 + 34:288,target 117 240:0 reduce 239:0 reduce - 157:316 reduce - 4:305,target 58 - 248:0,target 183 - 0:330,target 9 - 127:316 reduce - 144:316,target 190 - 195:265,target 198 - 190:316,target 143 - 189:316,target 94 - 245:316,target 176 - 176:0,target 127 + 187:321 reduce + 45:317,target 157 + 248:0,target 181 + 193:273 shift + 0:329,target 8 + 193:274 shift + 193:275 shift + 157:321 reduce + 217:0,target 18 + 47:385,target 116 + 127:321 reduce + 176:0,target 134 117:0 reduce - 39:316,target 141 - 40:316,target 146 - 85:316,target 140 - 72:316 reduce - 39:427,target 145 - 145:0,target 97 - 17:257 shift - 47:263 reduce + 145:0,target 149 + 0:388,target 45 160:0 reduce 159:0 reduce - 97:318,target 177 - 17:258 shift - 47:264 reduce - 208:326,target 244 - 17:259 shift - 17:260 shift - 42:316 reduce - 47:265 reduce - 114:0,target 19 - 17:261 shift - 47:266 reduce + 123:321,target 42 + 72:321 reduce + 168:321,target 130 + 138:315,target 184 + 224:321,target 170 + 114:0,target 33 17:262 shift - 47:267 reduce - 23:397,target 91 - 263:316 reduce - 12:316 reduce - 233:316 reduce - 198:274,target 226 + 94:326,target 179 + 17:263 shift + 47:268 reduce + 64:321,target 82 + 17:264 shift + 42:321 reduce + 47:269 reduce + 47:270 reduce + 212:0 reduce + 17:265 shift + 47:271 reduce + 17:266 shift + 47:272 reduce + 17:267 shift + 0:346,target 16 + 12:321 reduce 254:0 reduce - 1:316 shift - 7:262,target 63 + 46:428,target 160 + 7:262,target 58 + 13:320,target 5 + 13:319,target 4 17:406,target 71 - 100:316,target 86 - 44:308,target 111 - 56:0,target 113 - 203:316 shift - 193:316 reduce - 145:316,target 97 - 201:316,target 157 - 246:316,target 189 - 86:316,target 135 - 163:316 reduce + 23:355,target 87 + 233:321 reduce + 44:308,target 102 + 56:0,target 124 + 1:321 shift + 203:321 reduce + 193:273,target 217 0:415,target 51 - 245:0,target 176 - 198:273 shift + 41:427,target 152 + 245:0,target 186 132:0 reduce - 198:274 shift - 133:316 reduce - 214:0,target 116 + 163:321 reduce + 124:321,target 43 + 170:321,target 79 + 169:321,target 80 + 225:321,target 25 + 19:321,target 78 + 20:321,target 79 174:0 reduce - 173:0,target 69 - 103:316 reduce - 0:363,target 30 - 77:316 reduce - 96:415 goto + 65:321,target 83 + 133:321 reduce + 173:0,target 138 + 0:363,target 26 + 23:261,target 86 226:0 reduce - 33:306,target 109 - 47:313 shift - 199:274,target 230 - 48:291,target 129 - 48:301,target 139 - 34:279,target 117 - 34:280,target 118 - 3:313,target 57 - 8:262,target 63 - 111:0,target 51 - 18:396,target 77 - 101:316,target 87 - 146:316,target 98 + 142:0,target 109 + 103:321 reduce + 23:257 shift + 48:291,target 120 + 48:301,target 130 + 23:258 shift + 34:280,target 109 + 77:321 shift + 3:313,target 67 + 8:262,target 58 + 23:259 shift + 23:260 shift + 111:0,target 30 + 23:261 shift + 161:327,target 118 + 47:318 shift 17:0 reduce - 202:316,target 235 - 192:316,target 156 - 247:316,target 174 - 17:316 reduce - 47:322 reduce - 17:259,target 60 - 17:260,target 61 + 0:321,target 6 36:415 goto - 42:316,target 1 - 47:265,target 105 - 168:302 shift - 163:343 shift - 87:316,target 136 - 168:303 shift - 47:325 reduce - 168:304 shift + 57:311,target 105 + 104:0 reduce + 17:321 reduce + 47:376,target 116 59:0 reduce 60:0 reduce - 238:316 reduce - 168:305 shift - 168:306 shift - 6:316 reduce - 30:262,target 63 - 168:307 shift - 168:308 shift + 47:327 reduce + 30:262,target 58 + 125:321,target 44 + 47:330 reduce + 171:321,target 137 + 238:321 reduce + 226:321,target 26 146:0 reduce - 53:0,target 59 - 208:316 shift - 0:380,target 41 - 41:402,target 152 - 47:335 reduce - 22:0,target 84 - 47:336 reduce - 163:356 shift - 188:0 reduce - 168:316 reduce - 242:0,target 185 - 23:388,target 88 - 34:296,target 134 - 195:325,target 202 - 208:326 shift - 208:327 shift - 138:316 reduce - 4:313,target 58 + 53:0,target 69 + 161:386,target 118 + 6:321 reduce + 21:321,target 94 + 42:264,target 60 + 66:321,target 76 + 0:380,target 40 + 0:379,target 39 + 41:402,target 150 + 22:0,target 95 + 208:321 shift + 198:321 reduce + 47:340 reduce + 242:0,target 179 + 34:296,target 125 + 34:306,target 135 + 47:341 reduce + 138:314 shift + 168:321 reduce + 138:315 shift + 138:316 shift + 4:313,target 68 241:0 reduce - 208:328 shift - 102:316,target 88 - 0:337,target 13 - 147:316,target 144 - 208:332 shift - 203:316,target 238 - 193:316,target 155 - 248:316,target 183 - 170:0,target 118 - 108:316 reduce - 88:316,target 137 + 211:0,target 127 + 162:327,target 198 + 1:321,target 55 + 170:0,target 79 + 169:0,target 80 + 18:259,target 74 + 18:260,target 75 32:0 reduce - 83:316 reduce - 165:267,target 107 - 138:0,target 43 - 18:371,target 73 - 208:338 shift + 108:321 reduce 42:406 goto - 195:384,target 210 - 25:313,target 94 + 159:429,target 191 + 83:321 reduce + 126:321,target 45 118:0 reduce - 47:357 reduce - 53:316 reduce - 107:0,target 47 - 208:344 shift + 107:0,target 61 + 227:321,target 27 + 192:392,target 208 + 162:386,target 207 + 22:321,target 95 + 47:361 reduce 6:0 reduce - 208:346 shift - 200:272,target 233 - 161:0 reduce - 7:0,target 1 - 165:336,target 107 - 244:316 reduce - 81:0,target 120 + 53:321 reduce + 67:321,target 87 + 7:0,target 11 + 81:0,target 93 + 161:361,target 118 213:0 reduce - 0:354,target 22 - 166:431,target 213 - 47:373 reduce - 49:0,target 110 - 50:0,target 65 - 214:316 reduce - 103:316,target 89 - 148:316,target 145 - 204:316,target 239 - 194:316,target 154 - 48:282,target 120 + 0:354,target 20 + 244:321 reduce + 193:407 goto + 49:0,target 121 + 50:0,target 75 + 164:311,target 105 + 2:321,target 56 + 47:376 reduce + 48:282,target 111 255:0 reduce - 250:316,target 175 - 249:316,target 181 - 47:419,target 166 - 47:377 reduce - 3:304,target 57 - 174:316 reduce - 90:316,target 134 - 89:316,target 139 - 166:267,target 200 - 47:381 reduce - 238:0,target 162 - 208:365 shift + 47:419,target 162 + 214:321 shift + 95:265,target 61 + 47:380 reduce + 238:0,target 163 47:383 reduce - 47:384 reduce - 144:316 shift - 23:340 shift - 57:302,target 105 + 174:321 reduce + 127:321,target 46 + 47:385 reduce + 173:321,target 138 + 47:386 reduce + 228:321,target 171 + 188:315,target 184 + 144:321 reduce 133:0 reduce - 114:316 reduce - 47:391 reduce - 88:316 reduce + 68:321,target 90 + 166:0,target 129 + 47:392 reduce 47:394 reduce - 166:336,target 204 - 135:0,target 40 - 23:351 shift - 58:316 reduce - 168:303,target 106 - 47:325,target 105 - 163:430 goto - 104:316,target 185 + 135:0,target 54 + 114:321 reduce + 175:0 reduce + 162:361,target 202 + 88:321 shift + 0:371,target 33 + 104:0,target 58 + 93:325,target 175 17:406 goto - 48:298,target 136 + 23:355 shift + 48:298,target 127 227:0 reduce - 150:316,target 147 - 149:316,target 146 - 99:257,target 58 - 34:287,target 125 - 205:316,target 240 - 28:316 shift - 251:316,target 178 - 4:304,target 58 - 208:391 shift - 91:316,target 133 - 4:0,target 58 - 250:316 reduce - 249:316 reduce - 242:365,target 259 + 34:287,target 116 + 58:321 reduce + 3:321,target 67 + 4:0,target 68 + 0:328,target 7 + 28:321 shift 47:419 goto - 27:313,target 101 - 34:275 shift - 47:384,target 105 - 220:316 reduce - 219:316 reduce - 195:264,target 197 + 17:267,target 63 + 162:430,target 210 + 128:321,target 47 + 250:321 reduce + 249:321 reduce + 174:321,target 139 + 230:321,target 22 + 229:321,target 21 105:0 reduce - 34:276 shift - 198:409 goto - 34:277 shift + 24:321,target 89 61:0 reduce - 244:365 shift - 23:371 shift - 34:278 shift - 34:279 shift + 69:321,target 91 + 70:321,target 125 34:280 shift + 220:321 reduce + 219:321 reduce + 192:272,target 197 34:281 shift - 180:316 reduce - 179:316 reduce + 161:394,target 118 34:282 shift + 39:426,target 141 + 244:369 shift 147:0 reduce 34:283 shift - 235:0,target 193 - 0:387,target 46 + 235:0,target 165 + 192:383,target 205 + 0:387,target 44 34:284 shift - 41:399,target 149 - 168:412 goto - 97:317,target 176 + 41:399,target 147 34:285 shift - 23:378 shift + 180:321 reduce + 179:321 reduce + 138:314,target 183 34:286 shift - 150:316 reduce - 149:316 reduce - 99:257 shift 34:287 shift - 194:0,target 154 - 99:258 shift 34:288 shift 190:0 reduce 189:0 reduce - 99:260 shift - 99:259 shift - 23:396,target 90 34:289 shift 34:290 shift 34:300 shift - 105:316,target 45 - 99:261 shift + 205:333,target 243 34:291 shift 34:301 shift - 151:316,target 148 - 99:262 shift + 150:321 reduce + 149:321 reduce 34:292 shift - 206:316,target 158 - 163:0,target 153 - 120:316 reduce - 119:316 reduce + 34:302 shift + 163:0,target 120 + 138:414 goto + 4:321,target 68 34:293 shift - 252:316,target 177 + 34:303 shift 34:294 shift - 94:316 reduce - 0:345,target 17 + 34:304 shift + 192:341,target 201 + 0:345,target 15 34:295 shift - 46:316,target 163 + 34:305 shift 242:0 reduce - 92:316,target 173 - 23:388 shift 34:296 shift - 198:273,target 225 - 132:0,target 37 + 34:306 shift + 132:0,target 51 + 120:321 reduce + 119:321 reduce 34:297 shift 34:298 shift - 208:432 goto - 7:261,target 62 - 23:392 shift + 13:318,target 3 34:299 shift - 163:430,target 194 - 64:316 reduce - 101:0,target 87 - 44:307,target 110 - 18:378,target 74 - 23:396 shift - 23:397 shift + 94:322 shift + 130:321,target 49 + 129:321,target 48 + 101:0,target 55 + 23:404 goto + 44:307,target 101 + 175:321,target 140 + 94:324 shift + 231:321,target 169 + 205:392,target 249 + 94:326 shift + 64:321 reduce + 71:321,target 92 120:0 reduce 119:0 reduce + 162:394,target 209 53:417 goto - 255:316 reduce - 98:317,target 180 7:0 reduce - 162:0 reduce - 225:316 reduce - 106:316,target 46 - 249:365 shift - 152:316,target 149 - 263:0,target 179 - 207:316,target 241 - 0:362,target 29 - 12:0,target 74 - 253:316,target 171 - 214:0 reduce - 185:316 shift - 93:316,target 67 - 23:426 goto - 33:305,target 108 - 232:0,target 11 - 48:289,target 127 - 48:290,target 128 - 48:300,target 138 - 244:365,target 260 - 23:371,target 86 - 34:278,target 116 - 8:261,target 62 + 255:321 reduce + 205:350,target 247 + 0:362,target 25 + 12:0,target 86 + 225:321 reduce + 23:259,target 84 + 23:260,target 85 + 232:0,target 196 + 48:289,target 118 + 48:290,target 119 + 48:300,target 129 + 185:321 reduce + 3:312,target 67 256:0 reduce - 155:316 reduce - 48:411,target 167 - 201:0,target 157 - 160:0,target 52 - 159:0,target 102 - 125:316 reduce - 17:258,target 59 - 47:264,target 105 - 99:316 reduce - 128:0,target 33 - 30:261,target 62 + 18:405,target 77 + 48:411,target 163 + 191:0,target 157 + 131:321,target 50 + 176:321,target 134 + 232:321,target 196 + 161:268 reduce + 0:319,target 4 + 0:320,target 5 + 161:270 reduce + 161:269 reduce + 155:321 reduce + 26:321,target 91 + 161:271 reduce + 160:0,target 115 + 159:0,target 156 + 72:321,target 6 + 161:272 reduce + 57:309,target 103 + 57:310,target 104 + 128:0,target 47 + 125:321 reduce 134:0 reduce - 69:316 reduce - 70:316 reduce - 36:314,target 4 - 107:316,target 47 - 41:401,target 151 + 99:321 reduce + 90:0 reduce + 89:0 reduce + 161:385,target 118 + 42:263,target 59 + 41:401,target 149 + 69:321 reduce + 70:321 reduce 176:0 reduce - 153:316,target 150 - 39:316 reduce - 40:316 shift - 208:316,target 243 - 254:316,target 169 - 94:316,target 85 - 34:295,target 133 - 261:316 reduce - 10:316 shift - 71:0,target 80 - 245:365,target 261 + 172:414,target 213 + 6:321,target 74 + 34:295,target 124 + 34:305,target 134 + 39:321 reduce + 40:321 shift + 159:360,target 190 + 71:0,target 92 228:0 reduce - 191:310 shift - 191:309 shift - 39:0,target 141 - 231:316 reduce - 191:311 shift - 39:329 shift - 260:0,target 188 - 259:0,target 186 - 201:316 reduce - 165:266,target 107 + 4:312,target 68 + 261:321 reduce + 132:321,target 51 + 0:336,target 10 + 10:321 shift + 39:0,target 144 + 177:321,target 141 + 233:321,target 195 + 260:0,target 182 + 259:0,target 193 + 18:258,target 73 + 73:321,target 7 + 231:321 reduce + 47:392,target 116 13:421,target 67 - 228:0,target 15 + 39:334 shift + 228:0,target 171 106:0 reduce - 196:268 shift - 195:383,target 209 - 166:263 shift - 165:377,target 107 62:0 reduce - 196:270 shift - 196:269 shift - 166:264 shift - 166:265 shift - 161:316 reduce - 187:0,target 55 - 166:266 shift - 166:267 shift + 201:321 shift + 191:321 reduce + 187:0,target 146 + 162:385,target 206 0:y,target 2 0:395,target 49 148:0 reduce - 108:316,target 48 - 200:271,target 232 - 156:0,target 99 - 154:316,target 151 - 131:316 reduce - 210:316,target 235 - 209:316,target 235 - 255:316,target 170 - 165:335,target 107 - 49:316,target 110 - 50:316,target 65 - 201:0 reduce - 125:0,target 30 - 95:316,target 174 - 101:316 reduce - 246:365,target 262 - 20:422,target 83 - 45:309 shift - 0:353,target 21 - 75:316 reduce - 45:312 shift + 196:276 shift + 156:0,target 62 + 196:277 shift + 7:321,target 11 + 196:279 shift + 191:0 reduce + 131:321 reduce + 125:0,target 44 + 161:327 reduce + 20:422,target 81 + 161:330 reduce + 0:353,target 19 + 133:321,target 52 + 101:321 reduce 243:0 reduce - 4:302 reduce - 4:303 reduce - 48:281,target 119 - 4:304 reduce - 4:305 reduce - 3:303,target 57 - 4:306 reduce + 178:321,target 142 + 45:314 shift + 234:321,target 164 + 164:310,target 104 + 164:309,target 103 + 48:281,target 110 + 75:321 reduce + 28:321,target 98 + 98:0,target 99 + 45:317 shift + 74:321,target 8 + 95:264,target 60 34:411 goto - 166:266,target 199 4:307 reduce - 165:394,target 107 + 195:409,target 224 + 161:340 reduce 4:308 reduce + 161:341 reduce + 94:425 goto 4:310 reduce 4:309 reduce - 15:316 shift - 67:0,target 75 - 166:377,target 207 + 67:0,target 87 4:311 reduce + 4:312 reduce 4:313 reduce + 188:314,target 183 121:0 reduce 4:314 reduce - 26:423,target 100 - 236:316 reduce + 15:321 shift + 26:423,target 96 + 4:315 reduce 4:316 reduce - 57:412,target 170 - 110:316,target 50 - 109:316,target 49 - 256:0,target 172 - 155:316,target 152 + 57:412,target 166 + 256:0,target 189 + 4:318 reduce 8:0 reduce - 211:316,target 256 - 200:408,target 234 - 195:357,target 205 - 256:316,target 172 - 206:316 reduce + 236:321 reduce + 4:319 reduce + 8:321,target 11 163:0 reduce - 166:335,target 203 - 225:0,target 13 - 0:369,target 35 - 0:370,target 36 - 247:365,target 263 - 168:302,target 105 - 163:343,target 192 - 39:379 shift + 4:321 reduce + 161:376,target 118 + 225:0,target 25 + 206:318 shift + 206:319 shift + 0:370,target 32 + 206:321 shift 215:0 reduce - 184:0,target 124 - 48:297,target 135 - 23:378,target 87 - 34:286,target 124 - 166:322 shift - 153:0,target 150 - 136:316 reduce - 99:406 goto + 184:0,target 65 + 33:313,target 107 + 39:381 shift + 134:321,target 53 + 48:297,target 126 + 180:321,target 136 + 179:321,target 143 + 161:361 reduce + 34:286,target 115 + 235:321,target 165 + 166:321 reduce + 3:319,target 67 + 153:0,target 111 7:406,target 64 - 4:303,target 58 + 29:321,target 72 + 30:321,target 11 + 75:321,target 9 } array set cat::rules { - 9,l 407 - 164,l 431 - 49,l 412 - 50,l 412 - 136,l 426 + 9,l 405 + 164,l 430 + 49,l 411 + 50,l 411 + 136,l 423 92,l 418 - 178,l 432 - 22,l 411 + 178,l 431 + 22,l 408 108,l 418 - 64,l 418 - 151,l 428 - 193,l 433 + 64,l 414 + 151,l 427 + 193,l 431 36,l 411 - 123,l 423 + 123,l 418 78,l 418 - 165,l 431 - 51,l 412 - 137,l 426 + 165,l 430 + 51,l 411 + 137,l 423 93,l 418 - 180,l 432 - 179,l 432 - 23,l 411 + 180,l 431 + 179,l 431 + 23,l 409 109,l 418 110,l 418 - 65,l 418 - 152,l 428 - 194,l 434 + 65,l 414 + 152,l 427 + 194,l 431 37,l 411 - 124,l 423 + 124,l 418 79,l 418 80,l 418 - 166,l 431 - 10,l 407 - 52,l 413 - 138,l 426 + 166,l 430 + 10,l 405 + 52,l 411 + 138,l 424 94,l 418 - 181,l 432 - 24,l 411 + 181,l 431 + 24,l 409 111,l 418 - 66,l 418 - 153,l 429 - 195,l 434 + 66,l 414 + 153,l 427 + 195,l 432 38,l 411 - 125,l 423 + 125,l 418 81,l 418 - 167,l 431 - 11,l 408 - 53,l 413 - 139,l 426 - 140,l 426 + 167,l 430 + 11,l 406 + 53,l 411 + 139,l 424 + 140,l 424 95,l 418 - 182,l 432 - 25,l 411 + 182,l 431 + 25,l 410 112,l 418 - 67,l 418 - 0,l 435 - 154,l 429 - 196,l 434 + 67,l 415 + 0,l 433 + 154,l 427 + 196,l 432 39,l 411 40,l 411 - 126,l 423 + 126,l 421 82,l 418 - 168,l 431 - 12,l 408 - 54,l 414 - 141,l 427 + 168,l 430 + 12,l 406 + 54,l 411 + 141,l 425 96,l 418 - 183,l 432 - 26,l 411 + 183,l 431 + 26,l 410 113,l 418 - 68,l 418 - 1,l 406 - 155,l 430 - 197,l 434 + 68,l 415 + 1,l 404 + 155,l 427 41,l 411 - 127,l 424 + 127,l 421 83,l 418 - 170,l 431 - 169,l 431 - 13,l 409 + 170,l 430 + 169,l 430 + 13,l 406 100,l 418 - 55,l 414 - 142,l 427 + 55,l 412 + 142,l 425 97,l 418 - 184,l 432 - 27,l 411 + 184,l 431 + 27,l 410 114,l 418 - 69,l 418 - 70,l 418 - 2,l 406 - 156,l 430 - 198,l 434 + 69,l 416 + 70,l 417 + 2,l 404 + 156,l 428 42,l 411 - 128,l 424 + 128,l 421 84,l 418 - 171,l 431 - 14,l 409 + 171,l 430 + 14,l 406 101,l 418 - 56,l 414 - 143,l 427 + 56,l 412 + 143,l 425 98,l 418 - 185,l 432 + 185,l 431 28,l 411 - 115,l 421 - 71,l 418 - 3,l 406 - 157,l 431 - 199,l 434 + 115,l 418 + 71,l 416 + 3,l 404 + 157,l 428 43,l 411 - 129,l 424 - 130,l 425 + 129,l 421 + 130,l 422 85,l 418 - 172,l 431 - 15,l 410 + 172,l 430 + 15,l 406 102,l 418 - 57,l 415 - 144,l 428 + 57,l 412 + 144,l 426 99,l 418 - 186,l 432 + 186,l 431 30,l 411 29,l 411 - 116,l 421 + 116,l 419 72,l 418 - 4,l 406 - 158,l 431 + 4,l 404 + 158,l 429 44,l 411 - 131,l 425 + 131,l 422 86,l 418 - 173,l 431 - 16,l 410 + 173,l 430 + 16,l 406 103,l 418 - 58,l 415 - 145,l 428 - 187,l 432 + 58,l 412 + 145,l 426 + 187,l 431 31,l 411 - 117,l 421 + 117,l 418 73,l 418 - 5,l 406 - 160,l 431 - 159,l 431 - 45,l 412 - 132,l 425 + 5,l 404 + 160,l 430 + 159,l 429 + 45,l 411 + 132,l 423 87,l 418 - 174,l 432 - 17,l 410 + 174,l 430 + 17,l 406 104,l 418 - 59,l 416 - 60,l 417 - 146,l 428 - 188,l 432 + 59,l 412 + 60,l 412 + 146,l 426 + 188,l 431 32,l 411 - 118,l 421 + 118,l 420 74,l 418 - 6,l 406 - 161,l 431 - 46,l 412 - 133,l 426 + 6,l 405 + 161,l 430 + 46,l 411 + 133,l 423 88,l 418 - 175,l 432 - 18,l 411 - 105,l 419 - 61,l 416 - 147,l 428 - 200,l 434 - 190,l 432 - 189,l 432 + 175,l 430 + 18,l 407 + 105,l 418 + 61,l 412 + 147,l 427 + 190,l 431 + 189,l 431 33,l 411 - 119,l 422 - 120,l 422 + 119,l 418 + 120,l 418 75,l 418 - 7,l 406 - 162,l 431 - 47,l 412 - 134,l 426 + 7,l 405 + 162,l 430 + 47,l 411 + 134,l 423 89,l 418 90,l 418 - 176,l 432 - 20,l 411 - 19,l 411 + 176,l 430 + 20,l 407 + 19,l 407 106,l 418 - 62,l 418 - 148,l 428 - 191,l 432 + 62,l 413 + 148,l 427 + 191,l 431 34,l 411 - 121,l 423 + 121,l 418 76,l 418 - 8,l 407 - 163,l 431 - 48,l 412 - 135,l 426 + 8,l 405 + 163,l 430 + 48,l 411 + 135,l 423 91,l 418 - 177,l 432 - 21,l 411 - 107,l 420 - 63,l 418 - 149,l 428 - 150,l 428 - 192,l 433 + 177,l 431 + 21,l 408 + 107,l 418 + 63,l 413 + 149,l 427 + 150,l 427 + 192,l 431 35,l 411 - 122,l 423 + 122,l 418 77,l 418 } array set cat::rules { - 122,dc 3 - 187,dc 1 + 122,dc 2 + 187,dc 2 12,dc 1 - 77,dc 1 + 77,dc 2 114,dc 2 - 180,dc 2 - 179,dc 2 - 69,dc 3 - 70,dc 2 - 106,dc 3 + 180,dc 1 + 179,dc 1 + 69,dc 1 + 70,dc 0 + 106,dc 1 9,dc 1 172,dc 2 62,dc 1 @@ -1958,56 +1942,55 @@ 46,dc 1 148,dc 1 38,dc 1 - 141,dc 0 + 141,dc 1 31,dc 1 - 96,dc 1 - 133,dc 1 - 198,dc 1 + 96,dc 2 + 133,dc 3 23,dc 1 - 88,dc 2 + 88,dc 1 125,dc 2 - 191,dc 1 + 191,dc 2 15,dc 1 81,dc 3 - 117,dc 2 - 183,dc 1 - 73,dc 1 + 117,dc 3 + 183,dc 2 + 73,dc 0 109,dc 2 - 110,dc 1 - 175,dc 1 + 110,dc 2 + 175,dc 2 65,dc 1 - 102,dc 2 + 102,dc 1 5,dc 1 167,dc 2 57,dc 1 - 160,dc 2 - 159,dc 2 + 160,dc 1 + 159,dc 1 49,dc 1 50,dc 1 152,dc 1 42,dc 1 - 144,dc 1 + 144,dc 0 34,dc 1 99,dc 2 - 136,dc 1 + 136,dc 2 26,dc 1 92,dc 2 - 128,dc 1 + 128,dc 2 194,dc 1 18,dc 1 84,dc 1 - 121,dc 0 - 186,dc 2 - 11,dc 1 - 76,dc 1 + 121,dc 1 + 186,dc 1 + 11,dc 0 + 76,dc 2 113,dc 2 178,dc 1 - 68,dc 2 - 105,dc 0 + 68,dc 1 + 105,dc 3 8,dc 1 171,dc 2 - 61,dc 3 - 1,dc 0 + 61,dc 1 + 1,dc 1 163,dc 2 53,dc 1 155,dc 1 @@ -2019,24 +2002,22 @@ 30,dc 1 29,dc 1 95,dc 1 - 132,dc 1 - 197,dc 1 + 132,dc 0 22,dc 1 87,dc 2 124,dc 2 - 200,dc 1 - 190,dc 2 - 189,dc 1 + 190,dc 1 + 189,dc 2 14,dc 1 - 79,dc 2 - 80,dc 2 - 116,dc 3 + 79,dc 3 + 80,dc 3 + 116,dc 0 182,dc 2 72,dc 1 - 108,dc 4 - 174,dc 1 + 108,dc 2 + 174,dc 2 64,dc 1 - 101,dc 4 + 101,dc 5 4,dc 1 166,dc 2 56,dc 1 @@ -2044,59 +2025,59 @@ 48,dc 1 151,dc 1 41,dc 1 - 143,dc 2 + 143,dc 1 33,dc 1 98,dc 2 - 135,dc 1 + 135,dc 2 25,dc 1 - 91,dc 1 - 127,dc 1 - 193,dc 1 + 91,dc 2 + 127,dc 3 + 193,dc 2 17,dc 1 - 83,dc 1 - 119,dc 2 - 120,dc 1 - 185,dc 1 + 83,dc 2 + 119,dc 4 + 120,dc 2 + 185,dc 2 10,dc 1 - 75,dc 2 - 112,dc 2 + 75,dc 1 + 112,dc 4 177,dc 1 - 67,dc 2 + 67,dc 1 104,dc 2 7,dc 1 170,dc 2 169,dc 2 59,dc 1 - 60,dc 0 + 60,dc 1 0,dc 1 162,dc 2 52,dc 1 - 154,dc 2 + 154,dc 1 44,dc 1 - 146,dc 1 + 146,dc 2 36,dc 1 138,dc 1 28,dc 1 - 94,dc 3 + 94,dc 1 131,dc 1 196,dc 1 21,dc 1 - 86,dc 2 + 86,dc 1 123,dc 2 - 188,dc 2 + 188,dc 1 13,dc 1 78,dc 2 115,dc 2 181,dc 1 - 71,dc 2 - 107,dc 0 + 71,dc 3 + 107,dc 1 173,dc 2 - 63,dc 0 + 63,dc 1 100,dc 2 3,dc 1 165,dc 2 55,dc 1 - 157,dc 1 + 157,dc 2 47,dc 1 149,dc 1 150,dc 1 @@ -2105,1526 +2086,1507 @@ 142,dc 1 32,dc 1 97,dc 2 - 134,dc 1 - 199,dc 1 + 134,dc 2 24,dc 1 - 89,dc 2 - 90,dc 5 + 89,dc 1 + 90,dc 2 126,dc 2 192,dc 1 16,dc 1 82,dc 2 - 118,dc 3 - 184,dc 2 + 118,dc 0 + 184,dc 1 74,dc 1 111,dc 2 - 176,dc 1 - 66,dc 2 + 176,dc 2 + 66,dc 1 103,dc 2 6,dc 1 168,dc 2 58,dc 1 - 161,dc 2 + 161,dc 1 51,dc 1 153,dc 1 43,dc 1 145,dc 1 35,dc 1 - 137,dc 1 + 137,dc 2 27,dc 1 93,dc 2 - 129,dc 1 - 130,dc 1 + 129,dc 3 + 130,dc 2 195,dc 1 20,dc 1 19,dc 1 - 85,dc 2 + 85,dc 1 } array set cat::rules { - 41,line 295 - 37,line 291 - 34,line 288 - 31,line 285 - 27,line 281 - 24,line 278 - 21,line 275 - 17,line 269 - 14,line 264 - 11,line 259 - 9,line 255 - 6,line 251 - 3,line 248 - 198,line 502 - 195,line 499 - 192,line 494 - 188,line 486 - 185,line 483 - 182,line 480 - 178,line 476 - 175,line 472 - 172,line 467 - 168,line 463 - 165,line 459 - 162,line 456 - 158,line 451 - 155,line 446 - 152,line 439 - 148,line 435 - 145,line 432 - 142,line 427 - 138,line 421 - 135,line 418 - 132,line 413 - 128,line 407 - 125,line 402 - 122,line 399 - 118,line 391 - 115,line 388 - 99,line 371 - 112,line 383 - 96,line 368 - 108,line 379 - 93,line 365 - 105,line 377 - 89,line 361 - 90,line 362 - 102,line 375 - 86,line 358 - 83,line 355 - 79,line 350 - 80,line 351 - 76,line 346 - 73,line 342 - 69,line 338 - 70,line 339 - 66,line 333 - 63,line 327 - 59,line 320 - 60,line 320 - 56,line 314 - 53,line 309 - 49,line 304 - 50,line 305 - 46,line 301 - 43,line 297 - 39,line 293 - 40,line 294 - 36,line 290 - 33,line 287 - 30,line 284 - 29,line 283 - 26,line 280 - 23,line 277 - 20,line 274 - 19,line 273 - 16,line 268 - 13,line 263 - 10,line 256 - 8,line 254 - 5,line 250 - 2,line 247 - 197,line 501 - 194,line 498 - 191,line 491 - 187,line 485 - 184,line 482 - 181,line 479 - 177,line 475 - 174,line 471 - 171,line 466 - 167,line 462 - 164,line 458 - 161,line 455 - 157,line 450 - 154,line 443 - 151,line 438 - 147,line 434 - 144,line 431 - 141,line 426 - 137,line 420 - 134,line 417 - 131,line 412 - 127,line 406 - 124,line 401 - 121,line 398 - 117,line 390 - 114,line 385 - 98,line 370 - 111,line 382 - 95,line 367 - 107,line 378 - 92,line 364 - 104,line 377 - 88,line 360 - 101,line 374 - 85,line 357 - 82,line 353 - 78,line 349 - 75,line 345 - 72,line 341 - 68,line 336 - 65,line 331 - 62,line 325 - 58,line 317 - 55,line 313 - 52,line 308 - 48,line 303 - 45,line 300 - 42,line 296 - 38,line 292 - 35,line 289 - 32,line 286 - 28,line 282 - 25,line 279 - 22,line 276 - 18,line 272 - 15,line 267 - 12,line 260 - 60,e 1 - 7,line 252 - 4,line 249 - 1,line 246 - 199,line 503 - 196,line 500 - 193,line 495 - 200,line 504 - 190,line 490 - 189,line 487 - 105,e 1 - 186,line 484 - 183,line 481 - 180,line 478 - 179,line 477 - 176,line 473 - 173,line 468 - 170,line 465 - 169,line 464 - 166,line 460 - 163,line 457 - 160,line 454 - 159,line 452 - 156,line 447 - 153,line 442 - 149,line 436 - 150,line 437 - 146,line 433 - 143,line 428 - 139,line 422 - 140,line 423 - 136,line 419 - 133,line 416 - 129,line 408 - 130,line 411 - 126,line 403 - 123,line 400 - 119,line 394 - 120,line 395 - 116,line 389 - 113,line 384 - 97,line 369 - 109,line 380 - 110,line 381 - 94,line 366 - 106,line 378 - 91,line 363 - 103,line 376 - 87,line 359 - 100,line 373 - 84,line 356 - 81,line 352 - 77,line 347 - 74,line 343 - 71,line 340 - 67,line 335 - 107,e 2 - 64,line 329 - 61,line 321 - 57,line 316 - 54,line 312 - 51,line 306 - 47,line 302 - 44,line 298 + 41,line 308 + 37,line 304 + 34,line 301 + 31,line 298 + 27,line 292 + 24,line 287 + 21,line 282 + 17,line 275 + 14,line 272 + 11,line 269 + 9,line 266 + 6,line 263 + 3,line 259 + 195,line 509 + 192,line 502 + 188,line 498 + 185,line 495 + 182,line 492 + 178,line 487 + 175,line 482 + 172,line 479 + 168,line 474 + 165,line 471 + 162,line 467 + 158,line 461 + 155,line 454 + 152,line 451 + 148,line 447 + 145,line 442 + 142,line 437 + 138,line 431 + 135,line 426 + 132,line 423 + 128,line 415 + 125,line 410 + 122,line 407 + 118,line 403 + 115,line 402 + 99,line 385 + 112,line 399 + 96,line 382 + 108,line 394 + 93,line 378 + 105,line 391 + 89,line 373 + 90,line 375 + 102,line 388 + 86,line 369 + 83,line 366 + 79,line 361 + 80,line 362 + 76,line 356 + 73,line 350 + 69,line 343 + 70,line 343 + 66,line 337 + 63,line 332 + 59,line 327 + 60,line 328 + 56,line 324 + 53,line 320 + 49,line 316 + 50,line 317 + 46,line 313 + 43,line 310 + 39,line 306 + 40,line 307 + 36,line 303 + 33,line 300 + 30,line 297 + 29,line 296 + 26,line 291 + 23,line 286 + 20,line 279 + 19,line 278 + 16,line 274 + 13,line 271 + 10,line 267 + 8,line 265 + 5,line 261 + 2,line 258 + 70,e 1 + 194,line 506 + 191,line 501 + 187,line 497 + 184,line 494 + 181,line 491 + 177,line 486 + 174,line 481 + 171,line 478 + 167,line 473 + 164,line 470 + 161,line 466 + 157,line 458 + 154,line 453 + 151,line 450 + 147,line 446 + 144,line 441 + 141,line 436 + 137,line 428 + 134,line 425 + 131,line 420 + 127,line 414 + 124,line 409 + 121,line 406 + 117,line 403 + 114,line 401 + 98,line 384 + 111,line 398 + 95,line 381 + 107,line 393 + 92,line 377 + 104,line 390 + 116,e 1 + 88,line 372 + 101,line 387 + 85,line 368 + 82,line 365 + 78,line 360 + 75,line 354 + 72,line 348 + 68,line 340 + 65,line 336 + 62,line 331 + 58,line 326 + 55,line 323 + 52,line 319 + 48,line 315 + 45,line 312 + 42,line 309 + 38,line 305 + 35,line 302 + 32,line 299 + 28,line 295 + 25,line 290 + 22,line 283 + 18,line 277 + 15,line 273 + 12,line 270 + 7,line 264 + 118,e 2 + 4,line 260 + 1,line 257 + 196,line 510 + 193,line 505 + 190,line 500 + 189,line 499 + 186,line 496 + 183,line 493 + 180,line 490 + 179,line 488 + 176,line 483 + 173,line 480 + 170,line 477 + 169,line 475 + 166,line 472 + 163,line 469 + 160,line 465 + 159,line 462 + 156,line 457 + 153,line 452 + 149,line 448 + 150,line 449 + 146,line 443 + 143,line 438 + 139,line 432 + 140,line 433 + 136,line 427 + 133,line 424 + 129,line 416 + 130,line 419 + 126,line 413 + 123,line 408 + 119,line 404 + 120,line 405 + 116,line 402 + 113,line 400 + 97,line 383 + 109,line 395 + 110,line 396 + 94,line 380 + 106,line 392 + 91,line 376 + 103,line 389 + 87,line 371 + 100,line 386 + 84,line 367 + 81,line 364 + 77,line 358 + 74,line 352 + 71,line 344 + 67,line 339 + 64,line 335 + 61,line 329 + 57,line 325 + 54,line 321 + 51,line 318 + 47,line 314 + 44,line 311 } array set cat::lr1_table { 66,trans {} - 35 {{112 {0 316} 1}} + 35 {{123 {0 321} 1}} 85,trans {} - 36 {{94 {0 316} 1} {57 {309 310 311} 0} {58 {309 310 311} 0}} - 37 {{95 {0 316} 1}} - 38 {{96 {0 316} 1}} - 40 {{98 {0 316} 1}} - 39 {{97 {0 316} 1} {141 {0 316} 0} {142 {0 316} 0} {143 {0 316} 0}} + 36 {{105 {0 321} 1} {67 {314 315 316} 0} {68 {314 315 316} 0}} + 37 {{106 {0 321} 1}} + 38 {{107 {0 321} 1}} + 40 {{109 {0 321} 1}} + 39 {{108 {0 321} 1} {144 {0 321} 0} {145 {0 321} 0} {146 {0 321} 0}} 117,trans {} - 41 {{99 {0 316} 1} {144 {0 316} 0} {145 {0 316} 0} {146 {0 316} 0} {147 {0 316} 0} {148 {0 316} 0} {149 {0 316} 0} {150 {0 316} 0} {151 {0 316} 0} {152 {0 316} 0}} + 41 {{110 {0 321} 1} {147 {0 321} 0} {148 {0 321} 0} {149 {0 321} 0} {150 {0 321} 0} {151 {0 321} 0} {152 {0 321} 0} {153 {0 321} 0} {154 {0 321} 0} {155 {0 321} 0}} 136,trans {} - 42 {{100 {0 316} 1} {1 {0 316} 0} {2 {0 316} 0} {3 {0 316} 0} {4 {0 316} 0} {5 {0 316} 0} {6 {0 316} 0} {7 {0 316} 0}} + 42 {{111 {0 321} 1} {11 {0 321} 0} {12 {0 321} 0} {13 {0 321} 0} {14 {0 321} 0} {15 {0 321} 0} {16 {0 321} 0} {17 {0 321} 0}} 155,trans {} - 43 {{101 {0 316} 1} {57 {313 314} 0} {58 {313 314} 0}} + 43 {{112 {0 321} 1} {67 {318 319} 0} {68 {318 319} 0}} 174,trans {} - 44 {{102 {0 316} 1} {45 {0 316} 0} {46 {0 316} 0} {47 {0 316} 0} {48 {0 316} 0} {49 {0 316} 0} {50 {0 316} 0} {51 {0 316} 0}} - 203,trans {{271 232} {272 233} {274 234} {410 235}} + 44 {{113 {0 321} 1} {55 {0 321} 0} {56 {0 321} 0} {57 {0 321} 0} {58 {0 321} 0} {59 {0 321} 0} {60 {0 321} 0} {61 {0 321} 0}} + 203,trans {{318 236} {319 237} {321 238} {415 239} {432 240}} 193,trans {} - 45 {{103 {0 316} 1} {52 {0 316} 0} {53 {0 316} 0}} + 45 {{114 {0 321} 1} {62 {0 321} 0} {63 {0 321} 0}} 222,trans {} - 46 {{104 {0 316} 1} {153 {0 316} 0} {154 {0 316} 0}} + 46 {{115 {0 321} 1} {156 {0 321} 0} {157 {0 321} 0}} 241,trans {} - 47 {{106 {0 316} 1} {108 {0 316} 1} {105 {263 264 265 266 267 322 325 335 336 357 373 377 381 383 384 391 394} 0}} + 47 {{117 {0 321} 1} {119 {0 321} 1} {116 {268 269 270 271 272 327 330 340 341 361 376 380 383 385 386 392 394} 0}} 260,trans {} 259,trans {} - 48 {{109 {0 316} 1} {18 {0 316} 0} {19 {0 316} 0} {20 {0 316} 0} {21 {0 316} 0} {22 {0 316} 0} {23 {0 316} 0} {24 {0 316} 0} {25 {0 316} 0} {26 {0 316} 0} {27 {0 316} 0} {28 {0 316} 0} {29 {0 316} 0} {30 {0 316} 0} {31 {0 316} 0} {32 {0 316} 0} {33 {0 316} 0} {34 {0 316} 0} {35 {0 316} 0} {36 {0 316} 0} {37 {0 316} 0} {38 {0 316} 0} {39 {0 316} 0} {40 {0 316} 0} {41 {0 316} 0} {42 {0 316} 0} {43 {0 316} 0} {44 {0 316} 0}} - 49 {{110 {0 316} 1}} - 50 {{65 {0 316} 1}} - 27,trans {{313 101}} - 46,trans {{316 165} {429 166}} - 51 {{115 {0 316} 1} {116 {0 316} 1} {57 {0 302 303 304 305 306 307 308 316} 0} {58 {0 302 303 304 305 306 307 308 316} 0}} + 48 {{120 {0 321} 1} {28 {0 321} 0} {29 {0 321} 0} {30 {0 321} 0} {31 {0 321} 0} {32 {0 321} 0} {33 {0 321} 0} {34 {0 321} 0} {35 {0 321} 0} {36 {0 321} 0} {37 {0 321} 0} {38 {0 321} 0} {39 {0 321} 0} {40 {0 321} 0} {41 {0 321} 0} {42 {0 321} 0} {43 {0 321} 0} {44 {0 321} 0} {45 {0 321} 0} {46 {0 321} 0} {47 {0 321} 0} {48 {0 321} 0} {49 {0 321} 0} {50 {0 321} 0} {51 {0 321} 0} {52 {0 321} 0} {53 {0 321} 0} {54 {0 321} 0}} + 49 {{121 {0 321} 1}} + 50 {{75 {0 321} 1}} + 27,trans {{318 97}} + 46,trans {{321 161} {428 162}} + 51 {{126 {0 321} 1} {127 {0 321} 1} {67 {0 307 308 309 310 311 312 313 321} 0} {68 {0 307 308 309 310 311 312 313 321} 0}} 65,trans {} 52 {{0 0 1}} 84,trans {} - 53 {{59 0 1} {61 0 1} {60 316 0}} - 54 {{76 {0 316} 1}} - 55 {{111 {0 316} 2}} - 56 {{113 {0 316} 2}} + 53 {{69 0 1} {71 0 1} {70 321 0}} + 54 {{88 {0 321} 1}} + 55 {{122 {0 321} 2}} + 56 {{124 {0 321} 2}} 116,trans {} - 57 {{117 {0 316} 2} {118 {0 316} 2} {45 {0 316} 0} {46 {0 316} 0} {47 {0 316} 0} {48 {0 316} 0} {49 {0 316} 0} {50 {0 316} 0} {51 {0 316} 0}} + 57 {{128 {0 321} 2} {129 {0 321} 2} {55 {0 321} 0} {56 {0 321} 0} {57 {0 321} 0} {58 {0 321} 0} {59 {0 321} 0} {60 {0 321} 0} {61 {0 321} 0}} 135,trans {} - 58 {{2 {0 316} 1}} + 58 {{12 {0 321} 1}} 154,trans {} - 59 {{5 {0 316} 1}} - 60 {{3 {0 316} 1}} - 173,trans {{316 219}} - 61 {{6 {0 316} 1}} - 202,trans {{273 229} {274 230} {409 231}} - 192,trans {} - 62 {{4 {0 316} 1}} - 221,trans {{316 264}} - 63 {{7 {0 316} 1}} + 59 {{15 {0 321} 1}} + 60 {{13 {0 321} 1}} + 173,trans {} + 61 {{16 {0 321} 1}} + 202,trans {} + 192,trans {{314 187} {315 188} {316 189} {414 219}} + 62 {{14 {0 321} 1}} + 221,trans {} + 63 {{17 {0 321} 1}} 240,trans {} 239,trans {} - 64 {{70 {0 316} 2}} + 64 {{82 {0 321} 2}} 258,trans {} - 65 {{71 {0 316} 2}} - 66 {{66 {0 316} 2}} - 26,trans {{316 95} {348 96} {352 97} {375 98} {393 99} {423 100}} - 45,trans {{309 162} {312 163} {413 164}} - 67 {{75 {0 316} 2}} + 65 {{83 {0 321} 2}} + 66 {{76 {0 321} 2}} + 26,trans {{321 91} {352 92} {356 93} {378 94} {393 95} {423 96}} + 45,trans {{314 158} {317 159} {413 160}} + 67 {{87 {0 321} 2}} 64,trans {} - 68 {{78 {0 316} 2}} + 68 {{90 {0 321} 2}} 83,trans {} - 69 {{79 {0 316} 2}} - 70 {{114 {0 316} 2}} - 71 {{80 {0 316} 2}} - 72 {{199 316 1}} - 73 {{196 316 1}} + 69 {{91 {0 321} 2}} + 70 {{125 {0 321} 2}} + 71 {{92 {0 321} 2}} + 72 {{6 321 1}} + 73 {{7 321 1}} 115,trans {} - 74 {{197 316 1}} + 74 {{8 321 1}} 134,trans {} - 75 {{198 316 1}} + 75 {{9 321 1}} 153,trans {} - 76 {{200 316 1}} - 172,trans {{302 105} {303 106} {304 107} {305 108} {306 109} {307 110} {308 111} {412 218}} - 77 {{195 316 1}} - 201,trans {{313 228}} + 76 {{10 321 1}} + 172,trans {} + 77 {{81 {0 321} 2}} + 201,trans {{276 233} {277 234} {408 235}} 191,trans {} - 78 {{194 316 1}} + 78 {{78 {0 321} 2}} 220,trans {} 219,trans {} - 79 {{81 {0 316} 2}} - 80 {{68 {0 316} 2}} + 79 {{131 {0 321} 1}} + 80 {{130 {0 321} 1}} 238,trans {} - 81 {{120 {0 316} 1}} + 81 {{93 {0 321} 2}} 257,trans {} - 82 {{119 {0 316} 1}} - 83 {{82 {0 316} 2}} - 25,trans {{313 94}} - 44,trans {{302 105} {303 106} {304 107} {305 108} {306 109} {307 110} {308 111} {412 161}} - 84 {{138 316 1}} + 82 {{1 321 1}} + 83 {{2 321 1}} + 25,trans {{318 90}} + 44,trans {{307 101} {308 102} {309 103} {310 104} {311 105} {312 106} {313 107} {412 157}} + 84 {{3 321 1}} 63,trans {} - 85 {{140 316 1}} - 82,trans {{316 176}} - 86 {{135 316 1}} - 87 {{136 316 1}} - 0 {{0 0 0} {59 0 0} {61 0 0} {62 {0 316} 0} {63 {0 316} 0} {64 {0 316} 0} {65 {0 316} 0} {66 {0 316} 0} {67 {0 316} 0} {68 {0 316} 0} {69 {0 316} 0} {70 {0 316} 0} {71 {0 316} 0} {72 {0 316} 0} {73 {0 316} 0} {74 {0 316} 0} {75 {0 316} 0} {76 {0 316} 0} {77 {0 316} 0} {78 {0 316} 0} {79 {0 316} 0} {80 {0 316} 0} {81 {0 316} 0} {82 {0 316} 0} {83 {0 316} 0} {84 {0 316} 0} {85 {0 316} 0} {86 {0 316} 0} {87 {0 316} 0} {88 {0 316} 0} {89 {0 316} 0} {90 {0 316} 0} {91 {0 316} 0} {92 {0 316} 0} {93 {0 316} 0} {94 {0 316} 0} {95 {0 316} 0} {96 {0 316} 0} {97 {0 316} 0} {98 {0 316} 0} {99 {0 316} 0} {100 {0 316} 0} {101 {0 316} 0} {102 {0 316} 0} {103 {0 316} 0} {104 {0 316} 0} {106 {0 316} 0} {108 {0 316} 0} {109 {0 316} 0} {110 {0 316} 0} {111 {0 316} 0} {112 {0 316} 0} {113 {0 316} 0} {114 {0 316} 0} {115 {0 316} 0} {116 {0 316} 0} {117 {0 316} 0} {118 {0 316} 0} {57 {313 314} 0} {58 {313 314} 0}} - 88 {{137 316 1}} - 1 {{111 {0 316} 1}} - 89 {{139 316 1}} - 90 {{134 316 1}} + 85 {{4 321 1}} + 82,trans {} + 86 {{5 321 1}} + 87 {{80 {0 321} 2}} + 0 {{0 0 0} {69 0 0} {71 0 0} {72 {0 321} 0} {73 {0 321} 0} {74 {0 321} 0} {75 {0 321} 0} {76 {0 321} 0} {77 {0 321} 0} {78 {0 321} 0} {79 {0 321} 0} {80 {0 321} 0} {81 {0 321} 0} {82 {0 321} 0} {83 {0 321} 0} {84 {0 321} 0} {85 {0 321} 0} {86 {0 321} 0} {87 {0 321} 0} {88 {0 321} 0} {89 {0 321} 0} {90 {0 321} 0} {91 {0 321} 0} {92 {0 321} 0} {93 {0 321} 0} {94 {0 321} 0} {95 {0 321} 0} {96 {0 321} 0} {97 {0 321} 0} {98 {0 321} 0} {99 {0 321} 0} {100 {0 321} 0} {101 {0 321} 0} {102 {0 321} 0} {103 {0 321} 0} {104 {0 321} 0} {105 {0 321} 0} {106 {0 321} 0} {107 {0 321} 0} {108 {0 321} 0} {109 {0 321} 0} {110 {0 321} 0} {111 {0 321} 0} {112 {0 321} 0} {113 {0 321} 0} {114 {0 321} 0} {115 {0 321} 0} {117 {0 321} 0} {119 {0 321} 0} {120 {0 321} 0} {121 {0 321} 0} {122 {0 321} 0} {123 {0 321} 0} {124 {0 321} 0} {125 {0 321} 0} {126 {0 321} 0} {127 {0 321} 0} {128 {0 321} 0} {129 {0 321} 0} {67 {318 319} 0} {68 {318 319} 0}} + 88 {{79 {0 321} 2}} + 1 {{122 {0 321} 1}} + 89 {{77 {0 321} 2}} + 90 {{96 {0 321} 2}} 114,trans {} - 2 {{113 {0 316} 1}} - 91 {{133 316 1}} + 2 {{124 {0 321} 1}} + 91 {{137 {0 321} 1}} 133,trans {} - 3 {{57 {313 314} 1}} - 92 {{69 {0 316} 2}} + 3 {{67 {318 319} 1}} + 92 {{133 {0 321} 1} {67 {314 315 316} 0} {68 {314 315 316} 0}} 152,trans {} - 4 {{58 {313 314} 1}} - 93 {{67 {0 316} 2}} + 4 {{68 {318 319} 1}} + 93 {{134 {0 321} 1} {138 {0 321} 0} {139 {0 321} 0} {140 {0 321} 0}} 171,trans {} - 5 {{117 {0 316} 1} {118 {0 316} 1}} - 94 {{85 {0 316} 2}} - 200,trans {{268 224} {269 225} {270 226} {407 227}} + 5 {{128 {0 321} 1} {129 {0 321} 1}} + 94 {{136 {0 321} 1} {141 {0 321} 0} {142 {0 321} 0} {143 {0 321} 0}} + 200,trans {{276 229} {277 230} {279 231} {410 232}} 190,trans {} - 189,trans {{316 221}} - 6 {{64 {0 316} 1}} - 95 {{126 {0 316} 1}} - 218,trans {} - 7 {{70 {0 316} 1} {1 {0 316} 0} {2 {0 316} 0} {3 {0 316} 0} {4 {0 316} 0} {5 {0 316} 0} {6 {0 316} 0} {7 {0 316} 0}} - 96 {{122 {0 316} 1} {57 {309 310 311} 0} {58 {309 310 311} 0}} + 189,trans {} + 6 {{74 {0 321} 1}} + 95 {{135 {0 321} 1} {11 {0 321} 0} {12 {0 321} 0} {13 {0 321} 0} {14 {0 321} 0} {15 {0 321} 0} {16 {0 321} 0} {17 {0 321} 0}} + 218,trans {{321 261}} + 7 {{82 {0 321} 1} {11 {0 321} 0} {12 {0 321} 0} {13 {0 321} 0} {14 {0 321} 0} {15 {0 321} 0} {16 {0 321} 0} {17 {0 321} 0}} + 96 {{97 {0 321} 2}} 237,trans {} - 8 {{71 {0 316} 1} {1 {0 316} 0} {2 {0 316} 0} {3 {0 316} 0} {4 {0 316} 0} {5 {0 316} 0} {6 {0 316} 0} {7 {0 316} 0}} - 97 {{123 {0 316} 1} {127 {0 316} 0} {128 {0 316} 0} {129 {0 316} 0}} + 8 {{83 {0 321} 1} {11 {0 321} 0} {12 {0 321} 0} {13 {0 321} 0} {14 {0 321} 0} {15 {0 321} 0} {16 {0 321} 0} {17 {0 321} 0}} + 97 {{98 {0 321} 2}} 256,trans {} - 9 {{72 {0 316} 1}} - 98 {{125 {0 316} 1} {130 {0 316} 0} {131 {0 316} 0} {132 {0 316} 0}} - 24,trans {{316 93}} - 99 {{124 {0 316} 1} {1 {0 316} 0} {2 {0 316} 0} {3 {0 316} 0} {4 {0 316} 0} {5 {0 316} 0} {6 {0 316} 0} {7 {0 316} 0}} - 43,trans {{313 3} {314 4} {415 160}} + 9 {{84 {0 321} 1}} + 98 {{99 {0 321} 2}} + 24,trans {{321 89}} + 99 {{100 {0 321} 2}} + 43,trans {{318 3} {319 4} {415 156}} 62,trans {} 81,trans {} - 99,trans {{257 58} {258 59} {259 60} {260 61} {261 62} {262 63} {406 188}} + 99,trans {} 113,trans {} 132,trans {} 151,trans {} 170,trans {} - 169,trans {} + 169,trans {{321 216}} 188,trans {} 217,trans {} 236,trans {} - 255,trans {{365 271}} - 23,trans {{340 84} {351 85} {371 86} {378 87} {388 88} {392 89} {396 90} {397 91} {426 92}} - 42,trans {{257 58} {258 59} {259 60} {260 61} {261 62} {262 63} {406 159}} + 255,trans {} + 23,trans {{257 82} {258 83} {259 84} {260 85} {261 86} {355 87} {404 88}} + 42,trans {{262 58} {263 59} {264 60} {265 61} {266 62} {267 63} {406 155}} 61,trans {} - 80,trans {} - 79,trans {{316 175}} - 98,trans {{317 184} {319 185} {321 186} {425 187}} + 80,trans {{321 172}} + 79,trans {} + 98,trans {} 9,trans {} 112,trans {} 131,trans {} 150,trans {} 149,trans {} - 168,trans {{263 200} {264 201} {265 202} {266 203} {267 204} {322 205} {325 206} {335 207} {336 208} {357 209} {373 210} {377 211} {381 212} {383 213} {384 214} {391 215} {394 216} {431 217}} + 168,trans {{307 101} {308 102} {309 103} {310 104} {311 105} {312 106} {313 107} {412 215}} 187,trans {} - 216,trans {{316 263}} + 216,trans {} 235,trans {} - 254,trans {{365 270}} + 254,trans {} 22,trans {} - 41,trans {{331 149} {398 150} {399 151} {400 152} {401 153} {402 154} {403 155} {404 156} {405 157} {428 158}} + 41,trans {{336 145} {396 146} {397 147} {398 148} {399 149} {400 150} {401 151} {402 152} {403 153} {427 154}} 60,trans {} 59,trans {} 78,trans {} - 97,trans {{317 180} {318 181} {320 182} {424 183}} - 8,trans {{257 58} {258 59} {259 60} {260 61} {261 62} {262 63} {406 65}} + 97,trans {} + 8,trans {{262 58} {263 59} {264 60} {265 61} {266 62} {267 63} {406 65}} 111,trans {} 130,trans {} 129,trans {} 148,trans {} - 100 {{86 {0 316} 2}} - 167,trans {{420 199}} - 101 {{87 {0 316} 2}} - 186,trans {} - 102 {{88 {0 316} 2}} - 215,trans {{316 262}} - 103 {{89 {0 316} 2}} + 100 {{101 {0 321} 2}} + 167,trans {} + 101 {{55 {0 321} 1}} + 186,trans {{321 218}} + 102 {{56 {0 321} 1}} + 215,trans {} + 103 {{57 {0 321} 1}} 234,trans {} - 104 {{90 {0 316} 2}} - 253,trans {{365 269}} - 105 {{45 {0 316} 1}} + 104 {{58 {0 321} 1}} + 253,trans {} + 105 {{59 {0 321} 1}} 21,trans {} - 106 {{46 {0 316} 1}} - 107 {{47 {0 316} 1}} - 39,trans {{329 145} {379 146} {427 147}} - 40,trans {{316 148}} + 106 {{60 {0 321} 1}} + 107 {{61 {0 321} 1}} + 39,trans {{334 141} {381 142} {426 143}} + 40,trans {{321 144}} 58,trans {} - 108 {{48 {0 316} 1}} - 77,trans {} - 109 {{49 {0 316} 1}} - 110 {{50 {0 316} 1}} - 96,trans {{313 142} {314 143} {415 179}} - 7,trans {{257 58} {258 59} {259 60} {260 61} {261 62} {262 63} {406 64}} - 111 {{51 {0 316} 1}} - 112 {{92 {0 316} 2}} - 113 {{18 {0 316} 1}} + 108 {{103 {0 321} 2}} + 77,trans {{321 171}} + 109 {{28 {0 321} 1}} + 110 {{29 {0 321} 1}} + 96,trans {} + 7,trans {{262 58} {263 59} {264 60} {265 61} {266 62} {267 63} {406 64}} + 111 {{30 {0 321} 1}} + 112 {{31 {0 321} 1}} + 113 {{32 {0 321} 1}} 110,trans {} 109,trans {} - 114 {{19 {0 316} 1}} + 114 {{33 {0 321} 1}} 128,trans {} - 115 {{20 {0 316} 1}} + 115 {{34 {0 321} 1}} 147,trans {} - 116 {{21 {0 316} 1}} + 116 {{35 {0 321} 1}} 166,trans {} - 117 {{22 {0 316} 1}} + 117 {{36 {0 321} 1}} 185,trans {} - 118 {{23 {0 316} 1}} - 214,trans {{313 239} {314 240} {316 241} {415 242} {433 261}} - 119 {{24 {0 316} 1}} - 120 {{25 {0 316} 1}} + 118 {{37 {0 321} 1}} + 214,trans {} + 119 {{38 {0 321} 1}} + 120 {{39 {0 321} 1}} 233,trans {} - 121 {{26 {0 316} 1}} - 252,trans {{365 268}} - 122 {{27 {0 316} 1}} - 271,trans {} - 19,trans {{316 80}} - 20,trans {{316 81} {357 82} {422 83}} - 123 {{28 {0 316} 1}} - 124 {{29 {0 316} 1}} + 121 {{40 {0 321} 1}} + 252,trans {{369 268}} + 122 {{41 {0 321} 1}} + 19,trans {{321 78}} + 20,trans {{321 79} {361 80} {422 81}} + 123 {{42 {0 321} 1}} + 124 {{43 {0 321} 1}} 38,trans {} - 57,trans {{302 105} {303 106} {304 107} {305 108} {306 109} {307 110} {308 111} {412 174}} - 125 {{30 {0 316} 1}} + 57,trans {{307 101} {308 102} {309 103} {310 104} {311 105} {312 106} {313 107} {412 170}} + 125 {{44 {0 321} 1}} 76,trans {} - 126 {{31 {0 316} 1}} - 95,trans {{316 178}} + 126 {{45 {0 321} 1}} + 95,trans {{262 58} {263 59} {264 60} {265 61} {266 62} {267 63} {406 185}} 6,trans {} - 127 {{32 {0 316} 1}} - 128 {{33 {0 316} 1}} - 129 {{34 {0 316} 1}} - 130 {{35 {0 316} 1}} + 127 {{46 {0 321} 1}} + 128 {{47 {0 321} 1}} + 129 {{48 {0 321} 1}} + 130 {{49 {0 321} 1}} 108,trans {} - 131 {{36 {0 316} 1}} + 131 {{50 {0 321} 1}} 127,trans {} - 132 {{37 {0 316} 1}} - 146,trans {{316 194}} - 133 {{38 {0 316} 1}} - 165,trans {{343 196} {356 197} {430 198}} - 134 {{39 {0 316} 1}} + 132 {{51 {0 321} 1}} + 146,trans {} + 133 {{52 {0 321} 1}} + 165,trans {} + 134 {{53 {0 321} 1}} 184,trans {} - 135 {{40 {0 316} 1}} - 213,trans {{313 239} {314 240} {316 241} {415 242} {433 260}} - 136 {{41 {0 316} 1}} + 135 {{54 {0 321} 1}} + 213,trans {{321 260}} + 136 {{104 {0 321} 2}} 232,trans {} - 137 {{42 {0 316} 1}} - 251,trans {{365 267}} - 138 {{43 {0 316} 1}} - 270,trans {} - 269,trans {} - 18,trans {{340 72} {371 73} {378 74} {388 75} {392 76} {396 77} {397 78} {434 79}} - 139 {{44 {0 316} 1}} - 140 {{93 {0 316} 2}} - 141 {{112 {0 316} 2}} + 137 {{123 {0 321} 2}} + 251,trans {{369 267}} + 138 {{67 {314 315 316} 1}} + 18,trans {{257 72} {258 73} {259 74} {260 75} {261 76} {405 77}} + 139 {{68 {314 315 316} 1}} + 140 {{105 {0 321} 2} {64 {0 321} 0} {65 {0 321} 0} {66 {0 321} 0}} 37,trans {} + 141 {{145 {0 321} 1}} 56,trans {} - 142 {{57 {309 310 311} 1}} + 142 {{146 {0 321} 1}} 75,trans {} - 143 {{58 {309 310 311} 1}} - 94,trans {} - 5,trans {{315 57}} - 144 {{94 {0 316} 2} {54 {0 316} 0} {55 {0 316} 0} {56 {0 316} 0}} - 145 {{142 {0 316} 1}} - 146 {{143 {0 316} 1}} + 143 {{108 {0 321} 2}} + 94,trans {{322 181} {324 182} {326 183} {425 184}} + 5,trans {{320 57}} + 144 {{109 {0 321} 2}} + 145 {{147 {0 321} 1}} + 146 {{148 {0 321} 1}} 107,trans {} - 147 {{97 {0 316} 2}} + 147 {{149 {0 321} 1}} 126,trans {} - 148 {{98 {0 316} 2}} + 148 {{150 {0 321} 1}} 145,trans {} - 149 {{144 {0 316} 1}} - 150 {{145 {0 316} 1}} - 164,trans {} - 151 {{146 {0 316} 1}} + 149 {{151 {0 321} 1}} + 150 {{152 {0 321} 1}} + 164,trans {{268 197} {269 198} {270 199} {271 200} {272 201} {327 202} {330 203} {340 204} {341 205} {361 206} {376 207} {380 208} {383 209} {385 210} {386 211} {392 212} {394 213} {430 214}} + 151 {{153 {0 321} 1}} 183,trans {} - 152 {{147 {0 316} 1}} - 212,trans {{x 248} {316 249} {326 250} {327 251} {328 252} {332 253} {338 254} {344 255} {346 256} {365 257} {391 258} {432 259}} - 153 {{148 {0 316} 1}} + 152 {{154 {0 321} 1}} + 212,trans {{321 259}} + 153 {{155 {0 321} 1}} 231,trans {} - 154 {{149 {0 316} 1}} - 250,trans {{365 266}} - 249,trans {} - 155 {{150 {0 316} 1}} + 154 {{110 {0 321} 2}} + 250,trans {{369 266}} + 249,trans {{369 265}} + 155 {{111 {0 321} 2}} 268,trans {} - 156 {{151 {0 316} 1}} - 17,trans {{257 58} {258 59} {259 60} {260 61} {261 62} {262 63} {406 71}} - 157 {{152 {0 316} 1}} - 36,trans {{313 142} {314 143} {415 144}} + 156 {{112 {0 321} 2} {67 {314 315 316} 0} {68 {314 315 316} 0}} + 17,trans {{262 58} {263 59} {264 60} {265 61} {266 62} {267 63} {406 71}} + 157 {{113 {0 321} 2}} + 36,trans {{318 138} {319 139} {415 140}} 55,trans {} - 158 {{99 {0 316} 2}} + 158 {{62 {0 321} 1}} 74,trans {} - 160 {{101 {0 316} 2} {57 {309 310 311} 0} {58 {309 310 311} 0}} - 159 {{100 {0 316} 2}} - 93,trans {} - 161 {{102 {0 316} 2}} + 160 {{114 {0 321} 2}} + 159 {{63 {0 321} 1}} + 93,trans {{322 177} {323 178} {325 179} {424 180}} + 161 {{156 {0 321} 1} {157 {0 321} 1} {158 {0 321} 0} {159 {0 321} 0}} 4,trans {} - 162 {{52 {0 316} 1}} - 163 {{53 {0 316} 1}} + 162 {{115 {0 321} 2}} + 163 {{119 {0 321} 2} {118 {268 269 270 271 272 327 330 340 341 361 376 380 383 385 386 392 394} 0}} 106,trans {} - 164 {{103 {0 316} 2}} + 164 {{117 {0 321} 2} {160 {0 321} 0} {161 {0 321} 0} {162 {0 321} 0} {163 {0 321} 0} {164 {0 321} 0} {165 {0 321} 0} {166 {0 321} 0} {167 {0 321} 0} {168 {0 321} 0} {169 {0 321} 0} {170 {0 321} 0} {171 {0 321} 0} {172 {0 321} 0} {173 {0 321} 0} {174 {0 321} 0} {175 {0 321} 0} {176 {0 321} 0}} 125,trans {} - 165 {{153 {0 316} 1} {154 {0 316} 1} {155 {0 316} 0} {156 {0 316} 0}} - 144,trans {{309 190} {310 191} {311 192} {414 193}} - 166 {{104 {0 316} 2}} - 163,trans {} - 167 {{108 {0 316} 2} {107 {263 264 265 266 267 322 325 335 336 357 373 377 381 383 384 391 394} 0}} + 165 {{120 {0 321} 2}} + 144,trans {} + 166 {{67 {0 307 308 309 310 311 312 313 321} 1}} + 163,trans {{420 196}} + 167 {{68 {0 307 308 309 310 311 312 313 321} 1}} 182,trans {} - 168 {{106 {0 316} 2} {157 {0 316} 0} {158 {0 316} 0} {159 {0 316} 0} {160 {0 316} 0} {161 {0 316} 0} {162 {0 316} 0} {163 {0 316} 0} {164 {0 316} 0} {165 {0 316} 0} {166 {0 316} 0} {167 {0 316} 0} {168 {0 316} 0} {169 {0 316} 0} {170 {0 316} 0} {171 {0 316} 0} {172 {0 316} 0} {173 {0 316} 0}} - 211,trans {{316 247}} - 170 {{57 {0 302 303 304 305 306 307 308 316} 1}} - 169 {{109 {0 316} 2}} + 168 {{126 {0 321} 2} {127 {0 321} 2} {55 {0 321} 0} {56 {0 321} 0} {57 {0 321} 0} {58 {0 321} 0} {59 {0 321} 0} {60 {0 321} 0} {61 {0 321} 0}} + 211,trans {{318 236} {319 237} {321 238} {415 239} {432 258}} + 170 {{129 {0 321} 3}} + 169 {{71 0 2}} 230,trans {} 229,trans {} - 171 {{58 {0 302 303 304 305 306 307 308 316} 1}} - 248,trans {{365 265}} - 172 {{115 {0 316} 2} {116 {0 316} 2} {45 {0 316} 0} {46 {0 316} 0} {47 {0 316} 0} {48 {0 316} 0} {49 {0 316} 0} {50 {0 316} 0} {51 {0 316} 0}} + 171 {{81 {0 321} 3}} + 248,trans {{369 264}} + 172 {{130 {0 321} 2}} 267,trans {} - 173 {{61 0 2}} - 16,trans {{316 70}} - 174 {{118 {0 316} 3}} - 35,trans {{316 141}} - 175 {{81 {0 316} 3}} + 173 {{80 {0 321} 3}} + 16,trans {{321 70}} + 174 {{79 {0 321} 3}} + 35,trans {{321 137}} + 175 {{137 {0 321} 2}} 54,trans {} - 176 {{119 {0 316} 2}} + 176 {{133 {0 321} 2} {64 {0 321} 0} {65 {0 321} 0} {66 {0 321} 0}} 73,trans {} - 92,trans {{316 177}} - 177 {{69 {0 316} 3}} + 177 {{138 {0 321} 1}} + 92,trans {{318 138} {319 139} {415 176}} 3,trans {} - 178 {{126 {0 316} 2}} - 180 {{127 {0 316} 1}} - 179 {{122 {0 316} 2} {54 {0 316} 0} {55 {0 316} 0} {56 {0 316} 0}} + 178 {{139 {0 321} 1}} + 180 {{134 {0 321} 2}} + 179 {{140 {0 321} 1}} 105,trans {} - 181 {{128 {0 316} 1}} + 181 {{141 {0 321} 1}} 124,trans {} - 182 {{129 {0 316} 1}} + 182 {{142 {0 321} 1}} 143,trans {} - 183 {{123 {0 316} 2}} + 183 {{143 {0 321} 1}} 162,trans {} - 184 {{130 {0 316} 1}} + 184 {{136 {0 321} 2}} 181,trans {} - 185 {{131 {0 316} 1}} - 210,trans {} - 209,trans {{316 246}} - 199,trans {{263 200} {264 201} {265 202} {266 203} {267 204} {322 205} {325 206} {335 207} {336 208} {357 209} {373 210} {377 211} {381 212} {383 213} {384 214} {391 215} {394 216} {431 223}} - 186 {{132 {0 316} 1}} + 185 {{135 {0 321} 2}} + 210,trans {{318 236} {319 237} {321 238} {415 239} {432 257}} + 209,trans {{x 245} {321 246} {331 247} {332 248} {333 249} {337 250} {343 251} {348 252} {350 253} {369 254} {392 255} {431 256}} + 199,trans {{278 226} {279 227} {409 228}} + 186 {{101 {0 321} 3}} 228,trans {} - 187 {{125 {0 316} 2}} - 247,trans {} - 188 {{124 {0 316} 2}} + 187 {{64 {0 321} 1}} + 247,trans {{369 263}} + 188 {{65 {0 321} 1}} 266,trans {} - 200 {{164 {0 316} 1} {8 {0 316} 0} {9 {0 316} 0} {10 {0 316} 0}} - 190 {{54 {0 316} 1}} - 189 {{90 {0 316} 3}} - 15,trans {{316 68} {401 69}} - 201 {{165 {0 316} 1}} - 191 {{55 {0 316} 1}} - 34,trans {{275 113} {276 114} {277 115} {278 116} {279 117} {280 118} {281 119} {282 120} {283 121} {284 122} {285 123} {286 124} {287 125} {288 126} {289 127} {290 128} {291 129} {292 130} {293 131} {294 132} {295 133} {296 134} {297 135} {298 136} {299 137} {300 138} {301 139} {411 140}} - 202 {{167 {0 316} 1} {13 {0 316} 0} {14 {0 316} 0}} - 192 {{56 {0 316} 1}} - 53,trans {{417 173}} - 203 {{168 {0 316} 1} {15 {0 316} 0} {16 {0 316} 0} {17 {0 316} 0}} - 193 {{94 {0 316} 3}} + 200 {{171 {0 321} 1} {25 {0 321} 0} {26 {0 321} 0} {27 {0 321} 0}} + 190 {{105 {0 321} 3}} + 189 {{66 {0 321} 1}} + 15,trans {{321 68} {399 69}} + 201 {{169 {0 321} 1} {21 {0 321} 0} {22 {0 321} 0}} + 191 {{146 {0 321} 2}} + 34,trans {{280 109} {281 110} {282 111} {283 112} {284 113} {285 114} {286 115} {287 116} {288 117} {289 118} {290 119} {291 120} {292 121} {293 122} {294 123} {295 124} {296 125} {297 126} {298 127} {299 128} {300 129} {301 130} {302 131} {303 132} {304 133} {305 134} {306 135} {411 136}} + 202 {{160 {0 321} 1}} + 192 {{112 {0 321} 3} {64 {0 321} 0} {65 {0 321} 0} {66 {0 321} 0}} + 53,trans {{417 169}} + 203 {{164 {0 321} 1} {195 {0 321} 0} {196 {0 321} 0} {67 {0 321} 0} {68 {0 321} 0}} + 193 {{159 {0 321} 1}} 72,trans {} - 204 {{166 {0 316} 1} {11 {0 316} 0} {12 {0 316} 0}} - 194 {{143 {0 316} 2}} - 91,trans {} - 2,trans {{316 56}} - 205 {{157 {0 316} 1}} - 195 {{101 {0 316} 3} {54 {0 316} 0} {55 {0 316} 0} {56 {0 316} 0}} - 206 {{161 {0 316} 1} {192 {0 316} 0} {193 {0 316} 0} {57 {0 316} 0} {58 {0 316} 0}} - 196 {{156 {0 316} 1}} - 207 {{162 {0 316} 1}} - 197 {{155 {0 316} 1}} - 104,trans {{316 189}} - 208 {{163 {0 316} 1}} - 198 {{154 {0 316} 2}} + 204 {{165 {0 321} 1}} + 194 {{158 {0 321} 1}} + 91,trans {{321 175}} + 2,trans {{321 56}} + 205 {{166 {0 321} 1}} + 195 {{157 {0 321} 2}} + 206 {{162 {0 321} 1}} + 196 {{119 {0 321} 3} {160 {0 321} 0} {161 {0 321} 0} {162 {0 321} 0} {163 {0 321} 0} {164 {0 321} 0} {165 {0 321} 0} {166 {0 321} 0} {167 {0 321} 0} {168 {0 321} 0} {169 {0 321} 0} {170 {0 321} 0} {171 {0 321} 0} {172 {0 321} 0} {173 {0 321} 0} {174 {0 321} 0} {175 {0 321} 0} {176 {0 321} 0}} + 207 {{161 {0 321} 1}} + 197 {{167 {0 321} 1} {18 {0 321} 0} {19 {0 321} 0} {20 {0 321} 0}} + 104,trans {} + 208 {{163 {0 321} 1}} + 198 {{168 {0 321} 1}} 123,trans {} - 210 {{158 {0 316} 1}} - 209 {{159 {0 316} 1}} - 199 {{108 {0 316} 3} {157 {0 316} 0} {158 {0 316} 0} {159 {0 316} 0} {160 {0 316} 0} {161 {0 316} 0} {162 {0 316} 0} {163 {0 316} 0} {164 {0 316} 0} {165 {0 316} 0} {166 {0 316} 0} {167 {0 316} 0} {168 {0 316} 0} {169 {0 316} 0} {170 {0 316} 0} {171 {0 316} 0} {172 {0 316} 0} {173 {0 316} 0}} - 142,trans {} - 211 {{160 {0 316} 1}} - 161,trans {} + 210 {{172 {0 321} 1} {195 {0 321} 0} {196 {0 321} 0} {67 {0 321} 0} {68 {0 321} 0}} + 209 {{174 {0 321} 1} {177 {0 321} 0} {178 {0 321} 0} {179 {0 321} 0} {180 {0 321} 0} {181 {0 321} 0} {182 {0 321} 0} {183 {0 321} 0} {184 {0 321} 0} {185 {0 321} 0} {186 {0 321} 0} {187 {0 321} 0} {188 {0 321} 0} {189 {0 321} 0} {190 {0 321} 0} {191 {0 321} 0} {192 {0 321} 0} {193 {0 321} 0} {194 {0 321} 0}} + 199 {{170 {0 321} 1} {23 {0 321} 0} {24 {0 321} 0}} + 142,trans {{321 191}} + 211 {{173 {0 321} 1} {195 {0 321} 0} {196 {0 321} 0} {67 {0 321} 0} {68 {0 321} 0}} + 161,trans {{347 193} {360 194} {429 195}} 180,trans {} - 179,trans {{309 190} {310 191} {311 192} {414 220}} - 212 {{171 {0 316} 1} {174 {0 316} 0} {175 {0 316} 0} {176 {0 316} 0} {177 {0 316} 0} {178 {0 316} 0} {179 {0 316} 0} {180 {0 316} 0} {181 {0 316} 0} {182 {0 316} 0} {183 {0 316} 0} {184 {0 316} 0} {185 {0 316} 0} {186 {0 316} 0} {187 {0 316} 0} {188 {0 316} 0} {189 {0 316} 0} {190 {0 316} 0} {191 {0 316} 0}} - 208,trans {{316 245}} - 198,trans {} - 213 {{169 {0 316} 1} {192 {0 316} 0} {193 {0 316} 0} {57 {0 316} 0} {58 {0 316} 0}} + 179,trans {} + 212 {{175 {0 321} 1}} + 208,trans {{321 244}} + 198,trans {{318 225}} + 213 {{176 {0 321} 1}} 227,trans {} - 214 {{170 {0 316} 1} {192 {0 316} 0} {193 {0 316} 0} {57 {0 316} 0} {58 {0 316} 0}} + 214 {{117 {0 321} 3}} 246,trans {} - 215 {{172 {0 316} 1}} + 215 {{127 {0 321} 3}} 265,trans {} - 216 {{173 {0 316} 1}} + 216 {{71 0 3}} 14,trans {} - 217 {{106 {0 316} 3}} - 33,trans {{302 105} {303 106} {304 107} {305 108} {306 109} {307 110} {308 111} {412 112}} - 218 {{116 {0 316} 3}} + 217 {{133 {0 321} 3}} + 33,trans {{307 101} {308 102} {309 103} {310 104} {311 105} {312 106} {313 107} {412 108}} + 218 {{101 {0 321} 4}} 52,trans {} - 220 {{122 {0 316} 3}} - 219 {{61 0 3}} + 220 {{119 {0 321} 4}} + 219 {{112 {0 321} 4}} 71,trans {} - 221 {{90 {0 316} 4}} + 221 {{18 {0 321} 1}} 90,trans {} 89,trans {} - 1,trans {{316 55}} - 222 {{101 {0 316} 4}} - 223 {{108 {0 316} 4}} - 224 {{8 {0 316} 1}} + 1,trans {{321 55}} + 222 {{19 {0 321} 1}} + 223 {{20 {0 321} 1}} + 224 {{167 {0 321} 2}} 103,trans {} - 225 {{9 {0 316} 1}} + 225 {{168 {0 321} 2}} 122,trans {} - 226 {{10 {0 316} 1}} + 226 {{23 {0 321} 1}} 141,trans {} - 227 {{164 {0 316} 2}} - 160,trans {{313 142} {314 143} {415 195}} + 227 {{24 {0 321} 1}} + 160,trans {} 159,trans {} - 228 {{165 {0 316} 2}} + 228 {{170 {0 321} 2}} 178,trans {} - 207,trans {{316 244}} - 230 {{14 {0 316} 1}} - 229 {{13 {0 316} 1}} - 197,trans {} + 207,trans {} + 230 {{26 {0 321} 1}} + 229 {{25 {0 321} 1}} + 197,trans {{273 221} {274 222} {275 223} {407 224}} 226,trans {} - 231 {{167 {0 316} 2}} - 245,trans {} - 232 {{15 {0 316} 1}} + 231 {{27 {0 321} 1}} + 245,trans {{369 262}} + 232 {{171 {0 321} 2}} 264,trans {} - 233 {{16 {0 316} 1}} - 13,trans {{313 3} {314 4} {315 5} {415 51} {421 67}} - 234 {{17 {0 316} 1}} + 233 {{21 {0 321} 1}} + 13,trans {{318 3} {319 4} {320 5} {415 51} {421 67}} + 234 {{22 {0 321} 1}} 32,trans {} - 235 {{168 {0 316} 2}} - 51,trans {{313 170} {314 171} {415 172}} - 236 {{11 {0 316} 1}} + 235 {{169 {0 321} 2}} + 51,trans {{318 166} {319 167} {415 168}} + 236 {{67 {0 321} 1}} 70,trans {} 69,trans {} - 237 {{12 {0 316} 1}} - 88,trans {} - 0,trans {{x 1} {y 2} {313 3} {314 4} {315 5} {316 6} {323 7} {324 8} {330 9} {331 10} {333 11} {334 12} {337 13} {339 14} {341 15} {342 16} {345 17} {347 18} {349 19} {350 20} {353 21} {354 22} {355 23} {357 24} {358 25} {359 26} {360 27} {361 28} {362 29} {363 30} {364 31} {366 32} {367 33} {368 34} {369 35} {370 36} {372 37} {374 38} {376 39} {377 40} {380 41} {382 42} {383 43} {385 44} {386 45} {387 46} {389 47} {390 48} {395 49} {401 50} {415 51} {416 52} {418 53} {421 54}} - 238 {{166 {0 316} 2}} - 240 {{58 {0 316} 1}} - 239 {{57 {0 316} 1}} - 241 {{193 {0 316} 1}} + 237 {{68 {0 321} 1}} + 88,trans {{321 174}} + 0,trans {{x 1} {y 2} {318 3} {319 4} {320 5} {321 6} {328 7} {329 8} {335 9} {336 10} {338 11} {339 12} {342 13} {344 14} {345 15} {346 16} {349 17} {351 18} {353 19} {354 20} {357 21} {358 22} {359 23} {361 24} {362 25} {363 26} {364 27} {365 28} {366 29} {367 30} {368 31} {370 32} {371 33} {372 34} {373 35} {374 36} {375 37} {377 38} {379 39} {380 40} {382 41} {384 42} {385 43} {387 44} {388 45} {389 46} {390 47} {391 48} {395 49} {399 50} {415 51} {416 52} {418 53} {421 54}} + 238 {{196 {0 321} 1}} + 240 {{164 {0 321} 2}} + 239 {{195 {0 321} 1}} + 241 {{165 {0 321} 2}} 102,trans {} - 242 {{192 {0 316} 1}} + 242 {{166 {0 321} 2}} 121,trans {} - 243 {{161 {0 316} 2}} - 140,trans {} + 243 {{162 {0 321} 2}} + 140,trans {{314 187} {315 188} {316 189} {414 190}} 139,trans {} - 244 {{162 {0 316} 2}} + 244 {{163 {0 321} 2}} 158,trans {} - 245 {{163 {0 316} 2}} + 245 {{188 {0 321} 1} {189 {0 321} 1}} 177,trans {} - 246 {{159 {0 316} 2}} - 206,trans {{313 239} {314 240} {316 241} {415 242} {433 243}} - 196,trans {} + 246 {{194 {0 321} 1}} + 206,trans {{321 243}} + 196,trans {{268 197} {269 198} {270 199} {271 200} {272 201} {327 202} {330 203} {340 204} {341 205} {361 206} {376 207} {380 208} {383 209} {385 210} {386 211} {392 212} {394 213} {430 220}} 225,trans {} - 247 {{160 {0 316} 2}} + 247 {{190 {0 321} 1} {191 {0 321} 1}} 244,trans {} - 248 {{185 {0 316} 1} {186 {0 316} 1}} + 248 {{179 {0 321} 1} {183 {0 321} 1}} 263,trans {} - 250 {{187 {0 316} 1} {188 {0 316} 1}} - 249 {{191 {0 316} 1}} + 250 {{177 {0 321} 1} {182 {0 321} 1}} + 249 {{192 {0 321} 1} {193 {0 321} 1}} 12,trans {} - 251 {{176 {0 316} 1} {180 {0 316} 1}} - 31,trans {{316 104}} - 252 {{189 {0 316} 1} {190 {0 316} 1}} + 251 {{186 {0 321} 1} {187 {0 321} 1}} + 31,trans {{321 100}} + 252 {{184 {0 321} 1} {185 {0 321} 1}} 50,trans {} 49,trans {} - 253 {{174 {0 316} 1} {179 {0 316} 1}} + 253 {{178 {0 321} 1}} 68,trans {} - 254 {{183 {0 316} 1} {184 {0 316} 1}} - 87,trans {} - 255 {{181 {0 316} 1} {182 {0 316} 1}} - 256 {{175 {0 316} 1}} - 257 {{178 {0 316} 1}} + 254 {{181 {0 321} 1}} + 87,trans {{321 173}} + 255 {{180 {0 321} 1}} + 256 {{174 {0 321} 2}} + 257 {{172 {0 321} 2}} 101,trans {} - 258 {{177 {0 316} 1}} + 258 {{173 {0 321} 2}} 120,trans {} 119,trans {} - 260 {{169 {0 316} 2}} - 259 {{171 {0 316} 2}} + 260 {{176 {0 321} 2}} + 259 {{175 {0 321} 2}} 138,trans {} - 261 {{170 {0 316} 2}} + 261 {{101 {0 321} 5}} 157,trans {} - 10 {{66 {0 316} 1}} - 262 {{172 {0 316} 2}} - 176,trans {} - 11 {{73 {0 316} 1}} - 263 {{173 {0 316} 2}} - 205,trans {} - 195,trans {{309 190} {310 191} {311 192} {414 222}} - 12 {{74 {0 316} 1}} + 10 {{76 {0 321} 1}} + 262 {{189 {0 321} 2}} + 176,trans {{314 187} {315 188} {316 189} {414 217}} + 11 {{85 {0 321} 1}} + 263 {{191 {0 321} 2}} + 205,trans {{321 242}} + 195,trans {} + 12 {{86 {0 321} 1}} + 264 {{183 {0 321} 2}} 224,trans {} - 264 {{90 {0 316} 5}} - 13 {{75 {0 316} 1} {115 {0 316} 0} {116 {0 316} 0} {117 {0 316} 0} {118 {0 316} 0} {57 {313 314} 0} {58 {313 314} 0}} - 265 {{186 {0 316} 2}} + 13 {{87 {0 321} 1} {126 {0 321} 0} {127 {0 321} 0} {128 {0 321} 0} {129 {0 321} 0} {67 {318 319} 0} {68 {318 319} 0}} + 265 {{193 {0 321} 2}} 243,trans {} - 14 {{77 {0 316} 1}} + 14 {{89 {0 321} 1}} 262,trans {} - 266 {{188 {0 316} 2}} - 15 {{78 {0 316} 1} {79 {0 316} 1}} + 266 {{182 {0 321} 2}} + 15 {{90 {0 321} 1} {91 {0 321} 1}} 11,trans {} - 267 {{180 {0 316} 2}} - 16 {{114 {0 316} 1}} + 267 {{187 {0 321} 2}} + 16 {{125 {0 321} 1}} 29,trans {} - 30,trans {{257 58} {258 59} {259 60} {260 61} {261 62} {262 63} {406 103}} - 268 {{190 {0 316} 2}} - 48,trans {{275 113} {276 114} {277 115} {278 116} {279 117} {280 118} {281 119} {282 120} {283 121} {284 122} {285 123} {286 124} {287 125} {288 126} {289 127} {290 128} {291 129} {292 130} {293 131} {294 132} {295 133} {296 134} {297 135} {298 136} {299 137} {300 138} {301 139} {411 169}} - 17 {{80 {0 316} 1} {1 {0 316} 0} {2 {0 316} 0} {3 {0 316} 0} {4 {0 316} 0} {5 {0 316} 0} {6 {0 316} 0} {7 {0 316} 0}} - 270 {{184 {0 316} 2}} - 269 {{179 {0 316} 2}} + 30,trans {{262 58} {263 59} {264 60} {265 61} {266 62} {267 63} {406 99}} + 268 {{185 {0 321} 2}} + 48,trans {{280 109} {281 110} {282 111} {283 112} {284 113} {285 114} {286 115} {287 116} {288 117} {289 118} {290 119} {291 120} {292 121} {293 122} {294 123} {295 124} {296 125} {297 126} {298 127} {299 128} {300 129} {301 130} {302 131} {303 132} {304 133} {305 134} {306 135} {411 165}} + 17 {{92 {0 321} 1} {11 {0 321} 0} {12 {0 321} 0} {13 {0 321} 0} {14 {0 321} 0} {15 {0 321} 0} {16 {0 321} 0} {17 {0 321} 0}} 67,trans {} - 18 {{81 {0 316} 1} {194 316 0} {195 316 0} {196 316 0} {197 316 0} {198 316 0} {199 316 0} {200 316 0}} - 271 {{182 {0 316} 2}} + 18 {{81 {0 321} 1} {6 321 0} {7 321 0} {8 321 0} {9 321 0} {10 321 0}} 86,trans {} - 20 {{82 {0 316} 1} {119 {0 316} 0} {120 {0 316} 0}} - 19 {{68 {0 316} 1}} - 21 {{83 {0 316} 1}} - 22 {{84 {0 316} 1}} - 100,trans {} - 23 {{69 {0 316} 1} {133 316 0} {134 316 0} {135 316 0} {136 316 0} {137 316 0} {138 316 0} {139 316 0} {140 316 0}} + 20 {{93 {0 321} 1} {130 {0 321} 0} {131 {0 321} 0}} + 19 {{78 {0 321} 1}} + 21 {{94 {0 321} 1}} + 22 {{95 {0 321} 1}} + 100,trans {{321 186}} + 23 {{79 {0 321} 1} {80 {0 321} 1} {1 321 0} {2 321 0} {3 321 0} {4 321 0} {5 321 0}} 118,trans {} - 24 {{67 {0 316} 1}} + 24 {{77 {0 321} 1}} 137,trans {} - 25 {{85 {0 316} 1}} - 156,trans {} - 26 {{86 {0 316} 1} {121 {0 316} 0} {122 {0 316} 0} {123 {0 316} 0} {124 {0 316} 0} {125 {0 316} 0} {126 {0 316} 0}} + 25 {{96 {0 321} 1}} + 156,trans {{318 138} {319 139} {415 192}} + 26 {{97 {0 321} 1} {132 {0 321} 0} {133 {0 321} 0} {134 {0 321} 0} {135 {0 321} 0} {136 {0 321} 0} {137 {0 321} 0}} 175,trans {} - 27 {{87 {0 316} 1}} - 204,trans {{271 236} {272 237} {408 238}} + 27 {{98 {0 321} 1}} + 204,trans {{321 241}} 194,trans {} - 28 {{88 {0 316} 1}} + 28 {{99 {0 321} 1}} 223,trans {} - 30 {{89 {0 316} 1} {1 {0 316} 0} {2 {0 316} 0} {3 {0 316} 0} {4 {0 316} 0} {5 {0 316} 0} {6 {0 316} 0} {7 {0 316} 0}} - 29 {{62 {0 316} 1}} + 30 {{100 {0 321} 1} {11 {0 321} 0} {12 {0 321} 0} {13 {0 321} 0} {14 {0 321} 0} {15 {0 321} 0} {16 {0 321} 0} {17 {0 321} 0}} + 29 {{72 {0 321} 1}} 242,trans {} - 31 {{90 {0 316} 1}} + 31 {{101 {0 321} 1}} 261,trans {} - 32 {{91 {0 316} 1}} - 10,trans {{316 66}} - 33 {{92 {0 316} 1} {45 {0 316} 0} {46 {0 316} 0} {47 {0 316} 0} {48 {0 316} 0} {49 {0 316} 0} {50 {0 316} 0} {51 {0 316} 0}} - 28,trans {{316 102}} - 47,trans {{313 167} {419 168}} - 34 {{93 {0 316} 1} {18 {0 316} 0} {19 {0 316} 0} {20 {0 316} 0} {21 {0 316} 0} {22 {0 316} 0} {23 {0 316} 0} {24 {0 316} 0} {25 {0 316} 0} {26 {0 316} 0} {27 {0 316} 0} {28 {0 316} 0} {29 {0 316} 0} {30 {0 316} 0} {31 {0 316} 0} {32 {0 316} 0} {33 {0 316} 0} {34 {0 316} 0} {35 {0 316} 0} {36 {0 316} 0} {37 {0 316} 0} {38 {0 316} 0} {39 {0 316} 0} {40 {0 316} 0} {41 {0 316} 0} {42 {0 316} 0} {43 {0 316} 0} {44 {0 316} 0}} + 32 {{102 {0 321} 1}} + 10,trans {{321 66}} + 33 {{103 {0 321} 1} {55 {0 321} 0} {56 {0 321} 0} {57 {0 321} 0} {58 {0 321} 0} {59 {0 321} 0} {60 {0 321} 0} {61 {0 321} 0}} + 28,trans {{321 98}} + 47,trans {{318 163} {419 164}} + 34 {{104 {0 321} 1} {28 {0 321} 0} {29 {0 321} 0} {30 {0 321} 0} {31 {0 321} 0} {32 {0 321} 0} {33 {0 321} 0} {34 {0 321} 0} {35 {0 321} 0} {36 {0 321} 0} {37 {0 321} 0} {38 {0 321} 0} {39 {0 321} 0} {40 {0 321} 0} {41 {0 321} 0} {42 {0 321} 0} {43 {0 321} 0} {44 {0 321} 0} {45 {0 321} 0} {46 {0 321} 0} {47 {0 321} 0} {48 {0 321} 0} {49 {0 321} 0} {50 {0 321} 0} {51 {0 321} 0} {52 {0 321} 0} {53 {0 321} 0} {54 {0 321} 0}} } array set cat::token_id_table { - 426,line 415 - 286 WCSK_ + 426,line 440 + 286 WCSF_ 286,t 0 - 287 WCSL_ - 292,line 44 + 287 WCSG_ + 292,line 45 302,line 55 415,t 1 - 288 WCSM_ - 357,line 118 + 288 WCSH_ + 357,line 119 317,t 0 - 265,title FONTSLANT - 289 WCSN_ - 290 WCSO_ - 300 WCSY_ - 284,title WCSI - 291 WCSP_ - 301 WCSZ_ - 423,line 397 - 313,title integer - 292 WCSQ_ - 302 FK4_ + 265,title OFF + 289 WCSI_ + 290 WCSJ_ + 300 WCST_ + 284,title WCSD + 291 WCSK_ + 301 WCSU_ + 423,line 422 + 313,title ECLIPTIC + 292 WCSL_ + 302 WCSV_ 338,t 0 - 332,title CIRCLE - 288,line 40 - 293 WCSR_ - 303 B1950_ - 351,title FITS - 294 WCSS_ - 304 FK5_ - 370,title RADIUS - 369,title RA - 354,line 115 - 305 J2000_ - 295 WCST_ - 388,title STARBASE + 332,title BOX + 288,line 41 + 293 WCSM_ + 303 WCSW_ + 351,title EXPORT + 294 WCSN_ + 304 WCSX_ + 370,title PRINT + 369,title POINT + 354,line 116 + 305 WCSY_ + 295 WCSO_ + 388,title SKYFORMAT 360,t 0 359,t 0 - 306 ICRS_ - 296 WCSU_ - 420,line 378 - 419,line 377 + 306 WCSZ_ + 296 WCSP_ + 420,line 403 + 419,line 402 417,title {} - 307 GALACTIC_ + 307 FK4_ 262,t 0 - 297 WCSV_ - 308 ECLIPTIC_ - 285,line 37 - 298 WCSW_ + 297 WCSQ_ + 308 B1950_ + 285,line 38 + 298 WCSR_ 381,t 0 - 310 ARCMIN_ - 309 DEGREES_ - 299 WCSX_ - 351,line 112 - 311 ARCSEC_ + 310 J2000_ + 309 FK5_ + 299 WCSS_ + 351,line 113 + 311 ICRS_ 283,t 0 - 312 SEXAGESIMAL_ - 416,line 319 + 312 GALACTIC_ + 416,line 342 412,t 1 - 313 INT_ + 313 ECLIPTIC_ 314,t 0 - 314 REAL_ - 282,line 34 - 315 SEXSTR_ + 314 DEGREES_ + 282,line 35 + 315 ARCMIN_ 433,t 1 - 347,line 108 - 316 STRING_ - 264,title FONTSIZE + 347,line 109 + 316 ARCSEC_ + 264,title ON 335,t 0 - 317 1AND2_ - 283,title WCSH - 413,line 307 - 318 1NOT2_ - 312,title SEXAGESIMAL - 331,title CDS - 320 2NOT1_ - 319 1ONLY_ + 317 SEXAGESIMAL_ + 283,title WCSC + 413,line 330 + 318 INT_ + 312,title GALACTIC + 331,title ARROW + 320 SEXSTR_ + 319 REAL_ 278,line 30 - error,line 244 + error,line 255 356,t 0 - 350,title FILTER - 349,title FILE - 321 2ONLY_ - 368,title PSYSTEM - 344,line 105 - 322 ADD_ + 350,title ELLIPSE + 349,title EDIT + 321 STRING_ + 368,title PLOT + 344,line 106 + 322 1AND2_ 258,t 0 - 387,title SORT - 323 ALLCOLS_ + 387,title SKY + 323 1NOT2_ 416,title {} - 410,line 266 - 409,line 262 - 399,line 162 + 410,line 289 + 409,line 285 + 399,line 163 377,t 0 - 324 ALLROWS_ - 435,title {} - 325 ANGLE_ + 324 1ONLY_ + 325 2NOT1_ 275,line 27 279,t 0 280,t 0 - 326 ARROW_ + 326 2ONLY_ 408,t 1 398,t 0 - 341,line 102 - 327 BOX_ - 328 BOXCIRCLE_ + 341,line 103 + 327 ADD_ + 328 ALLCOLS_ 311,t 0 - 406,line 245 - 396,line 157 - 330 CANCEL_ - 329 BROADCAST_ + 406,line 268 + 396,line 160 + 330 ANGLE_ + 329 ALLROWS_ 430,t 1 429,t 1 - 331 CDS_ - 272,line 23 + 331 ARROW_ + 272,line 24 332,t 0 - 332 CIRCLE_ - 337,line 98 - 333 CLEAR_ - 263,title FONT - 334 CLOSE_ - 282,title WCSG - 403,line 166 - 393,line 154 + 332 BOX_ + 337,line 99 + 333 BOXCIRCLE_ + 263,title NO + 334 BROADCAST_ + 282,title WCSB + 403,line 167 + 393,line 155 353,t 0 - 335 COLOR_ - 311,title ARCSEC - 336 CONDITION_ - 330,title CANCEL - 329,title BROADCAST - 268,line 19 - 348,title ERROR - 337 COORDINATE_ + 335 CANCEL_ + 311,title ICRS + 336 CDS_ + 330,title ANGLE + 329,title ALLROWS + 268,line 20 + 348,title DIAMOND + 337 CIRCLE_ 374,t 0 - 367,title PSKY - 338 CROSS_ - 334,line 95 - 386,title SKYFORMAT - 340 CSV_ - 339 CROSSHAIR_ + 367,title PANTO + 338 CLEAR_ + 334,line 96 + 386,title SIZE2 + 340 COLOR_ + 339 CLOSE_ 276,t 0 415,title {} - 400,line 163 - 390,line 151 - 389,line 150 - 341 CURRENT_ - 434,title {} - 405,t 0 + 400,line 164 + 390,line 152 + 389,line 151 + 341 CONDITION_ + 405,t 1 395,t 0 - 342 DEC_ + 342 COORDINATE_ 265,line 16 - 343 DECR_ + 343 CROSS_ 307,t 0 297,t 0 - 344 DIAMOND_ - 331,line 160 + 344 CROSSHAIR_ + 331,line 93 426,t 1 - 345 EDIT_ - 386,line 147 - 346 ELLIPSE_ + 345 CURRENT_ + 386,line 148 + 346 DEC_ 328,t 0 - 347 EXPORT_ - 262,line 12 - 348 ERROR_ + 347 DECR_ + 262,line 13 + 348 DIAMOND_ 0,t 0 0 {$} 350,t 0 - 350 FILTER_ + 350 ELLIPSE_ 349,t 0 - 349 FILE_ - 327,line 88 - 262,title FALSE - 351 FITS_ - 281,title WCSF + 349 EDIT_ + 327,line 89 + 262,title YES + 351 EXPORT_ + 281,title WCSA error,t 0 - 383,line 144 - 352 FUNCTION_ - 310,title ARCMIN - 309,title DEGREES - 299,title WCSX + 383,line 145 + 352 ERROR_ + 310,title J2000 + 309,title FK5 + 299,title WCSS 371,t 0 - 353 HEADER_ - 328,title BOXCIRCLE + 353 FILE_ + 328,title ALLCOLS 258,line 8 - 354 HIDE_ - 347,title EXPORT + 354 FILTER_ + 347,title DECR 273,t 0 - 366,title PRINT - 355 IMPORT_ - 324,line 85 + 366,title NEW + 355 FITS_ + 324,line 86 402,t 0 392,t 0 - 385,title SKY - 356 INCR_ + 385,title SIZE + 356 FUNCTION_ 414,title {} - 380,line 141 - 379,line 140 - 357 LOAD_ + 380,line 142 + 379,line 141 + 357 HEADER_ 294,t 0 304,t 0 433,title {} - 358 LOCATION_ + 358 HIDE_ 423,t 1 - 360 MAXROWS_ - 359 MATCH_ - 361 NAME_ + 360 INCR_ + 359 IMPORT_ + 361 LOAD_ 325,t 0 - 321,line 82 - 362 NEW_ - 376,line 137 - 363 PANTO_ - 364 PLOT_ + 321,line 80 + 362 LOCATION_ + 376,line 138 + 363 MATCH_ + 364 MAXROWS_ 346,t 0 - 365 POINT_ - 366 PRINT_ - 317,line 78 - 261,title TRUE + 365 NAME_ + 366 NEW_ + 317,line 73 + 261,title TSV 367,t 0 - 367 PSKY_ - 279,title WCSD - 280,title WCSE - 373,line 134 - 368 PSYSTEM_ - 308,title ECLIPTIC + 367 PANTO_ + 279,title ITALIC + 280,title WCS + 373,line 135 + 368 PLOT_ + 308,title B1950 269,t 0 270,t 0 - 298,title WCSW - 370 RADIUS_ - 369 RA_ - 327,title BOX + 298,title WCSR + 370 PRINT_ + 369 POINT_ + 327,title ADD 388,t 0 - 371 RDB_ - 346,title ELLIPSE - 372 REGIONS_ - 365,title POINT - 314,line 70 + 371 PSKY_ + 346,title DEC + 372 PSYSTEM_ + 365,title NAME + 314,line 69 291,t 0 301,t 0 - 384,title SIZE2 - 373 REMOVE_ + 384,title SHOW + 373 RA_ 420,t 1 419,t 1 413,title {} - 374 RETRIEVE_ - 370,line 131 - 369,line 130 + 374 RADIUS_ + 370,line 132 + 369,line 131 432,title {} - 375 RETURN_ + 375 REGIONS_ 322,t 0 - 435,line 505 - 376 SAMP_ + 376 REMOVE_ y,t 0 - 377 SAVE_ + 377 RETRIEVE_ 311,line 65 - 378 SB_ + 378 RETURN_ 343,t 0 - 380 SERVER_ - 379 SEND_ - 366,line 127 - 381 SHAPE_ - 432,line 470 - 382 SHOW_ + 380 SAVE_ + 379 SAMP_ + 366,line 128 + 381 SEND_ + 432,line 508 + 382 SERVER_ 364,t 0 - 383 SIZE_ - 307,line 60 + 383 SHAPE_ + 307,line 61 266,t 0 - 260,title OFF - 259,title ON - 297,line 49 - 384 SIZE2_ - 278,title WCSC + 260,title CSV + 259,title STARBASE + 297,line 50 + 384 SHOW_ + 278,title ROMAN 385,t 0 - 385 SKY_ - 363,line 124 - 307,title GALACTIC - 297,title WCSV - 386 SKYFORMAT_ - 326,title ARROW + 385 SIZE_ + 363,line 125 + 307,title FK4 + 297,title WCSQ + 386 SIZE2_ + 326,title 2ONLY 287,t 0 - 428,line 430 - 387 SORT_ - 345,title EDIT + 428,line 456 + 387 SKY_ + 345,title CURRENT 416,t 1 - 388 STARBASE_ - 364,title PLOT - 294,line 46 + 388 SKYFORMAT_ + 364,title MAXROWS + 294,line 47 304,line 57 - 400 CAMBRIDGE_ - 390 SYSTEM_ - 389 SYMBOL_ - 383,title SIZE + 400 UKIRT_ + 390 SYMBOL_ + 389 SORT_ + 383,title SHAPE 318,t 0 412,title {} - 401 SAO_ - 391 TEXT_ - 360,line 121 - 359,line 120 + 401 IUCAA_ + 391 SYSTEM_ + 360,line 122 + 359,line 121 431,title {} - 402 UKIRT_ - 392 TSV_ - 425,line 410 - 403 IUCAA_ + 402 BEJING_ + 392 TEXT_ + 425,line 435 + 403 SAAO_ 393 UNIQUE_ 340,t 0 339,t 0 + 404 reader error,title {} - 404 BEJING_ 394 UNITS_ - 291,line 43 - 301,line 53 - 405 SAAO_ + 291,line 44 + 301,line 54 + 405 writer 395 UPDATE_ 406 yesno - 396 VOT_ + 396 ADAC_ 361,t 0 - 356,line 117 + 356,line 118 407 font - 397 XML_ + 397 CADC_ 263,t 0 - 422,line 393 + 422,line 418 408 fontWeight - 398 ADAC_ + 398 CAMBRIDGE_ 410 fontStyle 409 fontSlant - 399 CADC_ + 399 SAO_ 382,t 0 - 258,title NO - 287,line 39 + 258,title SB + 287,line 40 411 wcssys - 277,title WCSB + 277,title BOLD 284,t 0 412 skyframe - 353,line 114 - 306,title ICRS - 296,title WCSU + 353,line 115 + 306,title WCSZ + 296,title WCSP 413,t 1 413 skyformat - 325,title ANGLE - 418,line 323 + 325,title 2NOT1 + 418,line 346 414 rformat - 344,title DIAMOND + 344,title CROSSHAIR 315,t 0 415 numeric - 363,title PANTO - 284,line 36 - 434,t 1 + 363,title MATCH + 284,line 37 416 command - 382,title SHOW + 382,title SERVER 417 @PSEUDO1 411,title {} - 350,line 111 - 349,line 110 + 350,line 112 + 349,line 111 336,t 0 430,title {} 429,title {} 418 catalog 420 @PSEUDO3 419 @PSEUDO2 - 415,line 315 + 415,line 338 421 coordinate 357,t 0 - 281,line 33 + 281,line 34 422 filter 260,t 0 259,t 0 423 match - 346,line 107 + 346,line 108 424 matchFunction 378,t 0 425 matchReturn - 412,line 299 + 412,line 322 281,t 0 - 426 reader - 257,title YES + 426 samp + 257,title RDB 277,line 29 - 427 samp + 427 server 410,t 1 409,t 1 399,t 0 - 276,title WCSA - 428 server - 343,line 104 + 276,title NORMAL + 428 sort + 343,line 105 312,t 0 - 305,title J2000 - 295,title WCST - 430 sortDir - 429 sort - 324,title ALLROWS + 305,title WCSY + 295,title WCSO + 430 symbol + 429 sortDir + 324,title 1ONLY 431,t 1 - 431 symbol - 408,line 258 - 398,line 161 - 343,title DECR - 432 symbolShape - 362,title NEW + 431 symbolShape + 408,line 281 + 398,line 162 + 343,title CROSS + 432 symbolCol + 362,title LOCATION 333,t 0 - 274,line 25 - 433 symbolCol - 381,title SHAPE - 434 writer + 274,line 26 + 433 start' + 381,title SEND 410,title {} 409,title {} - 399,title CADC - 340,line 101 - 339,line 100 - 435 start' + 399,title SAO + 340,line 102 + 339,line 101 428,title {} 354,t 0 - 405,line 168 - 395,line 156 - 271,line 22 + 405,line 262 + 395,line 157 + 271,line 23 375,t 0 x x - 336,line 97 + 336,line 159 277,t 0 y y 406,t 1 - 402,line 165 + 402,line 166 396,t 0 - 392,line 153 + 392,line 154 308,t 0 267,line 18 298,t 0 - 275,title WCS + 275,title COURIER 427,t 1 - 333,line 94 - 294,title WCSS - 304,title FK5 + 333,line 95 + 294,title WCSN + 304,title WCSX 330,t 0 329,t 0 - 323,title ALLCOLS - 388,line 149 - 342,title DEC - 361,title NAME + 323,title 1NOT2 + 388,line 150 + 342,title COORDINATE + 361,title LOAD 264,line 15 - 380,title SERVER - 379,title SEND + 380,title SAVE + 379,title SAMP 351,t 0 408,title {} - 398,title ADAC - 330,line 91 - 329,line 90 + 398,title CAMBRIDGE + 330,line 92 + 329,line 91 427,title {} - 385,line 146 + 385,line 147 372,t 0 261,line 11 274,t 0 403,t 0 393,t 0 - 326,line 87 + 326,line 88 305,t 0 295,t 0 - 382,line 143 + 382,line 144 424,t 1 257,line 7 326,t 0 - 274,title ITALIC - 323,line 84 - 293,title WCSR - 303,title B1950 - 322,title ADD - 378,line 139 + 274,title HELVETICA + 323,line 85 + 293,title WCSM + 303,title WCSW + 322,title 1AND2 + 378,line 140 347,t 0 - 341,title CURRENT - 360,title MAXROWS - 359,title MATCH - 378,title SB + 341,title CONDITION + 360,title INCR + 359,title IMPORT + 378,title RETURN 407,title {} - 397,title XML + 397,title CADC 368,t 0 - 320,line 81 - 319,line 80 + 320,line 78 + 319,line 76 426,title {} error error 271,t 0 - 375,line 136 + 375,line 137 400,t 0 390,t 0 389,t 0 - y,line 383 + y,line 408 292,t 0 302,t 0 - 316,line 74 + 316,line 71 421,t 1 - 372,line 133 + 372,line 134 323,t 0 - 273,title ROMAN + 273,title TIMES 344,t 0 - 313,line 69 - 292,title WCSQ - 302,title FK4 - 321,title 2ONLY - 368,line 129 - 340,title CSV - 339,title CROSSHAIR + 313,line 67 + 292,title WCSL + 302,title WCSV + 321,title string + 368,line 130 + 340,title COLOR + 339,title CLOSE 365,t 0 - 358,title LOCATION - 434,line 497 - 377,title SAVE + 358,title HIDE + 377,title RETRIEVE 267,t 0 406,title {} - 396,title VOT + 396,title ADAC 310,line 64 309,line 63 - 299,line 51 + 299,line 52 425,title {} 386,t 0 - 365,line 126 + 365,line 127 288,t 0 - 431,line 449 + 431,line 485 417,t 1 320,t 0 319,t 0 306,line 59 - 296,line 48 - 362,line 123 + 296,line 49 + 362,line 124 341,t 0 - 427,line 425 - 272,title BOLD - 291,title WCSP - 293,line 45 - 301,title WCSZ + 427,line 445 + 272,title FONTWEIGHT + 291,title WCSK + 293,line 46 + 301,title WCSU 303,line 56 362,t 0 - 320,title 2NOT1 - 319,title 1ONLY - 358,line 119 - 338,title CROSS + 320,title sexagesimal + 319,title float + 358,line 120 + 338,title CLEAR 264,t 0 - 357,title LOAD - 424,line 405 + 357,title HEADER + 424,line 430 383,t 0 - 376,title SAMP - 405,title SAAO + 376,title REMOVE + 405,title {} 395,title UPDATE 285,t 0 - 289,line 41 - 290,line 42 - 300,line 52 + 289,line 42 + 290,line 43 + 300,line 53 424,title {} 414,t 1 - 355,line 116 + 355,line 117 316,t 0 - 421,line 387 - 435,t 1 - 286,line 38 + 421,line 412 + 286,line 39 337,t 0 - 352,line 113 - 417,line 320 + 352,line 114 + 417,line 343 358,t 0 - 271,title NORMAL + 271,title FONTSTYLE 261,t 0 - 283,line 35 - 289,title WCSN - 290,title WCSO - 300,title WCSY - 318,title 1NOT2 + 283,line 36 + 289,title WCSI + 290,title WCSJ + 300,title WCST + 318,title integer 380,t 0 379,t 0 - 348,line 109 - 337,title COORDINATE - 356,title INCR + 348,line 110 + 337,title CIRCLE + 356,title FUNCTION 282,t 0 - 414,line 311 - 375,title RETURN + 414,line 334 + 375,title REGIONS 411,t 1 - 404,title BEJING + 404,title {} 394,title UNITS 279,line 31 - 280,line 32 + 280,line 33 423,title {} 313,t 0 - 345,line 106 + 345,line 107 432,t 1 - 411,line 271 + 411,line 294 334,t 0 276,line 28 355,t 0 - 342,line 103 + 342,line 104 257,t 0 - 407,line 253 - 397,line 158 - 269,title HELVETICA - 270,title COURIER + 407,line 276 + 397,line 161 + 269,title FONTSIZE + 270,title FONTSLANT 376,t 0 - 273,line 24 - 288,title WCSM - 317,title 1AND2 + 273,line 25 + 288,title WCSH + 317,title SEXAGESIMAL 278,t 0 - 338,line 99 - 336,title CONDITION + 338,line 100 + 336,title CDS 407,t 1 397,t 0 - 355,title IMPORT - 404,line 167 - 394,line 155 - 374,title RETRIEVE + 355,title FITS + 404,line 256 + 394,line 156 + 374,title RADIUS 310,t 0 309,t 0 299,t 0 - 403,title IUCAA + 403,title SAAO 393,title UNIQUE - 269,line 20 - 270,line 21 + 269,line 21 + 270,line 22 428,t 1 422,title {} y,title {} - 335,line 96 + 335,line 97 331,t 0 - 401,line 164 - 391,line 152 + 401,line 165 + 391,line 153 352,t 0 266,line 17 - 332,line 93 + 332,line 94 373,t 0 - 387,line 148 - 268,title TIMES + 387,line 149 + 268,title FONT 275,t 0 263,line 14 - 287,title WCSL - 404,t 0 + 287,title WCSG + 404,t 1 394,t 0 - 316,title string - 335,title COLOR - 328,line 89 + 316,title ARCSEC + 335,title CANCEL + 328,line 90 306,t 0 296,t 0 - 354,title HIDE + 354,title FILTER 425,t 1 - 384,line 145 - 373,title REMOVE - 402,title UKIRT - 392,title TSV + 384,line 146 + 373,title RA + 402,title BEJING + 392,title TEXT 327,t 0 260,line 10 259,line 9 421,title {} x,title {} - 325,line 86 + 325,line 87 348,t 0 - 381,line 142 + 381,line 143 370,t 0 369,t 0 - 322,line 83 + 322,line 84 272,t 0 401,t 0 391,t 0 - 377,line 138 - 267,title FONTWEIGHT - 257 YES_ - 286,title WCSK + 377,line 139 + 267,title FALSE + 257 RDB_ + 286,title WCSF 293,t 0 303,t 0 - 315,title sexagesimal - 258 NO_ + 315,title ARCMIN + 258 SB_ 422,t 1 - 334,title CLOSE - 318,line 79 - 260 OFF_ - 259 ON_ - 353,title HEADER + 334,title BROADCAST + 318,line 75 + 260 CSV_ + 259 STARBASE_ + 353,title FILE 324,t 0 - 261 TRUE_ - 374,line 135 - 372,title REGIONS - 262 FALSE_ - 401,title SAO - 391,title TEXT - 263 FONT_ - x,line 483 + 261 TSV_ + 374,line 136 + 372,title PSYSTEM + 262 YES_ + 401,title IUCAA + 391,title SYSTEM + 263 NO_ + x,line 498 420,title {} 419,title {} 345,t 0 - 264 FONTSIZE_ - 315,line 72 - 265 FONTSLANT_ - 266 FONTSTYLE_ - 371,line 132 + 264 ON_ + 315,line 70 + 265 OFF_ + 266 TRUE_ + 371,line 133 366,t 0 - 267 FONTWEIGHT_ + 267 FALSE_ 268,t 0 - 268 TIMES_ - 269 HELVETICA_ - 270 COURIER_ + 268 FONT_ + 269 FONTSIZE_ + 270 FONTSLANT_ 387,t 0 - 312,line 67 - 271 NORMAL_ - 272 BOLD_ + 312,line 66 + 271 FONTSTYLE_ + 272 FONTWEIGHT_ 289,t 0 290,t 0 300,t 0 - 367,line 128 - 266,title FONTSTYLE - 273 ROMAN_ + 367,line 129 + 266,title TRUE + 273 TIMES_ 418,t 1 - 274 ITALIC_ - 285,title WCSJ - 433,line 493 + 274 HELVETICA_ + 285,title WCSE + 433,line 511 321,t 0 - 314,title float - 275 WCS_ - 333,title CLEAR - 308,line 61 - 276 WCSA_ - 298,line 50 + 314,title DEGREES + 275 COURIER_ + 333,title BOXCIRCLE + 308,line 62 + 276 NORMAL_ + 298,line 51 x,t 0 - 352,title FUNCTION - 277 WCSB_ - 371,title RDB - 364,line 125 + 352,title ERROR + 277 BOLD_ + 371,title PSKY + 364,line 126 342,t 0 - 278 WCSC_ - 400,title CAMBRIDGE - 390,title SYSTEM - 389,title SYMBOL - 279 WCSD_ - 280 WCSE_ - 430,line 445 - 429,line 441 + 278 ROMAN_ + 400,title UKIRT + 390,title SYMBOL + 389,title SORT + 279 ITALIC_ + 280 WCS_ + 430,line 464 + 429,line 460 418,title {} - 281 WCSF_ + 281 WCSA_ 363,t 0 305,line 58 - 282 WCSG_ - 295,line 47 + 282 WCSB_ + 295,line 48 265,t 0 - 283 WCSH_ - 361,line 122 - 284 WCSI_ + 283 WCSC_ + 361,line 123 + 284 WCSD_ 384,t 0 - 285 WCSJ_ + 285 WCSE_ } proc cat::yyparse {} { @@ -3721,196 +3683,192 @@ set _ $1 set yylval [lindex $value_stack end] switch -- $rule { - 1 { set _ 1 } - 2 { set _ 1 } - 3 { set _ 1 } - 4 { set _ 1 } - 5 { set _ 0 } - 6 { set _ 0 } - 7 { set _ 0 } - 8 { set _ times } - 9 { set _ helvetica } - 10 { set _ courier } - 11 { set _ normal } - 12 { set _ bold } - 13 { set _ roman } - 14 { set _ italic } - 15 { set _ normal } - 16 { set _ bold } - 17 { set _ italic } - 18 { set _ wcs } - 19 { set _ wcsa } - 20 { set _ wcsb } - 21 { set _ wcsc } - 22 { set _ wcsd } - 23 { set _ wcse } - 24 { set _ wcsf } - 25 { set _ wcsg } - 26 { set _ wcsh } - 27 { set _ wcsi } - 28 { set _ wcsj } - 29 { set _ wcsk } - 30 { set _ wcsl } - 31 { set _ wcsm } - 32 { set _ wcsn } - 33 { set _ wcso } - 34 { set _ wcsp } - 35 { set _ wcsq } - 36 { set _ wcsr } - 37 { set _ wcss } - 38 { set _ wcst } - 39 { set _ wcsu } - 40 { set _ wcsv } - 41 { set _ wcsw } - 42 { set _ wcsx } - 43 { set _ wcsy } - 44 { set _ wcsz } - 45 { set _ fk4 } - 46 { set _ fk4 } - 47 { set _ fk5 } - 48 { set _ fk5 } - 49 { set _ icrs } - 50 { set _ galactic } - 51 { set _ ecliptic } - 52 { set _ degrees } - 53 { set _ sexagesimal } - 54 { set _ degrees } - 55 { set _ arcmin } - 56 { set _ arcsec } - 57 { set _ $1 } - 58 { set _ $1 } - 60 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } - 62 { CATTool } - 63 { CATTool } - 64 { CatalogCmdRetrieve $1 } - 65 { CatalogCmdRetrieve sao } - 66 { CatalogCmdRetrieve $2 } - 67 { CatalogCmdLoad $2 VOTRead } - 68 { CatalogCmdLoad $2 VOTRead } - 69 { CatalogCmdLoad $3 $2 } - 70 { ProcessCmdCVAR allcols $2 } - 71 { ProcessCmdCVAR allrows $2 } - 72 { ProcessCmdCVAR0 ARCancel } - 73 { ProcessCmdCVAR0 CATOff } - 74 { ProcessCmdCVAR0 CATDestroy } - 77 { ProcessCmdCVAR0 TBLCrosshair } - 78 { CatalogCmdRef $2 } - 79 { CatalogCmdRef sao } - 80 { ProcessCmdCVAR edit $2 CATEdit } + 1 { set _ starbase_read } + 2 { set _ starbase_read } + 3 { set _ starbase_read } + 4 { set _ TSVRead } + 5 { set _ TSVRead } + 6 { set _ starbase_write } + 7 { set _ starbase_write } + 8 { set _ starbase_write } + 9 { set _ TSVWrite } + 10 { set _ TSVWrite } + 11 { set _ 1 } + 12 { set _ 1 } + 13 { set _ 1 } + 14 { set _ 1 } + 15 { set _ 0 } + 16 { set _ 0 } + 17 { set _ 0 } + 18 { set _ times } + 19 { set _ helvetica } + 20 { set _ courier } + 21 { set _ normal } + 22 { set _ bold } + 23 { set _ roman } + 24 { set _ italic } + 25 { set _ normal } + 26 { set _ bold } + 27 { set _ italic } + 28 { set _ wcs } + 29 { set _ wcsa } + 30 { set _ wcsb } + 31 { set _ wcsc } + 32 { set _ wcsd } + 33 { set _ wcse } + 34 { set _ wcsf } + 35 { set _ wcsg } + 36 { set _ wcsh } + 37 { set _ wcsi } + 38 { set _ wcsj } + 39 { set _ wcsk } + 40 { set _ wcsl } + 41 { set _ wcsm } + 42 { set _ wcsn } + 43 { set _ wcso } + 44 { set _ wcsp } + 45 { set _ wcsq } + 46 { set _ wcsr } + 47 { set _ wcss } + 48 { set _ wcst } + 49 { set _ wcsu } + 50 { set _ wcsv } + 51 { set _ wcsw } + 52 { set _ wcsx } + 53 { set _ wcsy } + 54 { set _ wcsz } + 55 { set _ fk4 } + 56 { set _ fk4 } + 57 { set _ fk5 } + 58 { set _ fk5 } + 59 { set _ icrs } + 60 { set _ galactic } + 61 { set _ ecliptic } + 62 { set _ degrees } + 63 { set _ sexagesimal } + 64 { set _ degrees } + 65 { set _ arcmin } + 66 { set _ arcsec } + 67 { set _ $1 } + 68 { set _ $1 } + 70 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } + 72 { CATTool } + 73 { CATTool } + 74 { CatalogCmdRetrieve $1 } + 75 { CatalogCmdRetrieve sao } + 76 { CatalogCmdRetrieve $2 } + 77 { CatalogCmdLoad $2 VOTRead } + 78 { CatalogCmdLoad $2 VOTRead } + 79 { CatalogCmdLoad $3 $2 } + 80 { CatalogCmdLoad $3 FITSRead } 81 { TBLCmdSave $3 $2 } - 83 { ProcessCmdCVAR0 CATHeader } - 84 { ProcessCmdCVAR show 0 CATGenerate } - 85 { ProcessCmdCVAR loc $2 CATGenerate } - 87 { ProcessCmdCVAR max $2 } - 88 { ProcessCmdCVAR name $2 } - 89 { ProcessCmdCVAR panto $2 } - 90 { ProcessCmdCVAR4 plot,x $2 plot,y $3 plot,xerr $4 plot,yerr $5 CATPlotGenerate } - 91 { ProcessCmdCVAR0 TBLCmdPrint } - 92 { ProcessCmdCVAR psky $2 CATGenerate } - 93 { ProcessCmdCVAR psystem $2 CATGenerate } - 94 { TBLCmdSize $2 $3 } - 95 { ProcessCmdCVAR0 CATGenerateRegions } - 96 { global cvarname; CATApply $cvarname 1 } - 98 { TBLCmdSave $2 VOTWrite } - 99 { ProcessCmdCVAR server $2 } - 100 { ProcessCmdCVAR show $2 CATGenerate } - 101 { TBLCmdSize [expr ($2+$3)/2.] $4 } - 102 { CatalogCmdSkyframe $2 } - 103 { ProcessCmdCVAR skyformat $2 } - 105 { ProcessCmdCVAR row 1 } - 107 { CagtalogCmdCat row $2 } - 109 { CatalogCmdSystem $2 } - 110 { ProcessCmdCVAR0 TBLUpdate } - 111 { ProcessCmdCVAR colx $2 CATGenerate } - 112 { ProcessCmdCVAR colx $2 CATGenerate } - 113 { ProcessCmdCVAR coly $2 CATGenerate } - 114 { ProcessCmdCVAR coly $2 CATGenerate } - 115 { TBLCmdCoord $1 $2 fk5 } - 116 { TBLCmdCoord $1 $2 $3 } - 117 { TBLCmdCoord $1 $2 fk5 } - 118 { TBLCmdCoord $1 $2 $3 } - 119 { TBLCmdFilterLoad $2 } - 120 { ProcessCmdCVAR filter $1 CATTable } - 121 { CatalogCmdMatch } - 122 { ProcessCmdSet2 icat error $2 eformat $3 } - 123 { ProcessCmdSet icat function $2 } - 124 { ProcessCmdSet icat unique $2 } - 125 { ProcessCmdSet icat return $2 } - 126 { CatalogCmdMatchParams "cat$1" "cat$2" } - 127 { set _ 1and2 } - 128 { set _ 1not2 } - 129 { set _ 2not1 } - 130 { set _ 1and2 } - 131 { set _ 1only } - 132 { set _ 2only } - 133 { set _ VOTRead } - 134 { set _ VOTRead } - 135 { set _ starbase_read } - 136 { set _ starbase_read } - 137 { set _ starbase_read } - 138 { set _ TSVRead } - 139 { set _ TSVRead } - 140 { set _ FITSRead } - 141 { CatalogCmdSAMP } - 142 { CatalogCmdSAMP } - 143 { CatalogCmdSAMPSend $2 } - 144 { set _ cds } - 145 { set _ adac } - 146 { set _ cadc } - 147 { set _ cambridge } - 148 { set _ sao } - 149 { set _ ukirt } - 150 { set _ iucaa } - 151 { set _ bejing } - 152 { set _ saao } - 153 { ProcessCmdCVAR sort $1; ProcessCmdCVAR sort,dir "-increasing" CATTable } - 154 { ProcessCmdCVAR sort $1; ProcessCmdCVAR sort,dir $2 CATTable } - 155 { set _ "-increasing" } - 156 { set _ "-decreasing" } - 157 { CatalogCmdSymbolAdd } - 158 { CatalogCmdSymbolRemove } - 159 { CatalogCmdSymbolLoad $2 } - 160 { CatalogCmdSymbolSave $2 } - 161 { CatalogCmdSymbol angle $2 } - 162 { CatalogCmdSymbol color $2 } - 163 { CatalogCmdSymbol condition $2 } - 164 { CatalogCmdSymbol font $2 } - 165 { CatalogCmdSymbol fontsize $2 } - 166 { CatalogCmdSymbol fontweight $2 } - 167 { CatalogCmdSymbol fontslant $2 } - 168 { CatalogCmdSymbolFontStyle $2 } - 169 { CatalogCmdSymbol size $2 } - 170 { CatalogCmdSymbol size2 $2 } - 171 { CatalogCmdSymbol shape $2 } - 172 { CatalogCmdSymbol text $2 } - 173 { CatalogCmdSymbol units $2 } - 174 { set _ circle } - 175 { set _ ellipse } - 176 { set _ box } - 177 { set _ text } - 178 { set _ "circle point" } - 179 { set _ "circle point" } - 180 { set _ "box point" } - 181 { set _ "diamond point" } - 182 { set _ "diamond point" } - 183 { set _ "cross point" } - 184 { set _ "cross point" } - 185 { set _ "x point" } - 186 { set _ "x point" } - 187 { set _ "arrow point" } - 188 { set _ "arrow point" } - 189 { set _ "boxcircle point" } - 190 { set _ "boxcircle point" } - 191 { set _ $1 } - 192 { set _ $1 } - 193 { set _ $1 } - 194 { set _ VOTWrite } - 195 { set _ VOTWrite } - 196 { set _ starbase_write } - 197 { set _ starbase_write } - 198 { set _ starbase_write } - 199 { set _ TSVWrite } - 200 { set _ TSVWrite } + 82 { ProcessCmdCVAR allcols $2 } + 83 { ProcessCmdCVAR allrows $2 } + 84 { ProcessCmdCVAR0 ARCancel } + 85 { ProcessCmdCVAR0 CATOff } + 86 { ProcessCmdCVAR0 CATDestroy } + 89 { ProcessCmdCVAR0 TBLCrosshair } + 90 { CatalogCmdRef $2 } + 91 { CatalogCmdRef sao } + 92 { ProcessCmdCVAR edit $2 CATEdit } + 94 { ProcessCmdCVAR0 CATHeader } + 95 { ProcessCmdCVAR show 0 CATGenerate } + 96 { ProcessCmdCVAR loc $2 CATGenerate } + 98 { ProcessCmdCVAR max $2 } + 99 { ProcessCmdCVAR name $2 } + 100 { ProcessCmdCVAR panto $2 } + 101 { ProcessCmdCVAR4 plot,x $2 plot,y $3 plot,xerr $4 plot,yerr $5 CATPlotGenerate } + 102 { ProcessCmdCVAR0 TBLCmdPrint } + 103 { ProcessCmdCVAR psky $2 CATGenerate } + 104 { ProcessCmdCVAR psystem $2 CATGenerate } + 105 { TBLCmdSize $2 $3 } + 106 { ProcessCmdCVAR0 CATGenerateRegions } + 107 { global cvarname; CATApply $cvarname 1 } + 109 { TBLCmdSave $2 VOTWrite } + 110 { ProcessCmdCVAR server $2 } + 111 { ProcessCmdCVAR show $2 CATGenerate } + 112 { TBLCmdSize [expr ($2+$3)/2.] $4 } + 113 { CatalogCmdSkyframe $2 } + 114 { ProcessCmdCVAR skyformat $2 } + 116 { ProcessCmdCVAR row 1 } + 118 { CatalogCmdCVAR row $2 } + 120 { CatalogCmdSystem $2 } + 121 { ProcessCmdCVAR0 TBLUpdate } + 122 { ProcessCmdCVAR colx $2 CATGenerate } + 123 { ProcessCmdCVAR colx $2 CATGenerate } + 124 { ProcessCmdCVAR coly $2 CATGenerate } + 125 { ProcessCmdCVAR coly $2 CATGenerate } + 126 { TBLCmdCoord $1 $2 fk5 } + 127 { TBLCmdCoord $1 $2 $3 } + 128 { TBLCmdCoord $1 $2 fk5 } + 129 { TBLCmdCoord $1 $2 $3 } + 130 { TBLCmdFilterLoad $2 } + 131 { ProcessCmdCVAR filter $1 CATTable } + 132 { CatalogCmdMatch } + 133 { ProcessCmdSet2 icat error $2 eformat $3 } + 134 { ProcessCmdSet icat function $2 } + 135 { ProcessCmdSet icat unique $2 } + 136 { ProcessCmdSet icat return $2 } + 137 { CatalogCmdMatchParams "cat$1" "cat$2" } + 138 { set _ 1and2 } + 139 { set _ 1not2 } + 140 { set _ 2not1 } + 141 { set _ 1and2 } + 142 { set _ 1only } + 143 { set _ 2only } + 144 { CatalogCmdSAMP } + 145 { CatalogCmdSAMP } + 146 { CatalogCmdSAMPSend $2 } + 147 { set _ cds } + 148 { set _ adac } + 149 { set _ cadc } + 150 { set _ cambridge } + 151 { set _ sao } + 152 { set _ ukirt } + 153 { set _ iucaa } + 154 { set _ bejing } + 155 { set _ saao } + 156 { ProcessCmdCVAR sort $1; ProcessCmdCVAR sort,dir "-increasing" CATTable } + 157 { ProcessCmdCVAR sort $1; ProcessCmdCVAR sort,dir $2 CATTable } + 158 { set _ "-increasing" } + 159 { set _ "-decreasing" } + 160 { CatalogCmdSymbolAdd } + 161 { CatalogCmdSymbolRemove } + 162 { CatalogCmdSymbolLoad $2 } + 163 { CatalogCmdSymbolSave $2 } + 164 { CatalogCmdSymbol angle $2 } + 165 { CatalogCmdSymbol color $2 } + 166 { CatalogCmdSymbol condition $2 } + 167 { CatalogCmdSymbol font $2 } + 168 { CatalogCmdSymbol fontsize $2 } + 169 { CatalogCmdSymbol fontweight $2 } + 170 { CatalogCmdSymbol fontslant $2 } + 171 { CatalogCmdSymbolFontStyle $2 } + 172 { CatalogCmdSymbol size $2 } + 173 { CatalogCmdSymbol size2 $2 } + 174 { CatalogCmdSymbol shape $2 } + 175 { CatalogCmdSymbol text $2 } + 176 { CatalogCmdSymbol units $2 } + 177 { set _ circle } + 178 { set _ ellipse } + 179 { set _ box } + 180 { set _ text } + 181 { set _ "circle point" } + 182 { set _ "circle point" } + 183 { set _ "box point" } + 184 { set _ "diamond point" } + 185 { set _ "diamond point" } + 186 { set _ "cross point" } + 187 { set _ "cross point" } + 188 { set _ "x point" } + 189 { set _ "x point" } + 190 { set _ "arrow point" } + 191 { set _ "arrow point" } + 192 { set _ "boxcircle point" } + 193 { set _ "boxcircle point" } + 194 { set _ $1 } + 195 { set _ $1 } + 196 { set _ $1 } } unsetupvalues $dc # pop off tokens from the stack if normal rule diff -Nru saods9-8.2+repack/ds9/parsers/colorbarparser.tac saods9-8.3+repack/ds9/parsers/colorbarparser.tac --- saods9-8.2+repack/ds9/parsers/colorbarparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/colorbarparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -30,33 +30,33 @@ | colorbar {global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT}} STRING_ ; -colorbar : yesno {ProcessCmdSet view colorbar $1 UpdateView} +colorbar : yesno {ProcessCmdSet view colorbar $1 ColorbarUpdateView} | MATCH_ {MatchColorCurrent} | LOCK_ yesno {ProcessCmdSet colorbar lock $2 LockColorCurrent} - | NUMERICS_ yesno {ProcessCmdSet colorbar numerics $2 UpdateView} - | SPACE_ space {ProcessCmdSet colorbar space $2 UpdateView} - | FONT_ font {ProcessCmdSet colorbar font $2 UpdateView} - | FONTSIZE_ INT_ {ProcessCmdSet colorbar font,size $2 UpdateView} - | FONTWEIGHT_ fontWeight {ProcessCmdSet colorbar font,weight $2 UpdateView} - | FONTSLANT_ fontSlant {ProcessCmdSet colorbar font,slant $2 UpdateView} + | NUMERICS_ yesno {ProcessCmdSet colorbar numerics $2 ColorbarUpdateView} + | SPACE_ space {ProcessCmdSet colorbar space $2 ColorbarUpdateView} + | FONT_ font {ProcessCmdSet colorbar font $2 ColorbarUpdateView} + | FONTSIZE_ INT_ {ProcessCmdSet colorbar font,size $2 ColorbarUpdateView} + | FONTWEIGHT_ fontWeight {ProcessCmdSet colorbar font,weight $2 ColorbarUpdateView} + | FONTSLANT_ fontSlant {ProcessCmdSet colorbar font,slant $2 ColorbarUpdateView} # backward compatibility - | FONTSTYLE_ fontStyle {ProcessCmdFontStyle colorbar font $2 UpdateView} + | FONTSTYLE_ fontStyle {ProcessCmdFontStyle colorbar font $2 ColorbarUpdateView} - | orientation {ProcessCmdSet colorbar orientation $1 UpdateView} + | orientation {ProcessCmdSet colorbar orientation $1 ColorbarUpdateView} # backward compatibility - | ORIENTATION_ orientation {ProcessCmdSet colorbar orientation $2 UpdateView} + | ORIENTATION_ orientation {ProcessCmdSet colorbar orientation $2 ColorbarUpdateView} - | SIZE_ INT_ {ProcessCmdSet colorbar size $2 UpdateView} - | TICKS_ INT_ {ProcessCmdSet colorbar ticks $2 UpdateView} + | SIZE_ INT_ {ProcessCmdSet colorbar size $2 ColorbarUpdateView} + | TICKS_ INT_ {ProcessCmdSet colorbar ticks $2 ColorbarUpdateView} ; space : VALUE_ {set _ 1} | DISTANCE_ {set _ 0} ; -orientation : VERTICAL_ {set _ vertical} - | HORIZONTAL_ {set _ horizontal} +orientation : VERTICAL_ {set _ 1} + | HORIZONTAL_ {set _ 0} ; %% diff -Nru saods9-8.2+repack/ds9/parsers/colorbarparser.tcl saods9-8.3+repack/ds9/parsers/colorbarparser.tcl --- saods9-8.2+repack/ds9/parsers/colorbarparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/colorbarparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -863,24 +863,24 @@ 16 { set _ bold } 17 { set _ italic } 19 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } - 21 { ProcessCmdSet view colorbar $1 UpdateView } + 21 { ProcessCmdSet view colorbar $1 ColorbarUpdateView } 22 { MatchColorCurrent } 23 { ProcessCmdSet colorbar lock $2 LockColorCurrent } - 24 { ProcessCmdSet colorbar numerics $2 UpdateView } - 25 { ProcessCmdSet colorbar space $2 UpdateView } - 26 { ProcessCmdSet colorbar font $2 UpdateView } - 27 { ProcessCmdSet colorbar font,size $2 UpdateView } - 28 { ProcessCmdSet colorbar font,weight $2 UpdateView } - 29 { ProcessCmdSet colorbar font,slant $2 UpdateView } - 30 { ProcessCmdFontStyle colorbar font $2 UpdateView } - 31 { ProcessCmdSet colorbar orientation $1 UpdateView } - 32 { ProcessCmdSet colorbar orientation $2 UpdateView } - 33 { ProcessCmdSet colorbar size $2 UpdateView } - 34 { ProcessCmdSet colorbar ticks $2 UpdateView } + 24 { ProcessCmdSet colorbar numerics $2 ColorbarUpdateView } + 25 { ProcessCmdSet colorbar space $2 ColorbarUpdateView } + 26 { ProcessCmdSet colorbar font $2 ColorbarUpdateView } + 27 { ProcessCmdSet colorbar font,size $2 ColorbarUpdateView } + 28 { ProcessCmdSet colorbar font,weight $2 ColorbarUpdateView } + 29 { ProcessCmdSet colorbar font,slant $2 ColorbarUpdateView } + 30 { ProcessCmdFontStyle colorbar font $2 ColorbarUpdateView } + 31 { ProcessCmdSet colorbar orientation $1 ColorbarUpdateView } + 32 { ProcessCmdSet colorbar orientation $2 ColorbarUpdateView } + 33 { ProcessCmdSet colorbar size $2 ColorbarUpdateView } + 34 { ProcessCmdSet colorbar ticks $2 ColorbarUpdateView } 35 { set _ 1 } 36 { set _ 0 } - 37 { set _ vertical } - 38 { set _ horizontal } + 37 { set _ 1 } + 38 { set _ 0 } } unsetupvalues $dc # pop off tokens from the stack if normal rule diff -Nru saods9-8.2+repack/ds9/parsers/colorbarsendparser.tac saods9-8.3+repack/ds9/parsers/colorbarsendparser.tac --- saods9-8.2+repack/ds9/parsers/colorbarsendparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/colorbarsendparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -18,7 +18,7 @@ colorbarsend : {ProcessSendCmdYesNo view colorbar} | LOCK_ {ProcessSendCmdYesNo colorbar lock} - | ORIENTATION_ {ProcessSendCmdGet colorbar orientation} + | ORIENTATION_ {ColorbarSendCmdOrientation} | NUMERICS_ {ProcessSendCmdYesNo colorbar numerics} | SPACE_ {ColorbarSendCmdSpace} | FONT_ {ProcessSendCmdGet colorbar font} diff -Nru saods9-8.2+repack/ds9/parsers/colorbarsendparser.tcl saods9-8.3+repack/ds9/parsers/colorbarsendparser.tcl --- saods9-8.2+repack/ds9/parsers/colorbarsendparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/colorbarsendparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -350,7 +350,7 @@ switch -- $rule { 1 { ProcessSendCmdYesNo view colorbar } 2 { ProcessSendCmdYesNo colorbar lock } - 3 { ProcessSendCmdGet colorbar orientation } + 3 { ColorbarSendCmdOrientation } 4 { ProcessSendCmdYesNo colorbar numerics } 5 { ColorbarSendCmdSpace } 6 { ProcessSendCmdGet colorbar font } diff -Nru saods9-8.2+repack/ds9/parsers/fplex.fcl saods9-8.3+repack/ds9/parsers/fplex.fcl --- saods9-8.2+repack/ds9/parsers/fplex.fcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/fplex.fcl 2021-11-08 15:46:07.000000000 +0000 @@ -37,13 +37,7 @@ cxc {return $CXC_} hla {return $HLA_} -xml {return $XML_} -vot {return $VOT_} -sb {return $SB_} -starbase {return $STARBASE_} -csv {return $CSV_} -tsv {return $TSV_} - +#include reader.fin #include yesno.fin #include wcssys.fin #include skyframe.fin diff -Nru saods9-8.2+repack/ds9/parsers/fplex.tcl saods9-8.3+repack/ds9/parsers/fplex.tcl --- saods9-8.2+repack/ds9/parsers/fplex.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/fplex.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -179,88 +179,87 @@ variable done_ variable state_table_ -set YES_ 257 -set NO_ 258 -set ON_ 259 -set OFF_ 260 -set TRUE_ 261 -set FALSE_ 262 -set WCS_ 263 -set WCSA_ 264 -set WCSB_ 265 -set WCSC_ 266 -set WCSD_ 267 -set WCSE_ 268 -set WCSF_ 269 -set WCSG_ 270 -set WCSH_ 271 -set WCSI_ 272 -set WCSJ_ 273 -set WCSK_ 274 -set WCSL_ 275 -set WCSM_ 276 -set WCSN_ 277 -set WCSO_ 278 -set WCSP_ 279 -set WCSQ_ 280 -set WCSR_ 281 -set WCSS_ 282 -set WCST_ 283 -set WCSU_ 284 -set WCSV_ 285 -set WCSW_ 286 -set WCSX_ 287 -set WCSY_ 288 -set WCSZ_ 289 -set FK4_ 290 -set B1950_ 291 -set FK5_ 292 -set J2000_ 293 -set ICRS_ 294 -set GALACTIC_ 295 -set ECLIPTIC_ 296 -set DEGREES_ 297 -set ARCMIN_ 298 -set ARCSEC_ 299 -set SEXAGESIMAL_ 300 -set INT_ 301 -set REAL_ 302 -set SEXSTR_ 303 -set STRING_ 304 -set CANCEL_ 305 -set CLEAR_ 306 -set CLOSE_ 307 -set COORDINATE_ 308 -set CROSSHAIR_ 309 -set CURRENT_ 310 -set DECR_ 311 -set EXPORT_ 312 -set FILTER_ 313 -set HIDE_ 314 -set INCR_ 315 -set LOAD_ 316 -set NAME_ 317 -set PANTO_ 318 -set PRINT_ 319 -set RADIUS_ 320 -set REGIONS_ 321 -set RETRIEVE_ 322 -set SAVE_ 323 -set SHOW_ 324 -set SIZE_ 325 -set SKY_ 326 -set SKYFORMAT_ 327 -set SORT_ 328 -set SYSTEM_ 329 -set UPDATE_ 330 -set CXC_ 331 -set HLA_ 332 -set XML_ 333 -set VOT_ 334 -set SB_ 335 -set STARBASE_ 336 -set CSV_ 337 -set TSV_ 338 +set RDB_ 257 +set SB_ 258 +set STARBASE_ 259 +set CSV_ 260 +set TSV_ 261 +set YES_ 262 +set NO_ 263 +set ON_ 264 +set OFF_ 265 +set TRUE_ 266 +set FALSE_ 267 +set WCS_ 268 +set WCSA_ 269 +set WCSB_ 270 +set WCSC_ 271 +set WCSD_ 272 +set WCSE_ 273 +set WCSF_ 274 +set WCSG_ 275 +set WCSH_ 276 +set WCSI_ 277 +set WCSJ_ 278 +set WCSK_ 279 +set WCSL_ 280 +set WCSM_ 281 +set WCSN_ 282 +set WCSO_ 283 +set WCSP_ 284 +set WCSQ_ 285 +set WCSR_ 286 +set WCSS_ 287 +set WCST_ 288 +set WCSU_ 289 +set WCSV_ 290 +set WCSW_ 291 +set WCSX_ 292 +set WCSY_ 293 +set WCSZ_ 294 +set FK4_ 295 +set B1950_ 296 +set FK5_ 297 +set J2000_ 298 +set ICRS_ 299 +set GALACTIC_ 300 +set ECLIPTIC_ 301 +set DEGREES_ 302 +set ARCMIN_ 303 +set ARCSEC_ 304 +set SEXAGESIMAL_ 305 +set INT_ 306 +set REAL_ 307 +set SEXSTR_ 308 +set STRING_ 309 +set CANCEL_ 310 +set CLEAR_ 311 +set CLOSE_ 312 +set COORDINATE_ 313 +set CROSSHAIR_ 314 +set CURRENT_ 315 +set DECR_ 316 +set EXPORT_ 317 +set FILTER_ 318 +set HIDE_ 319 +set INCR_ 320 +set LOAD_ 321 +set NAME_ 322 +set PANTO_ 323 +set PRINT_ 324 +set RADIUS_ 325 +set REGIONS_ 326 +set RETRIEVE_ 327 +set SAVE_ 328 +set SHOW_ 329 +set SIZE_ 330 +set SKY_ 331 +set SKYFORMAT_ 332 +set SORT_ 333 +set SYSTEM_ 334 +set UPDATE_ 335 +set CXC_ 336 +set HLA_ 337 while {1} { if {[string length $yy_current_buffer] - $index_ < 1024} { @@ -478,432 +477,425 @@ set yyleng [string length $yytext] set matched_rule 27 } - # rule 28: xml - if {[regexp -start $index_ -indices -line -nocase -- {\A(xml)} $yy_current_buffer match] > 0 && \ + # rule 28: rdb + if {[regexp -start $index_ -indices -line -nocase -- {\A(rdb)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 28 } - # rule 29: vot - if {[regexp -start $index_ -indices -line -nocase -- {\A(vot)} $yy_current_buffer match] > 0 && \ - [lindex $match 1] - $index_ + 1 > $yyleng} { - set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] - set yyleng [string length $yytext] - set matched_rule 29 - } - # rule 30: sb + # rule 29: sb if {[regexp -start $index_ -indices -line -nocase -- {\A(sb)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 30 + set matched_rule 29 } - # rule 31: starbase + # rule 30: starbase if {[regexp -start $index_ -indices -line -nocase -- {\A(starbase)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 31 + set matched_rule 30 } - # rule 32: csv + # rule 31: csv if {[regexp -start $index_ -indices -line -nocase -- {\A(csv)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 32 + set matched_rule 31 } - # rule 33: tsv + # rule 32: tsv if {[regexp -start $index_ -indices -line -nocase -- {\A(tsv)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 33 + set matched_rule 32 } - # rule 34: yes + # rule 33: yes if {[regexp -start $index_ -indices -line -nocase -- {\A(yes)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 34 + set matched_rule 33 } - # rule 35: no + # rule 34: no if {[regexp -start $index_ -indices -line -nocase -- {\A(no)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 35 + set matched_rule 34 } - # rule 36: on + # rule 35: on if {[regexp -start $index_ -indices -line -nocase -- {\A(on)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 36 + set matched_rule 35 } - # rule 37: off + # rule 36: off if {[regexp -start $index_ -indices -line -nocase -- {\A(off)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 37 + set matched_rule 36 } - # rule 38: true + # rule 37: true if {[regexp -start $index_ -indices -line -nocase -- {\A(true)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 38 + set matched_rule 37 } - # rule 39: false + # rule 38: false if {[regexp -start $index_ -indices -line -nocase -- {\A(false)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 39 + set matched_rule 38 } - # rule 40: wcs + # rule 39: wcs if {[regexp -start $index_ -indices -line -nocase -- {\A(wcs)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 40 + set matched_rule 39 } - # rule 41: wcsa + # rule 40: wcsa if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsa)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 41 + set matched_rule 40 } - # rule 42: wcsb + # rule 41: wcsb if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsb)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 42 + set matched_rule 41 } - # rule 43: wcsc + # rule 42: wcsc if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsc)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 43 + set matched_rule 42 } - # rule 44: wcsd + # rule 43: wcsd if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsd)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 44 + set matched_rule 43 } - # rule 45: wcse + # rule 44: wcse if {[regexp -start $index_ -indices -line -nocase -- {\A(wcse)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 45 + set matched_rule 44 } - # rule 46: wcsf + # rule 45: wcsf if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsf)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 46 + set matched_rule 45 } - # rule 47: wcsg + # rule 46: wcsg if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsg)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 47 + set matched_rule 46 } - # rule 48: wcsh + # rule 47: wcsh if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsh)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 48 + set matched_rule 47 } - # rule 49: wcsi + # rule 48: wcsi if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsi)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 49 + set matched_rule 48 } - # rule 50: wcsj + # rule 49: wcsj if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsj)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 50 + set matched_rule 49 } - # rule 51: wcsk + # rule 50: wcsk if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsk)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 51 + set matched_rule 50 } - # rule 52: wcsl + # rule 51: wcsl if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsl)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 52 + set matched_rule 51 } - # rule 53: wcsm + # rule 52: wcsm if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsm)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 53 + set matched_rule 52 } - # rule 54: wcsn + # rule 53: wcsn if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsn)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 54 + set matched_rule 53 } - # rule 55: wcso + # rule 54: wcso if {[regexp -start $index_ -indices -line -nocase -- {\A(wcso)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 55 + set matched_rule 54 } - # rule 56: wcsp + # rule 55: wcsp if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsp)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 56 + set matched_rule 55 } - # rule 57: wcsq + # rule 56: wcsq if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsq)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 57 + set matched_rule 56 } - # rule 58: wcsr + # rule 57: wcsr if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsr)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 58 + set matched_rule 57 } - # rule 59: wcss + # rule 58: wcss if {[regexp -start $index_ -indices -line -nocase -- {\A(wcss)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 59 + set matched_rule 58 } - # rule 60: wcst + # rule 59: wcst if {[regexp -start $index_ -indices -line -nocase -- {\A(wcst)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 60 + set matched_rule 59 } - # rule 61: wcsu + # rule 60: wcsu if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsu)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 61 + set matched_rule 60 } - # rule 62: wcsv + # rule 61: wcsv if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsv)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 62 + set matched_rule 61 } - # rule 63: wcsw + # rule 62: wcsw if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsw)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 63 + set matched_rule 62 } - # rule 64: wcsx + # rule 63: wcsx if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsx)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 64 + set matched_rule 63 } - # rule 65: wcsy + # rule 64: wcsy if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsy)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 65 + set matched_rule 64 } - # rule 66: wcsz + # rule 65: wcsz if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsz)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 66 + set matched_rule 65 } - # rule 67: fk4 + # rule 66: fk4 if {[regexp -start $index_ -indices -line -nocase -- {\A(fk4)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 67 + set matched_rule 66 } - # rule 68: b1950 + # rule 67: b1950 if {[regexp -start $index_ -indices -line -nocase -- {\A(b1950)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 68 + set matched_rule 67 } - # rule 69: fk5 + # rule 68: fk5 if {[regexp -start $index_ -indices -line -nocase -- {\A(fk5)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 69 + set matched_rule 68 } - # rule 70: j2000 + # rule 69: j2000 if {[regexp -start $index_ -indices -line -nocase -- {\A(j2000)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 70 + set matched_rule 69 } - # rule 71: icrs + # rule 70: icrs if {[regexp -start $index_ -indices -line -nocase -- {\A(icrs)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 71 + set matched_rule 70 } - # rule 72: galactic + # rule 71: galactic if {[regexp -start $index_ -indices -line -nocase -- {\A(galactic)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 72 + set matched_rule 71 } - # rule 73: ecliptic + # rule 72: ecliptic if {[regexp -start $index_ -indices -line -nocase -- {\A(ecliptic)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 73 + set matched_rule 72 } - # rule 74: degrees + # rule 73: degrees if {[regexp -start $index_ -indices -line -nocase -- {\A(degrees)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 74 + set matched_rule 73 } - # rule 75: arcmin + # rule 74: arcmin if {[regexp -start $index_ -indices -line -nocase -- {\A(arcmin)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 75 + set matched_rule 74 } - # rule 76: arcsec + # rule 75: arcsec if {[regexp -start $index_ -indices -line -nocase -- {\A(arcsec)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 76 + set matched_rule 75 } - # rule 77: sexagesimal + # rule 76: sexagesimal if {[regexp -start $index_ -indices -line -nocase -- {\A(sexagesimal)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 77 + set matched_rule 76 } - # rule 78: [+-]?{D}+ + # rule 77: [+-]?{D}+ if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 78 + set matched_rule 77 } - # rule 79: [+-]?{D}+\.?({E})? + # rule 78: [+-]?{D}+\.?({E})? if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+\.?(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 79 + set matched_rule 78 } - # rule 80: [+-]?{D}*\.{D}+({E})? + # rule 79: [+-]?{D}*\.{D}+({E})? if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])*\.([0-9])+(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 80 + set matched_rule 79 } - # rule 81: [+-]?{D}+:{D}+:{D}+\.? + # rule 80: [+-]?{D}+:{D}+:{D}+\.? if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+:([0-9])+:([0-9])+\.?)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 81 + set matched_rule 80 } - # rule 82: [+-]?{D}+:{D}+:{D}*\.{D}+ + # rule 81: [+-]?{D}+:{D}+:{D}*\.{D}+ if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+:([0-9])+:([0-9])*\.([0-9])+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 82 + set matched_rule 81 } - # rule 83: \"[^\"]*\" + # rule 82: \"[^\"]*\" if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 83 + set matched_rule 82 } - # rule 84: \'[^\']*\' + # rule 83: \'[^\']*\' if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 84 + set matched_rule 83 } - # rule 85: \{[^\}]*\} + # rule 84: \{[^\}]*\} if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 85 + set matched_rule 84 } - # rule 86: \S+\S+ + # rule 85: \S+\S+ if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 86 + set matched_rule 85 } - # rule 87: \s + # rule 86: \s if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 87 + set matched_rule 86 } - # rule 88: . + # rule 87: . if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 88 + set matched_rule 87 } if {$matched_rule == -1} { set yytext [string index $yy_current_buffer $index_] @@ -1002,166 +994,166 @@ return $HLA_ } 28 { -return $XML_ +return $RDB_ } 29 { -return $VOT_ +return $SB_ } 30 { -return $SB_ +return $STARBASE_ } 31 { -return $STARBASE_ +return $CSV_ } 32 { -return $CSV_ +return $TSV_ } 33 { -return $TSV_ +return $YES_ } 34 { -return $YES_ +return $NO_ } 35 { -return $NO_ +return $ON_ } 36 { -return $ON_ +return $OFF_ } 37 { -return $OFF_ +return $TRUE_ } 38 { -return $TRUE_ +return $FALSE_ } 39 { -return $FALSE_ +return $WCS_ } 40 { -return $WCS_ +return $WCSA_ } 41 { -return $WCSA_ +return $WCSB_ } 42 { -return $WCSB_ +return $WCSC_ } 43 { -return $WCSC_ +return $WCSD_ } 44 { -return $WCSD_ +return $WCSE_ } 45 { -return $WCSE_ +return $WCSF_ } 46 { -return $WCSF_ +return $WCSG_ } 47 { -return $WCSG_ +return $WCSH_ } 48 { -return $WCSH_ +return $WCSI_ } 49 { -return $WCSI_ +return $WCSJ_ } 50 { -return $WCSJ_ +return $WCSK_ } 51 { -return $WCSK_ +return $WCSL_ } 52 { -return $WCSL_ +return $WCSM_ } 53 { -return $WCSM_ +return $WCSN_ } 54 { -return $WCSN_ +return $WCSO_ } 55 { -return $WCSO_ +return $WCSP_ } 56 { -return $WCSP_ +return $WCSQ_ } 57 { -return $WCSQ_ +return $WCSR_ } 58 { -return $WCSR_ +return $WCSS_ } 59 { -return $WCSS_ +return $WCST_ } 60 { -return $WCST_ +return $WCSU_ } 61 { -return $WCSU_ +return $WCSV_ } 62 { -return $WCSV_ +return $WCSW_ } 63 { -return $WCSW_ +return $WCSX_ } 64 { -return $WCSX_ +return $WCSY_ } 65 { -return $WCSY_ +return $WCSZ_ } 66 { -return $WCSZ_ +return $FK4_ } 67 { return $FK4_ } 68 { -return $FK4_ +return $FK5_ } 69 { return $FK5_ } 70 { -return $FK5_ - } - 71 { return $ICRS_ } - 72 { + 71 { return $GALACTIC_ } - 73 { + 72 { return $ECLIPTIC_ } - 74 { + 73 { return $DEGREES_ } - 75 { + 74 { return $ARCMIN_ } - 76 { + 75 { return $ARCSEC_ } - 77 { + 76 { return $SEXAGESIMAL_ } - 78 { + 77 { set yylval $yytext; return $INT_ } - 79 - - 80 { + 78 - + 79 { set yylval $yytext; return $REAL_ } - 81 - - 82 { + 80 - + 81 { set yylval $yytext; return $SEXSTR_ } + 82 { +set yylval [string range $yytext 1 end-1]; return $STRING_ + } 83 { set yylval [string range $yytext 1 end-1]; return $STRING_ } @@ -1169,15 +1161,12 @@ set yylval [string range $yytext 1 end-1]; return $STRING_ } 85 { -set yylval [string range $yytext 1 end-1]; return $STRING_ - } - 86 { set yylval $yytext; return $STRING_ } - 87 { + 86 { # ignore whitespace } - 88 { + 87 { set yylval $yytext; return $yylval } default diff -Nru saods9-8.2+repack/ds9/parsers/fpparser.tab.tcl saods9-8.3+repack/ds9/parsers/fpparser.tab.tcl --- saods9-8.2+repack/ds9/parsers/fpparser.tab.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/fpparser.tab.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,82 +1,81 @@ -set YES_ 257 -set NO_ 258 -set ON_ 259 -set OFF_ 260 -set TRUE_ 261 -set FALSE_ 262 -set WCS_ 263 -set WCSA_ 264 -set WCSB_ 265 -set WCSC_ 266 -set WCSD_ 267 -set WCSE_ 268 -set WCSF_ 269 -set WCSG_ 270 -set WCSH_ 271 -set WCSI_ 272 -set WCSJ_ 273 -set WCSK_ 274 -set WCSL_ 275 -set WCSM_ 276 -set WCSN_ 277 -set WCSO_ 278 -set WCSP_ 279 -set WCSQ_ 280 -set WCSR_ 281 -set WCSS_ 282 -set WCST_ 283 -set WCSU_ 284 -set WCSV_ 285 -set WCSW_ 286 -set WCSX_ 287 -set WCSY_ 288 -set WCSZ_ 289 -set FK4_ 290 -set B1950_ 291 -set FK5_ 292 -set J2000_ 293 -set ICRS_ 294 -set GALACTIC_ 295 -set ECLIPTIC_ 296 -set DEGREES_ 297 -set ARCMIN_ 298 -set ARCSEC_ 299 -set SEXAGESIMAL_ 300 -set INT_ 301 -set REAL_ 302 -set SEXSTR_ 303 -set STRING_ 304 -set CANCEL_ 305 -set CLEAR_ 306 -set CLOSE_ 307 -set COORDINATE_ 308 -set CROSSHAIR_ 309 -set CURRENT_ 310 -set DECR_ 311 -set EXPORT_ 312 -set FILTER_ 313 -set HIDE_ 314 -set INCR_ 315 -set LOAD_ 316 -set NAME_ 317 -set PANTO_ 318 -set PRINT_ 319 -set RADIUS_ 320 -set REGIONS_ 321 -set RETRIEVE_ 322 -set SAVE_ 323 -set SHOW_ 324 -set SIZE_ 325 -set SKY_ 326 -set SKYFORMAT_ 327 -set SORT_ 328 -set SYSTEM_ 329 -set UPDATE_ 330 -set CXC_ 331 -set HLA_ 332 -set XML_ 333 -set VOT_ 334 -set SB_ 335 -set STARBASE_ 336 -set CSV_ 337 -set TSV_ 338 +set RDB_ 257 +set SB_ 258 +set STARBASE_ 259 +set CSV_ 260 +set TSV_ 261 +set YES_ 262 +set NO_ 263 +set ON_ 264 +set OFF_ 265 +set TRUE_ 266 +set FALSE_ 267 +set WCS_ 268 +set WCSA_ 269 +set WCSB_ 270 +set WCSC_ 271 +set WCSD_ 272 +set WCSE_ 273 +set WCSF_ 274 +set WCSG_ 275 +set WCSH_ 276 +set WCSI_ 277 +set WCSJ_ 278 +set WCSK_ 279 +set WCSL_ 280 +set WCSM_ 281 +set WCSN_ 282 +set WCSO_ 283 +set WCSP_ 284 +set WCSQ_ 285 +set WCSR_ 286 +set WCSS_ 287 +set WCST_ 288 +set WCSU_ 289 +set WCSV_ 290 +set WCSW_ 291 +set WCSX_ 292 +set WCSY_ 293 +set WCSZ_ 294 +set FK4_ 295 +set B1950_ 296 +set FK5_ 297 +set J2000_ 298 +set ICRS_ 299 +set GALACTIC_ 300 +set ECLIPTIC_ 301 +set DEGREES_ 302 +set ARCMIN_ 303 +set ARCSEC_ 304 +set SEXAGESIMAL_ 305 +set INT_ 306 +set REAL_ 307 +set SEXSTR_ 308 +set STRING_ 309 +set CANCEL_ 310 +set CLEAR_ 311 +set CLOSE_ 312 +set COORDINATE_ 313 +set CROSSHAIR_ 314 +set CURRENT_ 315 +set DECR_ 316 +set EXPORT_ 317 +set FILTER_ 318 +set HIDE_ 319 +set INCR_ 320 +set LOAD_ 321 +set NAME_ 322 +set PANTO_ 323 +set PRINT_ 324 +set RADIUS_ 325 +set REGIONS_ 326 +set RETRIEVE_ 327 +set SAVE_ 328 +set SHOW_ 329 +set SIZE_ 330 +set SKY_ 331 +set SKYFORMAT_ 332 +set SORT_ 333 +set SYSTEM_ 334 +set UPDATE_ 335 +set CXC_ 336 +set HLA_ 337 diff -Nru saods9-8.2+repack/ds9/parsers/fpparser.tac saods9-8.3+repack/ds9/parsers/fpparser.tac --- saods9-8.2+repack/ds9/parsers/fpparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/fpparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -2,6 +2,7 @@ %} #include def.tin +#include reader.tin #include yesno.tin #include wcssys.tin #include skyframe.tin @@ -42,15 +43,9 @@ %token CXC_ %token HLA_ -%token XML_ -%token VOT_ -%token SB_ -%token STARBASE_ -%token CSV_ -%token TSV_ - %% +#include writer.trl #include yesno.trl #include wcssys.trl #include skyframe.trl @@ -65,10 +60,13 @@ | CANCEL_ {ProcessCmdCVAR0 ARCancel} | CLEAR_ {ProcessCmdCVAR0 FPOff} | CLOSE_ {ProcessCmdCVAR0 FPDestroy} + + | SAVE_ STRING_ {TBLCmdSave $2 VOTWrite} + | EXPORT_ writer STRING_ {TBLCmdSave $3 $2} + | COORDINATE_ coordinate | CROSSHAIR_ {ProcessCmdCVAR0 TBLCrosshair} | CURRENT_ site {FPCmdRef $2} - | EXPORT_ writer STRING_ {TBLCmdSave $3 $2} | FILTER_ filter # backward compatibily | HIDE_ {ProcessCmdCVAR show 0 FPGenerate} @@ -78,7 +76,6 @@ | RADIUS_ numeric rformat {TBLCmdSize $2 $3} | REGIONS_ {ProcessCmdCVAR0 FPGenerateRegions} | RETRIEVE_ {global cvarname; FPApply $cvarname 1} - | SAVE_ STRING_ {TBLCmdSave $2 VOTWrite} | SHOW_ yesno {ProcessCmdCVAR show $2 FPGenerate} # backward compatibily | SIZE_ numeric numeric rformat {TBLCmdSize [expr ($2+$3)/2.] $4} @@ -111,14 +108,6 @@ | DECR_ {set _ "-decreasing"} ; -writer : XML_ {set _ VOTWrite} - | VOT_ {set _ VOTWrite} - | SB_ {set _ starbase_write} - | STARBASE_ {set _ starbase_write} - | CSV_ {set _ TSVWrite} - | TSV_ {set _ TSVWrite} - ; - %% proc fp::yyerror {msg} { diff -Nru saods9-8.2+repack/ds9/parsers/fpparser.tcl saods9-8.3+repack/ds9/parsers/fpparser.tcl --- saods9-8.2+repack/ds9/parsers/fpparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/fpparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -61,824 +61,819 @@ } array set fp::table { - 99:296,target 63 - 17:257 shift - 76:304,target 14 - 0:327,target 20 - 17:258 shift - 90:304 reduce - 89:304 reduce - 1:304 reduce - 6:331,target 24 - 17:259 shift - 17:260 shift - 114:0,target 70 - 30:290,target 48 - 29:290,target 47 + 99:296,target 57 + 61:309,target 45 + 0:327,target 15 + 12:309 reduce + 108:309,target 91 + 11:263,target 46 + 30:300,target 53 + 29:300,target 52 27:0 reduce - 17:261 shift - 106:0,target 65 - 21:304 shift + 17:266,target 49 + 51:309 reduce 17:262 shift - 22:282,target 89 - 13:301,target 29 + 22:282,target 83 + 17:263 shift + 98:300 shift + 50:309,target 12 + 49:309,target 9 48:0 reduce - 0:306,target 2 - 19:294,target 61 - 65:304,target 42 - 60:304 reduce - 59:304 reduce - 114:0 reduce - 30:290 reduce - 29:290 reduce - 113:304,target 77 + 17:264 shift + 98:301 shift + 95:309,target 39 + 90:309 reduce + 89:309 reduce + 1:309 reduce + 17:265 shift + 30:300 reduce + 29:300 reduce + 17:266 shift 70:0 reduce 69:0 reduce 30:301 reduce - 30:291 reduce 29:301 reduce - 29:291 reduce + 21:309 shift 4:344 goto - 98:304 shift + 17:267 shift 30:302 reduce - 30:292 reduce 29:302 reduce - 29:292 reduce - 9:304 reduce - 95:0,target 33 - 30:293 reduce - 29:293 reduce + 98:295 shift + 95:0,target 39 + 32:306,target 29 + 30:303 reduce + 29:303 reduce 6:350,target 34 + 98:296 shift 91:0 reduce - 87:0,target 25 - 68:315,target 109 + 87:0,target 31 + 60:309 reduce + 59:309 reduce + 38:309,target 4 30:304 reduce - 30:294 reduce 29:304 reduce - 29:294 reduce 2:0 reduce - 80:0,target 18 - 79:0,target 17 - 54:304,target 68 + 98:297 shift + 84:309,target 28 + 80:0,target 24 + 79:0,target 23 30:295 reduce 29:295 reduce 4:348 goto - 4:301,target 29 - 7:333,target 35 - 99:294,target 61 - 99:304,target 78 - 72:0,target 10 + 98:298 shift + 72:0,target 16 + 30:306 reduce 30:296 reduce + 29:306 reduce 29:296 reduce - 102:304,target 80 - 68:304 reduce - 64:0,target 71 + 98:299 shift + 98:309 reduce + 64:0,target 47 + 30:307 reduce 30:297 reduce + 29:307 reduce 29:297 reduce - 0:325,target 18 - 8:316,target 43 + 0:325,target 13 + 9:309 reduce + 56:0,target 40 30:298 reduce 29:298 reduce 24:0 reduce - 11:261,target 50 - 48:0,target 3 + 98:300,target 61 + 48:0,target 11 + 30:309 reduce 30:299 reduce + 29:309 reduce 29:299 reduce + 17:264,target 47 + 41:0,target 86 + 27:309,target 55 + 73:309,target 17 45:0 reduce - 43:304,target 102 - 33:0,target 56 - 22:280,target 87 - 22:279,target 86 - 88:304,target 26 - 38:304 reduce - 25:0,target 83 - 19:292,target 59 + 33:0,target 63 + 22:280,target 81 + 22:279,target 80 + 68:309 reduce + 25:0,target 88 + 20:302,target 64 111:0 reduce - 103:304 reduce - 68:311 shift - 17:0,target 1 + 17:0,target 6 66:0 reduce - 107:343,target 114 - 77:304 reduce - 20:342,target 67 + 55:306,target 29 + 20:342,target 66 + 16:309,target 53 87:0 reduce - 68:315 shift - 77:304,target 15 - 99:292,target 59 - 47:304 reduce - 112:304 reduce - 32:344,target 100 - 0:323,target 16 - 11:258,target 47 - 86:304 reduce - 21:304,target 68 - 17:262,target 51 - 66:304,target 43 - 42:0 reduce - 56:301 shift - 22:277,target 84 - 17:304 reduce - 114:304,target 70 - 56:302 shift - 20:300,target 66 - 19:290,target 57 + 62:309,target 46 + 38:309 reduce + 103:309 reduce + 109:309,target 90 + 106:343 goto + 77:309 reduce + 7:259,target 37 + 7:260,target 38 + 32:344,target 99 + 0:323,target 11 + 51:309,target 69 + 17:262,target 45 + 96:309,target 79 + 47:309 reduce + 22:277,target 78 + 112:309 reduce + 107:0 reduce + 19:300,target 61 63:0 reduce - 10:304,target 45 + 86:309 reduce + 40:309,target 100 + 39:309,target 5 + 85:309,target 29 84:0 reduce - 55:304,target 69 - 95:304 reduce - 32:302,target 30 - 111:0,target 51 - 103:304,target 44 - 68:311,target 108 - 103:0,target 44 - 99:290,target 57 + 17:309 reduce + 111:0,target 84 + 103:0,target 50 + 56:309 reduce + 99:300,target 61 + 55:344,target 106 + 7:257,target 35 17:0 reduce - 0:321,target 14 - 65:304 reduce - 44:304,target 60 - 90:304,target 28 - 89:304,target 27 - 1:304,target 53 - 17:259,target 48 - 17:260,target 49 - 100:290 shift + 98:341 goto + 28:309,target 57 + 95:309 reduce + 74:309,target 18 21:351 goto 104:0 reduce - 100:291 shift - 99:0,target 78 - 22:275,target 82 - 100:292 shift - 92:0,target 30 + 99:0,target 81 + 22:275,target 76 + 92:0,target 36 60:0 reduce 59:0 reduce - 3:0,target 55 - 100:293 shift - 84:0,target 22 - 35:304 reduce - 100:294 shift - 100:304 reduce - 76:0,target 14 - 33:304,target 56 - 100:295 shift + 3:0,target 60 + 84:0,target 28 + 65:309 reduce + 17:309,target 6 + 76:0,target 20 + 63:309,target 76 81:0 reduce - 78:304,target 16 - 68:0,target 84 - 100:296 shift - 74:304 reduce - 61:0,target 39 - 45:0,target 62 + 68:0,target 78 + 111:309,target 84 + 61:0,target 45 + 53:0,target 61 + 45:0,target 7 + 35:309 reduce + 100:309 reduce 14:0 reduce - 30:0,target 48 - 29:0,target 47 - 67:304,target 72 - 44:304 reduce - 0:318,target 11 - 108:304 reduce - 68:352 goto - 11:257 shift - 14:0,target 66 - 11:258 shift - 17:257,target 46 + 30:0,target 53 + 29:0,target 52 + 22:294,target 95 + 97:309,target 110 + 74:309 reduce + 0:318,target 8 + 8:309,target 41 + 100:309,target 62 + 14:0,target 72 101:0 reduce - 83:304 reduce - 11:259 shift - 11:260 shift - 22:273,target 80 - 8:349,target 44 - 11:261 shift - 11:304,target 1 + 56:0 reduce + 22:273,target 74 + 8:349,target 43 + 44:309 reduce + 41:309,target 86 11:262 shift - 14:304 reduce - 6:331 shift + 108:309 reduce + 86:309,target 30 + 11:263 shift 77:0 reduce - 6:332 shift - 104:304,target 45 + 11:264 shift + 83:309 reduce + 11:265 shift 17:339 goto - 56:344,target 107 + 0:337,target 25 + 11:266 shift + 98:0 reduce 9:0 reduce - 92:304 reduce - 53:297 shift - 30:299,target 48 - 29:299,target 47 - 3:304 reduce + 11:267 shift + 14:309 reduce + 30:309,target 53 + 30:299,target 53 + 29:309,target 52 + 29:299,target 52 + 6:336 shift 11:0 reduce - 53:298 shift - 45:304,target 62 - 91:304,target 29 - 53:299 shift - 23:304 reduce - 2:304,target 54 - 56:344 goto - 62:304 reduce - 34:304,target 58 - 32:301 shift - 22:271,target 78 - 80:304,target 18 - 79:304,target 17 - 32:302 shift + 75:309,target 19 + 6:337 shift + 53:309 reduce + 22:292,target 93 + 92:309 reduce + 3:309 reduce + 53:0 reduce + 64:309,target 47 + 23:309 reduce + 22:271,target 72 + 112:309,target 82 + 107:0,target 92 74:0 reduce - 56:302,target 30 - 100:0,target 76 + 100:0,target 62 + 62:309 reduce 95:0 reduce + 32:306 shift + 0:335,target 23 6:350 goto - 71:304 reduce - 53:299,target 105 - 23:304,target 75 - 68:304,target 84 - 30:297,target 48 - 29:297,target 47 - 100:341 goto - 96:0,target 34 + 53:309,target 61 + 32:307 shift + 98:299,target 60 + 98:309,target 83 + 30:307,target 53 + 30:297,target 53 + 29:307,target 52 + 29:297,target 52 + 9:309,target 67 + 101:309,target 85 + 96:0,target 79 28:0 reduce - 22:289,target 96 - 88:0,target 26 - 0:314,target 9 - 100:295,target 62 - 81:0,target 19 - 41:304 shift - 105:304 reduce - 73:0,target 11 + 22:290,target 91 + 22:289,target 90 + 88:0,target 32 + 0:314,target 5 + 81:0,target 25 + 71:309 reduce + 73:0,target 17 50:0 reduce 49:0 reduce - 12:304,target 64 - 65:0,target 42 - 57:304,target 35 - 22:340,target 97 - 80:304 reduce - 79:304 reduce - 57:0,target 35 - 22:268,target 75 - 105:304,target 46 + 42:309,target 101 + 87:309,target 31 + 65:0,target 48 + 22:340,target 96 + 18:307,target 30 + 57:0,target 41 + 22:268,target 69 71:0 reduce - 50:0,target 4 - 49:0,target 6 - 42:0,target 81 - 11:304 reduce - 34:0,target 58 + 50:0,target 12 + 49:0,target 9 + 41:309 reduce + 105:309 reduce + 34:0,target 65 + 4:308,target 31 92:0 reduce 26:0,target 0 3:0 reduce - 50:304 reduce - 49:304 reduce - 46:304,target 2 - 11:339,target 52 - 114:304 reduce - 92:304,target 30 - 53:297,target 103 - 20:300 shift - 3:304,target 55 - 11:0,target 1 - 19:290 shift - 30:295,target 48 - 29:295,target 47 + 80:309 reduce + 79:309 reduce + 76:309,target 20 + 0:333,target 21 + 11:339,target 51 + 6:336,target 24 + 11:0,target 6 + 19:300 shift + 98:297,target 58 + 30:295,target 53 + 29:295,target 52 4:348,target 33 - 19:291 shift - 88:304 reduce + 11:309 reduce + 19:301 shift 25:0 reduce - 19:292 shift - 22:287,target 94 - 0:305 shift - 19:293 shift - 0:312,target 7 - 0:306 shift - 19:294 shift - 100:293,target 60 - 53:343 goto + 20:302 shift + 52:303,target 103 + 22:287,target 88 + 13:306,target 29 + 50:309 reduce + 49:309 reduce + 0:312,target 3 + 19:299,target 60 + 65:309,target 48 46:0 reduce - 35:304,target 88 - 0:307 shift + 20:305 shift 19:295 shift - 81:304,target 19 - 0:308 shift 19:296 shift + 113:309,target 75 112:0 reduce - 58:304 reduce - 20:297 shift + 88:309 reduce + 52:343,target 105 0:310 shift - 0:309 shift + 19:297 shift 67:0 reduce - 22:266,target 73 + 0:311 shift + 19:298 shift 0:312 shift - 97:304 reduce + 19:299 shift 0:313 shift - 8:304 shift 88:0 reduce - 24:304,target 82 + 54:309,target 74 0:314 shift + 4:306,target 29 7:338,target 40 - 70:304,target 8 - 69:304,target 73 - 28:304 reduce - 0:331,target 24 + 99:299,target 60 + 99:309,target 81 + 58:309 reduce + 0:315 shift + 102:309,target 49 + 67:316,target 107 + 0:331,target 19 0:317 shift - 67:304 reduce - 30:293,target 48 - 29:293,target 47 + 11:266,target 49 + 98:295,target 56 + 97:309 shift + 30:303,target 53 + 29:303,target 52 0:318 shift - 0:320 shift + 8:309 shift 0:319 shift - 107:298,target 104 - 22:285,target 92 - 0:321 shift - 112:0,target 79 - 58:304,target 36 - 20:297,target 65 + 43:309,target 66 + 28:309 reduce + 22:285,target 86 + 112:0,target 82 + 88:309,target 32 + 43:0 reduce 0:322 shift - 0:310,target 6 - 0:309,target 5 - 104:0,target 45 - 100:291,target 58 + 0:310,target 1 + 19:297,target 58 + 104:0,target 51 32:344 goto 0:323 shift 108:0 reduce - 106:304,target 65 - 37:304 reduce + 106:304,target 104 + 67:309 reduce 0:324 shift - 102:304 reduce 64:0 reduce 0:325 shift - 8:316 shift - 13:344,target 53 - 22:264,target 71 + 13:344,target 52 0:326 shift 0:350,target 28 - 100:341,target 113 - 76:304 reduce 0:327 shift 85:0 reduce - 47:304,target 5 + 77:309,target 21 0:328 shift - 93:304,target 31 - 0:329 shift + 37:309 reduce 0:330 shift - 7:336,target 38 - 93:0,target 31 + 0:329 shift + 8:321 shift + 102:309 reduce + 99:297,target 58 + 93:0,target 37 + 67:316 shift 0:331 shift - 85:0,target 23 - 0:328,target 21 + 85:0,target 29 0:332 shift - 77:0,target 15 - 46:304 reduce - 6:332,target 25 + 0:328,target 16 + 77:0,target 21 + 76:309 reduce + 0:333 shift 11:339 goto - 70:0,target 8 - 69:0,target 73 - 30:301,target 48 - 30:291,target 48 - 29:301,target 47 - 29:291,target 47 + 11:264,target 47 + 70:0,target 14 + 69:0,target 13 + 67:320 shift + 30:301,target 53 + 29:301,target 52 + 21:309,target 67 + 0:334 shift 4:344,target 32 - 62:0,target 40 - 36:304,target 89 - 85:304 reduce - 82:304,target 20 - 54:0,target 68 - 22:283,target 90 - 13:302,target 30 - 53:343,target 106 - 46:0,target 2 - 0:307,target 3 - 19:295,target 62 + 17:267,target 50 + 66:309,target 77 + 62:0,target 46 + 0:335 shift + 54:0,target 74 + 22:283,target 84 + 0:336 shift + 46:0,target 10 + 20:305,target 65 + 0:337 shift + 19:295,target 56 105:0 reduce - 16:304 shift + 46:309 reduce + 111:309 reduce + 106:302,target 102 61:0 reduce - 23:0,target 75 - 18:301,target 29 - 55:304 reduce - 25:304,target 83 + 23:0,target 80 + 10:309,target 44 + 85:309 reduce 0:347,target 27 - 15:0,target 67 + 15:0,target 73 82:0 reduce - 71:304,target 9 + 32:307,target 30 19:341 goto + 103:309,target 50 + 55:306 shift + 16:309 shift 20:342 goto - 94:304 reduce + 55:307 shift 0:345 goto - 4:302,target 30 - 5:304 reduce - 7:334,target 36 - 99:295,target 62 - 31:303,target 99 - 25:304 reduce - 0:326,target 19 + 99:295,target 56 + 0:326,target 14 0:347 goto 15:0 reduce - 22:263 shift - 11:262,target 51 - 14:304,target 66 - 60:304,target 38 - 59:304,target 37 - 22:264 shift + 44:309,target 68 + 11:262,target 45 + 98:301,target 62 + 90:309,target 34 + 89:309,target 33 0:350 goto - 64:304 reduce - 22:265 shift - 22:281,target 88 - 22:266 shift + 1:309,target 58 + 17:265,target 48 + 94:309 reduce + 5:309 reduce + 67:352,target 109 + 22:281,target 82 102:0 reduce - 22:267 shift - 0:305,target 1 - 19:293,target 60 + 25:309 reduce + 98:341,target 111 57:0 reduce 22:268 shift + 33:309,target 63 22:270 shift 22:269 shift - 7:353,target 41 - 48:304,target 3 - 34:304 reduce + 78:309,target 22 + 64:309 reduce 22:271 shift - 94:304,target 32 78:0 reduce + 55:307,target 30 22:272 shift 0:345,target 26 - 5:304,target 57 22:273 shift 8:349 goto - 73:304 reduce 22:274 shift 99:0 reduce 22:275 shift - 99:293,target 60 + 34:309 reduce 22:276 shift + 7:261,target 39 12:0 reduce - 108:0,target 87 - 37:304,target 90 + 108:0,target 91 + 67:309,target 89 22:277 shift - 0:324,target 17 - 101:0,target 59 - 83:304,target 21 + 0:324,target 12 + 101:0,target 85 22:278 shift - 11:259,target 48 - 11:260,target 49 - 43:304 shift + 73:309 reduce 33:0 reduce 22:280 shift 22:279 shift + 17:263,target 46 + 67:352 goto 22:281 shift 22:282 shift - 22:278,target 85 - 13:301 shift - 82:304 reduce + 22:278,target 79 54:0 reduce 22:283 shift - 13:302 shift - 19:291,target 58 - 107:297 shift + 11:309,target 6 + 19:301,target 62 + 56:309,target 40 22:284 shift - 107:298 shift - 97:0,target 74 - 72:304,target 10 + 43:309 reduce 22:285 shift - 107:299 shift - 90:0,target 28 - 89:0,target 27 + 107:309 reduce + 104:309,target 51 + 90:0,target 34 + 89:0,target 33 75:0 reduce + 52:302 shift 22:286 shift - 1:0,target 53 - 82:0,target 20 + 1:0,target 58 + 82:0,target 26 + 52:303 shift 22:287 shift - 19:341,target 64 - 74:0,target 12 - 52:304 reduce + 13:306 shift + 19:341,target 63 + 82:309 reduce + 74:0,target 18 + 52:304 shift 22:288 shift + 13:307 shift 96:0 reduce - 66:0,target 43 + 66:0,target 77 + 22:290 shift 22:289 shift - 58:0,target 36 - 15:304,target 67 - 99:291,target 58 - 91:304 reduce - 61:304,target 39 - 51:0,target 7 - 2:304 reduce - 0:322,target 15 - 108:304,target 87 - 68:352,target 110 + 58:0,target 42 + 45:309,target 7 + 22:291 shift + 99:301,target 62 + 91:309,target 35 + 51:0,target 69 + 22:292 shift + 2:309,target 59 + 7:258,target 36 + 43:0,target 66 + 22:293 shift + 0:322,target 10 30:0 reduce 29:0 reduce - 11:257,target 46 - 27:0,target 49 - 17:261,target 50 - 99:290 shift + 22:294 shift + 27:0,target 54 + 99:300 shift 99:341,target 112 - 99:291 shift - 61:304 reduce + 55:344 goto + 7:257 shift + 99:301 shift + 91:309 reduce 51:0 reduce - 22:276,target 83 - 12:0,target 64 - 99:292 shift - 50:304,target 4 - 49:304,target 6 - 99:293 shift - 95:304,target 33 - 99:294 shift - 99:304 reduce + 34:309,target 65 + 22:276,target 77 + 2:309 reduce + 7:258 shift + 12:0,target 70 + 80:309,target 24 + 79:309,target 23 + 7:259 shift + 7:260 shift + 7:261 shift 72:0 reduce - 27:346,target 98 + 27:346,target 97 99:295 shift - 31:303 shift 99:296 shift + 61:309 reduce + 99:297 shift 93:0 reduce - 32:301,target 29 - 38:304,target 91 - 84:304,target 22 - 70:304 reduce - 69:304 reduce + 23:309,target 80 + 99:298 shift + 68:309,target 78 + 99:299 shift + 99:309 reduce + 31:308 shift 26:0 accept - 0:320,target 13 - 0:319,target 12 - 17:258,target 47 + 0:319,target 9 + 12:309,target 70 + 70:309 reduce + 69:309 reduce + 57:309,target 41 47:0 reduce - 40:304 reduce - 39:304 reduce - 27:304,target 50 - 104:304 reduce - 73:304,target 11 - 22:274,target 81 + 22:274,target 75 113:0 reduce - 78:304 reduce + 105:309,target 71 68:0 reduce - 113:0,target 77 - 10:304 shift - 105:0,target 46 + 113:0,target 75 + 40:309 shift + 39:309 reduce + 105:0,target 71 + 104:309 reduce 90:0 reduce 89:0 reduce + 46:309,target 10 1:0 reduce - 16:304,target 54 - 107:343 goto - 62:304,target 40 - 48:304 reduce - 113:304 reduce - 110:304,target 85 - 109:304,target 86 + 92:309,target 36 + 3:309,target 60 + 78:309 reduce 23:0 reduce - 18:301 shift - 87:304 reduce - 0:317,target 10 - 18:302 shift + 22:293,target 94 + 10:309 shift + 0:317,target 7 + 35:309,target 1 13:344 goto - 94:0,target 32 - 51:304,target 7 + 94:0,target 38 + 81:309,target 25 + 48:309 reduce 44:0 reduce - 5:0,target 57 - 96:304,target 34 - 86:0,target 24 + 5:0,target 64 + 113:309 reduce + 86:0,target 30 + 52:343 goto 110:0 reduce 109:0 reduce - 78:0,target 16 - 22:272,target 79 - 71:0,target 9 + 78:0,target 22 + 22:272,target 73 + 18:306 shift + 87:309 reduce + 71:0,target 15 65:0 reduce - 57:304 reduce 22:340 goto - 63:0,target 41 - 55:0,target 69 - 96:304 reduce + 18:307 shift + 63:0,target 76 + 24:309,target 87 86:0 reduce - 47:0,target 5 - 40:304,target 93 - 39:304,target 92 - 85:304,target 23 - 27:304 reduce - 30:298,target 48 - 29:298,target 47 - 24:0,target 82 + 70:309,target 14 + 69:309,target 13 + 47:0,target 8 + 0:336,target 24 + 57:309 reduce + 30:298,target 53 + 29:298,target 52 + 24:0,target 87 99:341 goto - 66:304 reduce - 28:304,target 52 - 100:296,target 63 - 74:304,target 12 - 106:0 reduce + 96:309 reduce + 22:291,target 92 + 58:309,target 42 + 0:315,target 6 + 41:0 reduce + 27:309 reduce + 66:309 reduce 62:0 reduce - 36:304 reduce - 22:270,target 77 - 22:269,target 76 - 101:304 reduce - 56:301,target 29 - 17:304,target 1 + 22:270,target 71 + 22:269,target 70 + 47:309,target 8 + 93:309,target 37 83:0 reduce - 75:304 reduce - 63:304,target 41 - 53:298,target 104 - 30:296,target 48 - 29:296,target 47 - 45:304 reduce - 110:304 reduce - 109:304 reduce - 52:304,target 63 - 22:288,target 95 - 97:304,target 74 - 0:313,target 8 - 8:304,target 42 - 100:294,target 61 - 100:304,target 76 - 84:304 reduce + 67:320,target 108 + 36:309 reduce + 0:334,target 22 + 101:309 reduce + 6:337,target 25 + 98:298,target 59 + 30:306,target 53 + 30:296,target 53 + 29:306,target 52 + 29:296,target 52 + 75:309 reduce + 36:309,target 2 + 82:309,target 26 + 52:304,target 104 + 22:288,target 89 + 13:307,target 30 + 0:313,target 4 103:0 reduce - 110:0,target 85 - 109:0,target 86 + 110:0,target 56 + 109:0,target 90 58:0 reduce - 15:304 reduce - 102:0,target 80 - 22:267,target 74 - 41:304,target 101 - 86:304,target 24 + 45:309 reduce + 18:306,target 29 + 109:309 reduce + 102:0,target 49 + 25:309,target 88 + 71:309,target 15 + 84:309 reduce 80:0 reduce 79:0 reduce - 54:304 reduce - 4:301 shift - 7:333 shift - 4:302 shift - 7:334 shift - 4:303 shift - 7:335 shift - 93:304 reduce - 0:332,target 25 - 7:336 shift - 7:337 shift - 9:0,target 61 + 4:307,target 30 + 31:308,target 98 + 15:309 reduce + 0:332,target 20 + 98:0,target 83 + 9:0,target 67 + 11:267,target 50 + 14:309,target 72 18:344 goto - 91:0,target 29 - 30:304,target 48 - 30:294,target 48 - 29:304,target 47 - 29:294,target 47 - 24:304 reduce - 2:0,target 54 - 7:338 shift - 83:0,target 21 - 75:304,target 13 - 107:299,target 105 - 75:0,target 13 + 98:296,target 57 + 91:0,target 35 + 60:309,target 44 + 59:309,target 43 + 54:309 reduce + 30:304,target 53 + 29:304,target 52 + 2:0,target 59 + 4:306 shift + 7:338 goto + 83:0,target 27 + 4:307 shift + 107:309,target 92 + 75:0,target 19 + 52:302,target 102 34:0 reduce - 22:286,target 93 - 67:0,target 72 - 63:304 reduce - 100:292,target 59 + 22:286,target 87 + 4:308 shift + 93:309 reduce + 67:0,target 89 + 0:311,target 2 + 19:298,target 59 100:0 reduce - 60:0,target 38 - 59:0,target 37 - 55:0 reduce - 52:0,target 63 - 44:0,target 60 - 64:304,target 71 - 22:265,target 72 + 60:0,target 44 + 59:0,target 43 + 24:309 reduce + 48:309,target 11 + 44:0,target 68 + 94:309,target 38 + 5:309,target 64 76:0 reduce - 33:304 reduce - 28:0,target 52 - 112:304,target 79 + 63:309 reduce + 28:0,target 57 27:346 goto - 7:337,target 39 - 18:344,target 56 - 97:0 reduce - 72:304 reduce - 0:329,target 22 - 0:330,target 23 - 7:353 goto - 17:339,target 55 - 98:304,target 111 - 30:302,target 48 - 30:292,target 48 - 29:302,target 47 - 29:292,target 47 - 9:304,target 61 - 101:304,target 59 - 107:297,target 103 - 42:304 reduce - 22:284,target 91 - 106:304 reduce - 19:296,target 63 - 0:308,target 4 - 100:290,target 57 - 52:0 reduce - 21:351,target 69 - 81:304 reduce - 42:304,target 81 - 87:304,target 25 - 18:302,target 30 + 18:344,target 55 + 99:298,target 59 + 37:309,target 3 + 0:330,target 18 + 0:329,target 17 + 8:321,target 42 + 83:309,target 27 + 33:309 reduce + 11:265,target 48 + 17:339,target 54 + 30:302,target 53 + 29:302,target 52 + 106:302 shift + 106:303 shift + 72:309 reduce + 22:284,target 85 + 106:304 shift + 19:296,target 57 + 21:351,target 68 + 106:303,target 103 + 72:309,target 16 73:0 reduce - 22:263,target 70 - 12:304 reduce + 42:309 shift + 106:343,target 113 94:0 reduce - 51:304 reduce - 4:303,target 31 + 81:309 reduce 5:0 reduce - 7:335,target 37 + 15:309,target 73 } array set fp::rules { - 9,l 340 - 11,l 340 + 9,l 339 + 11,l 339 32,l 340 - 53,l 347 + 53,l 344 74,l 347 6,l 339 28,l 340 - 50,l 346 - 49,l 345 + 50,l 343 + 49,l 343 71,l 347 - 92,l 353 - 3,l 339 + 92,l 352 + 3,l 338 25,l 340 - 46,l 343 + 46,l 341 67,l 347 - 0,l 354 - 88,l 353 + 0,l 353 + 88,l 350 22,l 340 - 43,l 342 + 43,l 341 64,l 347 - 85,l 351 + 85,l 349 18,l 340 40,l 341 - 39,l 341 + 39,l 340 61,l 347 - 82,l 350 + 82,l 348 15,l 340 - 36,l 341 + 36,l 340 57,l 347 - 78,l 348 - 12,l 340 + 78,l 347 + 12,l 339 33,l 340 - 54,l 347 + 54,l 345 75,l 347 7,l 339 29,l 340 30,l 340 - 51,l 345 + 51,l 343 72,l 347 - 93,l 353 - 4,l 339 + 4,l 338 26,l 340 - 47,l 344 + 47,l 342 68,l 347 - 90,l 353 - 89,l 353 - 1,l 339 + 90,l 351 + 89,l 351 + 1,l 338 23,l 340 - 44,l 343 + 44,l 341 65,l 347 - 86,l 352 + 86,l 349 19,l 340 20,l 340 41,l 341 62,l 347 - 83,l 350 + 83,l 348 16,l 340 - 37,l 341 + 37,l 340 58,l 347 - 80,l 349 - 79,l 348 + 80,l 347 + 79,l 347 13,l 340 34,l 340 - 55,l 347 - 76,l 348 - 8,l 340 - 10,l 340 + 55,l 346 + 76,l 347 + 8,l 339 + 10,l 339 31,l 340 - 52,l 347 + 52,l 344 73,l 347 - 5,l 339 + 5,l 338 27,l 340 - 48,l 344 + 48,l 342 70,l 347 69,l 347 - 91,l 353 - 2,l 339 + 91,l 352 + 2,l 338 24,l 340 - 45,l 343 + 45,l 341 66,l 347 - 87,l 352 + 87,l 350 21,l 340 - 42,l 342 + 42,l 341 63,l 347 - 84,l 351 + 84,l 348 17,l 340 - 38,l 341 + 38,l 340 60,l 347 59,l 347 - 81,l 349 + 81,l 348 14,l 340 - 35,l 341 - 56,l 347 - 77,l 348 + 35,l 340 + 56,l 345 + 77,l 347 } array set fp::rules { 63,dc 2 12,dc 1 - 77,dc 3 + 77,dc 2 26,dc 1 92,dc 1 3,dc 1 41,dc 1 - 55,dc 1 - 70,dc 4 + 55,dc 0 + 70,dc 1 69,dc 2 18,dc 1 - 84,dc 1 + 84,dc 3 33,dc 1 9,dc 1 47,dc 1 - 62,dc 2 + 62,dc 3 11,dc 1 76,dc 2 25,dc 1 @@ -889,69 +884,68 @@ 54,dc 1 68,dc 2 17,dc 1 - 83,dc 1 + 83,dc 2 32,dc 1 8,dc 1 46,dc 1 - 61,dc 1 + 61,dc 2 10,dc 1 - 75,dc 1 + 75,dc 4 24,dc 1 - 90,dc 1 + 90,dc 2 89,dc 1 - 1,dc 0 + 1,dc 1 38,dc 1 53,dc 1 67,dc 1 16,dc 1 - 82,dc 1 + 82,dc 3 31,dc 1 7,dc 1 45,dc 1 - 60,dc 2 - 59,dc 3 + 60,dc 1 + 59,dc 1 74,dc 2 23,dc 1 0,dc 1 88,dc 1 37,dc 1 52,dc 1 - 66,dc 1 + 66,dc 2 15,dc 1 - 81,dc 1 + 81,dc 2 29,dc 1 30,dc 1 - 6,dc 1 + 6,dc 0 44,dc 1 - 58,dc 2 - 73,dc 2 + 58,dc 1 + 73,dc 1 22,dc 1 87,dc 1 36,dc 1 - 51,dc 3 - 65,dc 3 + 51,dc 1 + 65,dc 2 14,dc 1 - 80,dc 2 - 79,dc 3 + 80,dc 1 + 79,dc 2 28,dc 1 5,dc 1 43,dc 1 57,dc 1 - 72,dc 2 + 72,dc 1 21,dc 1 86,dc 1 35,dc 1 - 50,dc 0 + 50,dc 1 49,dc 1 64,dc 1 13,dc 1 78,dc 2 27,dc 1 - 93,dc 1 4,dc 1 42,dc 1 - 56,dc 2 - 71,dc 2 + 56,dc 3 + 71,dc 3 19,dc 1 20,dc 1 85,dc 2 @@ -960,271 +954,269 @@ } array set fp::rules { - 41,line 202 - 7,line 166 - 37,line 198 - 93,line 275 - 4,line 163 - 34,line 194 - 90,line 272 - 89,line 271 - 1,line 160 - 50,e 1 - 31,line 191 - 86,line 266 - 27,line 187 - 83,line 259 - 24,line 184 - 80,line 254 - 79,line 251 - 21,line 181 - 76,line 248 - 17,line 177 - 73,line 243 - 14,line 174 - 70,line 240 - 69,line 239 - 11,line 171 - 66,line 235 - 63,line 232 - 60,line 229 - 59,line 227 - 56,line 224 - 53,line 221 - 50,line 216 - 49,line 216 - 46,line 210 - 43,line 205 - 9,line 169 - 40,line 201 - 39,line 200 - 6,line 165 - 36,line 197 - 92,line 274 - 3,line 162 - 33,line 193 - 88,line 270 - 29,line 189 - 30,line 190 - 85,line 263 - 26,line 186 - 82,line 258 - 23,line 183 - 78,line 250 - 19,line 179 - 20,line 180 - 75,line 245 - 16,line 176 - 72,line 242 - 13,line 173 - 68,line 237 - 10,line 170 - 65,line 234 - 62,line 231 - 58,line 226 - 55,line 223 - 52,line 220 - 48,line 213 - 45,line 209 - 42,line 204 - 8,line 168 - 38,line 199 - 5,line 164 - 35,line 196 - 91,line 273 - 2,line 161 - 32,line 192 - 87,line 267 - 28,line 188 - 84,line 262 - 25,line 185 - 81,line 255 - 22,line 182 - 77,line 249 - 18,line 178 - 74,line 244 - 15,line 175 - 71,line 241 - 12,line 172 - 67,line 236 - 64,line 233 - 61,line 230 - 57,line 225 - 54,line 222 - 51,line 217 - 47,line 212 - 44,line 208 + 41,line 208 + 7,line 172 + 37,line 203 + 4,line 168 + 34,line 200 + 90,line 276 + 89,line 275 + 1,line 165 + 31,line 197 + 86,line 268 + 27,line 193 + 83,line 263 + 24,line 190 + 80,line 258 + 79,line 257 + 21,line 187 + 76,line 254 + 17,line 183 + 73,line 250 + 14,line 180 + 70,line 247 + 69,line 246 + 11,line 176 + 66,line 243 + 63,line 239 + 60,line 235 + 59,line 233 + 56,line 228 + 53,line 224 + 50,line 220 + 49,line 219 + 46,line 213 + 43,line 210 + 9,line 174 + 40,line 207 + 39,line 205 + 6,line 171 + 36,line 202 + 92,line 280 + 3,line 167 + 33,line 199 + 88,line 272 + 29,line 195 + 30,line 196 + 85,line 267 + 26,line 192 + 82,line 262 + 23,line 189 + 78,line 256 + 19,line 185 + 20,line 186 + 75,line 253 + 16,line 182 + 72,line 249 + 13,line 179 + 68,line 245 + 10,line 175 + 65,line 241 + 62,line 238 + 58,line 232 + 55,line 227 + 52,line 223 + 48,line 216 + 55,e 1 + 45,line 212 + 42,line 209 + 8,line 173 + 38,line 204 + 5,line 169 + 35,line 201 + 91,line 279 + 2,line 166 + 32,line 198 + 87,line 271 + 28,line 194 + 84,line 264 + 25,line 191 + 81,line 261 + 22,line 188 + 77,line 255 + 18,line 184 + 74,line 252 + 15,line 181 + 71,line 248 + 12,line 177 + 67,line 244 + 64,line 240 + 61,line 236 + 57,line 231 + 54,line 227 + 51,line 221 + 47,line 215 + 44,line 211 } array set fp::lr1_table { - 35 {{88 304 1}} + 35 {{1 309 1}} 66,trans {} 85,trans {} - 36 {{89 304 1}} - 37 {{90 304 1}} - 38 {{91 304 1}} - 40 {{93 304 1}} - 39 {{92 304 1}} + 36 {{2 309 1}} + 37 {{3 309 1}} + 38 {{4 309 1}} + 40 {{62 {0 309} 2}} + 39 {{5 309 1}} 117,trans {} - 41 {{59 {0 304} 2}} - 42 {{81 {0 304} 1}} - 43 {{80 {0 304} 1}} - 44 {{60 {0 304} 2}} - 45 {{62 {0 304} 2}} - 46 {{2 {0 304} 1}} - 47 {{5 {0 304} 1}} - 48 {{3 {0 304} 1}} - 49 {{6 {0 304} 1}} - 50 {{4 {0 304} 1}} - 27,trans {{346 100}} - 51 {{7 {0 304} 1}} + 41 {{86 {0 309} 1}} + 42 {{85 {0 309} 1}} + 43 {{66 {0 309} 2}} + 44 {{68 {0 309} 2}} + 45 {{7 {0 309} 1}} + 46 {{10 {0 309} 1}} + 47 {{8 {0 309} 1}} + 48 {{11 {0 309} 1}} + 49 {{9 {0 309} 1}} + 50 {{12 {0 309} 1}} + 27,trans {{346 99}} + 51 {{69 {0 309} 2}} 46,trans {} - 52 {{63 {0 304} 2}} + 52 {{52 {302 303 304} 1}} 65,trans {} 84,trans {} - 53 {{47 {297 298 299} 1}} - 54 {{48 {297 298 299} 1}} - 55 {{65 {0 304} 2} {44 {0 304} 0} {45 {0 304} 0} {46 {0 304} 0}} - 56 {{68 {0 304} 2}} + 53 {{53 {302 303 304} 1}} + 54 {{71 {0 309} 2} {49 {0 309} 0} {50 {0 309} 0} {51 {0 309} 0}} + 55 {{61 {0 309} 2}} + 56 {{74 {0 309} 2}} 116,trans {} - 57 {{69 {0 304} 2}} - 58 {{70 {0 304} 2} {47 {297 298 299} 0} {48 {297 298 299} 0}} - 59 {{35 {0 304} 1}} - 60 {{36 {0 304} 1}} - 61 {{37 {0 304} 1}} - 62 {{38 {0 304} 1}} - 63 {{39 {0 304} 1}} - 64 {{40 {0 304} 1}} - 65 {{41 {0 304} 1}} - 66 {{71 {0 304} 2}} + 57 {{75 {0 309} 2} {52 {302 303 304} 0} {53 {302 303 304} 0}} + 58 {{40 {0 309} 1}} + 59 {{41 {0 309} 1}} + 60 {{42 {0 309} 1}} + 61 {{43 {0 309} 1}} + 62 {{44 {0 309} 1}} + 63 {{45 {0 309} 1}} + 64 {{46 {0 309} 1}} + 65 {{76 {0 309} 2}} + 66 {{47 {0 309} 1}} 26,trans {} - 67 {{42 {0 304} 1}} + 67 {{48 {0 309} 1}} 45,trans {} - 68 {{43 {0 304} 1}} + 68 {{77 {0 309} 2}} 64,trans {} 83,trans {} - 69 {{72 {0 304} 2}} - 70 {{84 {0 304} 1} {85 {0 304} 1} {86 {0 304} 0} {87 {0 304} 0}} - 71 {{73 {0 304} 2}} - 72 {{8 {0 304} 1}} - 73 {{9 {0 304} 1}} + 69 {{89 {0 309} 1} {90 {0 309} 1} {91 {0 309} 0} {92 {0 309} 0}} + 70 {{78 {0 309} 2}} + 71 {{13 {0 309} 1}} + 72 {{14 {0 309} 1}} + 73 {{15 {0 309} 1}} 115,trans {} - 74 {{10 {0 304} 1}} - 75 {{11 {0 304} 1}} - 76 {{12 {0 304} 1}} - 77 {{13 {0 304} 1}} - 78 {{14 {0 304} 1}} - 79 {{15 {0 304} 1}} - 80 {{16 {0 304} 1}} - 81 {{17 {0 304} 1}} - 82 {{18 {0 304} 1}} - 83 {{19 {0 304} 1}} + 74 {{16 {0 309} 1}} + 75 {{17 {0 309} 1}} + 76 {{18 {0 309} 1}} + 77 {{19 {0 309} 1}} + 78 {{20 {0 309} 1}} + 79 {{21 {0 309} 1}} + 80 {{22 {0 309} 1}} + 81 {{23 {0 309} 1}} + 82 {{24 {0 309} 1}} + 83 {{25 {0 309} 1}} 25,trans {} - 84 {{20 {0 304} 1}} + 84 {{26 {0 309} 1}} 44,trans {} - 85 {{21 {0 304} 1}} + 85 {{27 {0 309} 1}} 63,trans {} 82,trans {} - 86 {{22 {0 304} 1}} - 87 {{23 {0 304} 1}} - 0 {{0 0 0} {49 0 0} {51 0 0} {52 {0 304} 0} {53 {0 304} 0} {54 {0 304} 0} {55 {0 304} 0} {56 {0 304} 0} {57 {0 304} 0} {58 {0 304} 0} {59 {0 304} 0} {60 {0 304} 0} {61 {0 304} 0} {62 {0 304} 0} {63 {0 304} 0} {64 {0 304} 0} {65 {0 304} 0} {66 {0 304} 0} {67 {0 304} 0} {68 {0 304} 0} {69 {0 304} 0} {70 {0 304} 0} {71 {0 304} 0} {72 {0 304} 0} {73 {0 304} 0} {74 {0 304} 0} {75 {0 304} 0} {82 {0 304} 0} {83 {0 304} 0}} - 88 {{24 {0 304} 1}} - 1 {{53 {0 304} 1}} - 89 {{25 {0 304} 1}} - 90 {{26 {0 304} 1}} + 86 {{28 {0 309} 1}} + 87 {{29 {0 309} 1}} + 0 {{0 0 0} {54 0 0} {56 0 0} {57 {0 309} 0} {58 {0 309} 0} {59 {0 309} 0} {60 {0 309} 0} {61 {0 309} 0} {62 {0 309} 0} {63 {0 309} 0} {64 {0 309} 0} {65 {0 309} 0} {66 {0 309} 0} {67 {0 309} 0} {68 {0 309} 0} {69 {0 309} 0} {70 {0 309} 0} {71 {0 309} 0} {72 {0 309} 0} {73 {0 309} 0} {74 {0 309} 0} {75 {0 309} 0} {76 {0 309} 0} {77 {0 309} 0} {78 {0 309} 0} {79 {0 309} 0} {80 {0 309} 0} {87 {0 309} 0} {88 {0 309} 0}} + 88 {{30 {0 309} 1}} + 1 {{58 {0 309} 1}} + 89 {{31 {0 309} 1}} + 90 {{32 {0 309} 1}} 114,trans {} - 2 {{54 {0 304} 1}} - 91 {{27 {0 304} 1}} - 3 {{55 {0 304} 1}} - 92 {{28 {0 304} 1}} - 4 {{56 {0 304} 1} {76 {0 304} 0} {77 {0 304} 0} {78 {0 304} 0} {79 {0 304} 0} {47 {301 302} 0} {48 {301 302} 0}} - 93 {{29 {0 304} 1}} - 5 {{57 {0 304} 1}} - 94 {{30 {0 304} 1}} - 6 {{58 {0 304} 1} {82 {0 304} 0} {83 {0 304} 0}} - 95 {{31 {0 304} 1}} - 7 {{59 {0 304} 1} {88 304 0} {89 304 0} {90 304 0} {91 304 0} {92 304 0} {93 304 0}} - 96 {{32 {0 304} 1}} - 8 {{60 {0 304} 1} {80 {0 304} 0} {81 {0 304} 0}} - 97 {{33 {0 304} 1}} - 9 {{61 {0 304} 1}} - 98 {{34 {0 304} 1}} - 99 {{74 {0 304} 2}} + 2 {{59 {0 309} 1}} + 91 {{33 {0 309} 1}} + 3 {{60 {0 309} 1}} + 92 {{34 {0 309} 1}} + 4 {{63 {0 309} 1} {81 {0 309} 0} {82 {0 309} 0} {83 {0 309} 0} {84 {0 309} 0} {52 {306 307} 0} {53 {306 307} 0}} + 93 {{35 {0 309} 1}} + 5 {{64 {0 309} 1}} + 94 {{36 {0 309} 1}} + 6 {{65 {0 309} 1} {87 {0 309} 0} {88 {0 309} 0}} + 95 {{37 {0 309} 1}} + 7 {{62 {0 309} 1} {1 309 0} {2 309 0} {3 309 0} {4 309 0} {5 309 0}} + 96 {{38 {0 309} 1}} + 8 {{66 {0 309} 1} {85 {0 309} 0} {86 {0 309} 0}} + 97 {{39 {0 309} 1}} + 9 {{67 {0 309} 1}} + 98 {{79 {0 309} 2}} 24,trans {} - 43,trans {{304 106}} + 99 {{56 0 2}} + 43,trans {} 62,trans {} 81,trans {} - 99,trans {} + 99,trans {{309 114}} 113,trans {} 23,trans {} - 42,trans {} + 42,trans {{309 105}} 61,trans {} 80,trans {} 79,trans {} 98,trans {} 9,trans {} 112,trans {} - 22,trans {{263 72} {264 73} {265 74} {266 75} {267 76} {268 77} {269 78} {270 79} {271 80} {272 81} {273 82} {274 83} {275 84} {276 85} {277 86} {278 87} {279 88} {280 89} {281 90} {282 91} {283 92} {284 93} {285 94} {286 95} {287 96} {288 97} {289 98} {340 99}} - 41,trans {{304 105}} + 22,trans {{268 71} {269 72} {270 73} {271 74} {272 75} {273 76} {274 77} {275 78} {276 79} {277 80} {278 81} {279 82} {280 83} {281 84} {282 85} {283 86} {284 87} {285 88} {286 89} {287 90} {288 91} {289 92} {290 93} {291 94} {292 95} {293 96} {294 97} {340 98}} + 41,trans {} 59,trans {} 60,trans {} 78,trans {} 97,trans {} - 8,trans {{304 42} {316 43} {349 44}} - 111,trans {{297 107} {298 108} {299 109} {343 118}} - 100 {{51 0 2}} - 101 {{78 {0 304} 2} {79 {0 304} 2} {35 {0 304} 0} {36 {0 304} 0} {37 {0 304} 0} {38 {0 304} 0} {39 {0 304} 0} {40 {0 304} 0} {41 {0 304} 0}} - 102 {{47 {0 290 291 292 293 294 295 296 304} 1}} - 103 {{48 {0 290 291 292 293 294 295 296 304} 1}} - 104 {{76 {0 304} 2} {77 {0 304} 2} {35 {0 304} 0} {36 {0 304} 0} {37 {0 304} 0} {38 {0 304} 0} {39 {0 304} 0} {40 {0 304} 0} {41 {0 304} 0}} - 105 {{59 {0 304} 3}} - 21,trans {{304 70} {351 71}} - 106 {{80 {0 304} 2}} + 8,trans {{309 41} {321 42} {349 43}} + 111,trans {} + 100 {{83 {0 309} 2} {84 {0 309} 2} {40 {0 309} 0} {41 {0 309} 0} {42 {0 309} 0} {43 {0 309} 0} {44 {0 309} 0} {45 {0 309} 0} {46 {0 309} 0}} + 101 {{52 {0 295 296 297 298 299 300 301 309} 1}} + 102 {{53 {0 295 296 297 298 299 300 301 309} 1}} + 103 {{81 {0 309} 2} {82 {0 309} 2} {40 {0 309} 0} {41 {0 309} 0} {42 {0 309} 0} {43 {0 309} 0} {44 {0 309} 0} {45 {0 309} 0} {46 {0 309} 0}} + 104 {{62 {0 309} 3}} + 105 {{85 {0 309} 2}} + 21,trans {{309 69} {351 70}} + 106 {{49 {0 309} 1}} 39,trans {} - 40,trans {} - 107 {{44 {0 304} 1}} - 108 {{45 {0 304} 1}} - 58,trans {{301 53} {302 54} {344 111}} + 40,trans {{309 104}} + 107 {{50 {0 309} 1}} + 108 {{51 {0 309} 1}} + 58,trans {} + 109 {{71 {0 309} 3}} + 110 {{75 {0 309} 3} {49 {0 309} 0} {50 {0 309} 0} {51 {0 309} 0}} 77,trans {} - 109 {{46 {0 304} 1}} - 110 {{65 {0 304} 3}} 96,trans {} - 7,trans {{333 35} {334 36} {335 37} {336 38} {337 39} {338 40} {353 41}} - 111 {{70 {0 304} 3} {44 {0 304} 0} {45 {0 304} 0} {46 {0 304} 0}} - 112 {{87 {0 304} 1}} - 113 {{86 {0 304} 1}} - 110,trans {} + 7,trans {{257 35} {258 36} {259 37} {260 38} {261 39} {338 40}} + 111 {{92 {0 309} 1}} + 112 {{91 {0 309} 1}} + 113 {{90 {0 309} 2}} + 110,trans {{302 106} {303 107} {304 108} {343 117}} 109,trans {} - 114 {{85 {0 304} 2}} - 115 {{51 0 3}} - 116 {{79 {0 304} 3}} - 117 {{77 {0 304} 3}} - 118 {{70 {0 304} 4}} - 19,trans {{290 59} {291 60} {292 61} {293 62} {294 63} {295 64} {296 65} {341 66}} - 20,trans {{297 67} {300 68} {342 69}} + 114 {{56 0 3}} + 115 {{84 {0 309} 3}} + 116 {{82 {0 309} 3}} + 117 {{75 {0 309} 4}} + 19,trans {{295 58} {296 59} {297 60} {298 61} {299 62} {300 63} {301 64} {341 65}} + 20,trans {{302 66} {305 67} {342 68}} 38,trans {} - 57,trans {} + 57,trans {{306 52} {307 53} {344 110}} 76,trans {} 95,trans {} - 6,trans {{331 24} {332 25} {350 34}} + 6,trans {{336 24} {337 25} {350 34}} 108,trans {} - 18,trans {{301 29} {302 30} {344 58}} + 18,trans {{306 29} {307 30} {344 57}} 37,trans {} 56,trans {} 75,trans {} 94,trans {} 5,trans {} 107,trans {} - 17,trans {{257 46} {258 47} {259 48} {260 49} {261 50} {262 51} {339 57}} + 17,trans {{262 45} {263 46} {264 47} {265 48} {266 49} {267 50} {339 56}} 36,trans {} - 55,trans {{297 107} {298 108} {299 109} {343 110}} + 55,trans {} 74,trans {} 93,trans {} - 4,trans {{301 29} {302 30} {303 31} {344 32} {348 33}} + 4,trans {{306 29} {307 30} {308 31} {344 32} {348 33}} 106,trans {} - 16,trans {{304 56}} + 16,trans {{309 55}} 35,trans {} - 54,trans {} + 54,trans {{302 106} {303 107} {304 108} {343 109}} 73,trans {} 92,trans {} 3,trans {} @@ -1235,7 +1227,7 @@ 72,trans {} 91,trans {} 2,trans {} - 104,trans {{290 59} {291 60} {292 61} {293 62} {294 63} {295 64} {296 65} {341 117}} + 104,trans {} 14,trans {} 33,trans {} 52,trans {} @@ -1243,161 +1235,159 @@ 90,trans {} 89,trans {} 1,trans {} - 103,trans {} - 13,trans {{301 53} {302 54} {344 55}} - 32,trans {{301 102} {302 103} {344 104}} + 103,trans {{295 58} {296 59} {297 60} {298 61} {299 62} {300 63} {301 64} {341 116}} + 13,trans {{306 52} {307 53} {344 54}} + 32,trans {{306 101} {307 102} {344 103}} 51,trans {} - 69,trans {} - 70,trans {{311 112} {315 113} {352 114}} + 69,trans {{316 111} {320 112} {352 113}} + 70,trans {} 88,trans {} - 0,trans {{305 1} {306 2} {307 3} {308 4} {309 5} {310 6} {312 7} {313 8} {314 9} {317 10} {318 11} {319 12} {320 13} {321 14} {322 15} {323 16} {324 17} {325 18} {326 19} {327 20} {328 21} {329 22} {330 23} {331 24} {332 25} {345 26} {347 27} {350 28}} + 0,trans {{310 1} {311 2} {312 3} {313 4} {314 5} {315 6} {317 7} {318 8} {319 9} {322 10} {323 11} {324 12} {325 13} {326 14} {327 15} {328 16} {329 17} {330 18} {331 19} {332 20} {333 21} {334 22} {335 23} {336 24} {337 25} {345 26} {347 27} {350 28}} 102,trans {} 12,trans {} - 31,trans {{303 101}} + 31,trans {{308 100}} 49,trans {} 50,trans {} 68,trans {} 87,trans {} - 101,trans {{290 59} {291 60} {292 61} {293 62} {294 63} {295 64} {296 65} {341 116}} - 10 {{62 {0 304} 1}} - 11 {{63 {0 304} 1} {1 {0 304} 0} {2 {0 304} 0} {3 {0 304} 0} {4 {0 304} 0} {5 {0 304} 0} {6 {0 304} 0} {7 {0 304} 0}} - 12 {{64 {0 304} 1}} - 13 {{65 {0 304} 1} {47 {297 298 299} 0} {48 {297 298 299} 0}} - 14 {{66 {0 304} 1}} - 15 {{67 {0 304} 1}} - 11,trans {{257 46} {258 47} {259 48} {260 49} {261 50} {262 51} {339 52}} - 16 {{68 {0 304} 1}} + 101,trans {} + 10 {{68 {0 309} 1}} + 11 {{69 {0 309} 1} {6 {0 309} 0} {7 {0 309} 0} {8 {0 309} 0} {9 {0 309} 0} {10 {0 309} 0} {11 {0 309} 0} {12 {0 309} 0}} + 12 {{70 {0 309} 1}} + 13 {{71 {0 309} 1} {52 {302 303 304} 0} {53 {302 303 304} 0}} + 14 {{72 {0 309} 1}} + 15 {{73 {0 309} 1}} + 11,trans {{262 45} {263 46} {264 47} {265 48} {266 49} {267 50} {339 51}} + 16 {{61 {0 309} 1}} 29,trans {} 30,trans {} - 17 {{69 {0 304} 1} {1 {0 304} 0} {2 {0 304} 0} {3 {0 304} 0} {4 {0 304} 0} {5 {0 304} 0} {6 {0 304} 0} {7 {0 304} 0}} + 17 {{74 {0 309} 1} {6 {0 309} 0} {7 {0 309} 0} {8 {0 309} 0} {9 {0 309} 0} {10 {0 309} 0} {11 {0 309} 0} {12 {0 309} 0}} 48,trans {} - 18 {{70 {0 304} 1} {47 {301 302} 0} {48 {301 302} 0}} + 18 {{75 {0 309} 1} {52 {306 307} 0} {53 {306 307} 0}} 67,trans {} 86,trans {} - 20 {{72 {0 304} 1} {42 {0 304} 0} {43 {0 304} 0}} - 19 {{71 {0 304} 1} {35 {0 304} 0} {36 {0 304} 0} {37 {0 304} 0} {38 {0 304} 0} {39 {0 304} 0} {40 {0 304} 0} {41 {0 304} 0}} - 21 {{73 {0 304} 1} {84 {0 304} 0} {85 {0 304} 0}} - 22 {{74 {0 304} 1} {8 {0 304} 0} {9 {0 304} 0} {10 {0 304} 0} {11 {0 304} 0} {12 {0 304} 0} {13 {0 304} 0} {14 {0 304} 0} {15 {0 304} 0} {16 {0 304} 0} {17 {0 304} 0} {18 {0 304} 0} {19 {0 304} 0} {20 {0 304} 0} {21 {0 304} 0} {22 {0 304} 0} {23 {0 304} 0} {24 {0 304} 0} {25 {0 304} 0} {26 {0 304} 0} {27 {0 304} 0} {28 {0 304} 0} {29 {0 304} 0} {30 {0 304} 0} {31 {0 304} 0} {32 {0 304} 0} {33 {0 304} 0} {34 {0 304} 0}} - 100,trans {{304 115}} - 23 {{75 {0 304} 1}} - 118,trans {} - 24 {{82 {0 304} 1}} - 25 {{83 {0 304} 1}} + 20 {{77 {0 309} 1} {47 {0 309} 0} {48 {0 309} 0}} + 19 {{76 {0 309} 1} {40 {0 309} 0} {41 {0 309} 0} {42 {0 309} 0} {43 {0 309} 0} {44 {0 309} 0} {45 {0 309} 0} {46 {0 309} 0}} + 21 {{78 {0 309} 1} {89 {0 309} 0} {90 {0 309} 0}} + 22 {{79 {0 309} 1} {13 {0 309} 0} {14 {0 309} 0} {15 {0 309} 0} {16 {0 309} 0} {17 {0 309} 0} {18 {0 309} 0} {19 {0 309} 0} {20 {0 309} 0} {21 {0 309} 0} {22 {0 309} 0} {23 {0 309} 0} {24 {0 309} 0} {25 {0 309} 0} {26 {0 309} 0} {27 {0 309} 0} {28 {0 309} 0} {29 {0 309} 0} {30 {0 309} 0} {31 {0 309} 0} {32 {0 309} 0} {33 {0 309} 0} {34 {0 309} 0} {35 {0 309} 0} {36 {0 309} 0} {37 {0 309} 0} {38 {0 309} 0} {39 {0 309} 0}} + 100,trans {{295 58} {296 59} {297 60} {298 61} {299 62} {300 63} {301 64} {341 115}} + 23 {{80 {0 309} 1}} + 24 {{87 {0 309} 1}} + 25 {{88 {0 309} 1}} 26 {{0 0 1}} - 27 {{49 0 1} {51 0 1} {50 304 0}} - 28 {{52 {0 304} 1}} - 30 {{48 {301 302} 1}} - 29 {{47 {301 302} 1}} - 31 {{78 {0 304} 1} {79 {0 304} 1}} - 32 {{76 {0 304} 1} {77 {0 304} 1} {47 {0 290 291 292 293 294 295 296 304} 0} {48 {0 290 291 292 293 294 295 296 304} 0}} - 10,trans {{304 45}} - 33 {{56 {0 304} 2}} + 27 {{54 0 1} {56 0 1} {55 309 0}} + 28 {{57 {0 309} 1}} + 30 {{53 {306 307} 1}} + 29 {{52 {306 307} 1}} + 31 {{83 {0 309} 1} {84 {0 309} 1}} + 32 {{81 {0 309} 1} {82 {0 309} 1} {52 {0 295 296 297 298 299 300 301 309} 0} {53 {0 295 296 297 298 299 300 301 309} 0}} + 10,trans {{309 44}} + 33 {{63 {0 309} 2}} 28,trans {} - 34 {{58 {0 304} 2}} + 34 {{65 {0 309} 2}} 47,trans {} } array set fp::token_id_table { - 286 WCSW_ + 286 WCSR_ 286,t 0 - 287 WCSX_ + 287 WCSS_ 292,line 44 - 302,line 57 - 288 WCSY_ + 302,line 56 + 288 WCST_ 317,t 0 - 265,title WCSB - 289 WCSZ_ - 290 FK4_ - 300 SEXAGESIMAL_ - 284,title WCSU - 291 B1950_ - 301 INT_ - 313,title FILTER - 292 FK5_ - 302 REAL_ - 338,t 0 - 332,title HLA - 288,line 39 - 293 J2000_ - 303 SEXSTR_ + 265,title OFF + 289 WCSU_ + 290 WCSV_ + 300 GALACTIC_ + 284,title WCSP + 291 WCSW_ + 301 ECLIPTIC_ + 313,title COORDINATE + 292 WCSX_ + 302 DEGREES_ + 338,t 1 + 332,title SKYFORMAT + 288,line 40 + 293 WCSY_ + 303 ARCMIN_ 351,title {} - 294 ICRS_ - 304 STRING_ - 354,line 276 - 305 CANCEL_ - 295 GALACTIC_ - 306 CLEAR_ - 296 ECLIPTIC_ - 307 CLOSE_ + 294 WCSZ_ + 304 ARCSEC_ + 305 SEXAGESIMAL_ + 295 FK4_ + 306 INT_ + 296 B1950_ + 307 REAL_ 262,t 0 - 297 DEGREES_ - 308 COORDINATE_ - 285,line 36 - 298 ARCMIN_ - 310 CURRENT_ - 309 CROSSHAIR_ - 299 ARCSEC_ - 351,line 261 - 311 DECR_ + 297 FK5_ + 308 SEXSTR_ + 285,line 37 + 298 J2000_ + 310 CANCEL_ + 309 STRING_ + 299 ICRS_ + 351,line 274 + 311 CLEAR_ 283,t 0 - 312 EXPORT_ - 313 FILTER_ + 312 CLOSE_ + 313 COORDINATE_ 314,t 0 - 314 HIDE_ - 282,line 33 - 315 INCR_ - 347,line 219 - 316 LOAD_ - 264,title WCSA + 314 CROSSHAIR_ + 282,line 34 + 315 CURRENT_ + 347,line 230 + 316 DECR_ + 264,title ON 335,t 0 - 317 NAME_ - 283,title WCST - 318 PANTO_ - 312,title EXPORT - 331,title CXC - 320 RADIUS_ - 319 PRINT_ - 278,line 29 + 317 EXPORT_ + 283,title WCSO + 318 FILTER_ + 312,title CLOSE + 331,title SKY + 320 INCR_ + 319 HIDE_ + 278,line 30 350,title {} 349,title {} - error,line 158 - 321 REGIONS_ - 344,line 211 - 322 RETRIEVE_ + error,line 163 + 321 LOAD_ + 344,line 222 + 322 NAME_ 258,t 0 - 323 SAVE_ - 324 SHOW_ - 325 SIZE_ - 275,line 26 + 323 PANTO_ + 324 PRINT_ + 325 RADIUS_ + 275,line 27 279,t 0 280,t 0 - 326 SKY_ - 341,line 195 - 327 SKYFORMAT_ - 328 SORT_ + 326 REGIONS_ + 341,line 206 + 327 RETRIEVE_ + 328 SAVE_ 311,t 0 - 330 UPDATE_ - 329 SYSTEM_ - 331 CXC_ - 272,line 23 + 330 SIZE_ + 329 SHOW_ + 331 SKY_ + 272,line 24 332,t 0 - 332 HLA_ + 332 SKYFORMAT_ 337,line 99 - 333 XML_ - 263,title WCS - 334 VOT_ - 282,title WCSS + 333 SORT_ + 263,title NO + 334 SYSTEM_ + 282,title WCSN 353,t 1 - 335 SB_ - 311,title DECR - 336 STARBASE_ - 330,title UPDATE - 329,title SYSTEM - 268,line 19 + 335 UPDATE_ + 311,title CLEAR + 336 CXC_ + 330,title SIZE + 329,title SHOW + 268,line 20 348,title {} - 337 CSV_ - 338 TSV_ - 334,line 96 + 337 HLA_ + 338 writer + 334,line 95 340 wcssys 339 yesno 276,t 0 @@ -1413,7 +1403,7 @@ 346 @PSEUDO1 328,t 0 347 fp - 262,line 12 + 262,line 13 348 coordinate 350,t 1 350 site @@ -1421,281 +1411,278 @@ 349 filter 0,t 0 0 {$} - 327,line 87 - 262,title FALSE + 327,line 88 + 262,title YES 351 sort - 281,title WCSR + 281,title WCSM 352 sortDir error,t 0 - 310,title CURRENT - 309,title CROSSHAIR - 299,title ARCSEC - 353 writer - 328,title SORT + 310,title CANCEL + 309,title string + 299,title ICRS + 353 start' + 328,title SAVE 258,line 8 - 354 start' 347,title {} 273,t 0 - 324,line 84 + 324,line 85 294,t 0 304,t 0 325,t 0 - 321,line 81 + 321,line 82 346,t 1 - 317,line 77 - 261,title TRUE - 279,title WCSP - 280,title WCSQ - 308,title COORDINATE + 317,line 78 + 261,title TSV + 279,title WCSK + 280,title WCSL + 308,title sexagesimal 269,t 0 270,t 0 - 298,title ARCMIN - 327,title SKYFORMAT + 298,title J2000 + 327,title RETRIEVE 346,title {} - 314,line 74 + 314,line 75 291,t 0 301,t 0 322,t 0 - 311,line 71 + 311,line 72 343,t 1 - 307,line 67 + 307,line 63 266,t 0 - 260,title OFF - 259,title ON + 260,title CSV + 259,title STARBASE 297,line 50 - 278,title WCSO - 307,title CLOSE - 297,title DEGREES - 326,title SKY + 278,title WCSJ + 307,title float + 297,title FK5 + 326,title REGIONS 287,t 0 345,title {} 294,line 46 - 304,line 61 + 304,line 58 318,t 0 340,t 1 339,t 1 error,title {} 291,line 43 - 301,line 56 + 301,line 54 263,t 0 - 258,title NO - 287,line 38 - 277,title WCSN + 258,title SB + 287,line 39 + 277,title WCSI 284,t 0 - 353,line 269 - 306,title CLEAR - 296,title ECLIPTIC - 325,title SIZE + 353,line 281 + 306,title integer + 296,title B1950 + 325,title RADIUS 344,title {} 315,t 0 - 284,line 35 - 350,line 257 - 349,line 253 + 284,line 36 + 350,line 270 + 349,line 266 336,t 0 - 281,line 32 + 281,line 33 260,t 0 259,t 0 - 346,line 216 + 346,line 227 281,t 0 - 257,title YES - 277,line 28 - 276,title WCSM - 343,line 207 + 257,title RDB + 277,line 29 + 276,title WCSH + 343,line 218 312,t 0 - 305,title CANCEL - 295,title GALACTIC - 324,title SHOW + 305,title SEXAGESIMAL + 295,title FK4 + 324,title PRINT 343,title {} 333,t 0 - 274,line 25 - 340,line 167 - 339,line 159 - 354,t 1 - 271,line 22 + 274,line 26 + 340,line 178 + 339,line 170 + 271,line 23 336,line 98 277,t 0 308,t 0 267,line 18 298,t 0 - 275,title WCSL - 333,line 95 - 294,title ICRS - 304,title string + 275,title WCSG + 333,line 94 + 294,title WCSZ + 304,title ARCSEC 330,t 0 329,t 0 - 323,title SAVE + 323,title PANTO 342,title {} 264,line 15 351,t 1 - 330,line 90 - 329,line 89 + 330,line 91 + 329,line 90 261,line 11 274,t 0 - 326,line 86 + 326,line 87 305,t 0 295,t 0 257,line 7 326,t 0 - 274,title WCSK - 323,line 83 - 293,title J2000 - 303,title sexagesimal - 322,title RETRIEVE + 274,title WCSF + 323,line 84 + 293,title WCSY + 303,title ARCMIN + 322,title NAME 347,t 1 341,title {} - 320,line 80 - 319,line 79 + 320,line 81 + 319,line 80 error error 271,t 0 292,t 0 302,t 0 - 316,line 76 + 316,line 77 323,t 0 - 273,title WCSJ + 273,title WCSE 344,t 1 - 313,line 73 - 292,title FK5 - 302,title float - 321,title REGIONS + 313,line 74 + 292,title WCSX + 302,title DEGREES + 321,title LOAD 340,title {} 339,title {} 267,t 0 - 310,line 70 - 309,line 69 + 310,line 71 + 309,line 67 299,line 52 288,t 0 320,t 0 319,t 0 - 306,line 66 - 296,line 48 + 306,line 62 + 296,line 49 341,t 1 - 272,title WCSI - 291,title B1950 + 272,title WCSD + 291,title WCSW 293,line 45 - 301,title integer - 303,line 59 - 320,title RADIUS - 319,title PRINT - 338,title TSV + 301,title ECLIPTIC + 303,line 57 + 320,title INCR + 319,title HIDE + 338,title {} 264,t 0 285,t 0 - 289,line 40 + 289,line 41 290,line 42 - 300,line 54 + 300,line 53 316,t 0 - 286,line 37 + 286,line 38 337,t 0 - 352,line 265 - 271,title WCSH + 352,line 278 + 271,title WCSC 261,t 0 - 283,line 34 - 289,title WCSZ - 290,title FK4 - 300,title SEXAGESIMAL - 318,title PANTO - 348,line 247 - 337,title CSV + 283,line 35 + 289,title WCSU + 290,title WCSV + 300,title GALACTIC + 318,title FILTER + 348,line 260 + 337,title HLA 282,t 0 - 279,line 30 - 280,line 31 + 279,line 31 + 280,line 32 313,t 0 - 345,line 215 + 345,line 226 334,t 0 - 276,line 27 - 342,line 203 + 276,line 28 + 342,line 214 257,t 0 - 269,title WCSF - 270,title WCSG - 273,line 24 - 288,title WCSY - 317,title NAME + 269,title WCSA + 270,title WCSB + 273,line 25 + 288,title WCST + 317,title EXPORT 278,t 0 - 338,line 100 - 336,title STARBASE + 338,line 164 + 336,title CXC 310,t 0 309,t 0 299,t 0 - 269,line 20 - 270,line 21 - 335,line 97 + 269,line 21 + 270,line 22 + 335,line 96 331,t 0 352,t 1 266,line 17 332,line 93 - 268,title WCSE + 268,title WCS 275,t 0 263,line 14 - 287,title WCSX - 316,title LOAD - 335,title SB - 328,line 88 + 287,title WCSS + 316,title DECR + 335,title UPDATE + 328,line 89 306,t 0 296,t 0 - 354,title {} 327,t 0 260,line 10 259,line 9 - 325,line 85 + 325,line 86 348,t 1 - 322,line 82 + 322,line 83 272,t 0 - 267,title WCSD - 257 YES_ - 286,title WCSW + 267,title FALSE + 257 RDB_ + 286,title WCSR 293,t 0 303,t 0 - 315,title INCR - 258 NO_ - 334,title VOT - 318,line 78 - 260 OFF_ - 259 ON_ + 315,title CURRENT + 258 SB_ + 334,title SYSTEM + 318,line 79 + 260 CSV_ + 259 STARBASE_ 353,title {} 324,t 0 - 261 TRUE_ - 262 FALSE_ - 263 WCS_ + 261 TSV_ + 262 YES_ + 263 NO_ 345,t 1 - 264 WCSA_ - 315,line 75 - 265 WCSB_ - 266 WCSC_ - 267 WCSD_ + 264 ON_ + 315,line 76 + 265 OFF_ + 266 TRUE_ + 267 FALSE_ 268,t 0 - 268 WCSE_ - 269 WCSF_ - 270 WCSG_ - 312,line 72 - 271 WCSH_ - 272 WCSI_ + 268 WCS_ + 269 WCSA_ + 270 WCSB_ + 312,line 73 + 271 WCSC_ + 272 WCSD_ 289,t 0 290,t 0 300,t 0 - 266,title WCSC - 273 WCSJ_ - 274 WCSK_ - 285,title WCSV + 266,title TRUE + 273 WCSE_ + 274 WCSF_ + 285,title WCSQ 321,t 0 - 314,title HIDE - 275 WCSL_ - 333,title XML - 308,line 68 - 276 WCSM_ + 314,title CROSSHAIR + 275 WCSG_ + 333,title SORT + 308,line 65 + 276 WCSH_ 298,line 51 352,title {} - 277 WCSN_ + 277 WCSI_ 342,t 1 - 278 WCSO_ - 279 WCSP_ - 280 WCSQ_ - 281 WCSR_ - 305,line 65 - 282 WCSS_ - 295,line 47 + 278 WCSJ_ + 279 WCSK_ + 280 WCSL_ + 281 WCSM_ + 305,line 60 + 282 WCSN_ + 295,line 48 265,t 0 - 283 WCST_ - 284 WCSU_ - 285 WCSV_ + 283 WCSO_ + 284 WCSP_ + 285 WCSQ_ } proc fp::yyparse {} { @@ -1792,94 +1779,93 @@ set _ $1 set yylval [lindex $value_stack end] switch -- $rule { - 1 { set _ 1 } - 2 { set _ 1 } - 3 { set _ 1 } - 4 { set _ 1 } - 5 { set _ 0 } - 6 { set _ 0 } - 7 { set _ 0 } - 8 { set _ wcs } - 9 { set _ wcsa } - 10 { set _ wcsb } - 11 { set _ wcsc } - 12 { set _ wcsd } - 13 { set _ wcse } - 14 { set _ wcsf } - 15 { set _ wcsg } - 16 { set _ wcsh } - 17 { set _ wcsi } - 18 { set _ wcsj } - 19 { set _ wcsk } - 20 { set _ wcsl } - 21 { set _ wcsm } - 22 { set _ wcsn } - 23 { set _ wcso } - 24 { set _ wcsp } - 25 { set _ wcsq } - 26 { set _ wcsr } - 27 { set _ wcss } - 28 { set _ wcst } - 29 { set _ wcsu } - 30 { set _ wcsv } - 31 { set _ wcsw } - 32 { set _ wcsx } - 33 { set _ wcsy } - 34 { set _ wcsz } - 35 { set _ fk4 } - 36 { set _ fk4 } - 37 { set _ fk5 } - 38 { set _ fk5 } - 39 { set _ icrs } - 40 { set _ galactic } - 41 { set _ ecliptic } - 42 { set _ degrees } - 43 { set _ sexagesimal } - 44 { set _ degrees } - 45 { set _ arcmin } - 46 { set _ arcsec } - 47 { set _ $1 } - 48 { set _ $1 } - 50 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } - 52 { FPCmdRetrieve $1 } - 53 { ProcessCmdCVAR0 ARCancel } - 54 { ProcessCmdCVAR0 FPOff } - 55 { ProcessCmdCVAR0 FPDestroy } - 57 { ProcessCmdCVAR0 TBLCrosshair } - 58 { FPCmdRef $2 } - 59 { TBLCmdSave $3 $2 } - 61 { ProcessCmdCVAR show 0 FPGenerate } - 62 { ProcessCmdCVAR name $2 } - 63 { ProcessCmdCVAR panto $2 } - 64 { ProcessCmdCVAR0 TBLCmdPrint } - 65 { TBLCmdSize $2 $3 } - 66 { ProcessCmdCVAR0 FPGenerateRegions } - 67 { global cvarname; FPApply $cvarname 1 } - 68 { TBLCmdSave $2 VOTWrite } - 69 { ProcessCmdCVAR show $2 FPGenerate } - 70 { TBLCmdSize [expr ($2+$3)/2.] $4 } - 71 { TBLCmdSkyframe $2 } - 72 { ProcessCmdCVAR skyformat $2 } - 74 { TBLCmdSystem $2 } - 75 { ProcessCVAR0 TBLUpdate } - 76 { TBLCmdCoord $1 $2 fk5 } - 77 { TBLCmdCoord $1 $2 $3 } - 78 { TBLCmdCoord $1 $2 fk5 } - 79 { TBLCmdCoord $1 $2 $3 } - 80 { TBLCmdFilterLoad $2 } - 81 { ProcessCmdCVAR filter $1 FPTable } - 82 { set _ cxc } - 83 { set _ hla } - 84 { ProcessCmdCVAR sort $1; ProcessCmdCVAR sort,dir "-increasing" FPTable } - 85 { ProcessCmdCVAR sort $1; ProcessCmdCVAR sort,dir $2 FPTable } - 86 { set _ "-increasing" } - 87 { set _ "-decreasing" } - 88 { set _ VOTWrite } - 89 { set _ VOTWrite } - 90 { set _ starbase_write } - 91 { set _ starbase_write } - 92 { set _ TSVWrite } - 93 { set _ TSVWrite } + 1 { set _ starbase_write } + 2 { set _ starbase_write } + 3 { set _ starbase_write } + 4 { set _ TSVWrite } + 5 { set _ TSVWrite } + 6 { set _ 1 } + 7 { set _ 1 } + 8 { set _ 1 } + 9 { set _ 1 } + 10 { set _ 0 } + 11 { set _ 0 } + 12 { set _ 0 } + 13 { set _ wcs } + 14 { set _ wcsa } + 15 { set _ wcsb } + 16 { set _ wcsc } + 17 { set _ wcsd } + 18 { set _ wcse } + 19 { set _ wcsf } + 20 { set _ wcsg } + 21 { set _ wcsh } + 22 { set _ wcsi } + 23 { set _ wcsj } + 24 { set _ wcsk } + 25 { set _ wcsl } + 26 { set _ wcsm } + 27 { set _ wcsn } + 28 { set _ wcso } + 29 { set _ wcsp } + 30 { set _ wcsq } + 31 { set _ wcsr } + 32 { set _ wcss } + 33 { set _ wcst } + 34 { set _ wcsu } + 35 { set _ wcsv } + 36 { set _ wcsw } + 37 { set _ wcsx } + 38 { set _ wcsy } + 39 { set _ wcsz } + 40 { set _ fk4 } + 41 { set _ fk4 } + 42 { set _ fk5 } + 43 { set _ fk5 } + 44 { set _ icrs } + 45 { set _ galactic } + 46 { set _ ecliptic } + 47 { set _ degrees } + 48 { set _ sexagesimal } + 49 { set _ degrees } + 50 { set _ arcmin } + 51 { set _ arcsec } + 52 { set _ $1 } + 53 { set _ $1 } + 55 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } + 57 { FPCmdRetrieve $1 } + 58 { ProcessCmdCVAR0 ARCancel } + 59 { ProcessCmdCVAR0 FPOff } + 60 { ProcessCmdCVAR0 FPDestroy } + 61 { TBLCmdSave $2 VOTWrite } + 62 { TBLCmdSave $3 $2 } + 64 { ProcessCmdCVAR0 TBLCrosshair } + 65 { FPCmdRef $2 } + 67 { ProcessCmdCVAR show 0 FPGenerate } + 68 { ProcessCmdCVAR name $2 } + 69 { ProcessCmdCVAR panto $2 } + 70 { ProcessCmdCVAR0 TBLCmdPrint } + 71 { TBLCmdSize $2 $3 } + 72 { ProcessCmdCVAR0 FPGenerateRegions } + 73 { global cvarname; FPApply $cvarname 1 } + 74 { ProcessCmdCVAR show $2 FPGenerate } + 75 { TBLCmdSize [expr ($2+$3)/2.] $4 } + 76 { TBLCmdSkyframe $2 } + 77 { ProcessCmdCVAR skyformat $2 } + 79 { TBLCmdSystem $2 } + 80 { ProcessCVAR0 TBLUpdate } + 81 { TBLCmdCoord $1 $2 fk5 } + 82 { TBLCmdCoord $1 $2 $3 } + 83 { TBLCmdCoord $1 $2 fk5 } + 84 { TBLCmdCoord $1 $2 $3 } + 85 { TBLCmdFilterLoad $2 } + 86 { ProcessCmdCVAR filter $1 FPTable } + 87 { set _ cxc } + 88 { set _ hla } + 89 { ProcessCmdCVAR sort $1; ProcessCmdCVAR sort,dir "-increasing" FPTable } + 90 { ProcessCmdCVAR sort $1; ProcessCmdCVAR sort,dir $2 FPTable } + 91 { set _ "-increasing" } + 92 { set _ "-decreasing" } } unsetupvalues $dc # pop off tokens from the stack if normal rule diff -Nru saods9-8.2+repack/ds9/parsers/graphlex.fcl saods9-8.3+repack/ds9/parsers/graphlex.fcl --- saods9-8.2+repack/ds9/parsers/graphlex.fcl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/graphlex.fcl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,26 @@ +#tab graphparser.tab.tcl + +%{ +%} + +#include defs.fin + +%% + +average {return $AVERAGE_} +close {return $CLOSE_} +grid {return $GRID_} +log {return $LOG_} +method {return $METHOD_} +open {return $OPEN_} +size {return $SIZE_} +sum {return $SUM_} +thickness {return $THICKNESS_} + +#include yesno.fin +#include fonts.fin +#include int.fin +#include string.fin +#include ws.fin + +%% diff -Nru saods9-8.2+repack/ds9/parsers/graphlex.tcl saods9-8.3+repack/ds9/parsers/graphlex.tcl --- saods9-8.2+repack/ds9/parsers/graphlex.tcl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/graphlex.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,594 @@ +package provide DS9 1.0 + +###### +# Begin autogenerated fickle (version 2.1) routines. +# Although fickle itself is protected by the GNU Public License (GPL) +# all user-supplied functions are protected by their respective +# author's license. See http://mini.net/tcl/fickle for other details. +###### + +namespace eval graph { + variable yylval + + variable yytext {} + variable yyleng 0 + variable yyin stdin + variable yyout stdout + variable yy_current_buffer {} + + variable yylineno 1 + + variable index_ 0 + variable done_ 0 +} + +# ECHO copies yytext to the scanner's output if no arguments are +# given. The scanner writes its ECHO output to the yyout global +# (default, stdout), which may be redefined by the user simply by +# assigning it to some other channel. +# -- from the flex(1) man page +proc graph::ECHO {{s ""}} { + variable yytext + variable yyout + + if {$s == ""} { + puts -nonewline $yyout $yytext + } else { + puts -nonewline $yyout $s + } +} + +# YY_FLUSH_BUFFER flushes the scanner's internal buffer so that the +# next time the scanner attempts to match a token, it will first +# refill the buffer using YY_INPUT. +# -- from the flex(1) man page +proc graph::YY_FLUSH_BUFFER {} { + variable yy_current_buffer + variable index_ + variable done_ + + set yy_current_buffer "" + set index_ 0 + set done_ 0 +} + +# yyrestart(new_file) may be called to point yyin at the new input +# file. The switch-over to the new file is immediate (any previously +# buffered-up input is lost). Note that calling yyrestart with yyin +# as an argument thus throws away the current input buffer and +# continues scanning the same input file. +# -- from the flex(1) man page +proc graph::yyrestart {new_file} { + variable yyin + + set yyin $new_file + YY_FLUSH_BUFFER +} + +# The nature of how it gets its input can be controlled by defining +# the YY_INPUT macro. YY_INPUT's calling sequence is +# "YY_INPUT(buf,result,max_size)". Its action is to place up to +# max_size characters in the character array buf and return in the +# integer variable result either the number of characters read or the +# constant YY_NULL (0 on Unix systems) to indicate EOF. The default +# YY_INPUT reads from the global file-pointer "yyin". +# -- from the flex(1) man page +proc graph::YY_INPUT {buf result max_size} { + variable yyin + + upvar $result ret_val + upvar $buf new_data + if {$yyin != ""} { + set new_data [read $yyin $max_size] + set ret_val [string length $new_data] + } else { + set new_data "" + set ret_val 0 + } +} + +# yy_scan_string sets up input buffers for scanning in-memory +# strings instead of files. Note that switching input sources does +# not change the start condition. +# -- from the flex(1) man page +proc graph::yy_scan_string {str} { + variable yy_current_buffer + variable yyin + + append yy_current_buffer $str + set yyin "" +} + +# unput(c) puts the character c back onto the input stream. It will +# be the next character scanned. +# -- from the flex(1) man page +proc graph::unput {c} { + variable yy_current_buffer + variable index_ + + set s [string range $yy_current_buffer 0 [expr {$index_ - 1}]] + append s $c + set yy_current_buffer [append s [string range $yy_current_buffer $index_ end]] +} + +# Returns all but the first n characters of the current token back to +# the input stream, where they will be rescanned when the scanner +# looks for the next match. yytext and yyleng are adjusted +# appropriately. +# -- from the flex(1) man page +proc graph::yyless {n} { + variable yy_current_buffer + variable index_ + variable yytext + variable yyleng + + set s [string range $yy_current_buffer 0 [expr {$index_ - 1}]] + append s [string range $yytext $n end] + set yy_current_buffer [append s [string range $yy_current_buffer $index_ end]] + set yytext [string range $yytext 0 [expr {$n - 1}]] + set yyleng [string length $yytext] +} + +# input() reads the next character from the input stream. +# -- from the flex(1) man page +proc graph::input {} { + variable yy_current_buffer + variable index_ + variable done_ + + if {[string length $yy_current_buffer] - $index_ < 1024} { + set new_buffer "" + set new_buffer_size 0 + if {$done_ == 0} { + YY_INPUT new_buffer new_buffer_size 1024 + append yy_current_buffer $new_buffer + if {$new_buffer_size == 0} { + set done_ 1 + } + } + if $done_ { + if {[string length $yy_current_buffer] - $index_ == 0} { + return {} + } + } + } + set c [string index $yy_current_buffer $index_] + incr index_ + return $c +} + +###### +# autogenerated yylex function created by fickle +###### + +# Whenever yylex() is called, it scans tokens from the global input +# file yyin (which defaults to stdin). It continues until it either +# reaches an end-of-file (at which point it returns the value 0) or +# one of its actions executes a return statement. +# -- from the flex(1) man page +proc graph::yylex {} { + variable yylval + + variable yytext + variable yylineno + variable yyleng + variable yy_current_buffer + variable yy_flex_debug + + variable index_ + variable done_ + variable state_table_ + +set YES_ 257 +set NO_ 258 +set ON_ 259 +set OFF_ 260 +set TRUE_ 261 +set FALSE_ 262 +set FONT_ 263 +set FONTSIZE_ 264 +set FONTSLANT_ 265 +set FONTSTYLE_ 266 +set FONTWEIGHT_ 267 +set TIMES_ 268 +set HELVETICA_ 269 +set COURIER_ 270 +set NORMAL_ 271 +set BOLD_ 272 +set ROMAN_ 273 +set ITALIC_ 274 +set INT_ 275 +set STRING_ 276 +set AVERAGE_ 277 +set CLOSE_ 278 +set GRID_ 279 +set LOG_ 280 +set METHOD_ 281 +set OPEN_ 282 +set SIZE_ 283 +set SUM_ 284 +set THICKNESS_ 285 + + while {1} { + if {[string length $yy_current_buffer] - $index_ < 1024} { + if {$done_ == 0} { + set buffer_size 0 + set new_buffer "" + YY_INPUT new_buffer buffer_size 1024 + append yy_current_buffer $new_buffer + if {$buffer_size == 0 && \ + [string length $yy_current_buffer] - $index_ == 0} { + set done_ 1 + } + } + if $done_ { + if {[string length $yy_current_buffer] - $index_ == 0} { + break + } + } + } + set yyleng 0 + set matched_rule -1 + # rule 0: average + if {[regexp -start $index_ -indices -line -nocase -- {\A(average)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 0 + } + # rule 1: close + if {[regexp -start $index_ -indices -line -nocase -- {\A(close)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 1 + } + # rule 2: grid + if {[regexp -start $index_ -indices -line -nocase -- {\A(grid)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 2 + } + # rule 3: log + if {[regexp -start $index_ -indices -line -nocase -- {\A(log)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 3 + } + # rule 4: method + if {[regexp -start $index_ -indices -line -nocase -- {\A(method)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 4 + } + # rule 5: open + if {[regexp -start $index_ -indices -line -nocase -- {\A(open)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 5 + } + # rule 6: size + if {[regexp -start $index_ -indices -line -nocase -- {\A(size)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 6 + } + # rule 7: sum + if {[regexp -start $index_ -indices -line -nocase -- {\A(sum)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 7 + } + # rule 8: thickness + if {[regexp -start $index_ -indices -line -nocase -- {\A(thickness)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 8 + } + # rule 9: yes + if {[regexp -start $index_ -indices -line -nocase -- {\A(yes)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 9 + } + # rule 10: no + if {[regexp -start $index_ -indices -line -nocase -- {\A(no)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 10 + } + # rule 11: on + if {[regexp -start $index_ -indices -line -nocase -- {\A(on)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 11 + } + # rule 12: off + if {[regexp -start $index_ -indices -line -nocase -- {\A(off)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 12 + } + # rule 13: true + if {[regexp -start $index_ -indices -line -nocase -- {\A(true)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 13 + } + # rule 14: false + if {[regexp -start $index_ -indices -line -nocase -- {\A(false)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 14 + } + # rule 15: font + if {[regexp -start $index_ -indices -line -nocase -- {\A(font)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 15 + } + # rule 16: fontsize + if {[regexp -start $index_ -indices -line -nocase -- {\A(fontsize)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 16 + } + # rule 17: fontslant + if {[regexp -start $index_ -indices -line -nocase -- {\A(fontslant)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 17 + } + # rule 18: fontstyle + if {[regexp -start $index_ -indices -line -nocase -- {\A(fontstyle)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 18 + } + # rule 19: fontweight + if {[regexp -start $index_ -indices -line -nocase -- {\A(fontweight)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 19 + } + # rule 20: times + if {[regexp -start $index_ -indices -line -nocase -- {\A(times)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 20 + } + # rule 21: helvetica + if {[regexp -start $index_ -indices -line -nocase -- {\A(helvetica)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 21 + } + # rule 22: courier + if {[regexp -start $index_ -indices -line -nocase -- {\A(courier)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 22 + } + # rule 23: normal + if {[regexp -start $index_ -indices -line -nocase -- {\A(normal)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 23 + } + # rule 24: bold + if {[regexp -start $index_ -indices -line -nocase -- {\A(bold)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 24 + } + # rule 25: roman + if {[regexp -start $index_ -indices -line -nocase -- {\A(roman)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 25 + } + # rule 26: italic + if {[regexp -start $index_ -indices -line -nocase -- {\A(italic)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 26 + } + # rule 27: [+-]?{D}+ + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 27 + } + # rule 28: \"[^\"]*\" + if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 28 + } + # rule 29: \'[^\']*\' + if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 29 + } + # rule 30: \{[^\}]*\} + if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 30 + } + # rule 31: \S+\S+ + if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 31 + } + # rule 32: \s + if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 32 + } + # rule 33: . + if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 33 + } + if {$matched_rule == -1} { + set yytext [string index $yy_current_buffer $index_] + set yyleng 1 + } + incr index_ $yyleng + # workaround for Tcl's circumflex behavior + if {[string index $yytext end] == "\n"} { + set yy_current_buffer [string range $yy_current_buffer $index_ end] + set index_ 0 + } + set numlines [expr {[llength [split $yytext "\n"]] - 1}] + switch -- $matched_rule { + 0 { +return $AVERAGE_ + } + 1 { +return $CLOSE_ + } + 2 { +return $GRID_ + } + 3 { +return $LOG_ + } + 4 { +return $METHOD_ + } + 5 { +return $OPEN_ + } + 6 { +return $SIZE_ + } + 7 { +return $SUM_ + } + 8 { +return $THICKNESS_ + } + 9 { +return $YES_ + } + 10 { +return $NO_ + } + 11 { +return $ON_ + } + 12 { +return $OFF_ + } + 13 { +return $TRUE_ + } + 14 { +return $FALSE_ + } + 15 { +return $FONT_ + } + 16 { +return $FONTSIZE_ + } + 17 { +return $FONTSLANT_ + } + 18 { +return $FONTSTYLE_ + } + 19 { +return $FONTWEIGHT_ + } + 20 { +return $TIMES_ + } + 21 { +return $HELVETICA_ + } + 22 { +return $COURIER_ + } + 23 { +return $NORMAL_ + } + 24 { +return $BOLD_ + } + 25 { +return $ROMAN_ + } + 26 { +return $ITALIC_ + } + 27 { +set yylval $yytext; return $INT_ + } + 28 { +set yylval [string range $yytext 1 end-1]; return $STRING_ + } + 29 { +set yylval [string range $yytext 1 end-1]; return $STRING_ + } + 30 { +set yylval [string range $yytext 1 end-1]; return $STRING_ + } + 31 { +set yylval $yytext; return $STRING_ + } + 32 { +# ignore whitespace + } + 33 { +set yylval $yytext; return $yylval + } + default + { puts stderr "unmatched token: $yytext"; exit -1 } + } + incr yylineno $numlines + } + return 0 +} +###### +# end autogenerated fickle functions +###### + diff -Nru saods9-8.2+repack/ds9/parsers/graphparser.tab.tcl saods9-8.3+repack/ds9/parsers/graphparser.tab.tcl --- saods9-8.2+repack/ds9/parsers/graphparser.tab.tcl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/graphparser.tab.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,29 @@ +set YES_ 257 +set NO_ 258 +set ON_ 259 +set OFF_ 260 +set TRUE_ 261 +set FALSE_ 262 +set FONT_ 263 +set FONTSIZE_ 264 +set FONTSLANT_ 265 +set FONTSTYLE_ 266 +set FONTWEIGHT_ 267 +set TIMES_ 268 +set HELVETICA_ 269 +set COURIER_ 270 +set NORMAL_ 271 +set BOLD_ 272 +set ROMAN_ 273 +set ITALIC_ 274 +set INT_ 275 +set STRING_ 276 +set AVERAGE_ 277 +set CLOSE_ 278 +set GRID_ 279 +set LOG_ 280 +set METHOD_ 281 +set OPEN_ 282 +set SIZE_ 283 +set SUM_ 284 +set THICKNESS_ 285 diff -Nru saods9-8.2+repack/ds9/parsers/graphparser.tac saods9-8.3+repack/ds9/parsers/graphparser.tac --- saods9-8.2+repack/ds9/parsers/graphparser.tac 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/graphparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,56 @@ +%{ +%} +#include def.tin + +#include yesno.tin +#include fonts.tin +#include int.tin +#include string.tin + +%start command + +%token AVERAGE_ +%token CLOSE_ +%token GRID_ +%token LOG_ +%token METHOD_ +%token OPEN_ +%token SIZE_ +%token SUM_ +%token THICKNESS_ + +%% + +#include yesno.trl +#include fonts.trl + +command : graph + | graph {global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT}} STRING_ + ; + +graph : OPEN_ {GraphDialog} + | CLOSE_ {GraphDestroyDialog} + | GRID_ yesno {ProcessCmdSet graph grid $2 UpdateGraphsGrid} + | LOG_ yesno {ProcessCmdSet graph log $2 UpdateGraphsGrid} + | METHOD_ method {ProcessCmdSet graph method $2 UpdateGraphsMethod} + | FONT_ font {ProcessCmdSet graph font $2 UpdateGraphsFont} + | FONTSIZE_ INT_ {ProcessCmdSet graph font,size $2 UpdateGraphsFont} + | FONTWEIGHT_ fontWeight {ProcessCmdSet graph font,weight $2 UpdateGraphsFont} + | FONTSLANT_ fontSlant {ProcessCmdSet graph font,slant $2 UpdateGraphsFont} + | SIZE_ INT_ {ProcessCmdSet graph size $2 LayoutFrames} + | THICKNESS_ INT_ {ProcessCmdSet graph thick $2 LayoutFrames} + ; + +method : AVERAGE_ {set _ average} + | SUM_ {set _ sum} + ; + +%% + +proc graph::yyerror {msg} { + variable yycnt + variable yy_current_buffer + variable index_ + + ParserError $msg $yycnt $yy_current_buffer $index_ +} diff -Nru saods9-8.2+repack/ds9/parsers/graphparser.tcl saods9-8.3+repack/ds9/parsers/graphparser.tcl --- saods9-8.2+repack/ds9/parsers/graphparser.tcl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/graphparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,795 @@ +package provide DS9 1.0 + +###### +# Begin autogenerated taccle (version 1.3) routines. +# Although taccle itself is protected by the GNU Public License (GPL) +# all user-supplied functions are protected by their respective +# author's license. See http://mini.net/tcl/taccle for other details. +###### + +namespace eval graph { + variable yylval {} + variable table + variable rules + variable token {} + variable yycnt 0 + variable yyerr 0 + variable save_state 0 + + namespace export yylex +} + +proc graph::YYABORT {} { + return -code return 1 +} + +proc graph::YYACCEPT {} { + return -code return 0 +} + +proc graph::YYERROR {} { + variable yyerr + set yyerr 1 +} + +proc graph::yyclearin {} { + variable token + variable yycnt + set token {} + incr yycnt -1 +} + +proc graph::yyerror {s} { + puts stderr $s +} + +proc graph::setupvalues {stack pointer numsyms} { + upvar 1 1 y + set y {} + for {set i 1} {$i <= $numsyms} {incr i} { + upvar 1 $i y + set y [lindex $stack $pointer] + incr pointer + } +} + +proc graph::unsetupvalues {numsyms} { + for {set i 1} {$i <= $numsyms} {incr i} { + upvar 1 $i y + unset y + } +} + +array set graph::table { + 5:276,target 22 + 6:259,target 27 + 6:260,target 28 + 27:0 reduce + 38:276 shift + 4:272,target 23 + 37:276,target 31 + 6:257 shift + 6:258 shift + 6:259 shift + 6:260 shift + 6:261 shift + 6:262 shift + 6:0,target 1 + 26:276,target 5 + 7:262,target 30 + 24:0 reduce + 6:257,target 25 + 17:276 reduce + 15:276,target 9 + 33:0,target 32 + 25:0,target 2 + 17:0,target 26 + 6:276 reduce + 26:276 reduce + 6:276,target 1 + 4:288,target 24 + 7:259,target 27 + 7:260,target 28 + 10:275,target 36 + 21:0 reduce + 38:276,target 39 + 6:286 goto + 35:276 reduce + 27:276,target 3 + 7:257,target 25 + 17:0 reduce + 16:276,target 10 + 14:276 reduce + 3:273 shift + 3:274 shift + 7:276,target 1 + 11:275,target 37 + 23:276 reduce + 37:0,target 31 + 14:0 reduce + 29:0,target 4 + 30:0,target 7 + 22:0,target 11 + 35:0 reduce + 14:0,target 8 + 2:275,target 18 + 28:276,target 6 + 32:276 reduce + 3:289 goto + 9:0 reduce + 17:276,target 26 + 0:263 shift + 0:264 shift + 0:265 shift + 32:0 reduce + 0:267 shift + 11:275 shift + 0:285,target 11 + 1:268,target 14 + 6:0 reduce + 0:264,target 2 + 0:278 shift + 19:276 reduce + 20:276 reduce + 0:279 shift + 0:280 shift + 7:0,target 1 + 28:0 reduce + 0:281 shift + 0:282 shift + 1:287,target 17 + 0:283 shift + 29:276,target 4 + 30:276,target 7 + 0:285 shift + 0:283,target 10 + 8:277 shift + 6:286,target 31 + 28:276 reduce + 34:0,target 33 + 18:276,target 27 + 26:0,target 5 + 0:291 goto + 18:0,target 27 + 0:293 goto + 8:284 shift + 25:0 reduce + 37:276 reduce + 3:273,target 19 + 9:276,target 21 + 0:281,target 8 + 8:294 goto + 22:0 reduce + 16:276 reduce + 31:276,target 23 + 7:286,target 32 + 0:278,target 5 + 5:276 reduce + 19:276,target 13 + 20:276,target 14 + 25:276 reduce + 3:289,target 21 + 18:0 reduce + 6:261,target 29 + 39:0 reduce + 13:292,target 38 + 34:276 reduce + 31:0,target 23 + 23:0,target 12 + 15:0,target 9 + 15:0 reduce + 32:276,target 24 + 6:258,target 26 + 36:0 reduce + 4:271,target 22 + 13:276 reduce + 21:276,target 29 + 2:275 shift + 7:261,target 29 + 12:0 accept + 22:276 reduce + 33:0 reduce + 0:293,target 13 + 8:284,target 34 + 13:292 goto + 31:276 reduce + 7:0 reduce + 33:276,target 32 + 7:258,target 26 + 35:0,target 25 + 29:0 reduce + 30:0 reduce + 27:0,target 3 + 7:257 shift + 19:0,target 13 + 20:0,target 14 + 7:258 shift + 12:0,target 0 + 22:276,target 11 + 0:291,target 12 + 7:259 shift + 7:260 shift + 10:275 shift + 7:261 shift + 7:262 shift + 18:276 reduce + 26:0 reduce + 7:276 reduce + 27:276 reduce + 34:276,target 33 + 0:267,target 4 + 23:0 reduce + 7:286 goto + 23:276,target 12 + 36:276 reduce + 5:0,target 22 + 8:277,target 33 + 1:270,target 16 + 1:269,target 15 + 39:0,target 20 + 0:265,target 3 + 32:0,target 24 + 24:0,target 28 + 16:0,target 10 + 19:0 reduce + 20:0 reduce + 15:276 reduce + 4:271 shift + 4:272 shift + 35:276,target 25 + 24:276 reduce + 0:263,target 1 + 16:0 reduce + 24:276,target 28 + 37:0 reduce + 8:294,target 35 + 3:274,target 20 + 33:276 reduce + 4:288 goto + 13:276,target 19 + 0:282,target 9 + 9:0,target 21 + 13:0 reduce + 34:0 reduce + 1:268 shift + 1:270 shift + 1:269 shift + 36:276,target 30 + 36:0,target 30 + 0:280,target 7 + 0:279,target 6 + 28:0,target 6 + 21:0,target 29 + 13:0,target 18 + 25:276,target 2 + 21:276 reduce + 6:262,target 30 + 31:0 reduce + 14:276,target 8 + 9:276 reduce + 1:287 goto + 29:276 reduce + 30:276 reduce + 5:0 reduce +} + +array set graph::rules { + 9,l 287 + 11,l 288 + 32,l 294 + 6,l 286 + 28,l 293 + 3,l 286 + 25,l 293 + 0,l 295 + 22,l 293 + 18,l 291 + 15,l 290 + 12,l 288 + 33,l 294 + 7,l 286 + 29,l 293 + 30,l 293 + 4,l 286 + 26,l 293 + 1,l 286 + 23,l 293 + 19,l 292 + 20,l 291 + 16,l 290 + 13,l 289 + 8,l 287 + 10,l 287 + 31,l 293 + 5,l 286 + 27,l 293 + 2,l 286 + 24,l 293 + 21,l 293 + 17,l 290 + 14,l 289 +} + +array set graph::rules { + 12,dc 1 + 26,dc 2 + 3,dc 1 + 18,dc 1 + 33,dc 1 + 9,dc 1 + 11,dc 1 + 25,dc 2 + 2,dc 1 + 17,dc 1 + 32,dc 1 + 8,dc 1 + 10,dc 1 + 24,dc 2 + 1,dc 0 + 16,dc 1 + 31,dc 2 + 7,dc 1 + 23,dc 2 + 0,dc 1 + 15,dc 1 + 29,dc 2 + 30,dc 2 + 6,dc 1 + 22,dc 1 + 14,dc 1 + 28,dc 2 + 5,dc 1 + 21,dc 1 + 13,dc 1 + 27,dc 2 + 4,dc 1 + 19,dc 0 + 20,dc 3 +} + +array set graph::rules { + 7,line 78 + 4,line 75 + 1,line 72 + 31,line 113 + 27,line 109 + 24,line 106 + 21,line 103 + 17,line 95 + 14,line 90 + 11,line 85 + 9,line 81 + 6,line 77 + 3,line 74 + 33,line 117 + 29,line 111 + 30,line 112 + 26,line 108 + 23,line 105 + 19,line 99 + 20,line 100 + 16,line 94 + 13,line 89 + 19,e 1 + 10,line 82 + 8,line 80 + 5,line 76 + 2,line 73 + 32,line 116 + 28,line 110 + 25,line 107 + 22,line 104 + 18,line 99 + 15,line 93 + 12,line 86 +} + +array set graph::lr1_table { + 35 {{25 {0 276} 2}} + 14,trans {} + 36 {{30 {0 276} 2}} + 33,trans {} + 37 {{31 {0 276} 2}} + 38 {{20 0 2}} + 39 {{20 0 3}} + 18,trans {} + 1,trans {{268 14} {269 15} {270 16} {287 17}} + 37,trans {} + 23,trans {} + 5,trans {} + 27,trans {} + 9,trans {} + 13,trans {{292 38}} + 32,trans {} + 17,trans {} + 0,trans {{263 1} {264 2} {265 3} {267 4} {278 5} {279 6} {280 7} {281 8} {282 9} {283 10} {285 11} {291 12} {293 13}} + 36,trans {} + 22,trans {} + 4,trans {{271 22} {272 23} {288 24}} + 26,trans {} + 8,trans {{277 33} {284 34} {294 35}} + 12,trans {} + 31,trans {} + 16,trans {} + 35,trans {} + 21,trans {} + 3,trans {{273 19} {274 20} {289 21}} + 39,trans {} + 10 {{30 {0 276} 1}} + 11 {{31 {0 276} 1}} + 25,trans {} + 12 {{0 0 1}} + 7,trans {{257 25} {258 26} {259 27} {260 28} {261 29} {262 30} {286 32}} + 13 {{18 0 1} {20 0 1} {19 276 0}} + 14 {{8 {0 276} 1}} + 11,trans {{275 37}} + 15 {{9 {0 276} 1}} + 30,trans {} + 29,trans {} + 16 {{10 {0 276} 1}} + 0 {{0 0 0} {18 0 0} {20 0 0} {21 {0 276} 0} {22 {0 276} 0} {23 {0 276} 0} {24 {0 276} 0} {25 {0 276} 0} {26 {0 276} 0} {27 {0 276} 0} {28 {0 276} 0} {29 {0 276} 0} {30 {0 276} 0} {31 {0 276} 0}} + 17 {{26 {0 276} 2}} + 1 {{26 {0 276} 1} {8 {0 276} 0} {9 {0 276} 0} {10 {0 276} 0}} + 18 {{27 {0 276} 2}} + 15,trans {} + 2 {{27 {0 276} 1}} + 19 {{13 {0 276} 1}} + 20 {{14 {0 276} 1}} + 34,trans {} + 3 {{29 {0 276} 1} {13 {0 276} 0} {14 {0 276} 0}} + 21 {{29 {0 276} 2}} + 4 {{28 {0 276} 1} {11 {0 276} 0} {12 {0 276} 0}} + 22 {{11 {0 276} 1}} + 5 {{22 {0 276} 1}} + 23 {{12 {0 276} 1}} + 20,trans {} + 19,trans {} + 6 {{23 {0 276} 1} {1 {0 276} 0} {2 {0 276} 0} {3 {0 276} 0} {4 {0 276} 0} {5 {0 276} 0} {6 {0 276} 0} {7 {0 276} 0}} + 2,trans {{275 18}} + 24 {{28 {0 276} 2}} + 38,trans {{276 39}} + 7 {{24 {0 276} 1} {1 {0 276} 0} {2 {0 276} 0} {3 {0 276} 0} {4 {0 276} 0} {5 {0 276} 0} {6 {0 276} 0} {7 {0 276} 0}} + 25 {{2 {0 276} 1}} + 8 {{25 {0 276} 1} {32 {0 276} 0} {33 {0 276} 0}} + 26 {{5 {0 276} 1}} + 9 {{21 {0 276} 1}} + 27 {{3 {0 276} 1}} + 24,trans {} + 28 {{6 {0 276} 1}} + 6,trans {{257 25} {258 26} {259 27} {260 28} {261 29} {262 30} {286 31}} + 29 {{4 {0 276} 1}} + 30 {{7 {0 276} 1}} + 31 {{23 {0 276} 2}} + 32 {{24 {0 276} 2}} + 10,trans {{275 36}} + 28,trans {} + 33 {{32 {0 276} 1}} + 34 {{33 {0 276} 1}} +} + +array set graph::token_id_table { + 286,t 1 + 286 yesno + 280,title LOG + 279,title GRID + 264,line 15 + 292,line 99 + 287 font + 270,t 0 + 269,t 0 + 288 fontWeight + 290 fontStyle + 289 fontSlant + 276,line 29 + 265,title FONTSLANT + 291,t 1 + 291 command + 284,title SUM + 292 @PSEUDO1 + 274,t 0 + 261,line 11 + 293 graph + 288,line 84 + 257,t 0 + 294 method + 270,title COURIER + 269,title HELVETICA + 295,t 1 + 295 start' + 288,title {} + 273,line 24 + 278,t 0 + 257,line 7 + 262,t 0 + 285,line 41 + 274,title ITALIC + 293,title {} + 283,t 0 + 270,line 21 + 269,line 20 + 259,title ON + 260,title OFF + 266,t 0 + 278,title CLOSE + 282,line 38 + 287,t 1 + error error + 271,t 0 + 264,title FONTSIZE + 266,line 17 + 294,line 115 + 283,title SIZE + 292,t 1 + 278,line 34 + error,line 70 + 275,t 0 + 268,title TIMES + 287,title {} + 258,t 0 + 263,line 14 + 291,line 98 + error,title {} + 280,t 0 + 279,t 0 + 275,line 27 + 273,title ROMAN + 292,title {} + 263,t 0 + 259,line 9 + 260,line 10 + 287,line 79 + 258,title NO + 284,t 0 + 277,title AVERAGE + 272,line 23 + 267,t 0 + 263,title FONT + 288,t 1 + 284,line 40 + 282,title OPEN + 272,t 0 + 268,line 19 + 267,title FONTWEIGHT + 293,t 1 + 286,title {} + 257 YES_ + 281,line 37 + 276,t 0 + 258 NO_ + 259,t 0 + 259 ON_ + 260 OFF_ + 260,t 0 + 272,title BOLD + 261 TRUE_ + 265,line 16 + 293,line 102 + 291,title {} + 262 FALSE_ + 281,t 0 + 263 FONT_ + 277,line 33 + 257,title YES + 264 FONTSIZE_ + 264,t 0 + 276,title string + 265 FONTSLANT_ + 295,title {} + 262,line 12 + 266 FONTSTYLE_ + 290,line 92 + 289,line 88 + 285,t 0 + 267 FONTWEIGHT_ + 0,t 0 + 0 {$} + 262,title FALSE + 268 TIMES_ + 268,t 0 + 281,title METHOD + 274,line 25 + 270 COURIER_ + 269 HELVETICA_ + error,t 0 + 271 NORMAL_ + 290,t 1 + 289,t 1 + 272 BOLD_ + 258,line 8 + 286,line 71 + 273,t 0 + 273 ROMAN_ + 266,title FONTSTYLE + 285,title THICKNESS + 274 ITALIC_ + 275 INT_ + 271,line 22 + 294,t 1 + 276 STRING_ + 277,t 0 + 277 AVERAGE_ + 271,title NORMAL + 290,title {} + 289,title {} + 283,line 39 + 278 CLOSE_ + 261,t 0 + 280 LOG_ + 279 GRID_ + 281 METHOD_ + 267,line 18 + 295,line 118 + 282,t 0 + 282 OPEN_ + 275,title integer + 294,title {} + 283 SIZE_ + 265,t 0 + 284 SUM_ + 280,line 36 + 279,line 35 + 285 THICKNESS_ + 261,title TRUE +} + +proc graph::yyparse {} { + variable yylval + variable table + variable rules + variable token + variable yycnt + variable lr1_table + variable token_id_table + variable yyerr + variable save_state + + set yycnt 0 + set state_stack {0} + set value_stack {{}} + set token "" + set accepted 0 + set yyerr 0 + set save_state 0 + + while {$accepted == 0} { + set state [lindex $state_stack end] + if {$token == ""} { + set yylval "" + set token [yylex] + set buflval $yylval + if {$token>0} { + incr yycnt + } + } + if {![info exists table($state:$token)] || $yyerr} { + if {!$yyerr} { + set save_state $state + } + # pop off states until error token accepted + while {[llength $state_stack] > 0 && \ + ![info exists table($state:error)]} { + set state_stack [lrange $state_stack 0 end-1] + set value_stack [lrange $value_stack 0 \ + [expr {[llength $state_stack] - 1}]] + set state [lindex $state_stack end] + } + if {[llength $state_stack] == 0} { + + set rr { } + if {[info exists lr1_table($save_state,trans)] && [llength $lr1_table($save_state,trans)] >= 1} { + foreach trans $lr1_table($save_state,trans) { + foreach {tok_id nextstate} $trans { + set ss $token_id_table($tok_id,title) + if {$ss != {}} { + append rr "$ss, " + } + } + } + } + set rr [string trimleft $rr { }] + set rr [string trimright $rr {, }] + yyerror "parse error, expecting: $rr" + + + return 1 + } + lappend state_stack [set state $table($state:error,target)] + lappend value_stack {} + # consume tokens until it finds an acceptable one + while {![info exists table($state:$token)]} { + if {$token == 0} { + yyerror "end of file while recovering from error" + return 1 + } + set yylval {} + set token [yylex] + set buflval $yylval + } + continue + } + switch -- $table($state:$token) { + shift { + lappend state_stack $table($state:$token,target) + lappend value_stack $buflval + set token "" + } + reduce { + set rule $table($state:$token,target) + set ll $rules($rule,l) + if {[info exists rules($rule,e)]} { + set dc $rules($rule,e) + } else { + set dc $rules($rule,dc) + } + set stackpointer [expr {[llength $state_stack]-$dc}] + setupvalues $value_stack $stackpointer $dc + set _ $1 + set yylval [lindex $value_stack end] + switch -- $rule { + 1 { set _ 1 } + 2 { set _ 1 } + 3 { set _ 1 } + 4 { set _ 1 } + 5 { set _ 0 } + 6 { set _ 0 } + 7 { set _ 0 } + 8 { set _ times } + 9 { set _ helvetica } + 10 { set _ courier } + 11 { set _ normal } + 12 { set _ bold } + 13 { set _ roman } + 14 { set _ italic } + 15 { set _ normal } + 16 { set _ bold } + 17 { set _ italic } + 19 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } + 21 { GraphDialog } + 22 { GraphDestroyDialog } + 23 { ProcessCmdSet graph grid $2 UpdateGraphsGrid } + 24 { ProcessCmdSet graph log $2 UpdateGraphsGrid } + 25 { ProcessCmdSet graph method $2 UpdateGraphsMethod } + 26 { ProcessCmdSet graph font $2 UpdateGraphsFont } + 27 { ProcessCmdSet graph font,size $2 UpdateGraphsFont } + 28 { ProcessCmdSet graph font,weight $2 UpdateGraphsFont } + 29 { ProcessCmdSet graph font,slant $2 UpdateGraphsFont } + 30 { ProcessCmdSet graph size $2 LayoutFrames } + 31 { ProcessCmdSet graph thick $2 LayoutFrames } + 32 { set _ average } + 33 { set _ sum } + } + unsetupvalues $dc + # pop off tokens from the stack if normal rule + if {![info exists rules($rule,e)]} { + incr stackpointer -1 + set state_stack [lrange $state_stack 0 $stackpointer] + set value_stack [lrange $value_stack 0 $stackpointer] + } + # now do the goto transition + lappend state_stack $table([lindex $state_stack end]:$ll,target) + lappend value_stack $_ + } + accept { + set accepted 1 + } + goto - + default { + puts stderr "Internal parser error: illegal command $table($state:$token)" + return 2 + } + } + } + return 0 +} + +###### +# end autogenerated taccle functions +###### + +proc graph::yyerror {msg} { + variable yycnt + variable yy_current_buffer + variable index_ + + ParserError $msg $yycnt $yy_current_buffer $index_ +} diff -Nru saods9-8.2+repack/ds9/parsers/graphsendlex.fcl saods9-8.3+repack/ds9/parsers/graphsendlex.fcl --- saods9-8.2+repack/ds9/parsers/graphsendlex.fcl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/graphsendlex.fcl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,19 @@ +#tab graphsendparser.tab.tcl + +%{ +%} + +#include defs.fin + +%% + +grid {return $GRID_} +log {return $LOG_} +method {return $METHOD_} +size {return $SIZE_} +thickness {return $THICKNESS_} + +#include font.fin +#include ws.fin + +%% diff -Nru saods9-8.2+repack/ds9/parsers/graphsendlex.tcl saods9-8.3+repack/ds9/parsers/graphsendlex.tcl --- saods9-8.2+repack/ds9/parsers/graphsendlex.tcl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/graphsendlex.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,355 @@ +package provide DS9 1.0 + +###### +# Begin autogenerated fickle (version 2.1) routines. +# Although fickle itself is protected by the GNU Public License (GPL) +# all user-supplied functions are protected by their respective +# author's license. See http://mini.net/tcl/fickle for other details. +###### + +namespace eval graphsend { + variable yylval + + variable yytext {} + variable yyleng 0 + variable yyin stdin + variable yyout stdout + variable yy_current_buffer {} + + variable yylineno 1 + + variable index_ 0 + variable done_ 0 +} + +# ECHO copies yytext to the scanner's output if no arguments are +# given. The scanner writes its ECHO output to the yyout global +# (default, stdout), which may be redefined by the user simply by +# assigning it to some other channel. +# -- from the flex(1) man page +proc graphsend::ECHO {{s ""}} { + variable yytext + variable yyout + + if {$s == ""} { + puts -nonewline $yyout $yytext + } else { + puts -nonewline $yyout $s + } +} + +# YY_FLUSH_BUFFER flushes the scanner's internal buffer so that the +# next time the scanner attempts to match a token, it will first +# refill the buffer using YY_INPUT. +# -- from the flex(1) man page +proc graphsend::YY_FLUSH_BUFFER {} { + variable yy_current_buffer + variable index_ + variable done_ + + set yy_current_buffer "" + set index_ 0 + set done_ 0 +} + +# yyrestart(new_file) may be called to point yyin at the new input +# file. The switch-over to the new file is immediate (any previously +# buffered-up input is lost). Note that calling yyrestart with yyin +# as an argument thus throws away the current input buffer and +# continues scanning the same input file. +# -- from the flex(1) man page +proc graphsend::yyrestart {new_file} { + variable yyin + + set yyin $new_file + YY_FLUSH_BUFFER +} + +# The nature of how it gets its input can be controlled by defining +# the YY_INPUT macro. YY_INPUT's calling sequence is +# "YY_INPUT(buf,result,max_size)". Its action is to place up to +# max_size characters in the character array buf and return in the +# integer variable result either the number of characters read or the +# constant YY_NULL (0 on Unix systems) to indicate EOF. The default +# YY_INPUT reads from the global file-pointer "yyin". +# -- from the flex(1) man page +proc graphsend::YY_INPUT {buf result max_size} { + variable yyin + + upvar $result ret_val + upvar $buf new_data + if {$yyin != ""} { + set new_data [read $yyin $max_size] + set ret_val [string length $new_data] + } else { + set new_data "" + set ret_val 0 + } +} + +# yy_scan_string sets up input buffers for scanning in-memory +# strings instead of files. Note that switching input sources does +# not change the start condition. +# -- from the flex(1) man page +proc graphsend::yy_scan_string {str} { + variable yy_current_buffer + variable yyin + + append yy_current_buffer $str + set yyin "" +} + +# unput(c) puts the character c back onto the input stream. It will +# be the next character scanned. +# -- from the flex(1) man page +proc graphsend::unput {c} { + variable yy_current_buffer + variable index_ + + set s [string range $yy_current_buffer 0 [expr {$index_ - 1}]] + append s $c + set yy_current_buffer [append s [string range $yy_current_buffer $index_ end]] +} + +# Returns all but the first n characters of the current token back to +# the input stream, where they will be rescanned when the scanner +# looks for the next match. yytext and yyleng are adjusted +# appropriately. +# -- from the flex(1) man page +proc graphsend::yyless {n} { + variable yy_current_buffer + variable index_ + variable yytext + variable yyleng + + set s [string range $yy_current_buffer 0 [expr {$index_ - 1}]] + append s [string range $yytext $n end] + set yy_current_buffer [append s [string range $yy_current_buffer $index_ end]] + set yytext [string range $yytext 0 [expr {$n - 1}]] + set yyleng [string length $yytext] +} + +# input() reads the next character from the input stream. +# -- from the flex(1) man page +proc graphsend::input {} { + variable yy_current_buffer + variable index_ + variable done_ + + if {[string length $yy_current_buffer] - $index_ < 1024} { + set new_buffer "" + set new_buffer_size 0 + if {$done_ == 0} { + YY_INPUT new_buffer new_buffer_size 1024 + append yy_current_buffer $new_buffer + if {$new_buffer_size == 0} { + set done_ 1 + } + } + if $done_ { + if {[string length $yy_current_buffer] - $index_ == 0} { + return {} + } + } + } + set c [string index $yy_current_buffer $index_] + incr index_ + return $c +} + +###### +# autogenerated yylex function created by fickle +###### + +# Whenever yylex() is called, it scans tokens from the global input +# file yyin (which defaults to stdin). It continues until it either +# reaches an end-of-file (at which point it returns the value 0) or +# one of its actions executes a return statement. +# -- from the flex(1) man page +proc graphsend::yylex {} { + variable yylval + + variable yytext + variable yylineno + variable yyleng + variable yy_current_buffer + variable yy_flex_debug + + variable index_ + variable done_ + variable state_table_ + +set FONT_ 257 +set FONTSIZE_ 258 +set FONTSLANT_ 259 +set FONTSTYLE_ 260 +set FONTWEIGHT_ 261 +set GRID_ 262 +set LOG_ 263 +set METHOD_ 264 +set SIZE_ 265 +set THICKNESS_ 266 + + while {1} { + if {[string length $yy_current_buffer] - $index_ < 1024} { + if {$done_ == 0} { + set buffer_size 0 + set new_buffer "" + YY_INPUT new_buffer buffer_size 1024 + append yy_current_buffer $new_buffer + if {$buffer_size == 0 && \ + [string length $yy_current_buffer] - $index_ == 0} { + set done_ 1 + } + } + if $done_ { + if {[string length $yy_current_buffer] - $index_ == 0} { + break + } + } + } + set yyleng 0 + set matched_rule -1 + # rule 0: grid + if {[regexp -start $index_ -indices -line -nocase -- {\A(grid)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 0 + } + # rule 1: log + if {[regexp -start $index_ -indices -line -nocase -- {\A(log)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 1 + } + # rule 2: method + if {[regexp -start $index_ -indices -line -nocase -- {\A(method)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 2 + } + # rule 3: size + if {[regexp -start $index_ -indices -line -nocase -- {\A(size)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 3 + } + # rule 4: thickness + if {[regexp -start $index_ -indices -line -nocase -- {\A(thickness)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 4 + } + # rule 5: font + if {[regexp -start $index_ -indices -line -nocase -- {\A(font)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 5 + } + # rule 6: fontsize + if {[regexp -start $index_ -indices -line -nocase -- {\A(fontsize)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 6 + } + # rule 7: fontslant + if {[regexp -start $index_ -indices -line -nocase -- {\A(fontslant)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 7 + } + # rule 8: fontstyle + if {[regexp -start $index_ -indices -line -nocase -- {\A(fontstyle)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 8 + } + # rule 9: fontweight + if {[regexp -start $index_ -indices -line -nocase -- {\A(fontweight)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 9 + } + # rule 10: \s + if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 10 + } + # rule 11: . + if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 11 + } + if {$matched_rule == -1} { + set yytext [string index $yy_current_buffer $index_] + set yyleng 1 + } + incr index_ $yyleng + # workaround for Tcl's circumflex behavior + if {[string index $yytext end] == "\n"} { + set yy_current_buffer [string range $yy_current_buffer $index_ end] + set index_ 0 + } + set numlines [expr {[llength [split $yytext "\n"]] - 1}] + switch -- $matched_rule { + 0 { +return $GRID_ + } + 1 { +return $LOG_ + } + 2 { +return $METHOD_ + } + 3 { +return $SIZE_ + } + 4 { +return $THICKNESS_ + } + 5 { +return $FONT_ + } + 6 { +return $FONTSIZE_ + } + 7 { +return $FONTSLANT_ + } + 8 { +return $FONTSTYLE_ + } + 9 { +return $FONTWEIGHT_ + } + 10 { +# ignore whitespace + } + 11 { +set yylval $yytext; return $yylval + } + default + { puts stderr "unmatched token: $yytext"; exit -1 } + } + incr yylineno $numlines + } + return 0 +} +###### +# end autogenerated fickle functions +###### + diff -Nru saods9-8.2+repack/ds9/parsers/graphsendparser.tab.tcl saods9-8.3+repack/ds9/parsers/graphsendparser.tab.tcl --- saods9-8.2+repack/ds9/parsers/graphsendparser.tab.tcl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/graphsendparser.tab.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,10 @@ +set FONT_ 257 +set FONTSIZE_ 258 +set FONTSLANT_ 259 +set FONTSTYLE_ 260 +set FONTWEIGHT_ 261 +set GRID_ 262 +set LOG_ 263 +set METHOD_ 264 +set SIZE_ 265 +set THICKNESS_ 266 diff -Nru saods9-8.2+repack/ds9/parsers/graphsendparser.tac saods9-8.3+repack/ds9/parsers/graphsendparser.tac --- saods9-8.2+repack/ds9/parsers/graphsendparser.tac 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/graphsendparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,36 @@ +%{ +%} +#include def.tin + +#include font.tin + +%start graphsend + +%token GRID_ +%token LOG_ +%token METHOD_ +%token SIZE_ +%token THICKNESS_ + +%% + +graphsend : GRID_ {ProcessSendCmdYesNo graph grid} + | FONT_ {ProcessSendCmdGet graph font} + | FONTSIZE_ {ProcessSendCmdGet graph font,size} + | FONTWEIGHT_ {ProcessSendCmdGet graph font,weight} + | FONTSLANT_ {ProcessSendCmdGet graph font,slant} + | LOG_ {ProcessSendCmdYesNo graph log} + | METHOD_ {ProcessSendCmdGet graph method} + | SIZE_ {ProcessSendCmdGet graph size} + | THICKNESS_ {ProcessSendCmdGet graph thick} + ; + +%% + +proc graphsend::yyerror {msg} { + variable yycnt + variable yy_current_buffer + variable index_ + + ParserError $msg $yycnt $yy_current_buffer $index_ +} diff -Nru saods9-8.2+repack/ds9/parsers/graphsendparser.tcl saods9-8.3+repack/ds9/parsers/graphsendparser.tcl --- saods9-8.2+repack/ds9/parsers/graphsendparser.tcl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/graphsendparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,364 @@ +package provide DS9 1.0 + +###### +# Begin autogenerated taccle (version 1.3) routines. +# Although taccle itself is protected by the GNU Public License (GPL) +# all user-supplied functions are protected by their respective +# author's license. See http://mini.net/tcl/taccle for other details. +###### + +namespace eval graphsend { + variable yylval {} + variable table + variable rules + variable token {} + variable yycnt 0 + variable yyerr 0 + variable save_state 0 + + namespace export yylex +} + +proc graphsend::YYABORT {} { + return -code return 1 +} + +proc graphsend::YYACCEPT {} { + return -code return 0 +} + +proc graphsend::YYERROR {} { + variable yyerr + set yyerr 1 +} + +proc graphsend::yyclearin {} { + variable token + variable yycnt + set token {} + incr yycnt -1 +} + +proc graphsend::yyerror {s} { + puts stderr $s +} + +proc graphsend::setupvalues {stack pointer numsyms} { + upvar 1 1 y + set y {} + for {set i 1} {$i <= $numsyms} {incr i} { + upvar 1 $i y + set y [lindex $stack $pointer] + incr pointer + } +} + +proc graphsend::unsetupvalues {numsyms} { + for {set i 1} {$i <= $numsyms} {incr i} { + upvar 1 $i y + unset y + } +} + +array set graphsend::table { + 6:0 reduce + 3:0,target 5 + 0:257 shift + 7:0 reduce + 0:264,target 7 + 0:258 shift + 8:0 reduce + 5:0,target 1 + 0:259 shift + 10:0 accept + 9:0 reduce + 0:266,target 9 + 0:261 shift + 7:0,target 7 + 0:262 shift + 0:258,target 2 + 0:263 shift + 10:0,target 0 + 9:0,target 9 + 0:264 shift + 0:261,target 4 + 2:0,target 3 + 0:265 shift + 0:266 shift + 0:263,target 6 + 4:0,target 4 + 0:267 goto + 0:265,target 8 + 6:0,target 6 + 1:0 reduce + 0:257,target 1 + 2:0 reduce + 0:267,target 10 + 8:0,target 8 + 3:0 reduce + 0:259,target 3 + 4:0 reduce + 1:0,target 2 + 5:0 reduce + 0:262,target 5 +} + +array set graphsend::rules { + 9,l 267 + 2,l 267 + 6,l 267 + 3,l 267 + 7,l 267 + 0,l 268 + 4,l 267 + 8,l 267 + 1,l 267 + 5,l 267 +} + +array set graphsend::rules { + 5,dc 1 + 0,dc 1 + 8,dc 1 + 3,dc 1 + 6,dc 1 + 1,dc 1 + 9,dc 1 + 4,dc 1 + 7,dc 1 + 2,dc 1 +} + +array set graphsend::rules { + 7,line 30 + 4,line 27 + 1,line 24 + 9,line 32 + 6,line 29 + 3,line 26 + 8,line 31 + 5,line 28 + 2,line 25 +} + +array set graphsend::lr1_table { + 0 {{0 0 0} {1 0 0} {2 0 0} {3 0 0} {4 0 0} {5 0 0} {6 0 0} {7 0 0} {8 0 0} {9 0 0}} + 1 {{2 0 1}} + 2 {{3 0 1}} + 3 {{5 0 1}} + 4 {{4 0 1}} + 0,trans {{257 1} {258 2} {259 3} {261 4} {262 5} {263 6} {264 7} {265 8} {266 9} {267 10}} + 1,trans {} + 5 {{1 0 1}} + 2,trans {} + 6 {{6 0 1}} + 3,trans {} + 7 {{7 0 1}} + 4,trans {} + 8 {{8 0 1}} + 5,trans {} + 9 {{9 0 1}} + 10 {{0 0 1}} + 6,trans {} + 7,trans {} + 8,trans {} + 10,trans {} + 9,trans {} +} + +array set graphsend::token_id_table { + 264,line 17 + 265,title SIZE + 261,line 11 + 257,t 0 + 257,line 7 + 262,t 0 + 259,title FONTSLANT + 260,title FONTSTYLE + 266,t 0 + 264,title METHOD + 266,line 19 + error error + 268,title {} + error,line 22 + 258,t 0 + 263,line 16 + error,title {} + 263,t 0 + 259,line 9 + 260,line 10 + 258,title FONTSIZE + 267,t 1 + 263,title LOG + 268,line 33 + 267,title {} + 257 FONT_ + 258 FONTSIZE_ + 259,t 0 + 259 FONTSLANT_ + 260 FONTSTYLE_ + 260,t 0 + 261 FONTWEIGHT_ + 265,line 18 + 262 GRID_ + 263 LOG_ + 257,title FONT + 264 METHOD_ + 264,t 0 + 265 SIZE_ + 262,line 15 + 266 THICKNESS_ + 267 graphsend + 268,t 1 + 268 start' + 262,title GRID + 0 {$} + 0,t 0 + error,t 0 + 258,line 8 + 266,title THICKNESS + 261,t 0 + 267,line 23 + 265,t 0 + 261,title FONTWEIGHT +} + +proc graphsend::yyparse {} { + variable yylval + variable table + variable rules + variable token + variable yycnt + variable lr1_table + variable token_id_table + variable yyerr + variable save_state + + set yycnt 0 + set state_stack {0} + set value_stack {{}} + set token "" + set accepted 0 + set yyerr 0 + set save_state 0 + + while {$accepted == 0} { + set state [lindex $state_stack end] + if {$token == ""} { + set yylval "" + set token [yylex] + set buflval $yylval + if {$token>0} { + incr yycnt + } + } + if {![info exists table($state:$token)] || $yyerr} { + if {!$yyerr} { + set save_state $state + } + # pop off states until error token accepted + while {[llength $state_stack] > 0 && \ + ![info exists table($state:error)]} { + set state_stack [lrange $state_stack 0 end-1] + set value_stack [lrange $value_stack 0 \ + [expr {[llength $state_stack] - 1}]] + set state [lindex $state_stack end] + } + if {[llength $state_stack] == 0} { + + set rr { } + if {[info exists lr1_table($save_state,trans)] && [llength $lr1_table($save_state,trans)] >= 1} { + foreach trans $lr1_table($save_state,trans) { + foreach {tok_id nextstate} $trans { + set ss $token_id_table($tok_id,title) + if {$ss != {}} { + append rr "$ss, " + } + } + } + } + set rr [string trimleft $rr { }] + set rr [string trimright $rr {, }] + yyerror "parse error, expecting: $rr" + + + return 1 + } + lappend state_stack [set state $table($state:error,target)] + lappend value_stack {} + # consume tokens until it finds an acceptable one + while {![info exists table($state:$token)]} { + if {$token == 0} { + yyerror "end of file while recovering from error" + return 1 + } + set yylval {} + set token [yylex] + set buflval $yylval + } + continue + } + switch -- $table($state:$token) { + shift { + lappend state_stack $table($state:$token,target) + lappend value_stack $buflval + set token "" + } + reduce { + set rule $table($state:$token,target) + set ll $rules($rule,l) + if {[info exists rules($rule,e)]} { + set dc $rules($rule,e) + } else { + set dc $rules($rule,dc) + } + set stackpointer [expr {[llength $state_stack]-$dc}] + setupvalues $value_stack $stackpointer $dc + set _ $1 + set yylval [lindex $value_stack end] + switch -- $rule { + 1 { ProcessSendCmdYesNo graph grid } + 2 { ProcessSendCmdGet graph font } + 3 { ProcessSendCmdGet graph font,size } + 4 { ProcessSendCmdGet graph font,weight } + 5 { ProcessSendCmdGet graph font,slant } + 6 { ProcessSendCmdYesNo graph log } + 7 { ProcessSendCmdGet graph method } + 8 { ProcessSendCmdGet graph size } + 9 { ProcessSendCmdGet graph thick } + } + unsetupvalues $dc + # pop off tokens from the stack if normal rule + if {![info exists rules($rule,e)]} { + incr stackpointer -1 + set state_stack [lrange $state_stack 0 $stackpointer] + set value_stack [lrange $value_stack 0 $stackpointer] + } + # now do the goto transition + lappend state_stack $table([lindex $state_stack end]:$ll,target) + lappend value_stack $_ + } + accept { + set accepted 1 + } + goto - + default { + puts stderr "Internal parser error: illegal command $table($state:$token)" + return 2 + } + } + } + return 0 +} + +###### +# end autogenerated taccle functions +###### + +proc graphsend::yyerror {msg} { + variable yycnt + variable yy_current_buffer + variable index_ + + ParserError $msg $yycnt $yy_current_buffer $index_ +} diff -Nru saods9-8.2+repack/ds9/parsers/gridparser.tac saods9-8.3+repack/ds9/parsers/gridparser.tac --- saods9-8.2+repack/ds9/parsers/gridparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/gridparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -77,14 +77,6 @@ | grid {global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT}} STRING_ ; -typegrid : ANALYSIS_ {set _ analysis} - | PUBLICATION_ {set _ publication} - ; - -interiortype : INTERIOR_ {set _ interior} - | EXTERIOR_ {set _ exterior} - ; - grid : yesno {ProcessCmdSet grid view $1 GridUpdateCurrent} | OPEN_ {GridDialog} | CLOSE_ {GridDestroyDialog} @@ -108,6 +100,14 @@ | SAVE_ STRING_ {FileLast gridfbox $2; GridSave $2} ; +typegrid : ANALYSIS_ {set _ analysis} + | PUBLICATION_ {set _ publication} + ; + +interiortype : INTERIOR_ {set _ interior} + | EXTERIOR_ {set _ exterior} + ; + type : typegrid {ProcessCmdSet grid type $1} | AXES_ interiortype {ProcessCmdSet grid axes,type $2} | NUMERICS_ interiortype {ProcessCmdSet grid numlab,type $2} diff -Nru saods9-8.2+repack/ds9/parsers/gridparser.tcl saods9-8.3+repack/ds9/parsers/gridparser.tcl --- saods9-8.2+repack/ds9/parsers/gridparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/gridparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -101,7 +101,6 @@ 56:273 shift 56:274 shift 242:317 reduce - 24:378,target 149 75:375 goto 9:317 reduce 21:275,target 94 @@ -126,7 +125,7 @@ 25:319,target 151 25:320,target 152 107:0 reduce - 150:0,target 70 + 150:0,target 66 149:0,target 87 142:317 shift 13:265,target 56 @@ -201,15 +200,15 @@ 62:315 shift 62:316 shift 88:0,target 54 - 33:379,target 172 - 78:379,target 218 + 33:380,target 172 + 78:380,target 218 236:260,target 4 236:259,target 3 15:265,target 71 32:315 shift 147:335 shift 92:0 reduce - 26:0,target 67 + 26:0,target 63 56:369 goto 129:258,target 2 246:0,target 166 @@ -225,7 +224,7 @@ 21:283,target 102 222:317,target 119 0:352,target 22 - 16:317,target 68 + 16:317,target 64 71:369,target 211 231:0 reduce 183:317 reduce @@ -260,10 +259,10 @@ 37:317 shift 73:272 shift 13:262 shift - 17:317,target 84 + 17:317,target 80 23:266,target 137 72:370,target 212 - 147:379 goto + 147:380 goto 13:263 shift 38:261,target 5 13:264 shift @@ -278,7 +277,7 @@ 212:0,target 130 36:0 reduce 188:317 reduce - 171:0,target 65 + 171:0,target 85 24:318,target 145 123:0 reduce 140:0,target 1 @@ -298,7 +297,7 @@ 134:269 shift 217:0 reduce 8:0,target 1 - 82:0,target 86 + 82:0,target 82 0:343,target 17 22:257,target 1 12:333,target 49 @@ -325,7 +324,7 @@ 198:0,target 158 124:317,target 48 2:317 reduce - 170:317,target 66 + 170:317,target 86 169:317,target 104 13:325 shift 225:317,target 142 @@ -367,11 +366,11 @@ 48:315 shift 125:317,target 90 48:316 shift - 171:317,target 65 + 171:317,target 85 226:317,target 144 152:0 reduce 54:268 shift - 16:0,target 68 + 16:0,target 64 54:269 shift 54:270 shift 66:317,target 147 @@ -401,7 +400,7 @@ 153:262,target 6 7:323 shift 1:317,target 2 - 133:0,target 78 + 133:0,target 74 170:317 reduce 169:317 reduce 236:258,target 2 @@ -418,7 +417,7 @@ 227:317,target 145 22:317,target 1 57:272,target 196 - 67:317,target 82 + 67:317,target 78 12:383,target 53 60:257 shift 166:0 reduce @@ -444,7 +443,7 @@ 218:0 reduce 30:259 shift 30:260 shift - 44:0,target 76 + 44:0,target 72 30:261 shift 7:347 shift 30:262 shift @@ -463,17 +462,17 @@ 192:0,target 13 136:369,target 226 52:0 reduce - 127:317,target 71 + 127:317,target 67 173:317,target 102 228:317,target 143 - 78:379 goto + 78:380 goto 62:375,target 205 215:317 reduce 161:0,target 108 23:317,target 1 48:375 goto 58:272,target 200 - 68:317,target 85 + 68:317,target 81 151:257 shift 94:0 reduce 151:258 shift @@ -523,7 +522,7 @@ 229:0,target 146 15:366,target 80 153:0 reduce - 146:379,target 233 + 146:380,target 233 31:361,target 163 54:367 goto 61:366,target 204 @@ -541,7 +540,7 @@ 181:317 reduce 12:332,target 48 7:257,target 1 - 24:378 goto + 24:379 goto 151:317 reduce 129:317,target 1 79:258,target 2 @@ -556,8 +555,8 @@ 125:0 reduce 95:317 reduce 81:0 reduce - 68:0,target 85 - 147:379,target 234 + 68:0,target 81 + 147:380,target 234 13:263,target 54 167:0 reduce 65:317 shift @@ -591,7 +590,7 @@ 232:317,target 138 226:317 reduce 154:0,target 1 - 26:317,target 67 + 26:317,target 63 53:0 reduce 151:352 shift 123:0,target 47 @@ -657,13 +656,13 @@ 21:281,target 100 162:317 reduce 62:315,target 180 - 133:317,target 78 + 133:317,target 74 0:328 shift 178:317,target 93 154:261,target 5 0:329 shift 234:317,target 89 - 93:0,target 73 + 93:0,target 69 28:317,target 61 132:317 reduce 74:317,target 214 @@ -729,16 +728,16 @@ 197:317 reduce 0:366 goto 167:317 reduce - 90:0,target 72 + 90:0,target 68 89:0,target 55 96:0 reduce - 9:317,target 69 + 9:317,target 65 12:262,target 6 0:376 goto 31:359,target 161 31:360,target 162 + 0:378 goto 107:317 reduce - 0:380 goto 183:0 reduce 27:0,target 0 82:317 reduce @@ -768,7 +767,7 @@ 151:259,target 3 22:321 shift 243:317 reduce - 144:0,target 81 + 144:0,target 77 22:323 shift 76:375 goto 113:0 reduce @@ -831,7 +830,7 @@ 154:262 shift 153:260,target 4 153:259,target 3 - 9:0,target 69 + 9:0,target 65 13:0 reduce 83:0,target 49 22:357,target 131 @@ -899,12 +898,12 @@ 151:336,target 235 129:262 shift 35:317,target 100 - 81:317,target 80 + 81:317,target 76 21:296,target 115 208:0 reduce 198:0 reduce 124:317 reduce - 17:0,target 84 + 17:0,target 80 23:263,target 134 98:317 reduce 38:257,target 1 @@ -933,11 +932,11 @@ 103:0,target 27 12:261,target 5 31:358,target 160 - 36:317,target 77 + 36:317,target 73 72:272,target 196 230:317 reduce 229:317 reduce - 82:317,target 86 + 82:317,target 82 63:375 goto 171:0 reduce 54:268,target 187 @@ -947,7 +946,7 @@ 3:0,target 3 223:0 reduce 146:335,target 171 - 33:379 goto + 33:380 goto 160:317 reduce 159:317 reduce 0:339,target 15 @@ -1017,7 +1016,7 @@ 115:0 reduce 77:375,target 217 38:317,target 1 - 42:0,target 79 + 42:0,target 75 135:315 shift 84:317,target 50 60:261,target 5 @@ -1053,8 +1052,8 @@ 20:314 shift 153:258,target 2 12:321,target 45 - 127:0,target 71 - 144:317,target 81 + 127:0,target 67 + 144:317,target 77 43:0 reduce 200:317,target 12 190:317,target 154 @@ -1091,7 +1090,7 @@ 100:317,target 24 61:259 shift 61:260 shift - 145:317,target 63 + 145:317,target 83 85:317 reduce 24:339,target 147 61:261 shift @@ -1146,7 +1145,7 @@ 247:317,target 167 30:0 reduce 35:0,target 100 - 42:317,target 79 + 42:317,target 75 87:317,target 53 22:347,target 130 116:0 reduce @@ -1180,7 +1179,7 @@ 76:315,target 180 203:317,target 150 193:317,target 14 - 43:317,target 75 + 43:317,target 71 88:317,target 54 151:257,target 1 94:0,target 18 @@ -1207,19 +1206,19 @@ 103:317,target 27 96:317 reduce 77:315,target 180 - 148:317,target 64 + 148:317,target 84 204:317,target 151 194:317,target 157 180:0,target 58 179:0,target 95 25:391 goto - 44:317,target 76 + 44:317,target 72 140:366,target 230 - 90:317,target 72 + 90:317,target 68 89:317,target 55 16:0 reduce 66:317 reduce - 148:0,target 64 + 148:0,target 84 152:257,target 1 12:257 shift 12:258 shift @@ -1235,7 +1234,7 @@ 12:262 shift 31:359 shift 31:360 shift - 146:379 goto + 146:380 goto 31:361 shift 61:366 goto 72:274 shift @@ -1256,7 +1255,7 @@ 60:0,target 1 187:317 reduce 104:317,target 28 - 150:317,target 70 + 150:317,target 66 149:317,target 87 205:317,target 152 195:317,target 15 @@ -1279,7 +1278,7 @@ 15:260,target 4 61:259,target 3 61:260,target 4 - 145:0,target 63 + 145:0,target 83 5:0 reduce 31:365,target 167 160:0 reduce @@ -1337,7 +1336,7 @@ 12:347 shift 23:261,target 5 226:0 reduce - 93:317,target 73 + 93:317,target 69 23:257 shift 155:257,target 1 23:258 shift @@ -1370,12 +1369,11 @@ 6:317 reduce 141:315,target 180 12:366 goto - 53:0,target 74 + 53:0,target 70 208:317 reduce 198:317 reduce 12:258,target 2 107:317,target 31 - 0:380,target 28 153:317,target 1 22:0,target 1 208:317,target 149 @@ -1391,7 +1389,7 @@ 137:271,target 195 0:337,target 14 12:383 goto - 170:0,target 66 + 170:0,target 86 169:0,target 104 108:317 reduce 83:317 reduce @@ -1418,7 +1416,7 @@ 19:312,target 89 23:321 shift 95:317,target 19 - 81:0,target 80 + 81:0,target 76 21:285,target 104 77:375 goto 213:0 reduce @@ -1473,7 +1471,7 @@ 111:317,target 35 15:0,target 1 61:258,target 2 - 156:317,target 83 + 156:317,target 79 155:258 shift 212:317,target 130 155:260 shift @@ -1494,6 +1492,7 @@ 190:0 reduce 189:0 reduce 69:268,target 187 + 24:379,target 149 163:0,target 110 21:276,target 95 120:317 reduce @@ -1520,12 +1519,12 @@ 213:317,target 128 1:0,target 2 13:266,target 57 - 53:317,target 74 + 53:317,target 70 58:368 goto 98:317,target 22 7:0 reduce 162:0 reduce - 43:0,target 75 + 43:0,target 71 225:317 reduce 21:293,target 112 21:303,target 122 @@ -1562,6 +1561,7 @@ 56:274,target 193 12:257,target 1 15:257 shift + 0:378,target 28 15:258 shift 39:315 shift 40:315 shift @@ -1606,7 +1606,7 @@ 148:0 reduce 13:257,target 1 131:315 shift - 156:0,target 83 + 156:0,target 79 129:260,target 4 129:259,target 3 7:321,target 29 @@ -1635,12 +1635,12 @@ 69:367 goto 237:261,target 5 11:317,target 44 - 67:0,target 82 + 67:0,target 78 15:317 reduce 152:366,target 240 121:0 reduce 15:321 shift - 36:0,target 77 + 36:0,target 73 236:317 reduce 4:317 reduce 60:257,target 1 @@ -1690,7 +1690,7 @@ 151,l 390 36,l 372 123,l 387 - 78,l 380 + 78,l 378 165,l 392 51,l 373 137,l 389 @@ -1698,12 +1698,12 @@ 23,l 372 109,l 385 110,l 385 - 65,l 379 + 65,l 378 152,l 390 37,l 372 124,l 387 - 79,l 380 - 80,l 380 + 79,l 378 + 80,l 378 166,l 392 10,l 367 52,l 373 @@ -1711,11 +1711,11 @@ 94,l 383 24,l 372 111,l 385 - 66,l 379 + 66,l 378 153,l 390 38,l 372 125,l 388 - 81,l 380 + 81,l 378 167,l 392 11,l 368 53,l 373 @@ -1724,13 +1724,13 @@ 95,l 383 25,l 372 112,l 385 - 67,l 380 + 67,l 378 0,l 393 154,l 390 39,l 372 40,l 372 126,l 388 - 82,l 380 + 82,l 378 168,l 392 12,l 368 54,l 373 @@ -1738,12 +1738,12 @@ 96,l 383 26,l 372 113,l 385 - 68,l 380 + 68,l 378 1,l 366 155,l 390 41,l 372 127,l 388 - 83,l 380 + 83,l 379 13,l 369 100,l 384 55,l 373 @@ -1751,13 +1751,13 @@ 97,l 383 27,l 372 114,l 385 - 69,l 380 - 70,l 380 + 69,l 378 + 70,l 378 2,l 366 156,l 390 42,l 372 128,l 388 - 84,l 380 + 84,l 379 14,l 369 101,l 384 56,l 374 @@ -1765,7 +1765,7 @@ 98,l 383 28,l 372 115,l 386 - 71,l 380 + 71,l 378 3,l 366 157,l 390 43,l 372 @@ -1780,7 +1780,7 @@ 30,l 372 29,l 372 116,l 386 - 72,l 380 + 72,l 378 4,l 366 158,l 390 44,l 372 @@ -1792,7 +1792,7 @@ 145,l 389 31,l 372 117,l 386 - 73,l 380 + 73,l 378 5,l 366 160,l 391 159,l 390 @@ -1806,7 +1806,7 @@ 146,l 389 32,l 372 118,l 386 - 74,l 380 + 74,l 378 6,l 366 161,l 391 46,l 372 @@ -1819,7 +1819,7 @@ 33,l 372 119,l 386 120,l 387 - 75,l 380 + 75,l 378 7,l 366 162,l 391 47,l 372 @@ -1833,7 +1833,7 @@ 148,l 390 34,l 372 121,l 387 - 76,l 380 + 76,l 378 8,l 367 163,l 391 48,l 372 @@ -1846,7 +1846,7 @@ 150,l 390 35,l 372 122,l 387 - 77,l 380 + 77,l 378 } array set grid::rules { @@ -1854,7 +1854,7 @@ 12,dc 1 77,dc 2 114,dc 1 - 69,dc 1 + 69,dc 2 70,dc 2 106,dc 2 9,dc 1 @@ -1903,7 +1903,7 @@ 11,dc 1 76,dc 2 113,dc 1 - 68,dc 1 + 68,dc 2 105,dc 2 8,dc 1 61,dc 0 @@ -1925,7 +1925,7 @@ 124,dc 2 14,dc 1 79,dc 2 - 80,dc 2 + 80,dc 1 116,dc 2 72,dc 2 108,dc 1 @@ -1946,13 +1946,13 @@ 91,dc 1 127,dc 2 17,dc 1 - 83,dc 2 + 83,dc 1 119,dc 2 120,dc 1 10,dc 1 75,dc 2 112,dc 1 - 67,dc 1 + 67,dc 2 104,dc 2 7,dc 1 59,dc 1 @@ -1969,7 +1969,7 @@ 94,dc 2 131,dc 2 21,dc 1 - 86,dc 2 + 86,dc 1 123,dc 2 13,dc 1 78,dc 2 @@ -2000,7 +2000,7 @@ 118,dc 2 74,dc 2 111,dc 1 - 66,dc 1 + 66,dc 2 103,dc 2 6,dc 1 168,dc 2 @@ -2018,7 +2018,7 @@ 130,dc 2 20,dc 1 19,dc 1 - 85,dc 2 + 85,dc 1 } array set grid::rules { @@ -2062,14 +2062,14 @@ 90,line 320 102,line 337 86,line 312 - 83,line 309 - 79,line 305 - 80,line 306 - 76,line 302 - 73,line 299 - 69,line 295 - 70,line 296 - 66,line 289 + 83,line 307 + 79,line 301 + 80,line 302 + 76,line 298 + 73,line 295 + 69,line 291 + 70,line 292 + 66,line 288 63,line 284 59,line 277 60,line 280 @@ -2121,12 +2121,12 @@ 88,line 316 101,line 336 85,line 311 - 82,line 308 - 78,line 304 - 75,line 301 - 72,line 298 - 68,line 293 - 65,line 288 + 82,line 304 + 78,line 300 + 75,line 297 + 72,line 294 + 68,line 290 + 65,line 287 62,line 281 58,line 276 55,line 270 @@ -2178,12 +2178,12 @@ 103,line 339 87,line 315 100,line 335 - 84,line 310 - 81,line 307 - 77,line 303 - 74,line 300 - 71,line 297 - 67,line 292 + 84,line 308 + 81,line 303 + 77,line 299 + 74,line 296 + 71,line 293 + 67,line 289 64,line 285 61,line 280 57,line 273 @@ -2197,7 +2197,7 @@ 66,trans {} 35 {{100 {0 317} 1}} 85,trans {} - 36 {{77 {0 317} 2}} + 36 {{73 {0 317} 2}} 37 {{121 {0 317} 1}} 38 {{123 {0 317} 1} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} 39 {{124 {0 317} 1}} @@ -2205,11 +2205,11 @@ 117,trans {} 41 {{120 {0 317} 1}} 136,trans {{273 192} {274 193} {369 226}} - 42 {{79 {0 317} 2}} + 42 {{75 {0 317} 2}} 155,trans {{257 1} {258 2} {259 3} {260 4} {261 5} {262 6} {366 243}} - 43 {{75 {0 317} 2}} + 43 {{71 {0 317} 2}} 174,trans {} - 44 {{76 {0 317} 2}} + 44 {{72 {0 317} 2}} 203,trans {} 193,trans {} 45 {{93 {0 317} 1}} @@ -2226,7 +2226,7 @@ 65,trans {{317 208}} 52 {{92 {0 317} 1}} 84,trans {} - 53 {{74 {0 317} 2}} + 53 {{70 {0 317} 2}} 54 {{154 {0 317} 1} {8 {0 317} 0} {9 {0 317} 0} {10 {0 317} 0}} 55 {{155 {0 317} 1}} 56 {{157 {0 317} 1} {13 {0 317} 0} {14 {0 317} 0}} @@ -2251,9 +2251,9 @@ 66 {{147 {0 317} 1}} 26,trans {} 45,trans {{317 178}} - 67 {{82 {0 317} 2}} + 67 {{78 {0 317} 2}} 64,trans {{317 207}} - 68 {{85 {0 317} 2}} + 68 {{81 {0 317} 2}} 83,trans {} 69 {{126 {0 317} 1} {8 {0 317} 0} {9 {0 317} 0} {10 {0 317} 0}} 70 {{127 {0 317} 1}} @@ -2270,14 +2270,14 @@ 77 {{134 {0 317} 1} {58 {0 317} 0} {59 {0 317} 0}} 201,trans {} 191,trans {} - 78 {{135 {0 317} 1} {65 {0 317} 0} {66 {0 317} 0}} + 78 {{135 {0 317} 1} {85 {0 317} 0} {86 {0 317} 0}} 220,trans {} 219,trans {} 79 {{136 {0 317} 1} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} 80 {{125 {0 317} 1}} 238,trans {} - 81 {{80 {0 317} 2}} - 82 {{86 {0 317} 2}} + 81 {{76 {0 317} 2}} + 82 {{82 {0 317} 2}} 83 {{49 {0 317} 1}} 25,trans {{319 151} {320 152} {334 153} {353 154} {355 155} {391 156}} 44,trans {} @@ -2287,11 +2287,11 @@ 82,trans {} 86 {{52 {0 317} 1}} 87 {{53 {0 317} 1}} - 0 {{0 0 0} {60 0 0} {62 0 0} {67 {0 317} 0} {68 {0 317} 0} {69 {0 317} 0} {70 {0 317} 0} {71 {0 317} 0} {72 {0 317} 0} {73 {0 317} 0} {74 {0 317} 0} {75 {0 317} 0} {76 {0 317} 0} {77 {0 317} 0} {78 {0 317} 0} {79 {0 317} 0} {80 {0 317} 0} {81 {0 317} 0} {82 {0 317} 0} {83 {0 317} 0} {84 {0 317} 0} {85 {0 317} 0} {86 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} + 0 {{0 0 0} {60 0 0} {62 0 0} {63 {0 317} 0} {64 {0 317} 0} {65 {0 317} 0} {66 {0 317} 0} {67 {0 317} 0} {68 {0 317} 0} {69 {0 317} 0} {70 {0 317} 0} {71 {0 317} 0} {72 {0 317} 0} {73 {0 317} 0} {74 {0 317} 0} {75 {0 317} 0} {76 {0 317} 0} {77 {0 317} 0} {78 {0 317} 0} {79 {0 317} 0} {80 {0 317} 0} {81 {0 317} 0} {82 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} 88 {{54 {0 317} 1}} 1 {{2 {0 317} 1}} 89 {{55 {0 317} 1}} - 90 {{72 {0 317} 2}} + 90 {{68 {0 317} 2}} 114,trans {} 2 {{5 {0 317} 1}} 91 {{56 {0 317} 1}} @@ -2300,7 +2300,7 @@ 92 {{57 {0 317} 1}} 152,trans {{257 1} {258 2} {259 3} {260 4} {261 5} {262 6} {366 240}} 4 {{6 {0 317} 1}} - 93 {{73 {0 317} 2}} + 93 {{69 {0 317} 2}} 171,trans {} 5 {{4 {0 317} 1}} 94 {{18 {0 317} 1}} @@ -2310,15 +2310,15 @@ 6 {{7 {0 317} 1}} 95 {{19 {0 317} 1}} 218,trans {} - 7 {{77 {0 317} 1} {100 {0 317} 0} {101 {0 317} 0} {102 {0 317} 0} {103 {0 317} 0} {104 {0 317} 0} {105 {0 317} 0} {106 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} + 7 {{73 {0 317} 1} {100 {0 317} 0} {101 {0 317} 0} {102 {0 317} 0} {103 {0 317} 0} {104 {0 317} 0} {105 {0 317} 0} {106 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} 96 {{20 {0 317} 1}} 237,trans {{257 1} {258 2} {259 3} {260 4} {261 5} {262 6} {366 247}} - 8 {{79 {0 317} 1} {120 {0 317} 0} {121 {0 317} 0} {122 {0 317} 0} {123 {0 317} 0} {124 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} + 8 {{75 {0 317} 1} {120 {0 317} 0} {121 {0 317} 0} {122 {0 317} 0} {123 {0 317} 0} {124 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} 97 {{21 {0 317} 1}} - 9 {{69 {0 317} 1}} + 9 {{65 {0 317} 1}} 98 {{22 {0 317} 1}} 99 {{23 {0 317} 1}} - 24,trans {{318 145} {319 146} {339 147} {342 148} {378 149} {381 150}} + 24,trans {{318 145} {319 146} {339 147} {342 148} {379 149} {381 150}} 43,trans {} 62,trans {{315 180} {316 181} {375 205}} 81,trans {} @@ -2350,7 +2350,7 @@ 41,trans {} 60,trans {{257 1} {258 2} {259 3} {260 4} {261 5} {262 6} {366 203}} 59,trans {{317 202}} - 78,trans {{327 170} {335 171} {379 218}} + 78,trans {{327 170} {335 171} {380 218}} 97,trans {} 8,trans {{257 1} {258 2} {259 3} {260 4} {261 5} {262 6} {321 37} {323 38} {347 39} {357 40} {366 41} {387 42}} 111,trans {} @@ -2387,7 +2387,7 @@ 114 {{38 {0 317} 1}} 128,trans {{317 220}} 115 {{39 {0 317} 1}} - 147,trans {{327 170} {335 171} {379 234}} + 147,trans {{327 170} {335 171} {380 234}} 116 {{40 {0 317} 1}} 166,trans {} 117 {{41 {0 317} 1}} @@ -2410,7 +2410,7 @@ 126 {{91 {0 317} 1}} 95,trans {} 6,trans {} - 127 {{71 {0 317} 2}} + 127 {{67 {0 317} 2}} 128 {{116 {0 317} 1}} 129 {{118 {0 317} 1} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} 130 {{119 {0 317} 1}} @@ -2418,8 +2418,8 @@ 131 {{117 {0 317} 1}} 127,trans {} 132 {{115 {0 317} 1}} - 146,trans {{327 170} {335 171} {379 233}} - 133 {{78 {0 317} 2}} + 146,trans {{327 170} {335 171} {380 233}} + 133 {{74 {0 317} 2}} 165,trans {} 134 {{141 {0 317} 1} {8 {0 317} 0} {9 {0 317} 0} {10 {0 317} 0}} 184,trans {} @@ -2440,16 +2440,16 @@ 143 {{137 {0 317} 1}} 94,trans {} 5,trans {} - 144 {{81 {0 317} 2}} - 145 {{63 {0 317} 1}} - 146 {{88 {0 317} 1} {65 {0 317} 0} {66 {0 317} 0}} + 144 {{77 {0 317} 2}} + 145 {{83 {0 317} 1}} + 146 {{88 {0 317} 1} {85 {0 317} 0} {86 {0 317} 0}} 107,trans {} - 147 {{89 {0 317} 1} {65 {0 317} 0} {66 {0 317} 0}} + 147 {{89 {0 317} 1} {85 {0 317} 0} {86 {0 317} 0}} 126,trans {} - 148 {{64 {0 317} 1}} + 148 {{84 {0 317} 1}} 145,trans {} 149 {{87 {0 317} 1}} - 150 {{70 {0 317} 2}} + 150 {{66 {0 317} 2}} 164,trans {} 151 {{161 {0 317} 1} {165 {0 317} 0} {166 {0 317} 0} {167 {0 317} 0} {168 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} 183,trans {} @@ -2460,7 +2460,7 @@ 154 {{162 {0 317} 1} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} 155 {{164 {0 317} 1} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} 17,trans {} - 156 {{83 {0 317} 2}} + 156 {{79 {0 317} 2}} 36,trans {} 157 {{62 0 2}} 55,trans {{315 191}} @@ -2484,11 +2484,11 @@ 182,trans {} 168 {{106 {0 317} 2}} 211,trans {} - 170 {{66 {0 317} 1}} + 170 {{86 {0 317} 1}} 169 {{104 {0 317} 2}} 230,trans {} 229,trans {} - 171 {{65 {0 317} 1}} + 171 {{85 {0 317} 1}} 172 {{105 {0 317} 2}} 173 {{102 {0 317} 2}} 16,trans {} @@ -2568,7 +2568,7 @@ 216 {{133 {0 317} 2}} 14,trans {{317 68}} 217 {{134 {0 317} 2}} - 33,trans {{327 170} {335 171} {379 172}} + 33,trans {{327 170} {335 171} {380 172}} 218 {{135 {0 317} 2}} 52,trans {} 220 {{116 {0 317} 2}} @@ -2610,7 +2610,7 @@ 69,trans {{268 187} {269 188} {270 189} {367 209}} 237 {{167 {0 317} 1} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} 88,trans {} - 0,trans {{257 1} {258 2} {259 3} {260 4} {261 5} {262 6} {319 7} {320 8} {322 9} {328 10} {329 11} {334 12} {336 13} {337 14} {339 15} {341 16} {343 17} {344 18} {345 19} {346 20} {348 21} {352 22} {353 23} {354 24} {356 25} {366 26} {376 27} {380 28}} + 0,trans {{257 1} {258 2} {259 3} {260 4} {261 5} {262 6} {319 7} {320 8} {322 9} {328 10} {329 11} {334 12} {336 13} {337 14} {339 15} {341 16} {343 17} {344 18} {345 19} {346 20} {348 21} {352 22} {353 23} {354 24} {356 25} {366 26} {376 27} {378 28}} 238 {{165 {0 317} 1}} 240 {{163 {0 317} 2}} 239 {{161 {0 317} 2}} @@ -2642,38 +2642,38 @@ 119,trans {} 138,trans {{271 199} {272 200} {368 228}} 157,trans {{317 244}} - 10 {{75 {0 317} 1}} + 10 {{71 {0 317} 1}} 176,trans {} - 11 {{76 {0 317} 1}} + 11 {{72 {0 317} 1}} 205,trans {} 195,trans {} - 12 {{74 {0 317} 1} {92 {0 317} 0} {93 {0 317} 0} {94 {0 317} 0} {95 {0 317} 0} {96 {0 317} 0} {97 {0 317} 0} {98 {0 317} 0} {99 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} + 12 {{70 {0 317} 1} {92 {0 317} 0} {93 {0 317} 0} {94 {0 317} 0} {95 {0 317} 0} {96 {0 317} 0} {97 {0 317} 0} {98 {0 317} 0} {99 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} 224,trans {} - 13 {{82 {0 317} 1} {147 {0 317} 0} {148 {0 317} 0} {149 {0 317} 0} {150 {0 317} 0} {151 {0 317} 0} {152 {0 317} 0} {153 {0 317} 0} {154 {0 317} 0} {155 {0 317} 0} {156 {0 317} 0} {157 {0 317} 0} {158 {0 317} 0} {159 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} + 13 {{78 {0 317} 1} {147 {0 317} 0} {148 {0 317} 0} {149 {0 317} 0} {150 {0 317} 0} {151 {0 317} 0} {152 {0 317} 0} {153 {0 317} 0} {154 {0 317} 0} {155 {0 317} 0} {156 {0 317} 0} {157 {0 317} 0} {158 {0 317} 0} {159 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} 243,trans {} - 14 {{85 {0 317} 1}} - 15 {{80 {0 317} 1} {125 {0 317} 0} {126 {0 317} 0} {127 {0 317} 0} {128 {0 317} 0} {129 {0 317} 0} {130 {0 317} 0} {131 {0 317} 0} {132 {0 317} 0} {133 {0 317} 0} {134 {0 317} 0} {135 {0 317} 0} {136 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} + 14 {{81 {0 317} 1}} + 15 {{76 {0 317} 1} {125 {0 317} 0} {126 {0 317} 0} {127 {0 317} 0} {128 {0 317} 0} {129 {0 317} 0} {130 {0 317} 0} {131 {0 317} 0} {132 {0 317} 0} {133 {0 317} 0} {134 {0 317} 0} {135 {0 317} 0} {136 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} 11,trans {{317 44}} - 16 {{68 {0 317} 1}} + 16 {{64 {0 317} 1}} 29,trans {{317 158}} 30,trans {{257 1} {258 2} {259 3} {260 4} {261 5} {262 6} {366 159}} 48,trans {{315 180} {316 181} {375 183}} - 17 {{84 {0 317} 1}} + 17 {{80 {0 317} 1}} 67,trans {} - 18 {{86 {0 317} 1}} + 18 {{82 {0 317} 1}} 86,trans {} - 20 {{73 {0 317} 1} {56 {0 317} 0} {57 {0 317} 0}} - 19 {{72 {0 317} 1} {49 {0 317} 0} {50 {0 317} 0} {51 {0 317} 0} {52 {0 317} 0} {53 {0 317} 0} {54 {0 317} 0} {55 {0 317} 0}} - 21 {{71 {0 317} 1} {90 {0 317} 0} {91 {0 317} 0} {18 {0 317} 0} {19 {0 317} 0} {20 {0 317} 0} {21 {0 317} 0} {22 {0 317} 0} {23 {0 317} 0} {24 {0 317} 0} {25 {0 317} 0} {26 {0 317} 0} {27 {0 317} 0} {28 {0 317} 0} {29 {0 317} 0} {30 {0 317} 0} {31 {0 317} 0} {32 {0 317} 0} {33 {0 317} 0} {34 {0 317} 0} {35 {0 317} 0} {36 {0 317} 0} {37 {0 317} 0} {38 {0 317} 0} {39 {0 317} 0} {40 {0 317} 0} {41 {0 317} 0} {42 {0 317} 0} {43 {0 317} 0} {44 {0 317} 0} {45 {0 317} 0} {46 {0 317} 0} {47 {0 317} 0} {48 {0 317} 0}} - 22 {{78 {0 317} 1} {115 {0 317} 0} {116 {0 317} 0} {117 {0 317} 0} {118 {0 317} 0} {119 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} + 20 {{69 {0 317} 1} {56 {0 317} 0} {57 {0 317} 0}} + 19 {{68 {0 317} 1} {49 {0 317} 0} {50 {0 317} 0} {51 {0 317} 0} {52 {0 317} 0} {53 {0 317} 0} {54 {0 317} 0} {55 {0 317} 0}} + 21 {{67 {0 317} 1} {90 {0 317} 0} {91 {0 317} 0} {18 {0 317} 0} {19 {0 317} 0} {20 {0 317} 0} {21 {0 317} 0} {22 {0 317} 0} {23 {0 317} 0} {24 {0 317} 0} {25 {0 317} 0} {26 {0 317} 0} {27 {0 317} 0} {28 {0 317} 0} {29 {0 317} 0} {30 {0 317} 0} {31 {0 317} 0} {32 {0 317} 0} {33 {0 317} 0} {34 {0 317} 0} {35 {0 317} 0} {36 {0 317} 0} {37 {0 317} 0} {38 {0 317} 0} {39 {0 317} 0} {40 {0 317} 0} {41 {0 317} 0} {42 {0 317} 0} {43 {0 317} 0} {44 {0 317} 0} {45 {0 317} 0} {46 {0 317} 0} {47 {0 317} 0} {48 {0 317} 0}} + 22 {{74 {0 317} 1} {115 {0 317} 0} {116 {0 317} 0} {117 {0 317} 0} {118 {0 317} 0} {119 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} 100,trans {} - 23 {{81 {0 317} 1} {137 {0 317} 0} {138 {0 317} 0} {139 {0 317} 0} {140 {0 317} 0} {141 {0 317} 0} {142 {0 317} 0} {143 {0 317} 0} {144 {0 317} 0} {145 {0 317} 0} {146 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} + 23 {{77 {0 317} 1} {137 {0 317} 0} {138 {0 317} 0} {139 {0 317} 0} {140 {0 317} 0} {141 {0 317} 0} {142 {0 317} 0} {143 {0 317} 0} {144 {0 317} 0} {145 {0 317} 0} {146 {0 317} 0} {1 {0 317} 0} {2 {0 317} 0} {3 {0 317} 0} {4 {0 317} 0} {5 {0 317} 0} {6 {0 317} 0} {7 {0 317} 0}} 118,trans {} - 24 {{70 {0 317} 1} {87 {0 317} 0} {88 {0 317} 0} {89 {0 317} 0} {63 {0 317} 0} {64 {0 317} 0}} + 24 {{66 {0 317} 1} {87 {0 317} 0} {88 {0 317} 0} {89 {0 317} 0} {83 {0 317} 0} {84 {0 317} 0}} 137,trans {{271 195} {272 196} {274 197} {370 227}} - 25 {{83 {0 317} 1} {160 {0 317} 0} {161 {0 317} 0} {162 {0 317} 0} {163 {0 317} 0} {164 {0 317} 0}} + 25 {{79 {0 317} 1} {160 {0 317} 0} {161 {0 317} 0} {162 {0 317} 0} {163 {0 317} 0} {164 {0 317} 0}} 156,trans {} - 26 {{67 {0 317} 1}} + 26 {{63 {0 317} 1}} 175,trans {} 27 {{0 0 1}} 204,trans {} @@ -2686,7 +2686,7 @@ 31 {{106 {0 317} 1} {107 {0 317} 0} {108 {0 317} 0} {109 {0 317} 0} {110 {0 317} 0} {111 {0 317} 0} {112 {0 317} 0} {113 {0 317} 0} {114 {0 317} 0}} 32 {{104 {0 317} 1}} 10,trans {{317 43}} - 33 {{105 {0 317} 1} {65 {0 317} 0} {66 {0 317} 0}} + 33 {{105 {0 317} 1} {85 {0 317} 0} {86 {0 317} 0}} 28,trans {{377 157}} 47,trans {{315 180} {316 181} {375 182}} 34 {{102 {0 317} 1}} @@ -2857,8 +2857,8 @@ 392,t 1 385,title {} 356 VIEW_ - 380,line 291 - 379,line 287 + 380,line 310 + 379,line 306 357 WIDTH_ 294,t 0 304,t 0 @@ -2908,10 +2908,10 @@ 376 command 377 @PSEUDO1 311,line 65 - 378 typegrid + 378 grid 343,t 0 - 380 grid - 379 interiortype + 380 interiortype + 379 typegrid 366,line 204 381 type 382 system @@ -3403,30 +3403,30 @@ 58 { set _ $1 } 59 { set _ $1 } 61 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } - 63 { set _ analysis } - 64 { set _ publication } - 65 { set _ interior } - 66 { set _ exterior } - 67 { ProcessCmdSet grid view $1 GridUpdateCurrent } - 68 { GridDialog } - 69 { GridDestroyDialog } + 63 { ProcessCmdSet grid view $1 GridUpdateCurrent } + 64 { GridDialog } + 65 { GridDestroyDialog } + 66 { GridUpdateCurrent } + 67 { ProcessCmdSet grid system $2 GridUpdateCurrent } + 68 { ProcessCmdSet grid sky $2 GridUpdateCurrent } + 69 { ProcessCmdSet grid skyformat $2 GridUpdateCurrent } 70 { GridUpdateCurrent } - 71 { ProcessCmdSet grid system $2 GridUpdateCurrent } - 72 { ProcessCmdSet grid sky $2 GridUpdateCurrent } - 73 { ProcessCmdSet grid skyformat $2 GridUpdateCurrent } + 71 { ProcessCmdSet grid format1 $2 GridUpdateCurrent } + 72 { ProcessCmdSet grid format2 $2 GridUpdateCurrent } + 73 { GridUpdateCurrent } 74 { GridUpdateCurrent } - 75 { ProcessCmdSet grid format1 $2 GridUpdateCurrent } - 76 { ProcessCmdSet grid format2 $2 GridUpdateCurrent } + 75 { GridUpdateCurrent } + 76 { GridUpdateCurrent } 77 { GridUpdateCurrent } 78 { GridUpdateCurrent } 79 { GridUpdateCurrent } - 80 { GridUpdateCurrent } - 81 { GridUpdateCurrent } - 82 { GridUpdateCurrent } - 83 { GridUpdateCurrent } - 84 { GridResetDialog } - 85 { FileLast gridfbox $2; GridLoad $2 } - 86 { FileLast gridfbox $2; GridSave $2 } + 80 { GridResetDialog } + 81 { FileLast gridfbox $2; GridLoad $2 } + 82 { FileLast gridfbox $2; GridSave $2 } + 83 { set _ analysis } + 84 { set _ publication } + 85 { set _ interior } + 86 { set _ exterior } 87 { ProcessCmdSet grid type $1 } 88 { ProcessCmdSet grid axes,type $2 } 89 { ProcessCmdSet grid numlab,type $2 } diff -Nru saods9-8.2+repack/ds9/parsers/headerparser.tac saods9-8.3+repack/ds9/parsers/headerparser.tac --- saods9-8.2+repack/ds9/parsers/headerparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/headerparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -16,7 +16,6 @@ | header {global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT}} STRING_ ; - header : display | CLOSE_ close {CloseHeaderCmd $2} | SAVE_ save diff -Nru saods9-8.2+repack/ds9/parsers/headerparser.tcl saods9-8.3+repack/ds9/parsers/headerparser.tcl --- saods9-8.2+repack/ds9/parsers/headerparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/headerparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -169,17 +169,17 @@ array set header::rules { 2,e 1 - 7,line 29 - 10,line 34 - 4,line 24 + 7,line 28 + 10,line 33 + 4,line 23 1,line 19 - 9,line 33 - 12,line 38 - 6,line 26 + 9,line 32 + 12,line 37 + 6,line 25 3,line 20 - 8,line 30 - 11,line 37 - 5,line 25 + 8,line 29 + 11,line 36 + 5,line 24 2,line 19 } @@ -217,7 +217,7 @@ } array set header::token_id_table { - 264,line 28 + 264,line 27 265,title {} 261,line 18 257,t 0 @@ -228,10 +228,10 @@ 266,t 1 error error 264,title {} - 266,line 36 + 266,line 35 error,line 17 258,t 0 - 263,line 23 + 263,line 22 error,title {} 263,t 1 259,line 13 @@ -247,7 +247,7 @@ 260 SAVE_ 260,t 0 261 command - 265,line 32 + 265,line 31 262 @PSEUDO1 263 header 257,title integer @@ -264,7 +264,7 @@ 258,line 9 266,title {} 261,t 1 - 267,line 39 + 267,line 38 265,t 1 261,title {} } diff -Nru saods9-8.2+repack/ds9/parsers/heightparser.tac saods9-8.3+repack/ds9/parsers/heightparser.tac --- saods9-8.2+repack/ds9/parsers/heightparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/heightparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -13,7 +13,7 @@ | height {global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT}} STRING_ ; -height : INT_ {ProcessCmdSet canvas height $1 UpdateView} +height : INT_ {LayoutChangeHeight $1} ; %% diff -Nru saods9-8.2+repack/ds9/parsers/heightparser.tcl saods9-8.3+repack/ds9/parsers/heightparser.tcl --- saods9-8.2+repack/ds9/parsers/heightparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/heightparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -252,7 +252,7 @@ set yylval [lindex $value_stack end] switch -- $rule { 2 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } - 4 { ProcessCmdSet canvas height $1 UpdateView } + 4 { LayoutChangeHeight $1 } } unsetupvalues $dc # pop off tokens from the stack if normal rule diff -Nru saods9-8.2+repack/ds9/parsers/magnifierparser.tac saods9-8.3+repack/ds9/parsers/magnifierparser.tac --- saods9-8.2+repack/ds9/parsers/magnifierparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/magnifierparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -27,7 +27,7 @@ | CURSOR_ yesno {ProcessCmdSet pmagnifier cursor $2 MagnifierCursor} | REGION_ yesno {ProcessCmdSet pmagnifier region $2 MagnifierRegion} # backward compatibility - | yesno {ProcessCmdSet view magnifier $1 UpdateView} + | yesno {ProcessCmdSet view magnifier $1 LayoutView} ; %% diff -Nru saods9-8.2+repack/ds9/parsers/magnifierparser.tcl saods9-8.3+repack/ds9/parsers/magnifierparser.tcl --- saods9-8.2+repack/ds9/parsers/magnifierparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/magnifierparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -504,7 +504,7 @@ 14 { ProcessCmdSet pmagnifier zoom $2 MagnifierZoom } 15 { ProcessCmdSet pmagnifier cursor $2 MagnifierCursor } 16 { ProcessCmdSet pmagnifier region $2 MagnifierRegion } - 17 { ProcessCmdSet view magnifier $1 UpdateView } + 17 { ProcessCmdSet view magnifier $1 LayoutView } } unsetupvalues $dc # pop off tokens from the stack if normal rule diff -Nru saods9-8.2+repack/ds9/parsers/noteslex.fcl saods9-8.3+repack/ds9/parsers/noteslex.fcl --- saods9-8.2+repack/ds9/parsers/noteslex.fcl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/noteslex.fcl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,21 @@ +#tab notesparser.tab.tcl + +%{ +%} + +#include defs.fin + +%% + +append {return $APPEND_} +clear {return $CLEAR_} +close {return $CLOSE_} +insert {return $INSERT_} +load {return $LOAD_} +open {return $OPEN_} +save {return $SAVE_} + +#include string.fin +#include ws.fin + +%% diff -Nru saods9-8.2+repack/ds9/parsers/noteslex.tcl saods9-8.3+repack/ds9/parsers/noteslex.tcl --- saods9-8.2+repack/ds9/parsers/noteslex.tcl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/noteslex.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,363 @@ +package provide DS9 1.0 + +###### +# Begin autogenerated fickle (version 2.1) routines. +# Although fickle itself is protected by the GNU Public License (GPL) +# all user-supplied functions are protected by their respective +# author's license. See http://mini.net/tcl/fickle for other details. +###### + +namespace eval notes { + variable yylval + + variable yytext {} + variable yyleng 0 + variable yyin stdin + variable yyout stdout + variable yy_current_buffer {} + + variable yylineno 1 + + variable index_ 0 + variable done_ 0 +} + +# ECHO copies yytext to the scanner's output if no arguments are +# given. The scanner writes its ECHO output to the yyout global +# (default, stdout), which may be redefined by the user simply by +# assigning it to some other channel. +# -- from the flex(1) man page +proc notes::ECHO {{s ""}} { + variable yytext + variable yyout + + if {$s == ""} { + puts -nonewline $yyout $yytext + } else { + puts -nonewline $yyout $s + } +} + +# YY_FLUSH_BUFFER flushes the scanner's internal buffer so that the +# next time the scanner attempts to match a token, it will first +# refill the buffer using YY_INPUT. +# -- from the flex(1) man page +proc notes::YY_FLUSH_BUFFER {} { + variable yy_current_buffer + variable index_ + variable done_ + + set yy_current_buffer "" + set index_ 0 + set done_ 0 +} + +# yyrestart(new_file) may be called to point yyin at the new input +# file. The switch-over to the new file is immediate (any previously +# buffered-up input is lost). Note that calling yyrestart with yyin +# as an argument thus throws away the current input buffer and +# continues scanning the same input file. +# -- from the flex(1) man page +proc notes::yyrestart {new_file} { + variable yyin + + set yyin $new_file + YY_FLUSH_BUFFER +} + +# The nature of how it gets its input can be controlled by defining +# the YY_INPUT macro. YY_INPUT's calling sequence is +# "YY_INPUT(buf,result,max_size)". Its action is to place up to +# max_size characters in the character array buf and return in the +# integer variable result either the number of characters read or the +# constant YY_NULL (0 on Unix systems) to indicate EOF. The default +# YY_INPUT reads from the global file-pointer "yyin". +# -- from the flex(1) man page +proc notes::YY_INPUT {buf result max_size} { + variable yyin + + upvar $result ret_val + upvar $buf new_data + if {$yyin != ""} { + set new_data [read $yyin $max_size] + set ret_val [string length $new_data] + } else { + set new_data "" + set ret_val 0 + } +} + +# yy_scan_string sets up input buffers for scanning in-memory +# strings instead of files. Note that switching input sources does +# not change the start condition. +# -- from the flex(1) man page +proc notes::yy_scan_string {str} { + variable yy_current_buffer + variable yyin + + append yy_current_buffer $str + set yyin "" +} + +# unput(c) puts the character c back onto the input stream. It will +# be the next character scanned. +# -- from the flex(1) man page +proc notes::unput {c} { + variable yy_current_buffer + variable index_ + + set s [string range $yy_current_buffer 0 [expr {$index_ - 1}]] + append s $c + set yy_current_buffer [append s [string range $yy_current_buffer $index_ end]] +} + +# Returns all but the first n characters of the current token back to +# the input stream, where they will be rescanned when the scanner +# looks for the next match. yytext and yyleng are adjusted +# appropriately. +# -- from the flex(1) man page +proc notes::yyless {n} { + variable yy_current_buffer + variable index_ + variable yytext + variable yyleng + + set s [string range $yy_current_buffer 0 [expr {$index_ - 1}]] + append s [string range $yytext $n end] + set yy_current_buffer [append s [string range $yy_current_buffer $index_ end]] + set yytext [string range $yytext 0 [expr {$n - 1}]] + set yyleng [string length $yytext] +} + +# input() reads the next character from the input stream. +# -- from the flex(1) man page +proc notes::input {} { + variable yy_current_buffer + variable index_ + variable done_ + + if {[string length $yy_current_buffer] - $index_ < 1024} { + set new_buffer "" + set new_buffer_size 0 + if {$done_ == 0} { + YY_INPUT new_buffer new_buffer_size 1024 + append yy_current_buffer $new_buffer + if {$new_buffer_size == 0} { + set done_ 1 + } + } + if $done_ { + if {[string length $yy_current_buffer] - $index_ == 0} { + return {} + } + } + } + set c [string index $yy_current_buffer $index_] + incr index_ + return $c +} + +###### +# autogenerated yylex function created by fickle +###### + +# Whenever yylex() is called, it scans tokens from the global input +# file yyin (which defaults to stdin). It continues until it either +# reaches an end-of-file (at which point it returns the value 0) or +# one of its actions executes a return statement. +# -- from the flex(1) man page +proc notes::yylex {} { + variable yylval + + variable yytext + variable yylineno + variable yyleng + variable yy_current_buffer + variable yy_flex_debug + + variable index_ + variable done_ + variable state_table_ + +set STRING_ 257 +set APPEND_ 258 +set CLEAR_ 259 +set CLOSE_ 260 +set INSERT_ 261 +set OPEN_ 262 +set LOAD_ 263 +set SAVE_ 264 + + while {1} { + if {[string length $yy_current_buffer] - $index_ < 1024} { + if {$done_ == 0} { + set buffer_size 0 + set new_buffer "" + YY_INPUT new_buffer buffer_size 1024 + append yy_current_buffer $new_buffer + if {$buffer_size == 0 && \ + [string length $yy_current_buffer] - $index_ == 0} { + set done_ 1 + } + } + if $done_ { + if {[string length $yy_current_buffer] - $index_ == 0} { + break + } + } + } + set yyleng 0 + set matched_rule -1 + # rule 0: append + if {[regexp -start $index_ -indices -line -nocase -- {\A(append)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 0 + } + # rule 1: clear + if {[regexp -start $index_ -indices -line -nocase -- {\A(clear)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 1 + } + # rule 2: close + if {[regexp -start $index_ -indices -line -nocase -- {\A(close)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 2 + } + # rule 3: insert + if {[regexp -start $index_ -indices -line -nocase -- {\A(insert)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 3 + } + # rule 4: load + if {[regexp -start $index_ -indices -line -nocase -- {\A(load)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 4 + } + # rule 5: open + if {[regexp -start $index_ -indices -line -nocase -- {\A(open)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 5 + } + # rule 6: save + if {[regexp -start $index_ -indices -line -nocase -- {\A(save)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 6 + } + # rule 7: \"[^\"]*\" + if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 7 + } + # rule 8: \'[^\']*\' + if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 8 + } + # rule 9: \{[^\}]*\} + if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 9 + } + # rule 10: \S+\S+ + if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 10 + } + # rule 11: \s + if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 11 + } + # rule 12: . + if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 12 + } + if {$matched_rule == -1} { + set yytext [string index $yy_current_buffer $index_] + set yyleng 1 + } + incr index_ $yyleng + # workaround for Tcl's circumflex behavior + if {[string index $yytext end] == "\n"} { + set yy_current_buffer [string range $yy_current_buffer $index_ end] + set index_ 0 + } + set numlines [expr {[llength [split $yytext "\n"]] - 1}] + switch -- $matched_rule { + 0 { +return $APPEND_ + } + 1 { +return $CLEAR_ + } + 2 { +return $CLOSE_ + } + 3 { +return $INSERT_ + } + 4 { +return $LOAD_ + } + 5 { +return $OPEN_ + } + 6 { +return $SAVE_ + } + 7 { +set yylval [string range $yytext 1 end-1]; return $STRING_ + } + 8 { +set yylval [string range $yytext 1 end-1]; return $STRING_ + } + 9 { +set yylval [string range $yytext 1 end-1]; return $STRING_ + } + 10 { +set yylval $yytext; return $STRING_ + } + 11 { +# ignore whitespace + } + 12 { +set yylval $yytext; return $yylval + } + default + { puts stderr "unmatched token: $yytext"; exit -1 } + } + incr yylineno $numlines + } + return 0 +} +###### +# end autogenerated fickle functions +###### + diff -Nru saods9-8.2+repack/ds9/parsers/notesparser.tab.tcl saods9-8.3+repack/ds9/parsers/notesparser.tab.tcl --- saods9-8.2+repack/ds9/parsers/notesparser.tab.tcl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/notesparser.tab.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,8 @@ +set STRING_ 257 +set APPEND_ 258 +set CLEAR_ 259 +set CLOSE_ 260 +set INSERT_ 261 +set OPEN_ 262 +set LOAD_ 263 +set SAVE_ 264 diff -Nru saods9-8.2+repack/ds9/parsers/notesparser.tac saods9-8.3+repack/ds9/parsers/notesparser.tac --- saods9-8.2+repack/ds9/parsers/notesparser.tac 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/notesparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,43 @@ +%{ +%} +#include def.tin + +#include string.tin + +%start command + +%token APPEND_ +%token CLEAR_ +%token CLOSE_ +%token INSERT_ +%token OPEN_ +%token LOAD_ +%token SAVE_ + +%% + +command : notes + | notes {global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT}} STRING_ + ; + +notes : {DisplayNotes} + | STRING_ {NotesCmdAppend $1} + | APPEND_ STRING_ {NotesCmdAppend $2} + | INSERT_ STRING_ {NotesCmdInsert $2} + | CLEAR_ {NotesCmdClear} + + | OPEN_ {DisplayNotes} + | CLOSE_ {EditTextDestroy notes} + | LOAD_ STRING_ {NotesCmdLoad $2} + | SAVE_ STRING_ {NotesCmdSave $2} + ; + +%% + +proc notes::yyerror {msg} { + variable yycnt + variable yy_current_buffer + variable index_ + + ParserError $msg $yycnt $yy_current_buffer $index_ +} diff -Nru saods9-8.2+repack/ds9/parsers/notesparser.tcl saods9-8.3+repack/ds9/parsers/notesparser.tcl --- saods9-8.2+repack/ds9/parsers/notesparser.tcl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/notesparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,421 @@ +package provide DS9 1.0 + +###### +# Begin autogenerated taccle (version 1.3) routines. +# Although taccle itself is protected by the GNU Public License (GPL) +# all user-supplied functions are protected by their respective +# author's license. See http://mini.net/tcl/taccle for other details. +###### + +namespace eval notes { + variable yylval {} + variable table + variable rules + variable token {} + variable yycnt 0 + variable yyerr 0 + variable save_state 0 + + namespace export yylex +} + +proc notes::YYABORT {} { + return -code return 1 +} + +proc notes::YYACCEPT {} { + return -code return 0 +} + +proc notes::YYERROR {} { + variable yyerr + set yyerr 1 +} + +proc notes::yyclearin {} { + variable token + variable yycnt + set token {} + incr yycnt -1 +} + +proc notes::yyerror {s} { + puts stderr $s +} + +proc notes::setupvalues {stack pointer numsyms} { + upvar 1 1 y + set y {} + for {set i 1} {$i <= $numsyms} {incr i} { + upvar 1 $i y + set y [lindex $stack $pointer] + incr pointer + } +} + +proc notes::unsetupvalues {numsyms} { + for {set i 1} {$i <= $numsyms} {incr i} { + upvar 1 $i y + unset y + } +} + +array set notes::table { + 0:257 shift + 0:258 shift + 0:259 shift + 0:260 shift + 2:257 shift + 0:261 shift + 8:257,target 14 + 9:0 accept + 11:0 reduce + 0:262 shift + 4:257 reduce + 0:263 shift + 0:264 shift + 3:257,target 8 + 6:257 reduce + 0:265 goto + 8:257 shift + 15:257,target 16 + 0:267 goto + 0:265,target 9 + 6:0,target 9 + 16:0,target 3 + 10:257,target 2 + 6:0 reduce + 0:264,target 8 + 6:257,target 9 + 10:266,target 15 + 1:257,target 5 + 12:0 reduce + 0:0,target 4 + 10:0,target 1 + 13:257,target 11 + 0:263,target 7 + 16:0 reduce + 10:257 reduce + 12:257 reduce + 14:257 reduce + 3:0 reduce + 1:0,target 5 + 11:0,target 6 + 0:262,target 6 + 4:257,target 10 + 10:266 goto + 1:257 reduce + 3:257 reduce + 11:257,target 6 + 5:257 shift + 13:0 reduce + 9:0,target 0 + 0:261,target 5 + 7:257 shift + 12:0,target 7 + 0:0 reduce + 7:257,target 13 + 0:259,target 3 + 0:260,target 4 + 2:257,target 11 + 4:0 reduce + 14:257,target 12 + 3:0,target 8 + 13:0,target 11 + 10:0 reduce + 0:258,target 2 + 14:0 reduce + 5:257,target 12 + 4:0,target 10 + 14:0,target 12 + 11:257 reduce + 0:257,target 1 + 1:0 reduce + 13:257 reduce + 0:267,target 10 + 15:257 shift + 12:257,target 7 +} + +array set notes::rules { + 9,l 267 + 11,l 267 + 2,l 266 + 6,l 267 + 12,l 267 + 3,l 265 + 7,l 267 + 0,l 268 + 4,l 267 + 8,l 267 + 10,l 267 + 1,l 265 + 5,l 267 +} + +array set notes::rules { + 5,dc 1 + 0,dc 1 + 12,dc 2 + 8,dc 1 + 3,dc 3 + 10,dc 1 + 6,dc 2 + 1,dc 1 + 9,dc 1 + 4,dc 0 + 11,dc 2 + 7,dc 2 + 2,dc 0 +} + +array set notes::rules { + 2,e 1 + 7,line 29 + 10,line 33 + 4,line 26 + 1,line 22 + 9,line 32 + 12,line 35 + 6,line 28 + 3,line 23 + 8,line 31 + 11,line 34 + 5,line 27 + 2,line 22 +} + +array set notes::lr1_table { + 13,trans {} + 0 {{0 0 0} {1 0 0} {3 0 0} {4 {0 257} 0} {5 {0 257} 0} {6 {0 257} 0} {7 {0 257} 0} {8 {0 257} 0} {9 {0 257} 0} {10 {0 257} 0} {11 {0 257} 0} {12 {0 257} 0}} + 14,trans {} + 1 {{5 {0 257} 1}} + 15,trans {{257 16}} + 2 {{6 {0 257} 1}} + 16,trans {} + 3 {{8 {0 257} 1}} + 4 {{10 {0 257} 1}} + 0,trans {{257 1} {258 2} {259 3} {260 4} {261 5} {262 6} {263 7} {264 8} {265 9} {267 10}} + 1,trans {} + 5 {{7 {0 257} 1}} + 2,trans {{257 11}} + 6 {{9 {0 257} 1}} + 3,trans {} + 7 {{11 {0 257} 1}} + 4,trans {} + 8 {{12 {0 257} 1}} + 5,trans {{257 12}} + 9 {{0 0 1}} + 10 {{1 0 1} {3 0 1} {2 257 0}} + 6,trans {} + 11 {{6 {0 257} 2}} + 7,trans {{257 13}} + 12 {{7 {0 257} 2}} + 8,trans {{257 14}} + 13 {{11 {0 257} 2}} + 10,trans {{266 15}} + 9,trans {} + 14 {{12 {0 257} 2}} + 11,trans {} + 15 {{3 0 2}} + 16 {{3 0 3}} + 12,trans {} +} + +array set notes::token_id_table { + 264,line 17 + 265,title {} + 261,line 14 + 257,t 0 + 257,line 7 + 262,t 0 + 259,title CLEAR + 260,title CLOSE + 266,t 1 + 264,title SAVE + error error + 266,line 22 + 268,title {} + error,line 20 + 258,t 0 + 263,line 16 + error,title {} + 263,t 0 + 259,line 12 + 260,line 13 + 258,title APPEND + 267,t 1 + 263,title LOAD + 268,line 36 + 267,title {} + 257 STRING_ + 258 APPEND_ + 259,t 0 + 259 CLEAR_ + 260 CLOSE_ + 260,t 0 + 261 INSERT_ + 265,line 21 + 262 OPEN_ + 263 LOAD_ + 257,title string + 264 SAVE_ + 264,t 0 + 265 command + 262,line 15 + 266 @PSEUDO1 + 267 notes + 268,t 1 + 268 start' + 262,title OPEN + 0 {$} + 0,t 0 + error,t 0 + 258,line 11 + 266,title {} + 261,t 0 + 267,line 25 + 265,t 1 + 261,title INSERT +} + +proc notes::yyparse {} { + variable yylval + variable table + variable rules + variable token + variable yycnt + variable lr1_table + variable token_id_table + variable yyerr + variable save_state + + set yycnt 0 + set state_stack {0} + set value_stack {{}} + set token "" + set accepted 0 + set yyerr 0 + set save_state 0 + + while {$accepted == 0} { + set state [lindex $state_stack end] + if {$token == ""} { + set yylval "" + set token [yylex] + set buflval $yylval + if {$token>0} { + incr yycnt + } + } + if {![info exists table($state:$token)] || $yyerr} { + if {!$yyerr} { + set save_state $state + } + # pop off states until error token accepted + while {[llength $state_stack] > 0 && \ + ![info exists table($state:error)]} { + set state_stack [lrange $state_stack 0 end-1] + set value_stack [lrange $value_stack 0 \ + [expr {[llength $state_stack] - 1}]] + set state [lindex $state_stack end] + } + if {[llength $state_stack] == 0} { + + set rr { } + if {[info exists lr1_table($save_state,trans)] && [llength $lr1_table($save_state,trans)] >= 1} { + foreach trans $lr1_table($save_state,trans) { + foreach {tok_id nextstate} $trans { + set ss $token_id_table($tok_id,title) + if {$ss != {}} { + append rr "$ss, " + } + } + } + } + set rr [string trimleft $rr { }] + set rr [string trimright $rr {, }] + yyerror "parse error, expecting: $rr" + + + return 1 + } + lappend state_stack [set state $table($state:error,target)] + lappend value_stack {} + # consume tokens until it finds an acceptable one + while {![info exists table($state:$token)]} { + if {$token == 0} { + yyerror "end of file while recovering from error" + return 1 + } + set yylval {} + set token [yylex] + set buflval $yylval + } + continue + } + switch -- $table($state:$token) { + shift { + lappend state_stack $table($state:$token,target) + lappend value_stack $buflval + set token "" + } + reduce { + set rule $table($state:$token,target) + set ll $rules($rule,l) + if {[info exists rules($rule,e)]} { + set dc $rules($rule,e) + } else { + set dc $rules($rule,dc) + } + set stackpointer [expr {[llength $state_stack]-$dc}] + setupvalues $value_stack $stackpointer $dc + set _ $1 + set yylval [lindex $value_stack end] + switch -- $rule { + 2 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } + 4 { DisplayNotes } + 5 { NotesCmdAppend $1 } + 6 { NotesCmdAppend $2 } + 7 { NotesCmdInsert $2 } + 8 { NotesCmdClear } + 9 { DisplayNotes } + 10 { EditTextDestroy notes } + 11 { NotesCmdLoad $2 } + 12 { NotesCmdSave $2 } + } + unsetupvalues $dc + # pop off tokens from the stack if normal rule + if {![info exists rules($rule,e)]} { + incr stackpointer -1 + set state_stack [lrange $state_stack 0 $stackpointer] + set value_stack [lrange $value_stack 0 $stackpointer] + } + # now do the goto transition + lappend state_stack $table([lindex $state_stack end]:$ll,target) + lappend value_stack $_ + } + accept { + set accepted 1 + } + goto - + default { + puts stderr "Internal parser error: illegal command $table($state:$token)" + return 2 + } + } + } + return 0 +} + +###### +# end autogenerated taccle functions +###### + +proc notes::yyerror {msg} { + variable yycnt + variable yy_current_buffer + variable index_ + + ParserError $msg $yycnt $yy_current_buffer $index_ +} diff -Nru saods9-8.2+repack/ds9/parsers/plotparser.tac saods9-8.3+repack/ds9/parsers/plotparser.tac --- saods9-8.2+repack/ds9/parsers/plotparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/plotparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -157,6 +157,7 @@ plot : line | LINE_ line | BAR_ bar +# backward compatibility | SCATTER_ scatter | ERROR_ errorr | GUI_ {ProcessCmdCVAR0 PlotGUI} @@ -228,6 +229,7 @@ | NEW_ NAME_ STRING_ STRING_ STRING_ STRING_ dim {PlotCmdNew $3; PlotCmdLine $4 $5 $6 $7} | NEW_ NAME_ STRING_ LINE_ STRING_ STRING_ STRING_ dim {PlotCmdNew $3; PlotCmdLine $5 $6 $7 $8} | NEW_ NAME_ STRING_ BAR_ STRING_ STRING_ STRING_ dim {PlotCmdNew $3; PlotCmdBar $5 $6 $7 $8} +# backward compatibility | NEW_ NAME_ STRING_ SCATTER_ STRING_ STRING_ STRING_ dim {PlotCmdNew $3; PlotCmdScatter $5 $6 $7 $8} ; @@ -315,6 +317,7 @@ | WIDTH_ INT_ {PlotCmdUpdateElement graph,ds,bar,width $2} ; +# backward compatibility # Scatter scatter : {PlotCmdNew {}; PlotCmdScatter {} {} {} xy} | OPEN_ {PlotCmdNew {}; PlotCmdScatter {} {} {} xy} @@ -340,6 +343,7 @@ | FILL_ yesno {PlotCmdUpdateElement graph,ds,scatter,fill $2} ; +# backward compatibility scattersymbol : CIRCLE_ {set _ circle} | SQUARE_ {set _ square} | DIAMOND_ {set _ diamond} @@ -422,6 +426,7 @@ graph : {set _ line} | LINE_ {set _ line} | BAR_ {set _ bar} +# backward compatibility | SCATTER_ {set _ scatter} ; diff -Nru saods9-8.2+repack/ds9/parsers/plotparser.tcl saods9-8.3+repack/ds9/parsers/plotparser.tcl --- saods9-8.2+repack/ds9/parsers/plotparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/plotparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -3638,292 +3638,292 @@ } array set plot::rules { - 41,line 263 - 37,line 253 - 285,line 636 - 34,line 250 - 282,line 633 - 31,line 246 - 278,line 626 - 27,line 239 - 275,line 621 + 41,line 264 + 37,line 254 + 285,line 641 + 34,line 251 + 282,line 638 + 31,line 247 + 278,line 631 + 27,line 240 + 275,line 626 24,line 236 - 272,line 618 + 272,line 623 21,line 231 - 268,line 612 + 268,line 617 17,line 224 - 265,line 605 + 265,line 610 14,line 219 - 262,line 600 + 262,line 605 11,line 214 - 258,line 594 - 255,line 589 - 252,line 586 - 248,line 578 - 245,line 573 - 242,line 568 - 238,line 561 + 258,line 599 + 255,line 594 + 252,line 591 + 248,line 583 + 245,line 578 + 242,line 573 + 238,line 566 9,line 210 - 235,line 555 + 235,line 560 6,line 206 - 232,line 552 + 232,line 557 3,line 203 - 228,line 544 - 225,line 541 - 222,line 538 - 218,line 529 - 215,line 526 - 212,line 521 - 208,line 516 - 198,line 501 - 205,line 513 - 195,line 496 - 202,line 507 - 192,line 489 - 188,line 483 - 185,line 480 - 182,line 475 - 178,line 469 - 175,line 464 - 172,line 459 - 168,line 453 - 165,line 450 - 162,line 445 - 158,line 439 - 155,line 434 - 152,line 429 - 148,line 424 - 145,line 421 - 142,line 416 - 138,line 411 - 135,line 405 - 132,line 401 - 128,line 393 - 125,line 390 - 122,line 386 - 118,line 379 - 115,line 375 - 99,line 352 - 112,line 371 - 96,line 347 - 108,line 364 - 93,line 344 - 105,line 359 - 89,line 335 - 90,line 336 - 102,line 355 - 86,line 332 - 83,line 328 - 79,line 321 - 80,line 324 - 76,line 317 - 73,line 313 - 69,line 306 - 70,line 307 - 66,line 299 - 63,line 292 - 59,line 288 - 60,line 289 - 56,line 284 - 53,line 279 - 49,line 272 - 50,line 273 - 46,line 269 - 43,line 266 - 39,line 259 - 40,line 262 - 36,line 252 - 284,line 635 - 33,line 249 - 281,line 632 - 30,line 244 - 29,line 243 - 277,line 625 - 26,line 238 - 274,line 620 + 228,line 549 + 225,line 546 + 222,line 543 + 218,line 534 + 215,line 531 + 212,line 526 + 208,line 521 + 198,line 505 + 205,line 518 + 195,line 500 + 202,line 512 + 192,line 493 + 188,line 487 + 185,line 484 + 182,line 479 + 178,line 473 + 175,line 468 + 172,line 463 + 168,line 457 + 165,line 454 + 162,line 449 + 158,line 443 + 155,line 438 + 152,line 433 + 148,line 428 + 145,line 425 + 142,line 419 + 138,line 414 + 135,line 408 + 132,line 404 + 128,line 395 + 125,line 392 + 122,line 388 + 118,line 381 + 115,line 377 + 99,line 354 + 112,line 373 + 96,line 349 + 108,line 366 + 93,line 346 + 105,line 361 + 89,line 337 + 90,line 338 + 102,line 357 + 86,line 334 + 83,line 330 + 79,line 323 + 80,line 326 + 76,line 319 + 73,line 315 + 69,line 307 + 70,line 308 + 66,line 300 + 63,line 293 + 59,line 289 + 60,line 290 + 56,line 285 + 53,line 280 + 49,line 273 + 50,line 274 + 46,line 270 + 43,line 267 + 39,line 260 + 40,line 263 + 36,line 253 + 284,line 640 + 33,line 250 + 281,line 637 + 30,line 245 + 29,line 244 + 277,line 630 + 26,line 239 + 274,line 625 23,line 235 - 271,line 615 + 271,line 620 20,line 231 19,line 228 - 267,line 609 + 267,line 614 16,line 223 - 264,line 604 + 264,line 609 13,line 218 - 261,line 599 + 261,line 604 10,line 211 - 257,line 591 - 254,line 588 - 251,line 585 - 247,line 577 - 244,line 572 - 241,line 567 - 237,line 560 + 257,line 596 + 254,line 593 + 251,line 590 + 247,line 582 + 244,line 577 + 241,line 572 + 237,line 565 8,line 209 - 234,line 554 + 234,line 559 5,line 205 - 231,line 551 + 231,line 556 2,line 202 - 227,line 543 - 224,line 540 - 221,line 535 - 217,line 528 - 214,line 523 - 211,line 520 - 207,line 515 - 197,line 500 - 204,line 509 - 194,line 493 - 201,line 506 - 191,line 488 - 187,line 482 - 184,line 477 - 181,line 474 - 177,line 466 - 174,line 463 - 171,line 458 - 167,line 452 - 164,line 449 - 161,line 444 - 157,line 436 - 154,line 433 - 151,line 427 - 147,line 423 - 144,line 418 - 141,line 415 - 137,line 409 - 134,line 404 - 131,line 400 - 127,line 392 - 124,line 389 - 121,line 385 - 117,line 378 - 114,line 374 - 98,line 351 - 111,line 367 - 95,line 346 - 107,line 363 - 92,line 341 - 104,line 357 - 88,line 334 - 101,line 354 - 85,line 331 - 82,line 327 - 78,line 320 - 75,line 316 - 72,line 309 - 68,line 305 - 65,line 296 - 62,line 291 - 58,line 287 - 55,line 283 - 52,line 277 - 48,line 271 - 45,line 268 - 42,line 265 - 38,line 256 - 35,line 251 - 283,line 634 - 32,line 248 - 280,line 631 - 279,line 627 - 28,line 242 - 276,line 624 - 25,line 237 - 273,line 619 + 227,line 548 + 224,line 545 + 221,line 540 + 217,line 533 + 214,line 528 + 211,line 525 + 207,line 520 + 197,line 504 + 204,line 514 + 194,line 497 + 201,line 511 + 191,line 492 + 187,line 486 + 184,line 481 + 181,line 478 + 177,line 470 + 174,line 467 + 171,line 462 + 167,line 456 + 164,line 453 + 161,line 448 + 157,line 440 + 154,line 437 + 151,line 431 + 147,line 427 + 144,line 421 + 141,line 418 + 137,line 412 + 134,line 407 + 131,line 403 + 127,line 394 + 124,line 391 + 121,line 387 + 117,line 380 + 114,line 376 + 98,line 353 + 111,line 369 + 95,line 348 + 107,line 365 + 92,line 343 + 104,line 359 + 88,line 336 + 101,line 356 + 85,line 333 + 82,line 329 + 78,line 322 + 75,line 318 + 72,line 311 + 68,line 306 + 65,line 297 + 62,line 292 + 58,line 288 + 55,line 284 + 52,line 278 + 48,line 272 + 45,line 269 + 42,line 266 + 38,line 257 + 35,line 252 + 283,line 639 + 32,line 249 + 280,line 636 + 279,line 632 + 28,line 243 + 276,line 629 + 25,line 238 + 273,line 624 22,line 232 - 270,line 614 - 269,line 613 + 270,line 619 + 269,line 618 18,line 227 - 266,line 608 + 266,line 613 15,line 222 - 263,line 603 + 263,line 608 12,line 215 - 260,line 598 - 259,line 595 - 256,line 590 - 253,line 587 - 250,line 584 - 249,line 579 - 246,line 576 - 243,line 569 - 240,line 566 - 239,line 562 - 236,line 558 + 260,line 603 + 259,line 600 + 256,line 595 + 253,line 592 + 250,line 589 + 249,line 584 + 246,line 581 + 243,line 574 + 240,line 571 + 239,line 567 + 236,line 563 7,line 207 - 233,line 553 + 233,line 558 4,line 204 - 230,line 548 - 229,line 547 + 230,line 553 + 229,line 552 1,line 201 - 226,line 542 - 223,line 539 - 220,line 534 - 219,line 530 - 216,line 527 - 213,line 522 - 210,line 519 - 209,line 518 - 199,line 502 - 206,line 514 - 196,line 497 - 203,line 508 - 193,line 492 - 200,line 503 - 190,line 485 - 189,line 484 - 186,line 481 - 183,line 476 - 180,line 473 - 179,line 470 - 176,line 465 - 173,line 460 - 170,line 457 - 169,line 456 - 166,line 451 - 163,line 446 - 160,line 443 - 159,line 440 - 156,line 435 - 153,line 430 - 149,line 425 - 150,line 426 - 146,line 422 - 143,line 417 - 139,line 412 - 140,line 414 - 136,line 408 - 133,line 403 - 129,line 397 - 130,line 399 - 126,line 391 - 123,line 388 - 119,line 382 - 120,line 383 - 116,line 377 - 113,line 373 - 97,line 350 - 109,line 365 - 110,line 366 - 94,line 345 - 106,line 360 - 91,line 340 - 103,line 356 - 87,line 333 - 100,line 353 - 84,line 330 - 81,line 325 - 77,line 319 - 74,line 315 + 226,line 547 + 223,line 544 + 220,line 539 + 219,line 535 + 216,line 532 + 213,line 527 + 210,line 524 + 209,line 523 + 199,line 507 + 206,line 519 + 196,line 501 + 203,line 513 + 193,line 496 + 200,line 508 + 190,line 489 + 189,line 488 + 186,line 485 + 183,line 480 + 180,line 477 + 179,line 474 + 176,line 469 + 173,line 464 + 170,line 461 + 169,line 460 + 166,line 455 + 163,line 450 + 160,line 447 + 159,line 444 + 156,line 439 + 153,line 434 + 149,line 429 + 150,line 430 + 146,line 426 + 143,line 420 + 139,line 415 + 140,line 417 + 136,line 411 + 133,line 406 + 129,line 400 + 130,line 402 + 126,line 393 + 123,line 390 + 119,line 384 + 120,line 385 + 116,line 379 + 113,line 375 + 97,line 352 + 109,line 367 + 110,line 368 + 94,line 347 + 106,line 362 + 91,line 342 + 103,line 358 + 87,line 335 + 100,line 355 + 84,line 332 + 81,line 327 + 77,line 321 + 74,line 317 21,e 1 - 71,line 308 - 67,line 301 - 64,line 295 - 61,line 290 - 57,line 285 - 54,line 281 - 51,line 276 - 47,line 270 - 44,line 267 + 71,line 310 + 67,line 302 + 64,line 296 + 61,line 291 + 57,line 286 + 54,line 282 + 51,line 277 + 47,line 271 + 44,line 268 } array set plot::lr1_table { @@ -4901,42 +4901,42 @@ 275,title integer 448,t 1 361,title SCROSS - 454,line 637 + 454,line 642 446,title {} 274,t 0 - 451,line 617 - 447,line 597 + 451,line 622 + 447,line 602 274,title ITALIC 326,t 0 359,title SCALE 360,title SCATTER - 444,line 575 + 444,line 580 368,t 0 445,title {} - 441,line 557 + 441,line 562 421,t 1 273,title ROMAN - 437,line 532 + 437,line 537 358,title SAVE - 434,line 505 + 434,line 510 444,title {} 288,t 0 - 431,line 491 + 431,line 495 341,t 0 272,title BOLD - 427,line 468 + 427,line 472 357,title ROW 383,t 0 - 424,line 448 + 424,line 452 Y,title {} 443,title {} - 421,line 432 + 421,line 436 435,t 1 271,title NORMAL - 417,line 362 + 417,line 364 261,t 0 356,title RIGHT - 414,line 312 + 414,line 314 X,title {} 313,t 0 442,title {} @@ -5063,7 +5063,7 @@ 274,line 25 452,t 1 428,title {} - Y,line 568 + Y,line 573 271,line 22 277,t 0 267,line 18 @@ -5101,18 +5101,18 @@ 422,title {} 331,t 0 373,t 0 - 453,line 630 + 453,line 635 X,t 0 335,title NAME 425,t 1 - 450,line 611 - 449,line 607 + 450,line 616 + 449,line 612 421,title {} - 446,line 593 + 446,line 598 303,t 0 293,t 0 257 YES_ - 443,line 571 + 443,line 576 258 NO_ 259 ON_ 260 OFF_ @@ -5124,22 +5124,22 @@ 345,t 0 419,title {} 420,title {} - 439,line 546 - 440,line 550 + 439,line 551 + 440,line 555 265 FONTSLANT_ 266 FONTSTYLE_ 267 FONTWEIGHT_ 268 TIMES_ 270 COURIER_ 269 HELVETICA_ - 436,line 525 + 436,line 530 271 NORMAL_ 387,t 0 272 BOLD_ 273 ROMAN_ 274 ITALIC_ 275 INT_ - 433,line 499 + 433,line 503 276 REAL_ 333,title MIN 277 STRING_ @@ -5150,15 +5150,15 @@ 279 ADD_ 281 AUTO_ 418,title {} - 429,line 479 - 430,line 487 + 429,line 483 + 430,line 491 282 AXIS_ 283 BACKGROUND_ 265,t 0 284 BACKUP_ 285 BAR_ 286 BORDER_ - 426,line 462 + 426,line 466 287 BOTTOM_ 288 CAP_ 300 DATA_ @@ -5169,7 +5169,7 @@ 291 CLEAR_ 302 DELETE_ 292 CLOSE_ - 423,line 442 + 423,line 446 303 DESTINATION_ 293 COLOR_ 332,title MAX @@ -5184,8 +5184,8 @@ 297 CUBIC_ 307 ERROR_ 417,title {} - 419,line 396 - 420,line 420 + 419,line 399 + 420,line 424 298 CURRENT_ 308 EXPORT_ 299 DASH_ @@ -5195,7 +5195,7 @@ 312 FILL_ 313 FLIP_ 412,t 1 - 416,line 349 + 416,line 351 314 FOREGROUND_ 315 FORMAT_ 316 GRAPH_ @@ -5427,7 +5427,7 @@ 389,t 0 390,t 0 400,t 0 - y,line 567 + y,line 572 316,line 73 442,t 1 313,line 69 @@ -5466,7 +5466,7 @@ 273,line 24 376,t 0 317,title GRAY - X,line 566 + X,line 571 270,line 21 269,line 20 393,title PNG @@ -5511,43 +5511,43 @@ 386,title XYEY 297,t 0 307,t 0 - 452,line 623 + 452,line 628 349,t 0 350,t 0 299,title DASH 309,title FAMILY 310,title FILE - 448,line 602 + 448,line 607 385,title XYEX 392,t 0 402,t 0 - 445,line 583 + 445,line 588 444,t 1 - 442,line 565 + 442,line 570 298,title CURRENT 270,t 0 269,t 0 308,title EXPORT - 438,line 537 + 438,line 542 384,title XY 322,t 0 - 435,line 511 + 435,line 516 364,t 0 - 432,line 495 + 432,line 499 297,title CUBIC 307,title ERROR - 428,line 472 + 428,line 476 416,t 1 383,title ZOOM - 425,line 455 - 422,line 438 + 425,line 459 + 422,line 442 284,t 0 296,title CROSS 306,title EPS - 418,line 370 + 418,line 372 382,title WIDTH 336,t 0 - 415,line 343 + 415,line 345 378,t 0 412,line 231 295,title COMMAND @@ -5630,7 +5630,7 @@ 318,line 75 324,t 0 372,title STEP - x,line 565 + x,line 570 315,line 72 366,t 0 312,line 68 diff -Nru saods9-8.2+repack/ds9/parsers/prismlex.fcl saods9-8.3+repack/ds9/parsers/prismlex.fcl --- saods9-8.2+repack/ds9/parsers/prismlex.fcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/prismlex.fcl 2021-11-08 15:46:07.000000000 +0000 @@ -10,6 +10,7 @@ clear {return $CLEAR_} close {return $CLOSE_} current {return $CURRENT_} +export {return $EXPORT_} ext {return $EXT_} extension {return $EXT_} first {return $FIRST_} @@ -35,14 +36,10 @@ xyey {return $XYEY_} xyexey {return $XYEXEY_} -vot {return $VOT_} -xml {return $XML_} -starbase {return $STARBASE_} -sb {return $SB_} -rdb {return $RDB_} -csv {return $CSV_} -tsv {return $TSV_} +vot {return $VOT_} +xml {return $XML_} +#include reader.fin #include numeric.fin #include string.fin #include ws.fin diff -Nru saods9-8.2+repack/ds9/parsers/prismlex.tcl saods9-8.3+repack/ds9/parsers/prismlex.tcl --- saods9-8.2+repack/ds9/parsers/prismlex.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/prismlex.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -179,39 +179,40 @@ variable done_ variable state_table_ -set INT_ 257 -set REAL_ 258 -set STRING_ 259 -set CLEAR_ 260 -set CLOSE_ 261 -set CURRENT_ 262 -set EXT_ 263 -set FIRST_ 264 -set GOTO_ 265 -set HISTOGRAM_ 266 -set IMAGE_ 267 -set IMPORT_ 268 -set LAST_ 269 -set LOAD_ 270 -set MODE_ 271 -set NEXT_ 272 -set OPEN_ 273 -set PLOT_ 274 -set PREV_ 275 -set NEWPLOT_ 276 -set NEWGRAPH_ 277 -set OVERPLOT_ 278 -set XY_ 279 -set XYEX_ 280 -set XYEY_ 281 -set XYEXEY_ 282 -set VOT_ 283 -set XML_ 284 -set SB_ 285 -set STARBASE_ 286 -set RDB_ 287 -set CSV_ 288 -set TSV_ 289 +set RDB_ 257 +set SB_ 258 +set STARBASE_ 259 +set CSV_ 260 +set TSV_ 261 +set INT_ 262 +set REAL_ 263 +set STRING_ 264 +set CLEAR_ 265 +set CLOSE_ 266 +set CURRENT_ 267 +set EXPORT_ 268 +set EXT_ 269 +set FIRST_ 270 +set GOTO_ 271 +set HISTOGRAM_ 272 +set IMAGE_ 273 +set IMPORT_ 274 +set LAST_ 275 +set LOAD_ 276 +set MODE_ 277 +set NEXT_ 278 +set OPEN_ 279 +set PLOT_ 280 +set PREV_ 281 +set NEWPLOT_ 282 +set NEWGRAPH_ 283 +set OVERPLOT_ 284 +set XY_ 285 +set XYEX_ 286 +set XYEY_ 287 +set XYEXEY_ 288 +set VOT_ 289 +set XML_ 290 while {1} { if {[string length $yy_current_buffer] - $index_ < 1024} { @@ -254,272 +255,279 @@ set yyleng [string length $yytext] set matched_rule 2 } - # rule 3: ext - if {[regexp -start $index_ -indices -line -nocase -- {\A(ext)} $yy_current_buffer match] > 0 && \ + # rule 3: export + if {[regexp -start $index_ -indices -line -nocase -- {\A(export)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 3 } - # rule 4: extension - if {[regexp -start $index_ -indices -line -nocase -- {\A(extension)} $yy_current_buffer match] > 0 && \ + # rule 4: ext + if {[regexp -start $index_ -indices -line -nocase -- {\A(ext)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 4 } - # rule 5: first - if {[regexp -start $index_ -indices -line -nocase -- {\A(first)} $yy_current_buffer match] > 0 && \ + # rule 5: extension + if {[regexp -start $index_ -indices -line -nocase -- {\A(extension)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 5 } - # rule 6: goto - if {[regexp -start $index_ -indices -line -nocase -- {\A(goto)} $yy_current_buffer match] > 0 && \ + # rule 6: first + if {[regexp -start $index_ -indices -line -nocase -- {\A(first)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 6 } - # rule 7: histogram - if {[regexp -start $index_ -indices -line -nocase -- {\A(histogram)} $yy_current_buffer match] > 0 && \ + # rule 7: goto + if {[regexp -start $index_ -indices -line -nocase -- {\A(goto)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 7 } - # rule 8: image - if {[regexp -start $index_ -indices -line -nocase -- {\A(image)} $yy_current_buffer match] > 0 && \ + # rule 8: histogram + if {[regexp -start $index_ -indices -line -nocase -- {\A(histogram)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 8 } - # rule 9: import - if {[regexp -start $index_ -indices -line -nocase -- {\A(import)} $yy_current_buffer match] > 0 && \ + # rule 9: image + if {[regexp -start $index_ -indices -line -nocase -- {\A(image)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 9 } - # rule 10: last - if {[regexp -start $index_ -indices -line -nocase -- {\A(last)} $yy_current_buffer match] > 0 && \ + # rule 10: import + if {[regexp -start $index_ -indices -line -nocase -- {\A(import)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 10 } - # rule 11: load - if {[regexp -start $index_ -indices -line -nocase -- {\A(load)} $yy_current_buffer match] > 0 && \ + # rule 11: last + if {[regexp -start $index_ -indices -line -nocase -- {\A(last)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 11 } - # rule 12: mode - if {[regexp -start $index_ -indices -line -nocase -- {\A(mode)} $yy_current_buffer match] > 0 && \ + # rule 12: load + if {[regexp -start $index_ -indices -line -nocase -- {\A(load)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 12 } - # rule 13: next - if {[regexp -start $index_ -indices -line -nocase -- {\A(next)} $yy_current_buffer match] > 0 && \ + # rule 13: mode + if {[regexp -start $index_ -indices -line -nocase -- {\A(mode)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 13 } - # rule 14: open - if {[regexp -start $index_ -indices -line -nocase -- {\A(open)} $yy_current_buffer match] > 0 && \ + # rule 14: next + if {[regexp -start $index_ -indices -line -nocase -- {\A(next)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 14 } - # rule 15: plot - if {[regexp -start $index_ -indices -line -nocase -- {\A(plot)} $yy_current_buffer match] > 0 && \ + # rule 15: open + if {[regexp -start $index_ -indices -line -nocase -- {\A(open)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 15 } - # rule 16: prev - if {[regexp -start $index_ -indices -line -nocase -- {\A(prev)} $yy_current_buffer match] > 0 && \ + # rule 16: plot + if {[regexp -start $index_ -indices -line -nocase -- {\A(plot)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 16 } - # rule 17: previous - if {[regexp -start $index_ -indices -line -nocase -- {\A(previous)} $yy_current_buffer match] > 0 && \ + # rule 17: prev + if {[regexp -start $index_ -indices -line -nocase -- {\A(prev)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 17 } - # rule 18: newplot - if {[regexp -start $index_ -indices -line -nocase -- {\A(newplot)} $yy_current_buffer match] > 0 && \ + # rule 18: previous + if {[regexp -start $index_ -indices -line -nocase -- {\A(previous)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 18 } - # rule 19: newgraph - if {[regexp -start $index_ -indices -line -nocase -- {\A(newgraph)} $yy_current_buffer match] > 0 && \ + # rule 19: newplot + if {[regexp -start $index_ -indices -line -nocase -- {\A(newplot)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 19 } - # rule 20: overplot - if {[regexp -start $index_ -indices -line -nocase -- {\A(overplot)} $yy_current_buffer match] > 0 && \ + # rule 20: newgraph + if {[regexp -start $index_ -indices -line -nocase -- {\A(newgraph)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 20 } - # rule 21: xy - if {[regexp -start $index_ -indices -line -nocase -- {\A(xy)} $yy_current_buffer match] > 0 && \ + # rule 21: overplot + if {[regexp -start $index_ -indices -line -nocase -- {\A(overplot)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 21 } - # rule 22: xyex - if {[regexp -start $index_ -indices -line -nocase -- {\A(xyex)} $yy_current_buffer match] > 0 && \ + # rule 22: xy + if {[regexp -start $index_ -indices -line -nocase -- {\A(xy)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 22 } - # rule 23: xyey - if {[regexp -start $index_ -indices -line -nocase -- {\A(xyey)} $yy_current_buffer match] > 0 && \ + # rule 23: xyex + if {[regexp -start $index_ -indices -line -nocase -- {\A(xyex)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 23 } - # rule 24: xyexey - if {[regexp -start $index_ -indices -line -nocase -- {\A(xyexey)} $yy_current_buffer match] > 0 && \ + # rule 24: xyey + if {[regexp -start $index_ -indices -line -nocase -- {\A(xyey)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 24 } - # rule 25: vot - if {[regexp -start $index_ -indices -line -nocase -- {\A(vot)} $yy_current_buffer match] > 0 && \ + # rule 25: xyexey + if {[regexp -start $index_ -indices -line -nocase -- {\A(xyexey)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 25 } - # rule 26: xml - if {[regexp -start $index_ -indices -line -nocase -- {\A(xml)} $yy_current_buffer match] > 0 && \ + # rule 26: vot + if {[regexp -start $index_ -indices -line -nocase -- {\A(vot)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 26 } - # rule 27: starbase - if {[regexp -start $index_ -indices -line -nocase -- {\A(starbase)} $yy_current_buffer match] > 0 && \ + # rule 27: xml + if {[regexp -start $index_ -indices -line -nocase -- {\A(xml)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 27 } - # rule 28: sb - if {[regexp -start $index_ -indices -line -nocase -- {\A(sb)} $yy_current_buffer match] > 0 && \ + # rule 28: rdb + if {[regexp -start $index_ -indices -line -nocase -- {\A(rdb)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 28 } - # rule 29: rdb - if {[regexp -start $index_ -indices -line -nocase -- {\A(rdb)} $yy_current_buffer match] > 0 && \ + # rule 29: sb + if {[regexp -start $index_ -indices -line -nocase -- {\A(sb)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 29 } - # rule 30: csv - if {[regexp -start $index_ -indices -line -nocase -- {\A(csv)} $yy_current_buffer match] > 0 && \ + # rule 30: starbase + if {[regexp -start $index_ -indices -line -nocase -- {\A(starbase)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 30 } - # rule 31: tsv - if {[regexp -start $index_ -indices -line -nocase -- {\A(tsv)} $yy_current_buffer match] > 0 && \ + # rule 31: csv + if {[regexp -start $index_ -indices -line -nocase -- {\A(csv)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 31 } - # rule 32: [+-]?{D}+ - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+)} $yy_current_buffer match] > 0 && \ + # rule 32: tsv + if {[regexp -start $index_ -indices -line -nocase -- {\A(tsv)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 32 } - # rule 33: [+-]?{D}+\.?({E})? - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+\.?(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ + # rule 33: [+-]?{D}+ + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 33 } - # rule 34: [+-]?{D}*\.{D}+({E})? - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])*\.([0-9])+(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ + # rule 34: [+-]?{D}+\.?({E})? + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+\.?(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 34 } - # rule 35: \"[^\"]*\" - if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ + # rule 35: [+-]?{D}*\.{D}+({E})? + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])*\.([0-9])+(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 35 } - # rule 36: \'[^\']*\' - if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ + # rule 36: \"[^\"]*\" + if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 36 } - # rule 37: \{[^\}]*\} - if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ + # rule 37: \'[^\']*\' + if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 37 } - # rule 38: \S+\S+ - if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ + # rule 38: \{[^\}]*\} + if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 38 } - # rule 39: \s - if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ + # rule 39: \S+\S+ + if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 39 } - # rule 40: . - if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + # rule 40: \s + if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 40 } + # rule 41: . + if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 41 + } if {$matched_rule == -1} { set yytext [string index $yy_current_buffer $index_] set yyleng 1 @@ -542,101 +550,101 @@ return $CURRENT_ } 3 { -return $EXT_ +return $EXPORT_ } 4 { return $EXT_ } 5 { -return $FIRST_ +return $EXT_ } 6 { -return $GOTO_ +return $FIRST_ } 7 { -return $HISTOGRAM_ +return $GOTO_ } 8 { -return $IMAGE_ +return $HISTOGRAM_ } 9 { -return $IMPORT_ +return $IMAGE_ } 10 { -return $LAST_ +return $IMPORT_ } 11 { -return $LOAD_ +return $LAST_ } 12 { -return $MODE_ +return $LOAD_ } 13 { -return $NEXT_ +return $MODE_ } 14 { -return $OPEN_ +return $NEXT_ } 15 { -return $PLOT_ +return $OPEN_ } 16 { -return $PREV_ +return $PLOT_ } 17 { return $PREV_ } 18 { -return $NEWPLOT_ +return $PREV_ } 19 { -return $NEWGRAPH_ +return $NEWPLOT_ } 20 { -return $OVERPLOT_ +return $NEWGRAPH_ } 21 { -return $XY_ +return $OVERPLOT_ } 22 { -return $XYEX_ +return $XY_ } 23 { -return $XYEY_ +return $XYEX_ } 24 { -return $XYEXEY_ +return $XYEY_ } 25 { -return $VOT_ +return $XYEXEY_ } 26 { -return $XML_ +return $VOT_ } 27 { -return $STARBASE_ +return $XML_ } 28 { -return $SB_ +return $RDB_ } 29 { -return $RDB_ +return $SB_ } 30 { -return $CSV_ +return $STARBASE_ } 31 { -return $TSV_ +return $CSV_ } 32 { -set yylval $yytext; return $INT_ +return $TSV_ } - 33 - - 34 { -set yylval $yytext; return $REAL_ + 33 { +set yylval $yytext; return $INT_ } + 34 - 35 { -set yylval [string range $yytext 1 end-1]; return $STRING_ +set yylval $yytext; return $REAL_ } 36 { set yylval [string range $yytext 1 end-1]; return $STRING_ @@ -645,12 +653,15 @@ set yylval [string range $yytext 1 end-1]; return $STRING_ } 38 { -set yylval $yytext; return $STRING_ +set yylval [string range $yytext 1 end-1]; return $STRING_ } 39 { -# ignore whitespace +set yylval $yytext; return $STRING_ } 40 { +# ignore whitespace + } + 41 { set yylval $yytext; return $yylval } default diff -Nru saods9-8.2+repack/ds9/parsers/prismparser.tab.tcl saods9-8.3+repack/ds9/parsers/prismparser.tab.tcl --- saods9-8.2+repack/ds9/parsers/prismparser.tab.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/prismparser.tab.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,33 +1,34 @@ -set INT_ 257 -set REAL_ 258 -set STRING_ 259 -set CLEAR_ 260 -set CLOSE_ 261 -set CURRENT_ 262 -set EXT_ 263 -set FIRST_ 264 -set GOTO_ 265 -set HISTOGRAM_ 266 -set IMAGE_ 267 -set IMPORT_ 268 -set LAST_ 269 -set LOAD_ 270 -set MODE_ 271 -set NEXT_ 272 -set OPEN_ 273 -set PLOT_ 274 -set PREV_ 275 -set NEWPLOT_ 276 -set NEWGRAPH_ 277 -set OVERPLOT_ 278 -set XY_ 279 -set XYEX_ 280 -set XYEY_ 281 -set XYEXEY_ 282 -set VOT_ 283 -set XML_ 284 -set SB_ 285 -set STARBASE_ 286 -set RDB_ 287 -set CSV_ 288 -set TSV_ 289 +set RDB_ 257 +set SB_ 258 +set STARBASE_ 259 +set CSV_ 260 +set TSV_ 261 +set INT_ 262 +set REAL_ 263 +set STRING_ 264 +set CLEAR_ 265 +set CLOSE_ 266 +set CURRENT_ 267 +set EXPORT_ 268 +set EXT_ 269 +set FIRST_ 270 +set GOTO_ 271 +set HISTOGRAM_ 272 +set IMAGE_ 273 +set IMPORT_ 274 +set LAST_ 275 +set LOAD_ 276 +set MODE_ 277 +set NEXT_ 278 +set OPEN_ 279 +set PLOT_ 280 +set PREV_ 281 +set NEWPLOT_ 282 +set NEWGRAPH_ 283 +set OVERPLOT_ 284 +set XY_ 285 +set XYEX_ 286 +set XYEY_ 287 +set XYEXEY_ 288 +set VOT_ 289 +set XML_ 290 diff -Nru saods9-8.2+repack/ds9/parsers/prismparser.tac saods9-8.3+repack/ds9/parsers/prismparser.tac --- saods9-8.2+repack/ds9/parsers/prismparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/prismparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -2,6 +2,7 @@ %} #include def.tin +#include reader.tin #include numeric.tin #include string.tin @@ -10,6 +11,7 @@ %token CLEAR_ %token CLOSE_ %token CURRENT_ +%token EXPORT_ %token EXT_ %token FIRST_ %token GOTO_ @@ -35,11 +37,6 @@ %token VOT_ %token XML_ -%token SB_ -%token STARBASE_ -%token RDB_ -%token CSV_ -%token TSV_ %% @@ -53,7 +50,10 @@ | OPEN_ {PrismDialogLoad prism} | STRING_ {PrismCmdLoad $1} | LOAD_ STRING_ {ProcessCmdCVAROpt PrismLoad $2} + | IMPORT_ reader STRING_ {PrismCmdImport $3 $2} + | EXPORT_ writer STRING_ {TBLCmdSave $3 $2} + | CLOSE_ {ProcessCmdCVAR0 PrismDestroy} | CLEAR_ {ProcessCmdCVAR0 PrismClear} | EXT_ ext @@ -100,15 +100,24 @@ | 'Z' {set _ $1} ; -reader : XML_ {set _ VOTRead} - | VOT_ {set _ VOTRead} +reader : VOT_ {set _ VOTRead} + | XML_ {set _ VOTRead} | RDB_ {set _ starbase_read} | SB_ {set _ starbase_read} | STARBASE_ {set _ starbase_read} | CSV_ {set _ TSVRead} | TSV_ {set _ TSVRead} ; - + +writer : VOT_ {set _ VOTWrite} + | XML_ {set _ VOTWrite} + | RDB_ {set _ starbase_write} + | SB_ {set _ starbase_write} + | STARBASE_ {set _ starbase_write} + | CSV_ {set _ TSVWrite} + | TSV_ {set _ TSVWrite} + ; + %% proc prism::yyerror {msg} { diff -Nru saods9-8.2+repack/ds9/parsers/prismparser.tcl saods9-8.3+repack/ds9/parsers/prismparser.tcl --- saods9-8.2+repack/ds9/parsers/prismparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/prismparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -61,965 +61,1050 @@ } array set prism::table { - 30:281 reduce - 29:281 reduce - 30:282 reduce - 29:282 reduce - 16:X shift - 50:259,target 54 - 49:259,target 31 - 31:y,target 35 - 16:Y shift - 17:259 reduce - 56:257 reduce - 26:257,target 40 - 6:259,target 19 - 16:Z shift - 56:258 reduce - 56:259 reduce - 55:258,target 1 - 49:299,target 34 - 48:0 reduce - 27:Y,target 42 - 38:259,target 47 - 26:257 reduce - 6:259 reduce - 27:281,target 42 - 26:259 reduce - 59:298 goto - 0:275,target 17 - 6:0,target 19 - 59:299 goto + 40:285,target 36 + 39:285,target 42 + 7:264,target 20 + 47:264 reduce + 38:y,target 40 + 58:Y,target 35 + 37:X reduce + 43:Y,target 37 + 40:264,target 36 + 39:264,target 42 + 37:Y reduce + 37:Z reduce + 35:Y,target 41 + 9:300 goto + 17:264 shift + 58:X shift + 35:288,target 41 + 58:Y shift + 70:0 reduce + 58:Z shift + 56:264 reduce + 6:262 shift + 28:264,target 52 + 0:275,target 12 + 74:264,target 32 + 38:285 reduce 2:0 reduce - 27:259,target 42 - 25:z,target 38 - 64:0,target 31 - 53:Z,target 27 - 56:0,target 2 - 24:0 reduce - 48:0,target 16 + 6:264 shift + 9:296 goto + 63:285,target 68 + 38:286 reduce + 72:0,target 31 + 38:287 reduce + 26:264 reduce + 65:262 reduce + 64:0,target 5 + 38:288 reduce + 9:299 goto + 17:z,target 39 + 65:263 reduce + 56:0,target 16 + 11:261,target 48 + 65:264 reduce + 37:Z,target 38 34:X reduce - 35:259 reduce + 9:300,target 43 + 17:264,target 40 + 63:264,target 40 + 41:0,target 18 34:Y reduce - 30:Z,target 41 - 29:Z,target 39 - 45:0 reduce + 40:262,target 36 + 39:262,target 42 34:Z reduce - 16:259,target 31 - 19:292,target 50 - 62:259,target 30 - 17:0,target 21 - 34:282,target 36 - 16:299,target 34 - 0:273,target 15 - 44:259 reduce - 8:X shift - 51:259,target 26 - 8:Y shift - 27:257,target 42 - 26:280 reduce - 26:279 reduce - 25:x,target 38 - 8:Z shift - 53:X,target 25 - 26:281 reduce + 33:0,target 24 + 35:262 reduce + 0:294,target 20 + 35:286,target 41 + 66:0 reduce + 35:264 reduce + 10:0,target 15 + 52:264,target 9 + 74:264 reduce + 0:273,target 10 + 69:286,target 71 + 17:300 goto + 17:x,target 37 21:0 reduce - 31:X reduce - 26:282 reduce - 8:y,target 29 - 56:258,target 2 - 31:Y reduce - 14:259 reduce - 31:Z reduce - 30:X,target 41 - 29:X,target 39 - 40:259,target 48 - 39:259,target 45 - 16:x shift - 53:259 shift - 28:281,target 37 - 16:y shift - 16:z shift - 3:259 reduce - 34:280,target 36 - 34:279,target 36 - 28:259,target 37 - 27:y,target 42 - 0:271,target 13 - 23:259 reduce - 51:257,target 55 - 62:259 reduce - 7:257,target 24 - 17:0 reduce - 27:X reduce - 27:Y reduce - 27:Z reduce - 16:Y,target 26 - 17:259,target 21 - 53:z,target 30 - 32:259 reduce + 44:264 reduce + 41:264,target 18 + 11:258,target 45 + 37:X,target 38 + 36:288,target 43 + 0:292,target 19 + 58:y,target 38 + 6:295,target 32 + 37:x reduce + 30:264,target 25 + 29:264,target 60 + 17:297 goto + 43:y,target 37 + 37:y reduce + 53:264 reduce + 37:z reduce + 35:y,target 41 + 17:299 goto + 63:Y,target 35 + 58:x shift + 0:271,target 8 + 8:262,target 33 + 58:y shift + 6:295 goto + 58:z shift + 35:285 reduce + 3:264 reduce + 40:Y,target 36 + 39:Y,target 42 + 35:286 reduce + 18:264,target 22 + 35:287 reduce + 23:264 reduce + 35:288 reduce + 62:264 reduce + 36:286,target 43 60:0 reduce - 3:0,target 11 + 3:0,target 12 + 69:X shift + 53:264,target 33 + 37:z,target 38 34:x reduce + 17:299,target 58 + 69:Y shift + 63:299,target 69 34:y reduce - 30:z,target 41 - 29:z,target 39 + 9:264,target 40 + 69:Z shift + 68:0,target 29 34:z reduce - 61:0,target 29 - 53:279 shift - 52:259,target 10 - 49:Z,target 27 - 28:257,target 37 - 0:268,target 10 - 8:259,target 31 - 45:0,target 33 - 34:Z,target 36 - 41:259 reduce - 26:Z,target 40 - 14:0 reduce - 57:258,target 56 - 8:299,target 34 - 22:0,target 25 - 41:259,target 49 - 8:x shift - 14:0,target 20 - 30:281,target 41 - 29:281,target 39 - 8:y shift - 8:z shift - 11:259 reduce + 32:264 reduce + 14:282 shift + 61:0,target 27 + 14:283 shift + 53:0,target 33 + 0:268,target 5 + 14:284 shift + 71:264 reduce + 34:Z,target 39 + 61:291,target 67 + 30:0,target 25 + 37:288,target 38 + 11:257 shift + 41:264 reduce + 11:258 shift + 11:259 shift + 11:260 shift 56:0 reduce - 53:x,target 28 - 31:x reduce - 50:259 shift - 49:259 shift - 31:y reduce - 31:z reduce - 30:x,target 41 - 30:259,target 41 - 29:x,target 39 - 29:259,target 39 - 10:300,target 42 - 10:289,target 41 - 49:X,target 25 - 0:260 shift - 0:259 shift - 0:266,target 8 - 0:261 shift - 9:0 reduce - 34:X,target 36 - 0:262 shift - 11:0 reduce - 19:259 reduce - 20:259 reduce - 53:298 goto - 26:X,target 40 - 0:263 shift - 53:299 goto + 43:287,target 37 + 31:264,target 26 + 11:261 shift + 37:x,target 38 + 17:297,target 57 + 14:298 goto + 50:264 reduce + 49:264 reduce + 0:266,target 3 + 20:264,target 4 + 65:264,target 1 + 34:X,target 39 + 42:262,target 61 0:264 shift - 64:259,target 31 - 58:259 reduce + 63:y,target 38 + 37:286,target 38 32:0 reduce 0:265 shift + 9:Y,target 35 0:266 shift + 14:284,target 55 + 20:264 reduce 0:267 shift - 28:257 reduce + 54:264,target 34 + 53:0 reduce + 40:y,target 36 + 39:y,target 42 0:268 shift - 8:259 shift - 27:x reduce - 0:269 shift + 63:X shift + 58:264 shift + 43:285,target 37 0:270 shift - 59:Y,target 26 - 28:259 reduce - 27:y reduce + 0:269 shift + 63:Y shift 0:271 shift - 53:259,target 31 - 27:z reduce + 8:262 shift + 74:0 reduce + 63:Z shift 0:272 shift - 16:y,target 29 - 30:257,target 41 - 29:257,target 39 0:273 shift - 9:259,target 14 + 36:Y,target 43 0:274 shift - 10:287,target 39 - 28:Y,target 37 - 25:282,target 38 + 43:264,target 37 + 28:264 reduce 0:275 shift - 6:0 reduce - 53:299,target 34 - 0:264,target 6 - 42:259,target 52 - 49:z,target 30 - 37:259 reduce - 31:281,target 35 + 69:x shift + 67:262 shift + 0:264,target 1 + 0:276 shift + 69:y shift + 67:263 shift + 65:262,target 1 + 38:288,target 40 + 0:277 shift + 9:299,target 42 + 17:X shift + 69:z shift + 0:278 shift + 17:Y shift + 0:280 shift + 0:279 shift + 7:0,target 20 + 17:Z shift + 38:X reduce + 0:281 shift 0:0,target 6 - 8:295,target 32 - 34:z,target 36 - 26:z,target 40 - 59:X shift - 59:Y shift - 31:259,target 35 - 13:277,target 45 - 59:Z shift - 31:Z,target 35 - 46:259 reduce + 69:Z,target 36 + 38:Y reduce + 37:262 reduce + 34:z,target 39 + 32:264,target 14 + 14:282,target 53 + 38:Z reduce + 11:289 shift + 11:290 shift + 65:0,target 1 + 37:264 reduce + 11:301 goto + 73:288,target 74 + 57:0,target 17 + 71:0 reduce + 38:Z,target 40 + 11:289,target 49 + 11:290,target 50 + 21:264,target 19 + 66:264,target 2 3:0 reduce - 10:285,target 37 - 28:280 reduce - 28:279 reduce - 0:291 goto - 18:0,target 0 - 25:279,target 38 - 25:280,target 38 - 28:281 reduce - 0:262,target 4 - 11:0,target 22 - 19:259,target 4 - 20:259,target 18 - 28:282 reduce - 0:293 goto - 16:259 shift - 19:292 goto - 55:257 reduce - 49:x,target 28 - 49:298 goto - 55:258 reduce - 49:299 goto - 55:259 reduce - 46:0 reduce - 34:x,target 36 - 59:280,target 61 - 26:x,target 40 + 43:262,target 37 + 18:0,target 22 + 0:292 goto + 46:264 reduce + 38:286,target 40 + 0:294 goto + 58:300 goto + 35:X reduce + 10:264,target 15 + 20:293 goto + 55:264,target 35 + 35:Y reduce + 5:261,target 26 + 69:X,target 34 + 35:Z reduce + 34:x,target 39 5:257 shift - 31:257,target 35 + 16:264 reduce + 5:258 shift + 61:263,target 66 5:259 shift - 25:257 reduce - 31:X,target 35 - 26:282,target 40 - 25:259 reduce + 5:260 shift + 9:y,target 38 + 55:264 reduce + 38:X,target 40 + 0:281,target 18 + 5:261 shift + 44:264,target 46 + 1:264,target 8 0:0 reduce - 8:295 goto - 10:283,target 35 - 64:259 reduce - 59:y,target 29 - 43:259,target 9 - 0:260,target 2 - 0:259,target 1 - 8:298 goto - 59:298,target 63 - 8:299 goto - 22:0 reduce - 34:257 reduce - 28:y,target 37 - 43:0 reduce - 34:259 reduce - 53:X shift - 32:259,target 17 - 53:Y shift + 67:291 goto + 66:262,target 2 + 63:x shift + 58:299 goto + 40:288,target 36 + 39:288,target 42 + 37:285 reduce + 9:X shift + 63:y shift + 37:286 reduce + 9:Y shift + 63:z shift + 37:287 reduce + 9:Z shift + 14:298,target 56 + 25:264 reduce + 37:288 reduce + 36:y,target 43 + 33:264,target 24 + 5:258,target 23 + 17:x shift + 34:262 reduce + 17:y shift 64:0 reduce - 57:290,target 60 - 53:Z shift - 25:Y,target 38 - 26:280,target 40 - 26:279,target 40 - 8:Z,target 27 - 59:x shift - 21:259,target 24 - 59:y shift - 43:259 reduce - 59:z shift - 31:z,target 35 - 18:0 accept - 25:279 reduce - 25:280 reduce - 28:X reduce - 25:281 reduce - 62:0,target 30 - 28:Y reduce - 25:282 reduce - 54:0,target 5 - 28:Z reduce - 55:259,target 1 - 49:X shift - 46:0,target 34 - 49:Y shift - 27:Z,target 42 + 17:z shift + 38:x reduce + 34:287,target 39 + 34:264 reduce + 22:264,target 53 + 69:z,target 39 + 38:y reduce + 0:278,target 15 + 17:Y,target 35 + 38:z reduce + 40:286,target 36 + 39:286,target 42 + 38:z,target 40 + 43:262 reduce + 18:0 reduce + 70:0,target 28 + 58:Z,target 36 + 56:264,target 16 + 62:0,target 10 + 43:264 reduce + 54:0,target 34 + 43:Z,target 37 + 35:Z,target 41 61:0 reduce - 52:259 reduce - 49:Z shift - 27:282,target 42 - 16:296 goto - 23:0,target 13 - 34:280 reduce - 34:279 reduce - 15:0,target 7 - 34:281 reduce - 2:259 reduce - 16:298 goto - 44:259,target 32 - 34:282 reduce - 8:X,target 25 - 16:299 goto - 1:259,target 8 - 5:294 goto - 22:259 reduce + 31:0,target 26 + 45:264,target 47 + 35:x reduce + 5:289 shift + 5:290 shift + 13:264 shift + 35:y reduce + 34:285,target 39 + 2:264,target 13 + 15:0,target 21 + 69:x,target 37 + 67:262,target 65 + 35:z reduce + 0:276,target 13 + 5:302 goto + 52:264 reduce + 69:300,target 43 + 38:x,target 40 + 34:285 reduce + 34:264,target 39 + 2:264 reduce 15:0 reduce - 61:259 reduce - 31:x,target 35 - 25:X reduce - 25:Y reduce - 25:Z reduce - 31:257 reduce - 55:257,target 1 - 49:298,target 53 - 13:276 shift - 31:259 reduce - 27:X,target 42 - 13:277 shift - 13:278 shift - 27:280,target 42 - 27:279,target 42 - 5:294,target 23 - 22:259,target 25 - 53:x shift - 0:274,target 16 - 53:y shift - 53:z shift - 25:y,target 38 - 53:Y,target 26 - 40:259 reduce - 39:259 reduce - 8:z,target 30 - 11:259,target 22 - 56:259,target 2 - 33:257,target 51 - 30:Y,target 41 - 29:Y,target 39 + 34:286 reduce + 58:X,target 34 + 34:287 reduce + 22:264 reduce + 61:262 shift + 34:288 reduce + 9:x shift + 61:263 shift + 43:X,target 37 + 9:y shift + 61:264 reduce + 58:300,target 43 + 35:X,target 41 + 9:z shift + 20:293,target 59 + 73:288 shift + 57:0 reduce + 35:287,target 41 + 23:264,target 54 + 68:264,target 29 + 43:285 reduce + 43:286 reduce + 43:287 reduce + 31:264 reduce + 0:274,target 11 + 43:288 reduce + 12:264,target 23 + 70:264 reduce + 69:264 shift + 69:287,target 72 + 57:264,target 17 + 12:0 reduce + 34:262,target 39 + 17:y,target 38 + 11:259,target 46 + 11:260,target 47 + 40:262 reduce + 39:262 reduce + 37:Y,target 38 + 33:0 reduce + 43:X reduce + 43:Y reduce + 40:264 reduce + 39:264 reduce 54:0 reduce - 28:282,target 37 - 0:293,target 19 - 28:x reduce - 28:y reduce - 48:259 reduce - 45:259,target 33 - 28:z reduce + 46:264,target 48 + 43:Z reduce + 58:z,target 39 + 35:285,target 41 + 3:264,target 12 + 43:z,target 37 1:0,target 8 - 49:x shift - 34:281,target 36 - 2:259,target 12 - 16:298,target 49 - 49:y shift - 31:280 reduce - 31:279 reduce - 27:z,target 42 - 0:272,target 14 - 13:297 goto - 49:z shift - 31:281 reduce - 63:282,target 64 - 58:0,target 28 - 51:258,target 56 - 31:282 reduce - 51:0,target 26 - 57:257 shift - 43:0,target 9 - 34:259,target 36 - 57:258 shift - 8:x,target 28 - 56:257,target 2 - 16:Z,target 27 - 7:257 shift - 19:0,target 3 - 20:0,target 18 - 51:0 reduce - 28:280,target 37 - 28:279,target 37 - 27:257 reduce - 25:x reduce - 0:291,target 18 - 25:y reduce - 23:259,target 13 - 27:259 reduce - 25:z reduce - 16:296,target 48 - 27:x,target 42 - 0:269,target 11 - 0:270,target 12 - 10:283 shift - 12:259,target 43 - 10:284 shift - 34:257,target 36 - 10:285 shift - 36:259 reduce - 10:286 shift - 30:282,target 41 - 29:282,target 39 - 10:287 shift - 16:X,target 25 - 47:0 reduce - 10:288 shift - 53:y,target 29 - 10:300 goto - 10:289 shift - 46:259,target 34 - 3:259,target 11 - 30:y,target 41 - 29:y,target 39 - 49:Y,target 26 - 45:259 reduce + 35:z,target 41 + 5:302,target 29 + 10:264 reduce + 74:0,target 32 + 63:Z,target 36 + 0:272,target 9 + 66:0,target 2 + 35:264,target 41 + 7:0 reduce + 48:264 reduce + 40:Z,target 36 + 39:Z,target 42 + 61:291 goto + 30:0 reduce + 11:257,target 44 + 40:X reduce + 39:X reduce + 40:Y reduce + 39:Y reduce + 36:287,target 43 + 18:264 reduce + 19:0,target 0 + 20:0,target 3 + 24:264,target 55 + 70:264,target 28 + 69:264,target 40 + 40:Z reduce + 39:Z reduce + 12:0,target 23 + 69:286 shift + 69:287 shift + 58:x,target 37 + 57:264 reduce + 72:0 reduce + 69:300 goto + 43:x,target 37 + 40:285 reduce + 39:285 reduce + 35:x,target 41 + 5:289,target 27 + 5:290,target 28 + 7:264 reduce + 13:264,target 52 + 63:X,target 34 + 58:264,target 40 + 40:286 reduce + 39:286 reduce + 0:270,target 7 + 0:269,target 6 + 40:287 reduce + 39:287 reduce + 35:262,target 41 + 27:264 reduce + 66:262 reduce + 40:288 reduce + 39:288 reduce + 66:263 reduce + 40:X,target 36 + 39:X,target 42 + 66:264 reduce + 36:X reduce + 47:264,target 49 + 36:Y reduce + 69:299 goto + 36:Z reduce + 36:285,target 43 + 36:262 reduce + 4:264,target 21 + 43:288,target 37 + 36:264 reduce + 68:0 reduce + 37:y,target 38 + 43:x reduce + 43:y reduce + 36:264,target 43 + 43:z reduce 1:0 reduce - 0:267,target 9 - 35:259,target 44 - 34:Y,target 36 - 27:280 reduce - 27:279 reduce - 27:281 reduce - 26:Y,target 40 - 57:257,target 55 - 27:282 reduce - 23:0 reduce - 8:298,target 33 - 15:259 reduce - 57:290 goto - 44:0 reduce - 30:280,target 41 - 30:279,target 41 - 29:280,target 39 - 29:279,target 39 - 24:259,target 23 - 59:Z,target 27 - 4:259 shift - 16:z,target 30 - 55:0,target 1 - 47:0,target 15 - 10:288,target 40 - 24:259 reduce - 28:Z,target 37 - 58:259,target 28 - 32:0,target 17 - 0:265,target 7 - 24:0,target 23 - 19:0 reduce + 0:267,target 4 + 34:Y,target 39 + 45:264 reduce + 63:z,target 39 + 37:287,target 38 + 9:Z,target 36 + 25:264,target 56 + 71:264,target 30 + 40:z,target 36 + 39:z,target 42 + 43:286,target 37 + 15:264 reduce + 71:0,target 30 + 65:0 reduce + 40:x reduce + 39:x reduce + 60:264,target 11 + 59:264,target 64 + 55:0,target 35 + 54:264 reduce + 40:y reduce + 39:y reduce + 69:299,target 73 + 40:z reduce + 39:z reduce + 36:Z,target 43 + 36:262,target 43 + 36:285 reduce + 32:0,target 14 + 0:265,target 2 + 4:264 shift + 65:263,target 1 + 36:286 reduce + 36:287 reduce + 16:0,target 7 + 19:0 accept 20:0 reduce - 31:282,target 35 - 30:X reduce - 29:X reduce - 33:257 shift - 30:Y reduce - 29:Y reduce - 53:279,target 58 - 30:Z reduce - 29:Z reduce - 47:259,target 15 - 4:259,target 20 + 24:264 reduce + 48:264,target 50 + 36:288 reduce + 67:291,target 70 + 63:x,target 37 + 58:299,target 63 + 37:285,target 38 + 9:X,target 34 + 63:264 shift + 41:0 reduce + 14:283,target 54 + 40:x,target 36 + 39:x,target 42 62:0 reduce - 13:278,target 46 - 59:X,target 25 - 16:x,target 28 - 36:259,target 43 - 10:286,target 38 - 28:X,target 37 - 25:281,target 38 - 53:298,target 59 - 42:259 shift - 0:263,target 5 - 26:X reduce - 49:y,target 29 - 31:280,target 35 - 31:279,target 35 - 26:Y reduce - 13:297,target 47 - 26:Z reduce - 25:259,target 38 - 34:y,target 36 - 12:259 shift - 59:281,target 62 - 51:257 shift - 51:290,target 57 - 26:y,target 40 - 63:282 shift - 58:0 reduce - 51:258 shift - 51:259 reduce - 13:276,target 44 - 31:Y,target 35 - 14:259,target 20 - 60:259,target 27 - 59:259,target 31 - 1:259 reduce - 10:284,target 36 - 59:z,target 30 - 21:259 reduce - 0:261,target 3 - 9:0,target 14 - 59:299,target 34 - 2:0,target 12 - 60:259 reduce - 59:259 shift - 48:259,target 16 - 28:z,target 37 - 5:259,target 22 - 25:257,target 38 - 60:0,target 27 - 30:257 reduce - 29:257 reduce - 9:259 reduce + 37:264,target 38 + 36:x reduce + 11:301,target 51 + 36:y reduce + 33:264 reduce + 36:z reduce + 36:X,target 43 + 72:264 reduce + 38:287,target 40 + 26:264,target 57 + 16:0 reduce + 72:264,target 31 + 42:262 shift + 69:Y,target 35 + 34:y,target 39 + 15:264,target 21 + 61:264,target 27 + 9:z,target 39 + 38:Y,target 40 + 37:262,target 38 + 12:264 reduce + 63:285 shift + 66:263,target 2 + 51:264 shift + 63:300 goto + 50:264,target 45 + 49:264,target 44 + 38:285,target 40 + 1:264 reduce + 2:0,target 13 + 6:264,target 31 + 9:296,target 41 + 36:z,target 43 + 21:264 reduce + 5:259,target 24 + 5:260,target 25 + 60:0,target 11 + 60:264 reduce + 59:264 shift 55:0 reduce - 52:0,target 10 - 44:0,target 32 - 30:x reduce - 30:259 reduce - 29:x reduce - 29:259 reduce - 30:y reduce - 29:y reduce - 25:Z,target 38 - 37:259,target 46 - 30:z reduce - 29:z reduce - 26:281,target 40 - 21:0,target 24 - 59:x,target 28 - 38:259 reduce - 26:259,target 40 - 28:x,target 37 - 5:257,target 21 + 52:0,target 9 + 38:264,target 40 + 61:262,target 65 + 34:288,target 39 + 9:x,target 37 + 63:299 goto + 0:280,target 17 + 0:279,target 16 + 9:264 shift + 17:Z,target 36 + 17:300,target 43 + 21:0,target 19 + 63:300,target 43 + 30:264 reduce + 29:264 shift + 40:287,target 36 + 39:287,target 42 + 27:264,target 51 + 10:0 reduce + 68:264 reduce + 6:262,target 30 + 36:x,target 43 + 31:0 reduce + 38:262 reduce + 5:257,target 22 + 16:264,target 7 + 62:264,target 10 52:0 reduce - 59:280 shift - 26:x reduce - 59:281 shift - 51:290 goto - 26:y reduce - 15:259,target 7 - 61:259,target 29 - 26:z reduce - 25:X,target 38 - 47:259 reduce - 8:Y,target 26 - 30:280 reduce - 30:279 reduce - 29:280 reduce - 29:279 reduce + 38:264 reduce + 38:262,target 40 + 34:286,target 39 + 69:y,target 38 + 67:263,target 66 + 0:277,target 14 + 17:X,target 34 + 51:264,target 62 } array set prism::rules { - 9,l 293 - 11,l 293 + 9,l 294 + 11,l 294 32,l 297 - 6,l 293 + 53,l 302 + 6,l 294 28,l 296 - 49,l 300 - 3,l 291 - 25,l 294 - 46,l 300 - 0,l 301 - 22,l 293 + 50,l 301 + 49,l 301 + 3,l 292 + 25,l 295 + 46,l 301 + 0,l 303 + 22,l 294 43,l 300 - 18,l 293 - 40,l 299 - 39,l 299 - 15,l 293 - 36,l 298 - 12,l 293 - 33,l 297 - 7,l 293 - 29,l 296 - 30,l 296 - 4,l 292 + 18,l 294 + 40,l 300 + 39,l 300 + 15,l 294 + 36,l 299 + 57,l 302 + 12,l 294 + 33,l 298 + 54,l 302 + 7,l 294 + 29,l 297 + 30,l 297 + 51,l 302 + 4,l 293 26,l 295 - 47,l 300 - 1,l 290 - 23,l 293 - 44,l 300 - 19,l 293 - 20,l 293 - 41,l 299 - 16,l 293 + 47,l 301 + 1,l 291 + 23,l 294 + 44,l 301 + 19,l 294 + 20,l 294 + 41,l 300 + 16,l 294 37,l 299 - 13,l 293 - 34,l 297 - 8,l 293 - 10,l 293 - 31,l 296 - 5,l 291 - 27,l 295 - 48,l 300 - 2,l 290 + 13,l 294 + 34,l 298 + 55,l 302 + 8,l 294 + 10,l 294 + 31,l 297 + 52,l 302 + 5,l 292 + 27,l 296 + 48,l 301 + 2,l 291 24,l 294 - 45,l 300 - 21,l 293 - 42,l 299 - 17,l 293 - 38,l 299 - 14,l 293 + 45,l 301 + 21,l 294 + 42,l 300 + 17,l 294 + 38,l 300 + 14,l 294 35,l 298 + 56,l 302 } array set prism::rules { 12,dc 1 - 26,dc 2 + 26,dc 1 3,dc 1 41,dc 1 + 55,dc 1 18,dc 2 33,dc 1 9,dc 2 47,dc 1 - 11,dc 1 + 11,dc 3 25,dc 1 2,dc 1 40,dc 1 39,dc 1 + 54,dc 1 17,dc 2 - 32,dc 1 + 32,dc 5 8,dc 1 46,dc 1 10,dc 3 - 24,dc 1 + 24,dc 2 1,dc 1 38,dc 1 + 53,dc 1 16,dc 2 - 31,dc 5 + 31,dc 4 7,dc 1 45,dc 1 - 23,dc 2 + 23,dc 1 0,dc 1 37,dc 1 - 15,dc 2 - 29,dc 4 + 52,dc 1 + 15,dc 1 + 29,dc 3 30,dc 4 6,dc 0 44,dc 1 22,dc 1 36,dc 1 - 14,dc 1 - 28,dc 3 + 51,dc 1 + 14,dc 2 + 28,dc 4 5,dc 3 43,dc 1 + 57,dc 1 21,dc 1 35,dc 1 + 50,dc 1 49,dc 1 - 13,dc 2 - 27,dc 4 + 13,dc 1 + 27,dc 2 4,dc 0 42,dc 1 - 19,dc 1 + 56,dc 1 + 19,dc 2 20,dc 1 34,dc 1 48,dc 1 } array set prism::rules { - 41,line 109 - 7,line 63 - 37,line 105 - 4,line 58 - 34,line 98 - 1,line 54 - 31,line 93 - 27,line 88 - 24,line 83 - 21,line 78 - 17,line 73 - 14,line 70 - 11,line 67 - 49,line 119 - 46,line 116 - 43,line 113 - 9,line 65 - 40,line 108 - 39,line 107 - 6,line 62 - 36,line 102 - 3,line 58 - 33,line 97 + 41,line 113 + 7,line 65 + 37,line 107 + 4,line 60 + 34,line 102 + 1,line 56 + 31,line 98 + 27,line 92 + 24,line 85 + 21,line 82 + 17,line 77 + 14,line 74 + 11,line 71 + 56,line 132 + 53,line 129 + 50,line 124 + 49,line 123 + 46,line 120 + 43,line 115 + 9,line 68 + 40,line 112 + 39,line 111 + 6,line 64 + 36,line 106 + 3,line 60 + 33,line 101 4,e 1 - 29,line 92 - 30,line 93 - 26,line 87 - 23,line 80 - 19,line 76 - 20,line 77 - 16,line 72 - 13,line 69 - 10,line 66 - 48,line 118 - 45,line 115 - 42,line 110 - 8,line 64 - 38,line 106 - 5,line 59 - 35,line 101 - 2,line 55 - 32,line 96 - 28,line 91 - 25,line 84 - 22,line 79 - 18,line 75 - 15,line 71 - 12,line 68 - 47,line 117 - 44,line 114 + 29,line 96 + 30,line 97 + 26,line 89 + 23,line 84 + 19,line 80 + 20,line 81 + 16,line 76 + 13,line 73 + 10,line 69 + 55,line 131 + 52,line 128 + 48,line 122 + 45,line 119 + 42,line 114 + 8,line 66 + 38,line 110 + 5,line 61 + 35,line 103 + 2,line 57 + 32,line 98 + 28,line 93 + 25,line 88 + 22,line 83 + 18,line 78 + 15,line 75 + 12,line 72 + 57,line 133 + 54,line 130 + 51,line 127 + 47,line 121 + 44,line 118 } array set prism::lr1_table { - 35 {{44 259 1}} + 35 {{41 262 1}} 66,trans {} - 36 {{43 259 1}} + 36 {{43 262 1}} 85,trans {} - 37 {{46 259 1}} - 38 {{47 259 1}} - 39 {{45 259 1}} - 40 {{48 259 1}} - 41 {{49 259 1}} - 42 {{10 {0 259} 2}} - 43 {{9 {0 259} 2}} - 44 {{32 {0 259} 1}} - 45 {{33 {0 259} 1}} - 46 {{34 {0 259} 1}} - 47 {{15 {0 259} 2}} - 48 {{38 {259 X Y Z x y z} 1}} - 49 {{40 {259 X Y Z x y z} 1}} - 50 {{42 {259 X Y Z x y z} 1}} + 37 {{38 262 1}} + 38 {{40 262 1}} + 39 {{42 262 1}} + 40 {{36 262 1}} + 41 {{18 {0 264} 2}} + 42 {{27 {0 264} 1} {28 {0 264} 1}} + 43 {{37 262 1}} + 44 {{46 264 1}} + 45 {{47 264 1}} + 46 {{48 264 1}} + 47 {{49 264 1}} + 48 {{50 264 1}} + 49 {{44 264 1}} + 50 {{45 264 1}} 27,trans {} - 51 {{37 {259 X Y Z x y z} 1}} + 51 {{10 {0 264} 2}} 46,trans {} - 52 {{39 {259 X Y Z x y z} 1}} - 65,trans {} - 53 {{41 {259 X Y Z x y z} 1}} + 52 {{9 {0 264} 2}} + 65,trans {{X 71} {Y 72} {Z 73} {x 74} {y 75} {z 76} {264 77} {299 78} {300 79}} + 53 {{33 {0 264} 1}} 84,trans {} - 54 {{35 {259 X Y Z x y z} 1}} - 55 {{16 {0 259} 2}} - 56 {{28 {0 259} 1} {29 {0 259} 1} {30 {0 259} 1} {31 {0 259} 1} {35 {259 279 X Y Z x y z} 0} {36 {259 279 X Y Z x y z} 0} {37 {259 279 X Y Z x y z} 0} {38 {259 279 X Y Z x y z} 0} {39 {259 279 X Y Z x y z} 0} {40 {259 279 X Y Z x y z} 0} {41 {259 279 X Y Z x y z} 0} {42 {259 279 X Y Z x y z} 0}} - 57 {{36 {259 X Y Z x y z} 1}} - 58 {{5 0 2}} - 59 {{26 {0 259} 2} {27 {0 259} 2} {1 {257 258} 0} {2 {257 258} 0}} - 60 {{10 {0 259} 3}} - 61 {{38 {259 279 X Y Z x y z} 1}} - 62 {{40 {259 279 X Y Z x y z} 1}} - 63 {{42 {259 279 X Y Z x y z} 1}} - 64 {{37 {259 279 X Y Z x y z} 1}} - 65 {{39 {259 279 X Y Z x y z} 1}} + 54 {{34 {0 264} 1}} + 55 {{35 {0 264} 1}} + 56 {{16 {0 264} 2}} + 57 {{39 {264 X Y Z x y z} 1}} + 58 {{41 {264 X Y Z x y z} 1}} + 59 {{43 {264 X Y Z x y z} 1}} + 60 {{38 {264 X Y Z x y z} 1}} + 61 {{40 {264 X Y Z x y z} 1}} + 62 {{42 {264 X Y Z x y z} 1}} + 63 {{36 {264 X Y Z x y z} 1}} + 64 {{17 {0 264} 2}} + 65 {{29 {0 264} 1} {30 {0 264} 1} {31 {0 264} 1} {32 {0 264} 1} {36 {264 285 X Y Z x y z} 0} {37 {264 285 X Y Z x y z} 0} {38 {264 285 X Y Z x y z} 0} {39 {264 285 X Y Z x y z} 0} {40 {264 285 X Y Z x y z} 0} {41 {264 285 X Y Z x y z} 0} {42 {264 285 X Y Z x y z} 0} {43 {264 285 X Y Z x y z} 0}} + 66 {{37 {264 X Y Z x y z} 1}} 26,trans {} - 66 {{41 {259 279 X Y Z x y z} 1}} + 67 {{5 0 2}} 45,trans {} - 67 {{35 {259 279 X Y Z x y z} 1}} - 68 {{28 {0 259} 2} {29 {0 259} 2} {30 {0 259} 2} {31 {0 259} 2} {35 {259 280 281 X Y Z x y z} 0} {36 {259 280 281 X Y Z x y z} 0} {37 {259 280 281 X Y Z x y z} 0} {38 {259 280 281 X Y Z x y z} 0} {39 {259 280 281 X Y Z x y z} 0} {40 {259 280 281 X Y Z x y z} 0} {41 {259 280 281 X Y Z x y z} 0} {42 {259 280 281 X Y Z x y z} 0}} + 68 {{11 {0 264} 3}} 64,trans {} - 69 {{36 {259 279 X Y Z x y z} 1}} - 70 {{5 0 3}} - 83,trans {} - 71 {{1 {257 258} 1}} - 72 {{2 {257 258} 1}} - 73 {{27 {0 259} 3} {1 {0 259} 0} {2 {0 259} 0}} - 74 {{38 {259 280 281 X Y Z x y z} 1}} - 75 {{40 {259 280 281 X Y Z x y z} 1}} - 76 {{42 {259 280 281 X Y Z x y z} 1}} - 77 {{37 {259 280 281 X Y Z x y z} 1}} - 78 {{39 {259 280 281 X Y Z x y z} 1}} - 79 {{41 {259 280 281 X Y Z x y z} 1}} - 80 {{35 {259 280 281 X Y Z x y z} 1}} - 81 {{28 {0 259} 3}} - 82 {{29 {0 259} 3} {30 {0 259} 3} {31 {0 259} 3} {35 282 0} {36 282 0} {37 282 0} {38 282 0} {39 282 0} {40 282 0} {41 282 0} {42 282 0}} + 69 {{27 {0 264} 2} {28 {0 264} 2} {1 {262 263} 0} {2 {262 263} 0}} + 70 {{10 {0 264} 3}} + 83,trans {{262 94} {263 95} {291 96}} + 71 {{39 {264 285 X Y Z x y z} 1}} + 72 {{41 {264 285 X Y Z x y z} 1}} + 73 {{43 {264 285 X Y Z x y z} 1}} + 74 {{38 {264 285 X Y Z x y z} 1}} + 75 {{40 {264 285 X Y Z x y z} 1}} + 76 {{42 {264 285 X Y Z x y z} 1}} + 77 {{36 {264 285 X Y Z x y z} 1}} + 78 {{29 {0 264} 2} {30 {0 264} 2} {31 {0 264} 2} {32 {0 264} 2} {36 {264 286 287 X Y Z x y z} 0} {37 {264 286 287 X Y Z x y z} 0} {38 {264 286 287 X Y Z x y z} 0} {39 {264 286 287 X Y Z x y z} 0} {40 {264 286 287 X Y Z x y z} 0} {41 {264 286 287 X Y Z x y z} 0} {42 {264 286 287 X Y Z x y z} 0} {43 {264 286 287 X Y Z x y z} 0}} + 79 {{37 {264 285 X Y Z x y z} 1}} + 80 {{5 0 3}} + 81 {{1 {262 263} 1}} + 82 {{2 {262 263} 1}} 25,trans {} - 83 {{36 {259 280 281 X Y Z x y z} 1}} + 83 {{28 {0 264} 3} {1 {0 264} 0} {2 {0 264} 0}} 44,trans {} - 84 {{1 {0 259} 1}} + 84 {{39 {264 286 287 X Y Z x y z} 1}} 63,trans {} - 85 {{2 {0 259} 1}} - 86 {{27 {0 259} 4}} - 82,trans {{X 87} {Y 88} {Z 89} {x 90} {y 91} {z 92} {259 93} {280 94} {281 95} {298 96} {299 97}} - 87 {{38 282 1}} - 0 {{0 0 0} {3 0 0} {5 0 0} {6 {0 259} 0} {7 {0 259} 0} {8 {0 259} 0} {9 {0 259} 0} {10 {0 259} 0} {11 {0 259} 0} {12 {0 259} 0} {13 {0 259} 0} {14 {0 259} 0} {15 {0 259} 0} {16 {0 259} 0} {17 {0 259} 0} {18 {0 259} 0} {19 {0 259} 0} {20 {0 259} 0} {21 {0 259} 0} {22 {0 259} 0} {23 {0 259} 0}} - 88 {{40 282 1}} - 1 {{8 {0 259} 1}} - 89 {{42 282 1}} - 90 {{37 282 1}} - 2 {{12 {0 259} 1}} - 91 {{39 282 1}} - 3 {{11 {0 259} 1}} - 92 {{41 282 1}} - 4 {{18 {0 259} 1}} - 93 {{35 282 1}} - 5 {{13 {0 259} 1} {24 {0 259} 0} {25 {0 259} 0}} - 94 {{29 {0 259} 4}} - 6 {{19 {0 259} 1}} - 95 {{30 {0 259} 4}} - 7 {{23 {0 259} 1}} - 96 {{31 {0 259} 4}} - 8 {{17 {0 259} 1} {26 {0 259} 0} {27 {0 259} 0} {35 257 0} {36 257 0} {37 257 0} {38 257 0} {39 257 0} {40 257 0} {41 257 0} {42 257 0}} - 97 {{36 282 1}} - 98 {{31 {0 259} 5}} - 9 {{14 {0 259} 1}} + 85 {{41 {264 286 287 X Y Z x y z} 1}} + 86 {{43 {264 286 287 X Y Z x y z} 1}} + 82,trans {} + 87 {{38 {264 286 287 X Y Z x y z} 1}} + 0 {{0 0 0} {3 0 0} {5 0 0} {6 {0 264} 0} {7 {0 264} 0} {8 {0 264} 0} {9 {0 264} 0} {10 {0 264} 0} {11 {0 264} 0} {12 {0 264} 0} {13 {0 264} 0} {14 {0 264} 0} {15 {0 264} 0} {16 {0 264} 0} {17 {0 264} 0} {18 {0 264} 0} {19 {0 264} 0} {20 {0 264} 0} {21 {0 264} 0} {22 {0 264} 0} {23 {0 264} 0} {24 {0 264} 0}} + 88 {{40 {264 286 287 X Y Z x y z} 1}} + 1 {{8 {0 264} 1}} + 89 {{42 {264 286 287 X Y Z x y z} 1}} + 90 {{36 {264 286 287 X Y Z x y z} 1}} + 2 {{13 {0 264} 1}} + 91 {{29 {0 264} 3}} + 3 {{12 {0 264} 1}} + 92 {{30 {0 264} 3} {31 {0 264} 3} {32 {0 264} 3} {36 288 0} {37 288 0} {38 288 0} {39 288 0} {40 288 0} {41 288 0} {42 288 0} {43 288 0}} + 4 {{19 {0 264} 1}} + 93 {{37 {264 286 287 X Y Z x y z} 1}} + 5 {{11 {0 264} 1} {51 264 0} {52 264 0} {53 264 0} {54 264 0} {55 264 0} {56 264 0} {57 264 0}} + 94 {{1 {0 264} 1}} + 6 {{14 {0 264} 1} {25 {0 264} 0} {26 {0 264} 0}} + 95 {{2 {0 264} 1}} + 7 {{20 {0 264} 1}} + 96 {{28 {0 264} 4}} + 8 {{24 {0 264} 1}} + 97 {{39 288 1}} + 9 {{18 {0 264} 1} {27 {0 264} 0} {28 {0 264} 0} {36 262 0} {37 262 0} {38 262 0} {39 262 0} {40 262 0} {41 262 0} {42 262 0} {43 262 0}} + 98 {{41 288 1}} 24,trans {} + 99 {{43 288 1}} 43,trans {} 62,trans {} 81,trans {} + 99,trans {} 23,trans {} - 42,trans {{259 60}} + 42,trans {{262 69}} 61,trans {} 79,trans {} 80,trans {} 98,trans {} - 9,trans {} + 9,trans {{X 34} {Y 35} {Z 36} {x 37} {y 38} {z 39} {264 40} {296 41} {299 42} {300 43}} 22,trans {} 41,trans {} - 59,trans {{257 71} {258 72} {290 73}} + 59,trans {} 60,trans {} - 78,trans {} + 78,trans {{X 84} {Y 85} {Z 86} {x 87} {y 88} {z 89} {264 90} {285 91} {299 92} {300 93}} 97,trans {} - 8,trans {{X 25} {Y 26} {Z 27} {x 28} {y 29} {z 30} {259 31} {295 32} {298 33} {299 34}} + 8,trans {{262 33}} + 100 {{38 288 1}} + 101 {{40 288 1}} + 102 {{42 288 1}} + 103 {{36 288 1}} + 104 {{30 {0 264} 4}} + 105 {{31 {0 264} 4}} + 106 {{32 {0 264} 4}} 21,trans {} + 107 {{37 288 1}} 39,trans {} 40,trans {} - 58,trans {{259 70}} + 108 {{32 {0 264} 5}} + 58,trans {} 77,trans {} - 96,trans {{282 98}} - 7,trans {{257 24}} - 19,trans {{292 58}} - 20,trans {} + 96,trans {} + 7,trans {} + 19,trans {} + 20,trans {{293 67}} 38,trans {} 57,trans {} 76,trans {} 95,trans {} - 6,trans {} + 6,trans {{262 30} {264 31} {295 32}} + 108,trans {} 18,trans {} 37,trans {} - 56,trans {{X 61} {Y 62} {Z 63} {x 64} {y 65} {z 66} {259 67} {298 68} {299 69}} + 56,trans {} 75,trans {} 94,trans {} - 5,trans {{257 21} {259 22} {294 23}} - 17,trans {} + 5,trans {{257 22} {258 23} {259 24} {260 25} {261 26} {289 27} {290 28} {302 29}} + 107,trans {} + 17,trans {{X 57} {Y 58} {Z 59} {x 60} {y 61} {z 62} {264 63} {297 64} {299 65} {300 66}} 36,trans {} 55,trans {} 74,trans {} - 4,trans {{259 20}} 93,trans {} - 16,trans {{X 48} {Y 49} {Z 50} {x 51} {y 52} {z 53} {259 54} {296 55} {298 56} {299 57}} + 4,trans {{264 21}} + 106,trans {{288 108}} + 16,trans {} 35,trans {} 54,trans {} - 73,trans {{257 84} {258 85} {290 86}} + 73,trans {} + 92,trans {{X 97} {Y 98} {Z 99} {x 100} {y 101} {z 102} {264 103} {286 104} {287 105} {299 106} {300 107}} 3,trans {} - 92,trans {} + 105,trans {} 15,trans {} 34,trans {} 53,trans {} 72,trans {} 2,trans {} 91,trans {} - 14,trans {} - 33,trans {{257 59}} + 104,trans {} + 14,trans {{282 53} {283 54} {284 55} {298 56}} + 33,trans {} 52,trans {} 71,trans {} 1,trans {} 89,trans {} 90,trans {} - 13,trans {{276 44} {277 45} {278 46} {297 47}} + 103,trans {} + 13,trans {{264 52}} 32,trans {} - 51,trans {} - 69,trans {} + 51,trans {{264 70}} + 69,trans {{262 81} {263 82} {291 83}} 70,trans {} - 0,trans {{259 1} {260 2} {261 3} {262 4} {263 5} {264 6} {265 7} {266 8} {267 9} {268 10} {269 11} {270 12} {271 13} {272 14} {273 15} {274 16} {275 17} {291 18} {293 19}} + 0,trans {{264 1} {265 2} {266 3} {267 4} {268 5} {269 6} {270 7} {271 8} {272 9} {273 10} {274 11} {275 12} {276 13} {277 14} {278 15} {279 16} {280 17} {281 18} {292 19} {294 20}} 88,trans {} - 12,trans {{259 43}} + 102,trans {} + 12,trans {} 31,trans {} 49,trans {} 50,trans {} - 68,trans {{X 74} {Y 75} {Z 76} {x 77} {y 78} {z 79} {259 80} {279 81} {298 82} {299 83}} + 68,trans {} 87,trans {} - 10 {{10 {0 259} 1} {43 259 0} {44 259 0} {45 259 0} {46 259 0} {47 259 0} {48 259 0} {49 259 0}} - 11 {{22 {0 259} 1}} - 12 {{9 {0 259} 1}} - 13 {{15 {0 259} 1} {32 {0 259} 0} {33 {0 259} 0} {34 {0 259} 0}} - 14 {{20 {0 259} 1}} - 15 {{7 {0 259} 1}} - 11,trans {} - 16 {{16 {0 259} 1} {28 {0 259} 0} {29 {0 259} 0} {30 {0 259} 0} {31 {0 259} 0} {35 {259 X Y Z x y z} 0} {36 {259 X Y Z x y z} 0} {37 {259 X Y Z x y z} 0} {38 {259 X Y Z x y z} 0} {39 {259 X Y Z x y z} 0} {40 {259 X Y Z x y z} 0} {41 {259 X Y Z x y z} 0} {42 {259 X Y Z x y z} 0}} - 29,trans {} + 101,trans {} + 10 {{15 {0 264} 1}} + 11 {{10 {0 264} 1} {44 264 0} {45 264 0} {46 264 0} {47 264 0} {48 264 0} {49 264 0} {50 264 0}} + 12 {{23 {0 264} 1}} + 13 {{9 {0 264} 1}} + 14 {{16 {0 264} 1} {33 {0 264} 0} {34 {0 264} 0} {35 {0 264} 0}} + 15 {{21 {0 264} 1}} + 11,trans {{257 44} {258 45} {259 46} {260 47} {261 48} {289 49} {290 50} {301 51}} + 16 {{7 {0 264} 1}} + 29,trans {{264 68}} 30,trans {} - 17 {{21 {0 259} 1}} + 17 {{17 {0 264} 1} {29 {0 264} 0} {30 {0 264} 0} {31 {0 264} 0} {32 {0 264} 0} {36 {264 X Y Z x y z} 0} {37 {264 X Y Z x y z} 0} {38 {264 X Y Z x y z} 0} {39 {264 X Y Z x y z} 0} {40 {264 X Y Z x y z} 0} {41 {264 X Y Z x y z} 0} {42 {264 X Y Z x y z} 0} {43 {264 X Y Z x y z} 0}} 48,trans {} - 18 {{0 0 1}} - 67,trans {} - 20 {{18 {0 259} 2}} - 19 {{3 0 1} {5 0 1} {4 259 0}} + 18 {{22 {0 264} 1}} + 67,trans {{264 80}} + 20 {{3 0 1} {5 0 1} {4 264 0}} + 19 {{0 0 1}} 86,trans {} - 21 {{24 {0 259} 1}} - 22 {{25 {0 259} 1}} - 23 {{13 {0 259} 2}} - 24 {{23 {0 259} 2}} - 25 {{38 257 1}} - 26 {{40 257 1}} - 27 {{42 257 1}} - 28 {{37 257 1}} - 30 {{41 257 1}} - 29 {{39 257 1}} - 31 {{35 257 1}} - 32 {{17 {0 259} 2}} - 10,trans {{283 35} {284 36} {285 37} {286 38} {287 39} {288 40} {289 41} {300 42}} - 33 {{26 {0 259} 1} {27 {0 259} 1}} + 21 {{19 {0 264} 2}} + 22 {{53 264 1}} + 100,trans {} + 23 {{54 264 1}} + 24 {{55 264 1}} + 25 {{56 264 1}} + 26 {{57 264 1}} + 27 {{51 264 1}} + 28 {{52 264 1}} + 30 {{25 {0 264} 1}} + 29 {{11 {0 264} 2}} + 31 {{26 {0 264} 1}} + 32 {{14 {0 264} 2}} + 10,trans {} + 33 {{24 {0 264} 2}} 28,trans {} - 34 {{36 257 1}} + 34 {{39 262 1}} 47,trans {} } array set prism::token_id_table { - 286 STARBASE_ + 286 XYEX_ 286,t 0 - 287 RDB_ - 292,line 58 - 288 CSV_ - 300 reader - 265,title GOTO - 289 TSV_ - 290 numeric - 301 start' - 284,title XML - 291 command - 292 @PSEUDO1 + 302,line 126 + 287 XYEY_ + 292,line 59 + 288 XYEXEY_ + 265,title CLEAR + 289 VOT_ + 290 XML_ + 300 colsxyz + 301 reader + 284,title OVERPLOT + 291 numeric + 302 writer + 292 command + 303 start' 288,line 45 - 293 prism - 294 ext - 295 histogram - 296 plot + 293 @PSEUDO1 + 294 prism + 295 ext + 296 histogram 262,t 0 - 297 mode + 297 plot 285,line 42 - 298 cols - 299 colsxyz + 298 mode + 299 cols 283,t 0 282,line 38 - 264,title FIRST - 283,title VOT + 264,title string + 283,title NEWGRAPH 278,line 33 - error,line 52 + error,line 54 258,t 0 - 275,line 29 + 275,line 30 279,t 0 280,t 0 - Z,line 109 - 272,line 26 - 263,title EXT - 282,title XYEXEY - 268,line 22 + Z,line 114 + 272,line 27 + 263,title float + 282,title NEWPLOT + 268,line 23 276,t 0 Y,t 0 - 265,line 19 + 265,line 20 297,t 1 - 262,line 16 - 262,title CURRENT + 262,line 13 + 262,title integer 0 {$} 0,t 0 - 281,title XYEY + 281,title PREV error,t 0 299,title {} 258,line 8 273,t 0 294,t 1 - z,line 108 - 261,title CLOSE - 279,title XY - 280,title XYEX + z,line 113 + 261,title TSV + 279,title OPEN + 280,title PLOT 269,t 0 270,t 0 298,title {} @@ -1027,153 +1112,158 @@ 291,t 1 y,t 0 266,t 0 - 260,title CLEAR - 259,title string + 260,title CSV + 259,title STARBASE 297,line 95 - 278,title OVERPLOT + 278,title NEXT 297,title {} 287,t 0 - 294,line 82 - 301,line 120 + 294,line 63 + 301,line 117 error,title {} - 291,line 57 + 291,line 55 X X Y Y Z Z 263,t 0 - 258,title float + 258,title SB 287,line 44 - 277,title NEWGRAPH + 277,title MODE 284,t 0 296,title {} - 284,line 41 - 281,line 37 + 284,line 40 + 281,line 36 260,t 0 259,t 0 281,t 0 - 257,title integer + 257,title RDB 277,line 32 - 276,title NEWPLOT + 276,title LOAD 295,title {} - 274,line 28 - Y,line 107 - 271,line 25 + 274,line 29 + Y,line 112 + 271,line 26 277,t 0 x x y y Z,t 0 z z - 267,line 21 + 267,line 22 298,t 1 - 275,title PREV + 275,title LAST 294,title {} - 264,line 18 - 261,line 15 + 264,line 16 + 261,line 11 274,t 0 295,t 1 257,line 7 - 274,title PLOT + 274,title IMPORT + 303,title {} 293,title {} 271,t 0 error error + 302,t 1 + y,line 111 292,t 1 - y,line 106 z,t 0 - 273,title OPEN + 273,title IMAGE + 302,title {} 292,title {} 267,t 0 Z,title {} - 299,line 104 + 299,line 105 288,t 0 - 296,line 90 - 272,title NEXT + 296,line 91 + 272,title HISTOGRAM + 303,line 134 301,title {} 291,title {} - 293,line 61 + 293,line 60 264,t 0 - 300,line 112 - 285,t 0 - 289,line 46 - 290,line 53 Y,title {} + 285,t 0 + 289,line 47 + 290,line 48 + 300,line 109 286,line 43 - 271,title MODE - 300,title {} + 271,title GOTO 261,t 0 - 283,line 40 - 289,title TSV - 290,title {} + 283,line 39 + 289,title VOT + 290,title XML + 300,title {} 282,t 0 - 279,line 35 - 280,line 36 + 279,line 34 + 280,line 35 X,title {} z,title {} 276,line 31 257,t 0 - 269,title LAST - 270,title LOAD - 273,line 27 - 288,title CSV + 269,title EXT + 270,title FIRST + 273,line 28 + 288,title XYEXEY 278,t 0 299,t 1 - X,line 105 - 269,line 23 - 270,line 24 + X,line 110 + 269,line 24 + 270,line 25 y,title {} - 266,line 20 - 268,title IMPORT + 266,line 21 + 268,title EXPORT 275,t 0 - 263,line 17 - 287,title RDB + 263,line 14 + 287,title XYEY X,t 0 296,t 1 - 260,line 14 - 259,line 10 + 260,line 10 + 259,line 9 x,title {} 272,t 0 - 267,title IMAGE - 257 INT_ - 286,title STARBASE + 267,title CURRENT + 303,t 1 + 257 RDB_ + 286,title XYEX 293,t 1 - 258 REAL_ - 260 CLEAR_ - 259 STRING_ - 261 CLOSE_ - 262 CURRENT_ - 263 EXT_ - 264 FIRST_ - x,line 104 - 265 GOTO_ - 266 HISTOGRAM_ - 267 IMAGE_ + 258 SB_ + 260 CSV_ + 259 STARBASE_ + 261 TSV_ + 262 INT_ + 263 REAL_ + 264 STRING_ + x,line 109 + 265 CLEAR_ + 266 CLOSE_ + 267 CURRENT_ 268,t 0 - 268 IMPORT_ - 269 LAST_ - 270 LOAD_ - 271 MODE_ - 300,t 1 - 272 NEXT_ + 268 EXPORT_ + 269 EXT_ + 270 FIRST_ + 271 GOTO_ + 272 HISTOGRAM_ 289,t 0 - 290,t 1 - 266,title HISTOGRAM - 273 OPEN_ - 274 PLOT_ - 285,title SB - 275 PREV_ - 276 NEWPLOT_ + 290,t 0 + 300,t 1 + 266,title CLOSE + 273 IMAGE_ + 274 IMPORT_ + 285,title XY + 275 LAST_ + 276 LOAD_ 298,line 100 - 277 NEWGRAPH_ + 277 MODE_ x,t 0 - 278 OVERPLOT_ - 279 XY_ - 280 XYEX_ - 281 XYEY_ - 282 XYEXEY_ - 295,line 86 + 278 NEXT_ + 279 OPEN_ + 280 PLOT_ + 281 PREV_ + 282 NEWPLOT_ + 295,line 87 265,t 0 - 283 VOT_ - 284 XML_ - 285 SB_ + 283 NEWGRAPH_ + 284 OVERPLOT_ + 285 XY_ } proc prism::yyparse {} { @@ -1278,27 +1368,27 @@ 8 { PrismCmdLoad $1 } 9 { ProcessCmdCVAROpt PrismLoad $2 } 10 { PrismCmdImport $3 $2 } - 11 { ProcessCmdCVAR0 PrismDestroy } - 12 { ProcessCmdCVAR0 PrismClear } - 14 { ProcessCmdCVAR0 PrismImage } - 18 { PrismCmdRef $2 } - 19 { ProcessCmdCVAR0 PrismTableFirst } - 20 { ProcessCmdCVAR0 PrismTableNext } - 21 { ProcessCmdCVAR0 PrismTablePrev } - 22 { ProcessCmdCVAR0 PrismTableLast } - 23 { ProcessCmdCVAR goto $2 PrismTableGoto } - 24 { PrismCmdExt $1 } - 25 { PrismCmdExtName $1 } - 26 { ProcessCmdCVAR3 col $1 bar,num $2 bar,minmax 0 PrismHistogramGenerate } - 27 { ProcessCmdCVAR5 col $1 bar,num $2 bar,min $3 bar,max $4 bar,minmax 1 PrismHistogramGenerate } - 28 { ProcessCmdCVAR4 xx $1 yy $2 xerr {} yerr {} PrismPlotGenerate } - 29 { ProcessCmdCVAR4 xx $1 yy $2 xerr $3 yerr {} PrismPlotGenerate } - 30 { ProcessCmdCVAR4 xx $1 yy $2 xerr {} yerr $3 PrismPlotGenerate } - 31 { ProcessCmdCVAR4 xx $1 yy $2 xerr $3 yerr $4 PrismPlotGenerate } - 32 { ProcessCmdCVAR mode newplot } - 33 { ProcessCmdCVAR mode newgraph } - 34 { ProcessCmdCVAR mode newdataset } - 35 { set _ $1 } + 11 { TBLCmdSave $3 $2 } + 12 { ProcessCmdCVAR0 PrismDestroy } + 13 { ProcessCmdCVAR0 PrismClear } + 15 { ProcessCmdCVAR0 PrismImage } + 19 { PrismCmdRef $2 } + 20 { ProcessCmdCVAR0 PrismTableFirst } + 21 { ProcessCmdCVAR0 PrismTableNext } + 22 { ProcessCmdCVAR0 PrismTablePrev } + 23 { ProcessCmdCVAR0 PrismTableLast } + 24 { ProcessCmdCVAR goto $2 PrismTableGoto } + 25 { PrismCmdExt $1 } + 26 { PrismCmdExtName $1 } + 27 { ProcessCmdCVAR3 col $1 bar,num $2 bar,minmax 0 PrismHistogramGenerate } + 28 { ProcessCmdCVAR5 col $1 bar,num $2 bar,min $3 bar,max $4 bar,minmax 1 PrismHistogramGenerate } + 29 { ProcessCmdCVAR4 xx $1 yy $2 xerr {} yerr {} PrismPlotGenerate } + 30 { ProcessCmdCVAR4 xx $1 yy $2 xerr $3 yerr {} PrismPlotGenerate } + 31 { ProcessCmdCVAR4 xx $1 yy $2 xerr {} yerr $3 PrismPlotGenerate } + 32 { ProcessCmdCVAR4 xx $1 yy $2 xerr $3 yerr $4 PrismPlotGenerate } + 33 { ProcessCmdCVAR mode newplot } + 34 { ProcessCmdCVAR mode newgraph } + 35 { ProcessCmdCVAR mode newdataset } 36 { set _ $1 } 37 { set _ $1 } 38 { set _ $1 } @@ -1306,13 +1396,21 @@ 40 { set _ $1 } 41 { set _ $1 } 42 { set _ $1 } - 43 { set _ VOTRead } + 43 { set _ $1 } 44 { set _ VOTRead } - 45 { set _ starbase_read } + 45 { set _ VOTRead } 46 { set _ starbase_read } 47 { set _ starbase_read } - 48 { set _ TSVRead } + 48 { set _ starbase_read } 49 { set _ TSVRead } + 50 { set _ TSVRead } + 51 { set _ VOTWrite } + 52 { set _ VOTWrite } + 53 { set _ starbase_write } + 54 { set _ starbase_write } + 55 { set _ starbase_write } + 56 { set _ TSVWrite } + 57 { set _ TSVWrite } } unsetupvalues $dc # pop off tokens from the stack if normal rule diff -Nru saods9-8.2+repack/ds9/parsers/reader.fin saods9-8.3+repack/ds9/parsers/reader.fin --- saods9-8.2+repack/ds9/parsers/reader.fin 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/reader.fin 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,5 @@ +rdb {return $RDB_} +sb {return $SB_} +starbase {return $STARBASE_} +csv {return $CSV_} +tsv {return $TSV_} diff -Nru saods9-8.2+repack/ds9/parsers/reader.tin saods9-8.3+repack/ds9/parsers/reader.tin --- saods9-8.2+repack/ds9/parsers/reader.tin 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/reader.tin 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,5 @@ +%token RDB_ +%token SB_ +%token STARBASE_ +%token CSV_ +%token TSV_ diff -Nru saods9-8.2+repack/ds9/parsers/reader.trl saods9-8.3+repack/ds9/parsers/reader.trl --- saods9-8.2+repack/ds9/parsers/reader.trl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/reader.trl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,6 @@ +reader : RDB_ {set _ starbase_read} + | SB_ {set _ starbase_read} + | STARBASE_ {set _ starbase_read} + | CSV_ {set _ TSVRead} + | TSV_ {set _ TSVRead} + ; diff -Nru saods9-8.2+repack/ds9/parsers/sampparser.tac saods9-8.3+repack/ds9/parsers/sampparser.tac --- saods9-8.2+repack/ds9/parsers/sampparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/sampparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -22,7 +22,7 @@ | samp {global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT}} STRING_ ; -samp : yesno +samp : yesno {if {$1} {SAMPConnect} else {SAMPDisconnect}} | CONNECT_ {SAMPConnect} | DISCONNECT_ {SAMPDisconnect} | BROADCAST_ broadcast diff -Nru saods9-8.2+repack/ds9/parsers/sampparser.tcl saods9-8.3+repack/ds9/parsers/sampparser.tcl --- saods9-8.2+repack/ds9/parsers/sampparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/sampparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -510,6 +510,7 @@ 6 { set _ 0 } 7 { set _ 0 } 9 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } + 11 { if {$1} {SAMPConnect} else {SAMPDisconnect} } 12 { SAMPConnect } 13 { SAMPDisconnect } 16 { SAMPSendImageLoadFits {} } diff -Nru saods9-8.2+repack/ds9/parsers/sialex.fcl saods9-8.3+repack/ds9/parsers/sialex.fcl --- saods9-8.2+repack/ds9/parsers/sialex.fcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/sialex.fcl 2021-11-08 15:46:07.000000000 +0000 @@ -36,13 +36,7 @@ skyview {return $SKYVIEW_} tgssadr {return $TGSSADR_} -xml {return $XML_} -vot {return $VOT_} -sb {return $SB_} -starbase {return $STARBASE_} -csv {return $CSV_} -tsv {return $TSV_} - +#include reader.fin #include wcssys.fin #include skyframe.fin #include wcsformat.fin diff -Nru saods9-8.2+repack/ds9/parsers/sialex.tcl saods9-8.3+repack/ds9/parsers/sialex.tcl --- saods9-8.2+repack/ds9/parsers/sialex.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/sialex.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -179,81 +179,80 @@ variable done_ variable state_table_ -set WCS_ 257 -set WCSA_ 258 -set WCSB_ 259 -set WCSC_ 260 -set WCSD_ 261 -set WCSE_ 262 -set WCSF_ 263 -set WCSG_ 264 -set WCSH_ 265 -set WCSI_ 266 -set WCSJ_ 267 -set WCSK_ 268 -set WCSL_ 269 -set WCSM_ 270 -set WCSN_ 271 -set WCSO_ 272 -set WCSP_ 273 -set WCSQ_ 274 -set WCSR_ 275 -set WCSS_ 276 -set WCST_ 277 -set WCSU_ 278 -set WCSV_ 279 -set WCSW_ 280 -set WCSX_ 281 -set WCSY_ 282 -set WCSZ_ 283 -set FK4_ 284 -set B1950_ 285 -set FK5_ 286 -set J2000_ 287 -set ICRS_ 288 -set GALACTIC_ 289 -set ECLIPTIC_ 290 -set DEGREES_ 291 -set ARCMIN_ 292 -set ARCSEC_ 293 -set SEXAGESIMAL_ 294 -set INT_ 295 -set REAL_ 296 -set SEXSTR_ 297 -set STRING_ 298 -set CANCEL_ 299 -set CLEAR_ 300 -set CLOSE_ 301 -set COORDINATE_ 302 -set CROSSHAIR_ 303 -set CURRENT_ 304 -set EXPORT_ 305 -set NAME_ 306 -set PRINT_ 307 -set RADIUS_ 308 -set RETRIEVE_ 309 -set SAVE_ 310 -set SIZE_ 311 -set SKY_ 312 -set SKYFORMAT_ 313 -set SYSTEM_ 314 -set UPDATE_ 315 -set 2MASS_ 316 -set AKARI_ 317 -set ASTROWISE_ 318 -set CADC_ 319 -set CXC_ 320 -set HLA_ 321 -set MAST_ 322 -set SDSS_ 323 -set SKYVIEW_ 324 -set TGSSADR_ 325 -set XML_ 326 -set VOT_ 327 -set SB_ 328 -set STARBASE_ 329 -set CSV_ 330 -set TSV_ 331 +set RDB_ 257 +set SB_ 258 +set STARBASE_ 259 +set CSV_ 260 +set TSV_ 261 +set WCS_ 262 +set WCSA_ 263 +set WCSB_ 264 +set WCSC_ 265 +set WCSD_ 266 +set WCSE_ 267 +set WCSF_ 268 +set WCSG_ 269 +set WCSH_ 270 +set WCSI_ 271 +set WCSJ_ 272 +set WCSK_ 273 +set WCSL_ 274 +set WCSM_ 275 +set WCSN_ 276 +set WCSO_ 277 +set WCSP_ 278 +set WCSQ_ 279 +set WCSR_ 280 +set WCSS_ 281 +set WCST_ 282 +set WCSU_ 283 +set WCSV_ 284 +set WCSW_ 285 +set WCSX_ 286 +set WCSY_ 287 +set WCSZ_ 288 +set FK4_ 289 +set B1950_ 290 +set FK5_ 291 +set J2000_ 292 +set ICRS_ 293 +set GALACTIC_ 294 +set ECLIPTIC_ 295 +set DEGREES_ 296 +set ARCMIN_ 297 +set ARCSEC_ 298 +set SEXAGESIMAL_ 299 +set INT_ 300 +set REAL_ 301 +set SEXSTR_ 302 +set STRING_ 303 +set CANCEL_ 304 +set CLEAR_ 305 +set CLOSE_ 306 +set COORDINATE_ 307 +set CROSSHAIR_ 308 +set CURRENT_ 309 +set EXPORT_ 310 +set NAME_ 311 +set PRINT_ 312 +set RADIUS_ 313 +set RETRIEVE_ 314 +set SAVE_ 315 +set SIZE_ 316 +set SKY_ 317 +set SKYFORMAT_ 318 +set SYSTEM_ 319 +set UPDATE_ 320 +set 2MASS_ 321 +set AKARI_ 322 +set ASTROWISE_ 323 +set CADC_ 324 +set CXC_ 325 +set HLA_ 326 +set MAST_ 327 +set SDSS_ 328 +set SKYVIEW_ 329 +set TGSSADR_ 330 while {1} { if {[string length $yy_current_buffer] - $index_ < 1024} { @@ -464,390 +463,383 @@ set yyleng [string length $yytext] set matched_rule 26 } - # rule 27: xml - if {[regexp -start $index_ -indices -line -nocase -- {\A(xml)} $yy_current_buffer match] > 0 && \ + # rule 27: rdb + if {[regexp -start $index_ -indices -line -nocase -- {\A(rdb)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 27 } - # rule 28: vot - if {[regexp -start $index_ -indices -line -nocase -- {\A(vot)} $yy_current_buffer match] > 0 && \ - [lindex $match 1] - $index_ + 1 > $yyleng} { - set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] - set yyleng [string length $yytext] - set matched_rule 28 - } - # rule 29: sb + # rule 28: sb if {[regexp -start $index_ -indices -line -nocase -- {\A(sb)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 29 + set matched_rule 28 } - # rule 30: starbase + # rule 29: starbase if {[regexp -start $index_ -indices -line -nocase -- {\A(starbase)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 30 + set matched_rule 29 } - # rule 31: csv + # rule 30: csv if {[regexp -start $index_ -indices -line -nocase -- {\A(csv)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 31 + set matched_rule 30 } - # rule 32: tsv + # rule 31: tsv if {[regexp -start $index_ -indices -line -nocase -- {\A(tsv)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 32 + set matched_rule 31 } - # rule 33: wcs + # rule 32: wcs if {[regexp -start $index_ -indices -line -nocase -- {\A(wcs)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 33 + set matched_rule 32 } - # rule 34: wcsa + # rule 33: wcsa if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsa)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 34 + set matched_rule 33 } - # rule 35: wcsb + # rule 34: wcsb if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsb)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 35 + set matched_rule 34 } - # rule 36: wcsc + # rule 35: wcsc if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsc)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 36 + set matched_rule 35 } - # rule 37: wcsd + # rule 36: wcsd if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsd)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 37 + set matched_rule 36 } - # rule 38: wcse + # rule 37: wcse if {[regexp -start $index_ -indices -line -nocase -- {\A(wcse)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 38 + set matched_rule 37 } - # rule 39: wcsf + # rule 38: wcsf if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsf)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 39 + set matched_rule 38 } - # rule 40: wcsg + # rule 39: wcsg if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsg)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 40 + set matched_rule 39 } - # rule 41: wcsh + # rule 40: wcsh if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsh)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 41 + set matched_rule 40 } - # rule 42: wcsi + # rule 41: wcsi if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsi)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 42 + set matched_rule 41 } - # rule 43: wcsj + # rule 42: wcsj if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsj)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 43 + set matched_rule 42 } - # rule 44: wcsk + # rule 43: wcsk if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsk)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 44 + set matched_rule 43 } - # rule 45: wcsl + # rule 44: wcsl if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsl)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 45 + set matched_rule 44 } - # rule 46: wcsm + # rule 45: wcsm if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsm)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 46 + set matched_rule 45 } - # rule 47: wcsn + # rule 46: wcsn if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsn)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 47 + set matched_rule 46 } - # rule 48: wcso + # rule 47: wcso if {[regexp -start $index_ -indices -line -nocase -- {\A(wcso)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 48 + set matched_rule 47 } - # rule 49: wcsp + # rule 48: wcsp if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsp)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 49 + set matched_rule 48 } - # rule 50: wcsq + # rule 49: wcsq if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsq)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 50 + set matched_rule 49 } - # rule 51: wcsr + # rule 50: wcsr if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsr)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 51 + set matched_rule 50 } - # rule 52: wcss + # rule 51: wcss if {[regexp -start $index_ -indices -line -nocase -- {\A(wcss)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 52 + set matched_rule 51 } - # rule 53: wcst + # rule 52: wcst if {[regexp -start $index_ -indices -line -nocase -- {\A(wcst)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 53 + set matched_rule 52 } - # rule 54: wcsu + # rule 53: wcsu if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsu)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 54 + set matched_rule 53 } - # rule 55: wcsv + # rule 54: wcsv if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsv)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 55 + set matched_rule 54 } - # rule 56: wcsw + # rule 55: wcsw if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsw)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 56 + set matched_rule 55 } - # rule 57: wcsx + # rule 56: wcsx if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsx)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 57 + set matched_rule 56 } - # rule 58: wcsy + # rule 57: wcsy if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsy)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 58 + set matched_rule 57 } - # rule 59: wcsz + # rule 58: wcsz if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsz)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 59 + set matched_rule 58 } - # rule 60: fk4 + # rule 59: fk4 if {[regexp -start $index_ -indices -line -nocase -- {\A(fk4)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 60 + set matched_rule 59 } - # rule 61: b1950 + # rule 60: b1950 if {[regexp -start $index_ -indices -line -nocase -- {\A(b1950)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 61 + set matched_rule 60 } - # rule 62: fk5 + # rule 61: fk5 if {[regexp -start $index_ -indices -line -nocase -- {\A(fk5)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 62 + set matched_rule 61 } - # rule 63: j2000 + # rule 62: j2000 if {[regexp -start $index_ -indices -line -nocase -- {\A(j2000)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 63 + set matched_rule 62 } - # rule 64: icrs + # rule 63: icrs if {[regexp -start $index_ -indices -line -nocase -- {\A(icrs)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 64 + set matched_rule 63 } - # rule 65: galactic + # rule 64: galactic if {[regexp -start $index_ -indices -line -nocase -- {\A(galactic)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 65 + set matched_rule 64 } - # rule 66: ecliptic + # rule 65: ecliptic if {[regexp -start $index_ -indices -line -nocase -- {\A(ecliptic)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 66 + set matched_rule 65 } - # rule 67: degrees + # rule 66: degrees if {[regexp -start $index_ -indices -line -nocase -- {\A(degrees)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 67 + set matched_rule 66 } - # rule 68: arcmin + # rule 67: arcmin if {[regexp -start $index_ -indices -line -nocase -- {\A(arcmin)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 68 + set matched_rule 67 } - # rule 69: arcsec + # rule 68: arcsec if {[regexp -start $index_ -indices -line -nocase -- {\A(arcsec)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 69 + set matched_rule 68 } - # rule 70: sexagesimal + # rule 69: sexagesimal if {[regexp -start $index_ -indices -line -nocase -- {\A(sexagesimal)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 70 + set matched_rule 69 } - # rule 71: [+-]?{D}+ + # rule 70: [+-]?{D}+ if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 71 + set matched_rule 70 } - # rule 72: [+-]?{D}+\.?({E})? + # rule 71: [+-]?{D}+\.?({E})? if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+\.?(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 72 + set matched_rule 71 } - # rule 73: [+-]?{D}*\.{D}+({E})? + # rule 72: [+-]?{D}*\.{D}+({E})? if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])*\.([0-9])+(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 73 + set matched_rule 72 } - # rule 74: [+-]?{D}+:{D}+:{D}+\.? + # rule 73: [+-]?{D}+:{D}+:{D}+\.? if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+:([0-9])+:([0-9])+\.?)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 74 + set matched_rule 73 } - # rule 75: [+-]?{D}+:{D}+:{D}*\.{D}+ + # rule 74: [+-]?{D}+:{D}+:{D}*\.{D}+ if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+:([0-9])+:([0-9])*\.([0-9])+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 75 + set matched_rule 74 } - # rule 76: \"[^\"]*\" + # rule 75: \"[^\"]*\" if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 76 + set matched_rule 75 } - # rule 77: \'[^\']*\' + # rule 76: \'[^\']*\' if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 77 + set matched_rule 76 } - # rule 78: \{[^\}]*\} + # rule 77: \{[^\}]*\} if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 78 + set matched_rule 77 } - # rule 79: \S+\S+ + # rule 78: \S+\S+ if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 79 + set matched_rule 78 } - # rule 80: \s + # rule 79: \s if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 80 + set matched_rule 79 } - # rule 81: . + # rule 80: . if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] - set matched_rule 81 + set matched_rule 80 } if {$matched_rule == -1} { set yytext [string index $yy_current_buffer $index_] @@ -943,148 +935,148 @@ return $TGSSADR_ } 27 { -return $XML_ +return $RDB_ } 28 { -return $VOT_ +return $SB_ } 29 { -return $SB_ +return $STARBASE_ } 30 { -return $STARBASE_ +return $CSV_ } 31 { -return $CSV_ +return $TSV_ } 32 { -return $TSV_ +return $WCS_ } 33 { -return $WCS_ +return $WCSA_ } 34 { -return $WCSA_ +return $WCSB_ } 35 { -return $WCSB_ +return $WCSC_ } 36 { -return $WCSC_ +return $WCSD_ } 37 { -return $WCSD_ +return $WCSE_ } 38 { -return $WCSE_ +return $WCSF_ } 39 { -return $WCSF_ +return $WCSG_ } 40 { -return $WCSG_ +return $WCSH_ } 41 { -return $WCSH_ +return $WCSI_ } 42 { -return $WCSI_ +return $WCSJ_ } 43 { -return $WCSJ_ +return $WCSK_ } 44 { -return $WCSK_ +return $WCSL_ } 45 { -return $WCSL_ +return $WCSM_ } 46 { -return $WCSM_ +return $WCSN_ } 47 { -return $WCSN_ +return $WCSO_ } 48 { -return $WCSO_ +return $WCSP_ } 49 { -return $WCSP_ +return $WCSQ_ } 50 { -return $WCSQ_ +return $WCSR_ } 51 { -return $WCSR_ +return $WCSS_ } 52 { -return $WCSS_ +return $WCST_ } 53 { -return $WCST_ +return $WCSU_ } 54 { -return $WCSU_ +return $WCSV_ } 55 { -return $WCSV_ +return $WCSW_ } 56 { -return $WCSW_ +return $WCSX_ } 57 { -return $WCSX_ +return $WCSY_ } 58 { -return $WCSY_ +return $WCSZ_ } 59 { -return $WCSZ_ +return $FK4_ } 60 { return $FK4_ } 61 { -return $FK4_ +return $FK5_ } 62 { return $FK5_ } 63 { -return $FK5_ - } - 64 { return $ICRS_ } - 65 { + 64 { return $GALACTIC_ } - 66 { + 65 { return $ECLIPTIC_ } - 67 { + 66 { return $DEGREES_ } - 68 { + 67 { return $ARCMIN_ } - 69 { + 68 { return $ARCSEC_ } - 70 { + 69 { return $SEXAGESIMAL_ } - 71 { + 70 { set yylval $yytext; return $INT_ } - 72 - - 73 { + 71 - + 72 { set yylval $yytext; return $REAL_ } - 74 - - 75 { + 73 - + 74 { set yylval $yytext; return $SEXSTR_ } + 75 { +set yylval [string range $yytext 1 end-1]; return $STRING_ + } 76 { set yylval [string range $yytext 1 end-1]; return $STRING_ } @@ -1092,15 +1084,12 @@ set yylval [string range $yytext 1 end-1]; return $STRING_ } 78 { -set yylval [string range $yytext 1 end-1]; return $STRING_ - } - 79 { set yylval $yytext; return $STRING_ } - 80 { + 79 { # ignore whitespace } - 81 { + 80 { set yylval $yytext; return $yylval } default diff -Nru saods9-8.2+repack/ds9/parsers/siaparser.tab.tcl saods9-8.3+repack/ds9/parsers/siaparser.tab.tcl --- saods9-8.2+repack/ds9/parsers/siaparser.tab.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/siaparser.tab.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -1,75 +1,74 @@ -set WCS_ 257 -set WCSA_ 258 -set WCSB_ 259 -set WCSC_ 260 -set WCSD_ 261 -set WCSE_ 262 -set WCSF_ 263 -set WCSG_ 264 -set WCSH_ 265 -set WCSI_ 266 -set WCSJ_ 267 -set WCSK_ 268 -set WCSL_ 269 -set WCSM_ 270 -set WCSN_ 271 -set WCSO_ 272 -set WCSP_ 273 -set WCSQ_ 274 -set WCSR_ 275 -set WCSS_ 276 -set WCST_ 277 -set WCSU_ 278 -set WCSV_ 279 -set WCSW_ 280 -set WCSX_ 281 -set WCSY_ 282 -set WCSZ_ 283 -set FK4_ 284 -set B1950_ 285 -set FK5_ 286 -set J2000_ 287 -set ICRS_ 288 -set GALACTIC_ 289 -set ECLIPTIC_ 290 -set DEGREES_ 291 -set ARCMIN_ 292 -set ARCSEC_ 293 -set SEXAGESIMAL_ 294 -set INT_ 295 -set REAL_ 296 -set SEXSTR_ 297 -set STRING_ 298 -set CANCEL_ 299 -set CLEAR_ 300 -set CLOSE_ 301 -set COORDINATE_ 302 -set CROSSHAIR_ 303 -set CURRENT_ 304 -set EXPORT_ 305 -set NAME_ 306 -set PRINT_ 307 -set RADIUS_ 308 -set RETRIEVE_ 309 -set SAVE_ 310 -set SIZE_ 311 -set SKY_ 312 -set SKYFORMAT_ 313 -set SYSTEM_ 314 -set UPDATE_ 315 -set 2MASS_ 316 -set AKARI_ 317 -set ASTROWISE_ 318 -set CADC_ 319 -set CXC_ 320 -set HLA_ 321 -set MAST_ 322 -set SDSS_ 323 -set SKYVIEW_ 324 -set TGSSADR_ 325 -set XML_ 326 -set VOT_ 327 -set SB_ 328 -set STARBASE_ 329 -set CSV_ 330 -set TSV_ 331 +set RDB_ 257 +set SB_ 258 +set STARBASE_ 259 +set CSV_ 260 +set TSV_ 261 +set WCS_ 262 +set WCSA_ 263 +set WCSB_ 264 +set WCSC_ 265 +set WCSD_ 266 +set WCSE_ 267 +set WCSF_ 268 +set WCSG_ 269 +set WCSH_ 270 +set WCSI_ 271 +set WCSJ_ 272 +set WCSK_ 273 +set WCSL_ 274 +set WCSM_ 275 +set WCSN_ 276 +set WCSO_ 277 +set WCSP_ 278 +set WCSQ_ 279 +set WCSR_ 280 +set WCSS_ 281 +set WCST_ 282 +set WCSU_ 283 +set WCSV_ 284 +set WCSW_ 285 +set WCSX_ 286 +set WCSY_ 287 +set WCSZ_ 288 +set FK4_ 289 +set B1950_ 290 +set FK5_ 291 +set J2000_ 292 +set ICRS_ 293 +set GALACTIC_ 294 +set ECLIPTIC_ 295 +set DEGREES_ 296 +set ARCMIN_ 297 +set ARCSEC_ 298 +set SEXAGESIMAL_ 299 +set INT_ 300 +set REAL_ 301 +set SEXSTR_ 302 +set STRING_ 303 +set CANCEL_ 304 +set CLEAR_ 305 +set CLOSE_ 306 +set COORDINATE_ 307 +set CROSSHAIR_ 308 +set CURRENT_ 309 +set EXPORT_ 310 +set NAME_ 311 +set PRINT_ 312 +set RADIUS_ 313 +set RETRIEVE_ 314 +set SAVE_ 315 +set SIZE_ 316 +set SKY_ 317 +set SKYFORMAT_ 318 +set SYSTEM_ 319 +set UPDATE_ 320 +set 2MASS_ 321 +set AKARI_ 322 +set ASTROWISE_ 323 +set CADC_ 324 +set CXC_ 325 +set HLA_ 326 +set MAST_ 327 +set SDSS_ 328 +set SKYVIEW_ 329 +set TGSSADR_ 330 diff -Nru saods9-8.2+repack/ds9/parsers/siaparser.tac saods9-8.3+repack/ds9/parsers/siaparser.tac --- saods9-8.2+repack/ds9/parsers/siaparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/siaparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -2,6 +2,7 @@ %} #include def.tin +#include reader.tin #include wcssys.tin #include skyframe.tin #include wcsformat.tin @@ -40,15 +41,9 @@ %token SKYVIEW_ %token TGSSADR_ -%token XML_ -%token VOT_ -%token SB_ -%token STARBASE_ -%token CSV_ -%token TSV_ - %% +#include writer.trl #include wcssys.trl #include skyframe.trl #include wcsformat.trl @@ -62,15 +57,17 @@ | CANCEL_ {ProcessCmdCVAR0 ARCancel} | CLEAR_ {ProcessCmdCVAR0 SIAOff} | CLOSE_ {ProcessCmdCVAR0 SIADestroy} + + | SAVE_ STRING_ {TBLCmdSave $2 VOTWrite} + | EXPORT_ writer STRING_ {TBLCmdSave $3 $2} + | COORDINATE_ coordinate | CROSSHAIR_ {ProcessCmdCVAR0 SIACrosshair} | CURRENT_ site {SIACmdRef $2} - | EXPORT_ writer STRING_ {TBLCmdSave $3 $2} | NAME_ STRING_ {ProcessCmdCVAR name $2} | PRINT_ {ProcessCmdCVAR0 TBLCmdPrint} | RETRIEVE_ {global cvarname; SIAApply $cvarname 1} | RADIUS_ numeric rformat {TBLCmdSize $2 $3} - | SAVE_ STRING_ {TBLCmdSave $2 VOTWrite} # backward compatibily | SIZE_ numeric numeric rformat {TBLCmdSize [expr ($2+$3)/2.] $4} | SKY_ skyframe {TBLCmdSkyframe $2} @@ -97,14 +94,6 @@ | TGSSADR_ {set _ tgssadr} ; -writer : XML_ {set _ VOTWrite} - | VOT_ {set _ VOTWrite} - | SB_ {set _ starbase_write} - | STARBASE_ {set _ starbase_write} - | CSV_ {set _ TSVWrite} - | TSV_ {set _ TSVWrite} - ; - %% proc sia::yyerror {msg} { diff -Nru saods9-8.2+repack/ds9/parsers/siaparser.tcl saods9-8.3+repack/ds9/parsers/siaparser.tcl --- saods9-8.2+repack/ds9/parsers/siaparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/siaparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -61,995 +61,988 @@ } array set sia::table { - 34:336,target 89 - 12:298 shift - 16:283,target 85 + 34:336,target 88 + 31:294,target 45 + 90:303 reduce + 89:303 reduce + 16:283,target 79 + 0:327,target 24 + 1:303 reduce 4:336 goto - 51:298 reduce + 14:295,target 53 27:0 reduce - 21:298,target 70 - 66:298,target 8 + 21:303 reduce + 36:303,target 58 + 82:303,target 30 4:340 goto - 90:298 reduce - 89:298 reduce + 13:301,target 32 + 60:303 reduce + 59:303 reduce 48:0 reduce - 0:306,target 8 - 1:298 reduce - 16:262,target 64 - 21:298 reduce + 0:306,target 3 + 16:262,target 58 + 98:303 reduce + 87:292,target 50 70:0 reduce 69:0 reduce - 55:298,target 59 - 60:298 reduce - 59:298 reduce - 32:296,target 41 + 9:303 reduce + 25:303,target 79 + 95:0,target 49 + 71:303,target 19 + 32:296,target 46 + 30:303 reduce + 29:303 reduce 91:0 reduce + 87:0,target 70 2:0 reduce - 80:0,target 22 - 79:0,target 21 - 98:298 reduce - 72:0,target 14 - 31:292,target 40 - 9:298 reduce - 64:0,target 6 - 16:281,target 83 - 0:325,target 27 - 56:0,target 35 - 44:298,target 53 - 30:298 reduce - 29:298 reduce + 80:0,target 28 + 79:0,target 27 + 4:301,target 32 + 72:0,target 20 + 68:303 reduce + 31:292,target 45 + 64:0,target 12 + 16:281,target 77 + 0:325,target 22 + 56:0,target 41 + 44:298,target 92 24:0 reduce - 90:298,target 52 - 89:298,target 63 - 48:0,target 28 - 1:298,target 46 - 68:298 reduce - 25:0,target 74 - 0:304,target 6 - 16:259,target 61 - 16:260,target 62 - 17:0,target 62 + 6:328,target 25 + 14:293,target 51 + 60:303,target 8 + 59:303,target 7 + 48:0,target 34 + 46:336,target 94 + 45:0 reduce + 38:303 reduce + 88:294,target 52 + 25:0,target 79 + 0:304,target 1 + 17:0,target 67 + 77:303 reduce 66:0 reduce - 78:298,target 20 - 10:296,target 32 - 38:298 reduce - 77:298 reduce + 87:290,target 48 + 87:289,target 47 + 48:303,target 34 + 5:303,target 57 + 87:0 reduce + 32:294,target 46 + 47:303 reduce 7:331,target 42 - 89:333 goto - 31:290,target 40 - 31:289,target 40 - 22:298,target 71 - 67:298,target 9 - 47:295 shift + 31:300,target 45 + 31:290,target 45 + 31:289,target 45 + 7:259,target 39 + 7:260,target 40 + 37:303,target 1 21:0 reduce - 16:278,target 80 - 0:323,target 25 - 47:296 shift - 0:302,target 4 - 11:298,target 55 - 16:257,target 59 - 86:298 reduce + 16:278,target 74 + 0:323,target 20 + 86:303 shift + 83:303,target 31 + 44:296,target 90 + 6:326,target 23 + 14:291,target 49 + 17:303 reduce + 88:292,target 50 63:0 reduce - 56:298,target 35 - 95:291 shift - 95:292 shift - 17:298 reduce - 13:336,target 47 - 95:293 shift + 56:303 reduce + 26:303,target 80 + 72:303,target 20 + 13:336,target 46 84:0 reduce - 32:292,target 41 - 56:298 reduce - 7:328,target 39 - 91:298,target 37 - 31:287,target 40 + 32:292,target 46 + 26:303 reduce + 61:303,target 9 17:0 reduce - 2:298,target 47 + 7:257,target 37 + 65:303 reduce 29:338 goto - 16:276,target 78 - 0:321,target 23 - 47:336,target 95 - 6:324,target 26 - 14:288,target 52 - 26:298 reduce + 16:276,target 72 + 0:321,target 18 + 6:324,target 21 4:336,target 34 - 99:0,target 58 - 92:0,target 38 - 88:290,target 54 - 88:289,target 53 - 80:298,target 22 - 79:298,target 21 - 65:298 reduce + 92:0,target 44 + 88:290,target 48 + 88:289,target 47 60:0 reduce 59:0 reduce - 0:300,target 2 - 3:0,target 48 - 95:293,target 93 - 84:0,target 26 - 76:0,target 18 - 6:316 shift + 50:303,target 36 + 49:303,target 35 + 35:303 reduce + 3:0,target 53 + 84:0,target 32 + 76:0,target 24 81:0 reduce - 68:0,target 10 - 6:317 shift - 61:0,target 3 + 74:303 reduce + 68:0,target 16 + 61:0,target 9 0:339,target 29 - 6:318 shift - 53:0,target 33 - 35:298 reduce - 32:290,target 41 - 32:289,target 41 - 23:298,target 72 - 6:319 shift - 6:320 shift - 14:284 shift - 68:298,target 10 + 53:0,target 39 + 32:300,target 46 + 32:290,target 46 + 32:289,target 46 + 45:0,target 54 + 38:303,target 2 6:321 shift - 14:285 shift + 84:303,target 32 6:322 shift - 7:326,target 37 - 14:286 shift - 15:291,target 56 - 74:298 reduce - 31:285,target 40 - 30:0,target 45 - 29:0,target 42 + 30:0,target 50 + 29:0,target 47 6:323 shift - 14:287 shift - 47:336 goto - 22:0,target 71 - 16:274,target 76 - 0:318,target 20 + 22:0,target 76 + 16:274,target 70 + 0:318,target 15 6:324 shift - 14:288 shift 35:0 reduce - 6:322,target 24 + 6:322,target 19 6:325 shift - 14:286,target 50 14:289 shift 14:290 shift - 12:298,target 46 - 57:298,target 36 + 83:303 reduce + 44:296 shift + 6:326 shift + 14:291 shift + 44:297 shift + 27:303,target 81 + 6:327 shift + 14:292 shift + 73:303,target 21 56:0 reduce - 44:298 reduce - 34:296,target 32 - 88:287,target 51 - 95:291,target 91 - 83:298 reduce + 44:298 shift + 6:328 shift + 14:293 shift + 6:329 shift + 6:330 shift + 14:294 shift + 14:295 shift 77:0 reduce - 46:298,target 57 + 53:303 reduce + 33:302,target 87 + 10:300,target 31 0:337,target 28 98:0 reduce - 95:335 goto - 92:298,target 38 - 32:287,target 41 - 3:298,target 48 + 92:303 reduce + 62:303,target 10 + 3:303 reduce 6:341,target 36 9:0 reduce 11:0 reduce - 53:298 reduce - 32:284 reduce - 32:285 reduce - 32:286 reduce + 87:333,target 96 + 23:303 reduce 32:0 reduce - 16:272,target 74 - 0:316,target 18 - 92:298 reduce - 35:298,target 49 - 32:287 reduce - 3:298 reduce + 0:316,target 13 + 16:272,target 68 + 62:303 reduce 6:341 goto - 6:319,target 21 - 6:320,target 22 - 14:284,target 48 - 89:290,target 54 - 89:289,target 53 - 81:298,target 23 - 32:288 reduce + 51:303,target 37 + 96:303,target 71 53:0 reduce + 32:300 reduce 32:290 reduce 32:289 reduce - 23:298 reduce + 32:301 reduce 32:291 reduce - 88:285,target 49 32:292 reduce 74:0 reduce - 62:298 reduce + 32:303 reduce 32:293 reduce - 24:298,target 73 - 70:298,target 12 - 69:298,target 11 + 32:294 reduce + 40:303,target 4 + 39:303,target 3 32:295 reduce + 95:0 reduce + 85:303,target 66 + 71:303 reduce 32:296 reduce - 32:285,target 41 + 32:297 reduce 32:298 reduce - 45:292,target 92 - 96:0,target 44 + 96:0,target 71 28:0 accept - 88:0,target 65 - 71:298 reduce - 58:298,target 60 - 16:270,target 72 - 16:269,target 71 - 0:314,target 16 - 81:0,target 23 - 6:317,target 19 - 89:287,target 51 - 73:0,target 15 + 88:0,target 68 + 44:335 goto + 41:303 reduce + 0:314,target 11 + 16:269,target 65 + 16:270,target 66 + 81:0,target 29 + 74:303,target 22 + 73:0,target 21 50:0 reduce 49:0 reduce - 88:284 shift - 65:0,target 7 + 80:303 reduce + 79:303 reduce + 65:0,target 13 14:333 goto - 88:285 shift - 57:0,target 36 - 88:286 shift + 57:0,target 65 71:0 reduce - 50:0,target 30 - 49:0,target 29 - 41:298 reduce - 88:287 shift - 93:298,target 39 - 88:288 shift + 50:0,target 36 + 49:0,target 35 + 11:303 reduce + 17:303,target 67 + 63:303,target 11 92:0 reduce 88:290 shift 88:289 shift - 80:298 reduce - 79:298 reduce - 26:0,target 75 - 0:300 shift + 50:303 reduce + 49:303 reduce + 26:0,target 80 3:0 reduce + 88:291 shift 88:333,target 97 - 18:0,target 67 - 0:301 shift - 0:302 shift - 11:0,target 55 - 11:298 reduce - 16:257 shift - 0:303 shift - 16:258 shift - 36:298,target 51 + 18:0,target 72 + 16:288,target 84 + 88:292 shift + 11:0,target 61 + 88:293 shift + 88:303 reduce + 88:294 shift 25:0 reduce 0:304 shift - 16:259 shift - 16:260 shift - 82:298,target 24 - 50:298 reduce - 49:298 reduce + 88:295 shift + 52:303,target 38 + 20:303 reduce + 19:303 reduce 0:305 shift - 13:296,target 32 - 16:261 shift - 16:267,target 69 - 0:312,target 14 + 97:303,target 69 + 0:312,target 9 0:306 shift + 8:303,target 43 16:262 shift - 46:0 reduce + 16:267,target 63 0:307 shift 16:263 shift - 89:285,target 49 - 88:298 reduce + 58:303 reduce 0:308 shift - 15:334,target 58 + 15:334,target 57 16:264 shift - 0:310 shift 0:309 shift - 0:299 shift + 0:310 shift 16:265 shift 67:0 reduce - 25:298,target 74 - 20:298 reduce - 19:298 reduce + 34:300,target 31 0:311 shift 16:266 shift - 71:298,target 13 + 97:303 reduce + 44:335,target 93 + 41:303,target 5 0:312 shift + 8:303 shift 16:267 shift - 47:296,target 32 - 16:268 shift + 86:303,target 95 0:313 shift + 16:268 shift 88:0 reduce - 58:298 reduce - 16:270 shift - 16:269 shift 0:314 shift - 4:296,target 32 - 16:271 shift + 16:269 shift + 16:270 shift + 31:297,target 45 0:315 shift - 16:272 shift + 16:271 shift + 16:286,target 82 0:316 shift - 97:298 reduce - 16:273 shift + 16:272 shift + 67:303 reduce 0:317 shift - 8:298 shift - 60:298,target 2 - 59:298,target 1 + 16:273 shift + 30:303,target 50 + 29:303,target 48 22:0 reduce 16:274 shift 0:318 shift + 75:303,target 23 16:275 shift - 0:319 shift 0:320 shift + 0:319 shift 16:276 shift 0:321 shift + 43:0 reduce 16:277 shift - 0:310,target 12 - 0:309,target 11 - 0:299,target 1 0:322 shift - 16:265,target 67 - 67:298 reduce + 0:309,target 6 + 0:310,target 7 + 16:265,target 61 + 37:303 reduce 16:278 shift 0:323 shift 16:280 shift 16:279 shift 0:324 shift + 87:295,target 53 64:0 reduce - 48:298,target 28 + 18:303,target 72 16:281 shift 0:325 shift - 94:298,target 56 + 94:298,target 92 + 76:303 reduce + 64:303,target 12 16:282 shift - 5:298,target 50 + 0:326 shift 16:283 shift - 89:333,target 98 + 0:327 shift 85:0 reduce - 37:298 reduce - 93:0,target 39 - 31:295,target 40 - 85:0,target 27 - 76:298 reduce - 37:298,target 77 + 46:300 shift + 16:284 shift + 0:328 shift + 46:301 shift + 16:285 shift + 0:329 shift + 0:330 shift + 93:0,target 62 + 31:295,target 45 + 16:286 shift + 85:0,target 66 + 46:300,target 31 + 16:287 shift + 16:284,target 80 + 0:328,target 25 88:333 goto - 83:298,target 25 - 77:0,target 19 + 77:0,target 25 + 53:303,target 39 18:0 reduce - 70:0,target 12 - 69:0,target 11 - 62:0,target 4 - 54:0,target 34 - 46:298 reduce - 46:0,target 57 - 0:307,target 9 + 16:288 shift + 98:303,target 63 + 70:0,target 18 + 69:0,target 17 + 9:303,target 60 + 85:303 reduce + 62:0,target 10 + 54:0,target 64 + 0:307,target 4 0:337 goto - 16:263,target 65 - 26:298,target 75 - 72:298,target 14 + 16:263,target 59 61:0 reduce - 45:335,target 94 - 31:0,target 40 + 42:303,target 89 + 31:0,target 45 0:339 goto - 85:298 reduce - 23:0,target 72 + 87:293,target 51 + 87:303,target 70 + 55:303 reduce + 23:0,target 77 0:341 goto + 94:296,target 90 82:0 reduce - 61:298,target 3 - 55:298 reduce - 31:293,target 40 - 16:282,target 84 - 94:298 reduce - 5:298 reduce + 32:297,target 46 + 5:303 reduce + 4:302,target 33 + 31:303,target 45 + 31:293,target 45 + 25:303 reduce + 94:296 shift + 76:303,target 24 + 16:282,target 78 + 0:326,target 23 + 94:297 shift + 6:329,target 26 + 6:330,target 27 + 14:294,target 52 + 94:298 shift + 64:303 reduce 36:0 reduce - 25:298 reduce - 16:332,target 86 - 50:298,target 30 - 49:298,target 29 - 0:305,target 7 - 16:261,target 63 + 34:300 shift + 13:300,target 31 + 16:332,target 85 + 88:295,target 53 + 34:301 shift + 20:303,target 74 + 19:303,target 73 + 0:305,target 2 + 65:303,target 13 57:0 reduce - 29:338,target 87 - 64:298 reduce + 29:338,target 86 + 87:291,target 49 78:0 reduce - 34:295 shift - 34:296 shift - 32:295,target 41 - 38:298,target 78 - 99:0 reduce - 84:298,target 26 - 31:291,target 40 - 16:280,target 82 - 16:279,target 81 - 0:324,target 26 - 73:298 reduce + 73:303 reduce + 32:295,target 46 + 54:303,target 64 + 4:300,target 31 + 15:296,target 55 + 31:301,target 45 + 31:291,target 45 + 7:261,target 41 + 16:280,target 76 + 16:279,target 75 + 0:324,target 21 + 44:297,target 91 + 43:303 reduce + 6:327,target 24 + 14:292,target 50 + 46:336 goto 4:340,target 35 - 27:298,target 76 + 13:300 shift 16:332 goto - 73:298,target 15 + 82:303 reduce + 43:303,target 59 + 13:301 shift + 88:293,target 51 + 88:303,target 68 54:0 reduce - 0:303,target 5 - 16:258,target 60 - 43:298 shift - 97:0,target 66 - 33:297,target 88 - 90:0,target 52 - 89:0,target 63 + 97:0,target 69 + 90:0,target 42 + 89:0,target 55 75:0 reduce - 1:0,target 46 - 10:295,target 31 - 13:295 shift - 82:298 reduce - 82:0,target 24 - 13:296 shift - 74:0,target 16 - 62:298,target 4 - 32:293,target 41 + 1:0,target 51 + 82:0,target 30 + 52:303 reduce + 74:0,target 22 + 32:303,target 46 + 32:293,target 46 96:0 reduce - 66:0,target 8 - 58:0,target 60 - 7:329,target 40 - 7:330,target 41 - 15:294,target 57 - 51:0,target 31 - 31:288,target 40 - 52:298 reduce - 31:284 reduce - 16:277,target 79 - 0:322,target 24 - 35:0,target 49 - 31:285 reduce + 77:303,target 25 + 66:0,target 14 + 94:335 goto + 91:303 reduce + 58:0,target 6 + 2:303 reduce + 51:0,target 37 + 7:258,target 38 + 43:0,target 59 + 22:303 reduce + 16:277,target 73 + 0:322,target 19 + 35:0,target 56 30:0 reduce 29:0 reduce - 6:325,target 27 - 14:289,target 53 - 14:290,target 54 - 51:298,target 31 - 31:286 reduce - 27:0,target 76 - 91:298 reduce - 31:287 reduce - 20:0,target 69 - 19:0,target 68 - 2:298 reduce + 6:325,target 22 + 14:289,target 47 + 14:290,target 48 + 27:0,target 81 + 21:303,target 75 + 66:303,target 14 + 61:303 reduce + 20:0,target 74 + 19:0,target 73 + 7:257 shift 51:0 reduce - 31:288 reduce + 7:258 shift + 88:291,target 49 + 31:300 reduce 31:290 reduce 31:289 reduce - 22:298 reduce - 0:301,target 3 + 7:259 shift + 7:260 shift + 31:301 reduce 31:291 reduce + 7:261 shift 72:0 reduce 31:292 reduce - 61:298 reduce - 40:298,target 80 - 39:298,target 79 + 31:303 reduce 31:293 reduce - 85:298,target 27 + 55:303,target 40 34:336 goto + 31:294 reduce 0:341,target 30 93:0 reduce - 32:291,target 41 + 32:301,target 46 + 32:291,target 46 31:295 reduce - 99:298 reduce + 70:303 reduce + 69:303 reduce 31:296 reduce - 7:327,target 38 + 31:297 reduce 31:298 reduce - 31:286,target 40 26:0 reduce - 16:275,target 77 - 0:319,target 21 - 0:320,target 22 - 74:298,target 16 - 6:323,target 25 - 14:287,target 51 - 70:298 reduce - 69:298 reduce - 88:288,target 52 - 95:292,target 92 + 16:275,target 71 + 0:320,target 17 + 0:319,target 16 + 6:323,target 20 + 90:303,target 42 + 89:303,target 55 + 40:303 reduce + 39:303 reduce + 1:303,target 51 + 47:0 reduce + 10:300 shift + 78:303 reduce + 10:301 shift 68:0 reduce - 17:298,target 62 - 63:298,target 5 - 40:298 reduce - 39:298 reduce + 78:303,target 26 + 10:301,target 32 13:336 goto 90:0 reduce 89:0 reduce 1:0 reduce - 10:295 shift - 78:298 reduce - 32:288,target 41 - 10:296 shift - 52:298,target 32 - 31:284,target 40 + 87:290 shift + 87:289 shift + 48:303 reduce + 87:291 shift + 87:292 shift + 87:293 shift + 87:303 reduce 23:0 reduce - 97:298,target 66 - 16:273,target 75 - 0:317,target 19 - 8:298,target 44 - 48:298 reduce - 6:321,target 23 - 14:285,target 49 - 94:0,target 56 - 44:0 reduce - 5:0,target 50 - 86:0,target 61 - 87:298 shift - 78:0,target 20 - 34:295,target 31 - 88:286,target 50 - 71:0,target 13 + 22:303,target 76 + 87:294 shift + 67:303,target 15 + 16:273,target 69 + 0:317,target 14 + 87:295 shift + 18:303 reduce + 6:321,target 18 + 5:0,target 57 + 78:0,target 26 + 57:303 reduce + 71:0,target 19 65:0 reduce - 41:298,target 81 - 86:298,target 61 - 63:0,target 5 - 18:298 reduce - 55:0,target 59 - 86:0 reduce - 57:298 reduce - 32:286,target 41 - 32:0,target 41 - 30:298,target 45 - 29:298,target 43 - 24:0,target 73 - 75:298,target 17 - 45:293,target 93 + 11:303,target 61 + 63:0,target 11 + 56:303,target 41 + 96:303 reduce + 55:0,target 40 + 47:0,target 33 + 27:303 reduce + 32:0,target 46 + 24:0,target 78 + 66:303 reduce + 45:303,target 54 20:0 reduce 19:0 reduce - 27:298 reduce - 16:271,target 73 - 0:315,target 17 - 6:318,target 20 - 89:288,target 52 - 66:298 reduce - 18:298,target 67 - 64:298,target 6 + 94:335,target 98 + 91:303,target 43 + 2:303,target 52 + 0:315,target 12 + 16:271,target 67 + 36:303 reduce 62:0 reduce - 88:284,target 48 - 14:333,target 55 + 80:303,target 28 + 79:303,target 27 + 14:333,target 54 + 75:303 reduce 83:0 reduce - 7:342,target 43 - 36:298 reduce - 45:291 shift 10:336 goto - 53:298,target 33 - 45:292 shift - 32:284,target 41 - 98:298,target 64 - 75:298 reduce - 45:293 shift - 9:298,target 54 - 45:291,target 91 - 10:336,target 45 - 16:268,target 70 - 0:313,target 15 - 7:326 shift - 15:291 shift - 6:316,target 18 - 7:327 shift - 89:286,target 50 - 42:298,target 82 - 7:328 shift - 87:298,target 96 + 23:303,target 77 + 68:303,target 16 + 45:303 reduce + 87:333 goto + 10:336,target 44 + 84:303 reduce + 0:313,target 10 + 16:268,target 64 + 12:303,target 45 58:0 reduce - 7:329 shift - 7:330 shift - 15:294 shift - 7:331 shift - 84:298 reduce + 57:303,target 65 + 34:301,target 32 + 7:331 goto + 54:303 reduce + 4:300 shift + 15:296 shift 80:0 reduce 79:0 reduce - 4:297,target 33 - 31:298,target 40 - 76:298,target 18 - 98:0,target 64 - 95:335,target 99 - 54:298 reduce - 4:295 shift - 9:0,target 54 - 91:0,target 37 - 2:0,target 47 - 4:296 shift - 83:0,target 25 - 4:297 shift - 93:298 reduce - 75:0,target 17 - 13:295,target 31 - 67:0,target 9 - 20:298,target 69 - 19:298,target 68 - 0:311,target 13 - 7:342 goto - 16:266,target 68 - 65:298,target 7 - 60:0,target 2 - 59:0,target 1 - 24:298 reduce - 89:284,target 48 + 4:301 shift + 4:302 shift + 93:303 reduce + 31:298,target 45 + 15:299 shift + 16:287,target 83 + 98:0,target 63 + 92:303,target 44 + 24:303 reduce + 3:303,target 53 + 9:0,target 60 + 91:0,target 43 + 2:0,target 52 + 83:0,target 31 + 75:0,target 23 + 63:303 reduce + 67:0,target 15 + 0:311,target 8 + 16:266,target 62 + 60:0,target 8 + 59:0,target 7 + 35:303,target 56 + 81:303,target 29 55:0 reduce - 52:0,target 32 - 44:0,target 53 - 63:298 reduce - 36:0,target 51 + 52:0,target 38 + 33:302 shift + 36:0,target 58 76:0 reduce 28:0,target 0 - 47:295,target 31 - 21:0,target 70 - 54:298,target 34 - 4:295,target 31 - 99:298,target 58 + 21:0,target 75 + 72:303 reduce + 24:303,target 78 97:0 reduce - 33:297 shift - 31:296,target 40 - 72:298 reduce - 45:335 goto + 70:303,target 18 + 69:303,target 17 + 31:296,target 45 + 46:301,target 32 + 16:285,target 81 + 0:329,target 26 + 0:330,target 27 + 42:303 shift 31:0 reduce - 43:298,target 90 - 88:298,target 65 - 0:308,target 10 - 16:264,target 66 - 89:284 shift + 58:303,target 6 + 0:308,target 5 + 16:264,target 60 + 81:303 reduce 52:0 reduce - 89:285 shift 15:334 goto - 89:286 shift - 42:298 reduce - 89:287 shift + 87:294,target 52 + 12:303 shift + 94:297,target 91 73:0 reduce - 89:288 shift - 32:298,target 41 - 89:290 shift - 89:289 shift - 81:298 reduce - 77:298,target 19 - 94:0 reduce + 32:298,target 46 + 51:303 reduce + 47:303,target 33 + 93:303,target 62 5:0 reduce + 15:299,target 56 } array set sia::rules { 9,l 332 11,l 332 - 32,l 333 + 32,l 332 53,l 339 74,l 341 6,l 332 - 28,l 333 + 28,l 332 50,l 339 - 49,l 339 - 71,l 341 - 3,l 332 + 49,l 337 + 71,l 340 + 3,l 331 25,l 332 - 46,l 339 - 67,l 341 - 0,l 343 + 46,l 336 + 67,l 339 + 0,l 342 22,l 332 - 43,l 338 - 64,l 340 + 43,l 335 + 64,l 339 18,l 332 - 40,l 336 - 39,l 335 + 40,l 334 + 39,l 333 61,l 339 - 82,l 342 15,l 332 - 36,l 334 + 36,l 333 57,l 339 - 78,l 342 + 78,l 341 12,l 332 33,l 333 54,l 339 75,l 341 7,l 332 - 29,l 333 - 30,l 333 + 29,l 332 + 30,l 332 51,l 339 72,l 341 - 4,l 332 + 4,l 331 26,l 332 - 47,l 339 - 68,l 341 - 1,l 332 + 47,l 337 + 68,l 340 + 1,l 331 23,l 332 - 44,l 337 - 65,l 340 + 44,l 335 + 65,l 339 19,l 332 20,l 332 - 41,l 336 + 41,l 334 62,l 339 16,l 332 - 37,l 335 + 37,l 333 58,l 339 - 80,l 342 - 79,l 342 + 80,l 341 + 79,l 341 13,l 332 34,l 333 55,l 339 76,l 341 8,l 332 10,l 332 - 31,l 333 + 31,l 332 52,l 339 73,l 341 - 5,l 332 + 5,l 331 27,l 332 - 48,l 339 - 70,l 341 - 69,l 341 - 2,l 332 + 48,l 338 + 70,l 340 + 69,l 340 + 2,l 331 24,l 332 - 45,l 339 - 66,l 340 + 45,l 336 + 66,l 339 21,l 332 - 42,l 337 - 63,l 340 + 42,l 335 + 63,l 339 17,l 332 - 38,l 335 + 38,l 333 60,l 339 59,l 339 - 81,l 342 + 81,l 341 14,l 332 - 35,l 334 + 35,l 333 56,l 339 - 77,l 342 + 77,l 341 } array set sia::rules { - 63,dc 2 + 63,dc 4 12,dc 1 77,dc 1 26,dc 1 3,dc 1 41,dc 1 - 55,dc 1 - 70,dc 1 - 69,dc 1 + 55,dc 3 + 70,dc 2 + 69,dc 3 18,dc 1 33,dc 1 9,dc 1 47,dc 1 - 62,dc 1 + 62,dc 3 11,dc 1 76,dc 1 25,dc 1 2,dc 1 40,dc 1 39,dc 1 - 54,dc 1 - 68,dc 1 + 54,dc 2 + 68,dc 2 17,dc 1 32,dc 1 8,dc 1 46,dc 1 - 61,dc 2 + 61,dc 1 10,dc 1 75,dc 1 24,dc 1 1,dc 1 38,dc 1 - 53,dc 2 + 53,dc 1 67,dc 1 16,dc 1 - 82,dc 1 31,dc 1 7,dc 1 45,dc 1 - 60,dc 2 + 60,dc 1 59,dc 2 74,dc 1 23,dc 1 0,dc 1 37,dc 1 - 52,dc 3 - 66,dc 3 + 52,dc 1 + 66,dc 2 15,dc 1 81,dc 1 29,dc 1 30,dc 1 6,dc 1 - 44,dc 3 - 58,dc 4 + 44,dc 1 + 58,dc 2 73,dc 1 22,dc 1 36,dc 1 - 51,dc 2 + 51,dc 1 65,dc 2 14,dc 1 80,dc 1 79,dc 1 28,dc 1 5,dc 1 - 43,dc 0 - 57,dc 2 + 43,dc 1 + 57,dc 1 72,dc 1 21,dc 1 35,dc 1 50,dc 1 - 49,dc 2 - 64,dc 3 + 49,dc 3 + 64,dc 2 13,dc 1 78,dc 1 27,dc 1 4,dc 1 42,dc 1 - 56,dc 3 - 71,dc 1 + 56,dc 2 + 71,dc 3 19,dc 1 20,dc 1 34,dc 1 - 48,dc 1 + 48,dc 0 } array set sia::rules { - 41,line 189 - 7,line 150 - 37,line 184 - 4,line 147 - 34,line 178 - 1,line 144 - 31,line 175 - 27,line 170 - 24,line 167 - 80,line 238 - 79,line 237 - 21,line 164 - 76,line 232 - 17,line 160 - 73,line 229 - 43,e 1 - 14,line 157 - 70,line 226 - 69,line 225 - 11,line 154 - 66,line 220 - 63,line 217 - 60,line 212 - 59,line 211 - 56,line 207 - 53,line 204 - 50,line 201 - 49,line 200 - 46,line 197 - 43,line 192 - 9,line 152 - 40,line 188 - 39,line 186 - 6,line 149 - 36,line 181 - 3,line 146 - 33,line 177 - 29,line 173 - 30,line 174 - 26,line 169 - 82,line 240 - 23,line 166 - 78,line 236 - 19,line 162 - 20,line 163 - 75,line 231 - 16,line 159 - 72,line 228 - 13,line 156 - 68,line 224 - 10,line 153 - 65,line 219 - 62,line 214 - 58,line 210 - 55,line 206 - 52,line 203 - 48,line 199 - 45,line 196 - 42,line 192 - 8,line 151 - 38,line 185 - 5,line 148 - 35,line 180 - 2,line 145 - 32,line 176 - 28,line 172 - 25,line 168 - 81,line 239 - 22,line 165 - 77,line 235 - 18,line 161 - 74,line 230 - 15,line 158 - 71,line 227 - 12,line 155 - 67,line 223 - 64,line 218 - 61,line 213 - 57,line 209 - 54,line 205 - 51,line 202 - 47,line 198 - 44,line 193 + 41,line 192 + 7,line 156 + 37,line 187 + 4,line 152 + 34,line 184 + 1,line 149 + 31,line 180 + 27,line 176 + 24,line 173 + 80,line 244 + 79,line 243 + 21,line 170 + 76,line 240 + 17,line 166 + 73,line 237 + 14,line 163 + 70,line 232 + 69,line 231 + 11,line 160 + 66,line 226 + 63,line 223 + 60,line 219 + 59,line 218 + 56,line 215 + 53,line 211 + 50,line 207 + 49,line 204 + 46,line 200 + 43,line 196 + 9,line 158 + 40,line 191 + 39,line 189 + 6,line 155 + 36,line 186 + 3,line 151 + 33,line 183 + 29,line 178 + 30,line 179 + 26,line 175 + 23,line 172 + 78,line 242 + 19,line 168 + 20,line 169 + 75,line 239 + 16,line 165 + 72,line 236 + 13,line 162 + 68,line 230 + 10,line 159 + 65,line 225 + 62,line 222 + 58,line 217 + 55,line 214 + 52,line 209 + 48,line 203 + 45,line 199 + 42,line 195 + 8,line 157 + 38,line 188 + 5,line 153 + 35,line 185 + 2,line 150 + 32,line 181 + 48,e 1 + 28,line 177 + 25,line 174 + 81,line 245 + 22,line 171 + 77,line 241 + 18,line 167 + 74,line 238 + 15,line 164 + 71,line 233 + 12,line 161 + 67,line 227 + 64,line 224 + 61,line 220 + 57,line 216 + 54,line 212 + 51,line 208 + 47,line 203 + 44,line 197 } array set sia::lr1_table { - 35 {{49 {0 298} 2}} + 35 {{56 {0 303} 2}} 66,trans {} - 36 {{51 {0 298} 2}} + 36 {{58 {0 303} 2}} 85,trans {} - 37 {{77 298 1}} - 38 {{78 298 1}} - 40 {{80 298 1}} - 39 {{79 298 1}} - 41 {{81 298 1}} - 42 {{82 298 1}} - 43 {{52 {0 298} 2}} - 44 {{53 {0 298} 2}} - 45 {{40 {291 292 293} 1}} - 46 {{41 {291 292 293} 1}} - 47 {{56 {0 298} 2} {37 {0 298} 0} {38 {0 298} 0} {39 {0 298} 0}} - 48 {{57 {0 298} 2}} - 49 {{58 {0 298} 2} {40 {291 292 293} 0} {41 {291 292 293} 0}} - 50 {{28 {0 298} 1}} + 37 {{1 303 1}} + 38 {{2 303 1}} + 40 {{4 303 1}} + 39 {{3 303 1}} + 41 {{5 303 1}} + 42 {{55 {0 303} 2}} + 43 {{59 {0 303} 2}} + 44 {{45 {296 297 298} 1}} + 45 {{46 {296 297 298} 1}} + 46 {{62 {0 303} 2} {42 {0 303} 0} {43 {0 303} 0} {44 {0 303} 0}} + 47 {{54 {0 303} 2}} + 48 {{63 {0 303} 2} {45 {296 297 298} 0} {46 {296 297 298} 0}} + 49 {{33 {0 303} 1}} + 50 {{34 {0 303} 1}} 27,trans {} - 51 {{29 {0 298} 1}} - 46,trans {} - 52 {{30 {0 298} 1}} + 51 {{35 {0 303} 1}} + 46,trans {{296 94} {297 95} {298 96} {335 97}} + 52 {{36 {0 303} 1}} 65,trans {} - 53 {{31 {0 298} 1}} + 53 {{37 {0 303} 1}} 84,trans {} - 54 {{32 {0 298} 1}} - 55 {{33 {0 298} 1}} - 56 {{34 {0 298} 1}} - 57 {{59 {0 298} 2}} - 58 {{35 {0 298} 1}} - 59 {{36 {0 298} 1}} - 60 {{60 {0 298} 2}} - 61 {{1 {0 298} 1}} - 62 {{2 {0 298} 1}} - 63 {{3 {0 298} 1}} - 64 {{4 {0 298} 1}} - 65 {{5 {0 298} 1}} - 66 {{6 {0 298} 1}} + 54 {{38 {0 303} 1}} + 55 {{39 {0 303} 1}} + 56 {{64 {0 303} 2}} + 57 {{40 {0 303} 1}} + 58 {{41 {0 303} 1}} + 59 {{65 {0 303} 2}} + 60 {{6 {0 303} 1}} + 61 {{7 {0 303} 1}} + 62 {{8 {0 303} 1}} + 63 {{9 {0 303} 1}} + 64 {{10 {0 303} 1}} + 65 {{11 {0 303} 1}} + 66 {{12 {0 303} 1}} 26,trans {} - 67 {{7 {0 298} 1}} + 67 {{13 {0 303} 1}} 45,trans {} - 68 {{8 {0 298} 1}} + 68 {{14 {0 303} 1}} 64,trans {} - 69 {{9 {0 298} 1}} - 70 {{10 {0 298} 1}} + 69 {{15 {0 303} 1}} + 70 {{16 {0 303} 1}} 83,trans {} - 71 {{11 {0 298} 1}} - 72 {{12 {0 298} 1}} - 73 {{13 {0 298} 1}} - 74 {{14 {0 298} 1}} - 75 {{15 {0 298} 1}} - 76 {{16 {0 298} 1}} - 77 {{17 {0 298} 1}} - 78 {{18 {0 298} 1}} - 79 {{19 {0 298} 1}} - 80 {{20 {0 298} 1}} - 81 {{21 {0 298} 1}} - 82 {{22 {0 298} 1}} - 83 {{23 {0 298} 1}} + 71 {{17 {0 303} 1}} + 72 {{18 {0 303} 1}} + 73 {{19 {0 303} 1}} + 74 {{20 {0 303} 1}} + 75 {{21 {0 303} 1}} + 76 {{22 {0 303} 1}} + 77 {{23 {0 303} 1}} + 78 {{24 {0 303} 1}} + 79 {{25 {0 303} 1}} + 80 {{26 {0 303} 1}} + 81 {{27 {0 303} 1}} + 82 {{28 {0 303} 1}} + 83 {{29 {0 303} 1}} 25,trans {} - 84 {{24 {0 298} 1}} + 84 {{30 {0 303} 1}} 44,trans {} - 85 {{25 {0 298} 1}} + 85 {{31 {0 303} 1}} 63,trans {} - 86 {{26 {0 298} 1}} + 86 {{32 {0 303} 1}} 82,trans {} - 87 {{27 {0 298} 1}} - 0 {{0 0 0} {42 0 0} {44 0 0} {45 {0 298} 0} {46 {0 298} 0} {47 {0 298} 0} {48 {0 298} 0} {49 {0 298} 0} {50 {0 298} 0} {51 {0 298} 0} {52 {0 298} 0} {53 {0 298} 0} {54 {0 298} 0} {55 {0 298} 0} {56 {0 298} 0} {57 {0 298} 0} {58 {0 298} 0} {59 {0 298} 0} {60 {0 298} 0} {61 {0 298} 0} {62 {0 298} 0} {67 {0 298} 0} {68 {0 298} 0} {69 {0 298} 0} {70 {0 298} 0} {71 {0 298} 0} {72 {0 298} 0} {73 {0 298} 0} {74 {0 298} 0} {75 {0 298} 0} {76 {0 298} 0}} - 88 {{61 {0 298} 2}} - 1 {{46 {0 298} 1}} - 89 {{44 0 2}} - 90 {{65 {0 298} 2} {66 {0 298} 2} {28 {0 298} 0} {29 {0 298} 0} {30 {0 298} 0} {31 {0 298} 0} {32 {0 298} 0} {33 {0 298} 0} {34 {0 298} 0}} - 2 {{47 {0 298} 1}} - 91 {{40 {0 284 285 286 287 288 289 290 298} 1}} - 3 {{48 {0 298} 1}} - 92 {{41 {0 284 285 286 287 288 289 290 298} 1}} - 4 {{49 {0 298} 1} {63 {0 298} 0} {64 {0 298} 0} {65 {0 298} 0} {66 {0 298} 0} {40 {295 296} 0} {41 {295 296} 0}} - 93 {{63 {0 298} 2} {64 {0 298} 2} {28 {0 298} 0} {29 {0 298} 0} {30 {0 298} 0} {31 {0 298} 0} {32 {0 298} 0} {33 {0 298} 0} {34 {0 298} 0}} - 5 {{50 {0 298} 1}} - 94 {{52 {0 298} 3}} - 6 {{51 {0 298} 1} {67 {0 298} 0} {68 {0 298} 0} {69 {0 298} 0} {70 {0 298} 0} {71 {0 298} 0} {72 {0 298} 0} {73 {0 298} 0} {74 {0 298} 0} {75 {0 298} 0} {76 {0 298} 0}} - 95 {{37 {0 298} 1}} - 7 {{52 {0 298} 1} {77 298 0} {78 298 0} {79 298 0} {80 298 0} {81 298 0} {82 298 0}} - 96 {{38 {0 298} 1}} - 8 {{53 {0 298} 1}} - 97 {{39 {0 298} 1}} - 9 {{54 {0 298} 1}} - 98 {{56 {0 298} 3}} + 87 {{66 {0 303} 2}} + 0 {{0 0 0} {47 0 0} {49 0 0} {50 {0 303} 0} {51 {0 303} 0} {52 {0 303} 0} {53 {0 303} 0} {54 {0 303} 0} {55 {0 303} 0} {56 {0 303} 0} {57 {0 303} 0} {58 {0 303} 0} {59 {0 303} 0} {60 {0 303} 0} {61 {0 303} 0} {62 {0 303} 0} {63 {0 303} 0} {64 {0 303} 0} {65 {0 303} 0} {66 {0 303} 0} {67 {0 303} 0} {72 {0 303} 0} {73 {0 303} 0} {74 {0 303} 0} {75 {0 303} 0} {76 {0 303} 0} {77 {0 303} 0} {78 {0 303} 0} {79 {0 303} 0} {80 {0 303} 0} {81 {0 303} 0}} + 88 {{49 0 2}} + 1 {{51 {0 303} 1}} + 89 {{70 {0 303} 2} {71 {0 303} 2} {33 {0 303} 0} {34 {0 303} 0} {35 {0 303} 0} {36 {0 303} 0} {37 {0 303} 0} {38 {0 303} 0} {39 {0 303} 0}} + 90 {{45 {0 289 290 291 292 293 294 295 303} 1}} + 2 {{52 {0 303} 1}} + 91 {{46 {0 289 290 291 292 293 294 295 303} 1}} + 3 {{53 {0 303} 1}} + 92 {{68 {0 303} 2} {69 {0 303} 2} {33 {0 303} 0} {34 {0 303} 0} {35 {0 303} 0} {36 {0 303} 0} {37 {0 303} 0} {38 {0 303} 0} {39 {0 303} 0}} + 4 {{56 {0 303} 1} {68 {0 303} 0} {69 {0 303} 0} {70 {0 303} 0} {71 {0 303} 0} {45 {300 301} 0} {46 {300 301} 0}} + 93 {{55 {0 303} 3}} + 5 {{57 {0 303} 1}} + 94 {{42 {0 303} 1}} + 6 {{58 {0 303} 1} {72 {0 303} 0} {73 {0 303} 0} {74 {0 303} 0} {75 {0 303} 0} {76 {0 303} 0} {77 {0 303} 0} {78 {0 303} 0} {79 {0 303} 0} {80 {0 303} 0} {81 {0 303} 0}} + 95 {{43 {0 303} 1}} + 7 {{55 {0 303} 1} {1 303 0} {2 303 0} {3 303 0} {4 303 0} {5 303 0}} + 96 {{44 {0 303} 1}} + 8 {{59 {0 303} 1}} + 97 {{62 {0 303} 3}} + 9 {{60 {0 303} 1}} + 98 {{63 {0 303} 3} {42 {0 303} 0} {43 {0 303} 0} {44 {0 303} 0}} 24,trans {} - 99 {{58 {0 298} 3} {37 {0 298} 0} {38 {0 298} 0} {39 {0 298} 0}} - 43,trans {{298 94}} + 99 {{49 0 3}} + 43,trans {} 62,trans {} 81,trans {} - 99,trans {{291 95} {292 96} {293 97} {335 103}} + 99,trans {} 23,trans {} - 42,trans {} + 42,trans {{303 93}} 61,trans {} 79,trans {} 80,trans {} - 98,trans {} + 98,trans {{296 94} {297 95} {298 96} {335 102}} 9,trans {} 22,trans {} 41,trans {} @@ -1057,25 +1050,24 @@ 60,trans {} 78,trans {} 97,trans {} - 8,trans {{298 44}} - 100 {{44 0 3}} - 101 {{66 {0 298} 3}} - 102 {{64 {0 298} 3}} - 103 {{58 {0 298} 4}} + 8,trans {{303 43}} + 100 {{71 {0 303} 3}} + 101 {{69 {0 303} 3}} + 102 {{63 {0 303} 4}} 21,trans {} 39,trans {} 40,trans {} 58,trans {} 77,trans {} 96,trans {} - 7,trans {{326 37} {327 38} {328 39} {329 40} {330 41} {331 42} {342 43}} + 7,trans {{257 37} {258 38} {259 39} {260 40} {261 41} {331 42}} 19,trans {} 20,trans {} 38,trans {} 57,trans {} 76,trans {} 95,trans {} - 6,trans {{316 18} {317 19} {318 20} {319 21} {320 22} {321 23} {322 24} {323 25} {324 26} {325 27} {341 36}} + 6,trans {{321 18} {322 19} {323 20} {324 21} {325 22} {326 23} {327 24} {328 25} {329 26} {330 27} {341 36}} 18,trans {} 37,trans {} 56,trans {} @@ -1086,277 +1078,272 @@ 36,trans {} 55,trans {} 74,trans {} - 93,trans {{284 50} {285 51} {286 52} {287 53} {288 54} {289 55} {290 56} {333 102}} - 4,trans {{295 31} {296 32} {297 33} {336 34} {340 35}} - 16,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {263 67} {264 68} {265 69} {266 70} {267 71} {268 72} {269 73} {270 74} {271 75} {272 76} {273 77} {274 78} {275 79} {276 80} {277 81} {278 82} {279 83} {280 84} {281 85} {282 86} {283 87} {332 88}} + 93,trans {} + 4,trans {{300 31} {301 32} {302 33} {336 34} {340 35}} + 16,trans {{262 60} {263 61} {264 62} {265 63} {266 64} {267 65} {268 66} {269 67} {270 68} {271 69} {272 70} {273 71} {274 72} {275 73} {276 74} {277 75} {278 76} {279 77} {280 78} {281 79} {282 80} {283 81} {284 82} {285 83} {286 84} {287 85} {288 86} {332 87}} 35,trans {} 54,trans {} 73,trans {} - 92,trans {} + 92,trans {{289 49} {290 50} {291 51} {292 52} {293 53} {294 54} {295 55} {333 101}} 3,trans {} - 15,trans {{291 58} {294 59} {334 60}} - 34,trans {{295 91} {296 92} {336 93}} + 15,trans {{296 57} {299 58} {334 59}} + 34,trans {{300 90} {301 91} {336 92}} 53,trans {} 72,trans {} 91,trans {} 2,trans {} - 14,trans {{284 50} {285 51} {286 52} {287 53} {288 54} {289 55} {290 56} {333 57}} - 33,trans {{297 90}} + 14,trans {{289 49} {290 50} {291 51} {292 52} {293 53} {294 54} {295 55} {333 56}} + 33,trans {{302 89}} 52,trans {} 71,trans {} - 90,trans {{284 50} {285 51} {286 52} {287 53} {288 54} {289 55} {290 56} {333 101}} 1,trans {} - 89,trans {{298 100}} - 103,trans {} - 13,trans {{295 31} {296 32} {336 49}} + 89,trans {{289 49} {290 50} {291 51} {292 52} {293 53} {294 54} {295 55} {333 100}} + 90,trans {} + 13,trans {{300 31} {301 32} {336 48}} 32,trans {} 51,trans {} 69,trans {} 70,trans {} - 0,trans {{299 1} {300 2} {301 3} {302 4} {303 5} {304 6} {305 7} {306 8} {307 9} {308 10} {309 11} {310 12} {311 13} {312 14} {313 15} {314 16} {315 17} {316 18} {317 19} {318 20} {319 21} {320 22} {321 23} {322 24} {323 25} {324 26} {325 27} {337 28} {339 29} {341 30}} - 88,trans {} + 0,trans {{304 1} {305 2} {306 3} {307 4} {308 5} {309 6} {310 7} {311 8} {312 9} {313 10} {314 11} {315 12} {316 13} {317 14} {318 15} {319 16} {320 17} {321 18} {322 19} {323 20} {324 21} {325 22} {326 23} {327 24} {328 25} {329 26} {330 27} {337 28} {339 29} {341 30}} + 88,trans {{303 99}} 102,trans {} - 12,trans {{298 48}} + 12,trans {{303 47}} 31,trans {} - 49,trans {{295 45} {296 46} {336 99}} + 49,trans {} 50,trans {} 68,trans {} 87,trans {} 101,trans {} - 10 {{56 {0 298} 1} {40 {291 292 293} 0} {41 {291 292 293} 0}} - 11 {{55 {0 298} 1}} - 12 {{57 {0 298} 1}} - 13 {{58 {0 298} 1} {40 {295 296} 0} {41 {295 296} 0}} - 14 {{59 {0 298} 1} {28 {0 298} 0} {29 {0 298} 0} {30 {0 298} 0} {31 {0 298} 0} {32 {0 298} 0} {33 {0 298} 0} {34 {0 298} 0}} - 15 {{60 {0 298} 1} {35 {0 298} 0} {36 {0 298} 0}} + 10 {{62 {0 303} 1} {45 {296 297 298} 0} {46 {296 297 298} 0}} + 11 {{61 {0 303} 1}} + 12 {{54 {0 303} 1}} + 13 {{63 {0 303} 1} {45 {300 301} 0} {46 {300 301} 0}} + 14 {{64 {0 303} 1} {33 {0 303} 0} {34 {0 303} 0} {35 {0 303} 0} {36 {0 303} 0} {37 {0 303} 0} {38 {0 303} 0} {39 {0 303} 0}} + 15 {{65 {0 303} 1} {40 {0 303} 0} {41 {0 303} 0}} 11,trans {} - 16 {{61 {0 298} 1} {1 {0 298} 0} {2 {0 298} 0} {3 {0 298} 0} {4 {0 298} 0} {5 {0 298} 0} {6 {0 298} 0} {7 {0 298} 0} {8 {0 298} 0} {9 {0 298} 0} {10 {0 298} 0} {11 {0 298} 0} {12 {0 298} 0} {13 {0 298} 0} {14 {0 298} 0} {15 {0 298} 0} {16 {0 298} 0} {17 {0 298} 0} {18 {0 298} 0} {19 {0 298} 0} {20 {0 298} 0} {21 {0 298} 0} {22 {0 298} 0} {23 {0 298} 0} {24 {0 298} 0} {25 {0 298} 0} {26 {0 298} 0} {27 {0 298} 0}} - 29,trans {{338 89}} + 16 {{66 {0 303} 1} {6 {0 303} 0} {7 {0 303} 0} {8 {0 303} 0} {9 {0 303} 0} {10 {0 303} 0} {11 {0 303} 0} {12 {0 303} 0} {13 {0 303} 0} {14 {0 303} 0} {15 {0 303} 0} {16 {0 303} 0} {17 {0 303} 0} {18 {0 303} 0} {19 {0 303} 0} {20 {0 303} 0} {21 {0 303} 0} {22 {0 303} 0} {23 {0 303} 0} {24 {0 303} 0} {25 {0 303} 0} {26 {0 303} 0} {27 {0 303} 0} {28 {0 303} 0} {29 {0 303} 0} {30 {0 303} 0} {31 {0 303} 0} {32 {0 303} 0}} + 29,trans {{338 88}} 30,trans {} - 17 {{62 {0 298} 1}} - 48,trans {} - 18 {{67 {0 298} 1}} + 17 {{67 {0 303} 1}} + 48,trans {{300 44} {301 45} {336 98}} + 18 {{72 {0 303} 1}} 67,trans {} - 20 {{69 {0 298} 1}} - 19 {{68 {0 298} 1}} + 20 {{74 {0 303} 1}} + 19 {{73 {0 303} 1}} 86,trans {} - 21 {{70 {0 298} 1}} - 22 {{71 {0 298} 1}} + 21 {{75 {0 303} 1}} + 22 {{76 {0 303} 1}} 100,trans {} - 23 {{72 {0 298} 1}} - 24 {{73 {0 298} 1}} - 25 {{74 {0 298} 1}} - 26 {{75 {0 298} 1}} - 27 {{76 {0 298} 1}} + 23 {{77 {0 303} 1}} + 24 {{78 {0 303} 1}} + 25 {{79 {0 303} 1}} + 26 {{80 {0 303} 1}} + 27 {{81 {0 303} 1}} 28 {{0 0 1}} - 30 {{45 {0 298} 1}} - 29 {{42 0 1} {44 0 1} {43 298 0}} - 31 {{40 {295 296} 1}} - 32 {{41 {295 296} 1}} - 10,trans {{295 45} {296 46} {336 47}} - 33 {{65 {0 298} 1} {66 {0 298} 1}} + 30 {{50 {0 303} 1}} + 29 {{47 0 1} {49 0 1} {48 303 0}} + 31 {{45 {300 301} 1}} + 32 {{46 {300 301} 1}} + 10,trans {{300 44} {301 45} {336 46}} + 33 {{70 {0 303} 1} {71 {0 303} 1}} 28,trans {} - 34 {{63 {0 298} 1} {64 {0 298} 1} {40 {0 284 285 286 287 288 289 290 298} 0} {41 {0 284 285 286 287 288 289 290 298} 0}} - 47,trans {{291 95} {292 96} {293 97} {335 98}} + 34 {{68 {0 303} 1} {69 {0 303} 1} {45 {0 289 290 291 292 293 294 295 303} 0} {46 {0 289 290 291 292 293 294 295 303} 0}} + 47,trans {} } array set sia::token_id_table { - 286 FK5_ + 286 WCSX_ 286,t 0 - 287 J2000_ + 287 WCSY_ 292,line 44 - 302,line 61 - 288 ICRS_ + 302,line 58 + 288 WCSZ_ 317,t 0 - 265,title WCSH - 289 GALACTIC_ - 290 ECLIPTIC_ - 300 CLEAR_ - 284,title FK4 - 291 DEGREES_ - 301 CLOSE_ - 313,title SKYFORMAT - 292 ARCMIN_ - 302 COORDINATE_ + 265,title WCSC + 289 FK4_ + 290 B1950_ + 300 INT_ + 284,title WCSV + 291 FK5_ + 301 REAL_ + 313,title RADIUS + 292 J2000_ + 302 SEXSTR_ 338,t 1 332,title {} 288,line 39 - 293 ARCSEC_ - 303 CROSSHAIR_ - 294 SEXAGESIMAL_ - 304 CURRENT_ - 305 EXPORT_ - 295 INT_ - 306 NAME_ - 296 REAL_ - 307 PRINT_ + 293 ICRS_ + 303 STRING_ + 294 GALACTIC_ + 304 CANCEL_ + 305 CLEAR_ + 295 ECLIPTIC_ + 306 CLOSE_ + 296 DEGREES_ + 307 COORDINATE_ 262,t 0 - 297 SEXSTR_ - 308 RADIUS_ + 297 ARCMIN_ + 308 CROSSHAIR_ 285,line 36 - 298 STRING_ - 310 SAVE_ - 309 RETRIEVE_ - 299 CANCEL_ - 311 SIZE_ + 298 ARCSEC_ + 310 EXPORT_ + 309 CURRENT_ + 299 SEXAGESIMAL_ + 311 NAME_ 283,t 0 - 312 SKY_ - 313 SKYFORMAT_ + 312 PRINT_ + 313 RADIUS_ 314,t 0 - 314 SYSTEM_ - 282,line 32 - 315 UPDATE_ - 316 2MASS_ - 264,title WCSG + 314 RETRIEVE_ + 282,line 33 + 315 SAVE_ + 316 SIZE_ + 264,title WCSB 335,t 1 - 317 AKARI_ - 283,title WCSZ - 318 ASTROWISE_ - 312,title SKY - 331,title TSV - 320 CXC_ - 319 CADC_ - 278,line 28 - error,line 142 - 321 HLA_ - 322 MAST_ + 317 SKY_ + 283,title WCSU + 318 SKYFORMAT_ + 312,title PRINT + 331,title {} + 320 UPDATE_ + 319 SYSTEM_ + 278,line 29 + error,line 147 + 321 2MASS_ + 322 AKARI_ 258,t 0 - 323 SDSS_ - 324 SKYVIEW_ - 325 TGSSADR_ - 275,line 25 + 323 ASTROWISE_ + 324 CADC_ + 325 CXC_ + 275,line 26 279,t 0 280,t 0 - 326 XML_ - 341,line 222 - 327 VOT_ - 328 SB_ + 326 HLA_ + 341,line 235 + 327 MAST_ + 328 SDSS_ 311,t 0 - 330 CSV_ - 329 STARBASE_ - 331 TSV_ - 272,line 22 + 330 TGSSADR_ + 329 SKYVIEW_ + 331 writer + 272,line 23 332,t 1 332 wcssys - 337,line 191 + 337,line 202 333 skyframe - 263,title WCSF + 263,title WCSA 334 skyformat - 282,title WCSY + 282,title WCST 335 rformat - 311,title SIZE + 311,title NAME 336 numeric - 330,title CSV - 329,title STARBASE - 268,line 18 + 330,title TGSSADR + 329,title SKYVIEW + 268,line 19 337 command 338 @PSEUDO1 - 334,line 179 + 334,line 190 340 coordinate 339 sia 276,t 0 341 site - 342 writer - 265,line 15 - 343 start' + 342 start' + 265,line 16 307,t 0 297,t 0 - 331,line 92 + 331,line 148 328,t 0 - 262,line 12 + 262,line 13 0,t 0 0 {$} 327,line 88 - 262,title WCSE - 281,title WCSX + 262,title WCS + 281,title WCSS error,t 0 - 310,title SAVE - 309,title RETRIEVE - 299,title CANCEL - 328,title SB + 310,title EXPORT + 309,title CURRENT + 299,title SEXAGESIMAL + 328,title SDSS 258,line 8 273,t 0 - 324,line 84 + 324,line 85 294,t 0 304,t 0 325,t 0 - 321,line 81 + 321,line 82 317,line 77 - 261,title WCSD - 279,title WCSV - 280,title WCSW - 308,title RADIUS + 261,title TSV + 279,title WCSQ + 280,title WCSR + 308,title CROSSHAIR 269,t 0 270,t 0 - 298,title string - 327,title VOT - 314,line 73 + 298,title ARCSEC + 327,title MAST + 314,line 74 291,t 0 301,t 0 322,t 0 - 311,line 70 - 343,t 1 - 307,line 66 + 311,line 71 + 307,line 67 266,t 0 - 260,title WCSC - 259,title WCSB - 297,line 52 - 278,title WCSU - 307,title PRINT - 297,title sexagesimal - 326,title XML + 260,title CSV + 259,title STARBASE + 297,line 50 + 278,title WCSP + 307,title COORDINATE + 297,title ARCMIN + 326,title HLA 287,t 0 - 294,line 47 - 304,line 63 + 294,line 46 + 304,line 64 318,t 0 340,t 1 339,t 1 error,title {} 291,line 43 - 301,line 60 + 301,line 56 263,t 0 - 258,title WCSA + 258,title SB 287,line 38 - 277,title WCST + 277,title WCSO 284,t 0 - 306,title NAME - 296,title float - 325,title TGSSADR + 306,title CLOSE + 296,title DEGREES + 325,title CXC 315,t 0 284,line 35 336,t 1 - 281,line 31 + 281,line 32 260,t 0 259,t 0 281,t 0 - 257,title WCS - 277,line 27 - 276,title WCSS - 343,line 241 + 257,title RDB + 277,line 28 + 276,title WCSN 312,t 0 - 305,title EXPORT - 295,title integer - 324,title SKYVIEW - 343,title {} + 305,title CLEAR + 295,title ECLIPTIC + 324,title CADC 333,t 1 - 274,line 24 - 340,line 216 - 339,line 195 - 271,line 21 - 336,line 187 + 274,line 25 + 340,line 229 + 339,line 206 + 271,line 22 + 336,line 198 277,t 0 308,t 0 - 267,line 17 + 267,line 18 298,t 0 - 275,title WCSR - 333,line 171 - 294,title SEXAGESIMAL - 304,title CURRENT + 275,title WCSM + 333,line 182 + 294,title GALACTIC + 304,title CANCEL 330,t 0 329,t 0 - 323,title SDSS + 323,title ASTROWISE 342,title {} - 264,line 14 + 264,line 15 330,line 91 329,line 90 261,line 11 @@ -1366,11 +1353,11 @@ 295,t 0 257,line 7 326,t 0 - 274,title WCSQ - 323,line 83 - 293,title ARCSEC - 303,title CROSSHAIR - 322,title MAST + 274,title WCSL + 323,line 84 + 293,title ICRS + 303,title string + 322,title AKARI 341,title {} 320,line 80 319,line 79 @@ -1380,77 +1367,77 @@ 302,t 0 316,line 76 323,t 0 - 273,title WCSP - 313,line 72 - 292,title ARCMIN - 302,title COORDINATE - 321,title HLA + 273,title WCSK + 313,line 73 + 292,title J2000 + 302,title sexagesimal + 321,title 2MASS 340,title {} 339,title {} 267,t 0 - 310,line 69 - 309,line 68 - 299,line 58 + 310,line 70 + 309,line 69 + 299,line 53 288,t 0 320,t 0 319,t 0 - 306,line 65 - 296,line 50 + 306,line 66 + 296,line 49 341,t 1 - 272,title WCSO - 291,title DEGREES + 272,title WCSJ + 291,title FK5 293,line 45 - 301,title CLOSE - 303,line 62 - 320,title CXC - 319,title CADC + 301,title float + 303,line 60 + 320,title UPDATE + 319,title SYSTEM 338,title {} 264,t 0 285,t 0 - 289,line 40 - 290,line 41 - 300,line 59 + 289,line 41 + 290,line 42 + 300,line 55 316,t 0 286,line 37 337,t 1 - 271,title WCSN + 271,title WCSI 261,t 0 - 283,line 33 - 289,title GALACTIC - 290,title ECLIPTIC - 300,title CLEAR - 318,title ASTROWISE + 283,line 34 + 289,title FK4 + 290,title B1950 + 300,title integer + 318,title SKYFORMAT 337,title {} 282,t 0 - 279,line 29 - 280,line 30 + 279,line 30 + 280,line 31 313,t 0 334,t 1 - 276,line 26 - 342,line 234 + 276,line 27 + 342,line 246 257,t 0 - 269,title WCSL - 270,title WCSM - 273,line 23 - 288,title ICRS - 317,title AKARI + 269,title WCSG + 270,title WCSH + 273,line 24 + 288,title WCSZ + 317,title SKY 278,t 0 - 338,line 192 + 338,line 203 336,title {} 310,t 0 309,t 0 299,t 0 - 269,line 19 - 270,line 20 - 335,line 183 - 331,t 0 - 266,line 16 - 332,line 143 - 268,title WCSK + 269,line 20 + 270,line 21 + 335,line 194 + 331,t 1 + 266,line 17 + 332,line 154 + 268,title WCSF 275,t 0 - 263,line 13 - 287,title J2000 - 316,title 2MASS + 263,line 14 + 287,title WCSY + 316,title SIZE 335,title {} 328,line 89 306,t 0 @@ -1458,63 +1445,63 @@ 327,t 0 260,line 10 259,line 9 - 325,line 85 - 322,line 82 + 325,line 86 + 322,line 83 272,t 0 - 267,title WCSJ - 257 WCS_ - 286,title FK5 + 267,title WCSE + 257 RDB_ + 286,title WCSX 293,t 0 303,t 0 - 315,title UPDATE - 258 WCSA_ + 315,title SAVE + 258 SB_ 334,title {} 318,line 78 - 260 WCSC_ - 259 WCSB_ + 260 CSV_ + 259 STARBASE_ 324,t 0 - 261 WCSD_ - 262 WCSE_ - 263 WCSF_ - 264 WCSG_ - 315,line 74 - 265 WCSH_ - 266 WCSI_ - 267 WCSJ_ + 261 TSV_ + 262 WCS_ + 263 WCSA_ + 264 WCSB_ + 315,line 75 + 265 WCSC_ + 266 WCSD_ + 267 WCSE_ 268,t 0 - 268 WCSK_ - 269 WCSL_ - 270 WCSM_ - 312,line 71 - 271 WCSN_ - 272 WCSO_ + 268 WCSF_ + 269 WCSG_ + 270 WCSH_ + 312,line 72 + 271 WCSI_ + 272 WCSJ_ 289,t 0 290,t 0 300,t 0 - 266,title WCSI - 273 WCSP_ - 274 WCSQ_ - 285,title B1950 + 266,title WCSD + 273 WCSK_ + 274 WCSL_ + 285,title WCSW 321,t 0 - 314,title SYSTEM - 275 WCSR_ + 314,title RETRIEVE + 275 WCSM_ 333,title {} - 308,line 67 - 276 WCSS_ - 298,line 54 - 277 WCST_ + 308,line 68 + 276 WCSN_ + 298,line 51 + 277 WCSO_ 342,t 1 - 278 WCSU_ - 279 WCSV_ - 280 WCSW_ - 281 WCSX_ - 305,line 64 - 282 WCSY_ - 295,line 49 + 278 WCSP_ + 279 WCSQ_ + 280 WCSR_ + 281 WCSS_ + 305,line 65 + 282 WCST_ + 295,line 47 265,t 0 - 283 WCSZ_ - 284 FK4_ - 285 B1950_ + 283 WCSU_ + 284 WCSV_ + 285 WCSW_ } proc sia::yyparse {} { @@ -1611,85 +1598,84 @@ set _ $1 set yylval [lindex $value_stack end] switch -- $rule { - 1 { set _ wcs } - 2 { set _ wcsa } - 3 { set _ wcsb } - 4 { set _ wcsc } - 5 { set _ wcsd } - 6 { set _ wcse } - 7 { set _ wcsf } - 8 { set _ wcsg } - 9 { set _ wcsh } - 10 { set _ wcsi } - 11 { set _ wcsj } - 12 { set _ wcsk } - 13 { set _ wcsl } - 14 { set _ wcsm } - 15 { set _ wcsn } - 16 { set _ wcso } - 17 { set _ wcsp } - 18 { set _ wcsq } - 19 { set _ wcsr } - 20 { set _ wcss } - 21 { set _ wcst } - 22 { set _ wcsu } - 23 { set _ wcsv } - 24 { set _ wcsw } - 25 { set _ wcsx } - 26 { set _ wcsy } - 27 { set _ wcsz } - 28 { set _ fk4 } - 29 { set _ fk4 } - 30 { set _ fk5 } - 31 { set _ fk5 } - 32 { set _ icrs } - 33 { set _ galactic } - 34 { set _ ecliptic } - 35 { set _ degrees } - 36 { set _ sexagesimal } - 37 { set _ degrees } - 38 { set _ arcmin } - 39 { set _ arcsec } - 40 { set _ $1 } - 41 { set _ $1 } - 43 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } - 45 { SIACmdRetrieve $1 } - 46 { ProcessCmdCVAR0 ARCancel } - 47 { ProcessCmdCVAR0 SIAOff } - 48 { ProcessCmdCVAR0 SIADestroy } - 50 { ProcessCmdCVAR0 SIACrosshair } - 51 { SIACmdRef $2 } - 52 { TBLCmdSave $3 $2 } - 53 { ProcessCmdCVAR name $2 } - 54 { ProcessCmdCVAR0 TBLCmdPrint } - 55 { global cvarname; SIAApply $cvarname 1 } - 56 { TBLCmdSize $2 $3 } - 57 { TBLCmdSave $2 VOTWrite } - 58 { TBLCmdSize [expr ($2+$3)/2.] $4 } - 59 { TBLCmdSkyframe $2 } - 60 { ProcessCmdCVAR skyformat $2 } - 61 { TBLCmdSystem $2 } - 62 { ProcessCVAR0 TBLUpdate } - 63 { TBLCmdCoord $1 $2 fk5 } - 64 { TBLCmdCoord $1 $2 $3 } - 65 { TBLCmdCoord $1 $2 fk5 } - 66 { TBLCmdCoord $1 $2 $3 } - 67 { set _ 2mass } - 68 { set _ akari } - 69 { set _ astrowise } - 70 { set _ cadc } - 71 { set _ cxc } - 72 { set _ hla } - 73 { set _ mast } - 74 { set _ sdss } - 75 { set _ skyview } - 76 { set _ tgssadr } - 77 { set _ VOTWrite } - 78 { set _ VOTWrite } - 79 { set _ starbase_write } - 80 { set _ starbase_write } - 81 { set _ TSVWrite } - 82 { set _ TSVWrite } + 1 { set _ starbase_write } + 2 { set _ starbase_write } + 3 { set _ starbase_write } + 4 { set _ TSVWrite } + 5 { set _ TSVWrite } + 6 { set _ wcs } + 7 { set _ wcsa } + 8 { set _ wcsb } + 9 { set _ wcsc } + 10 { set _ wcsd } + 11 { set _ wcse } + 12 { set _ wcsf } + 13 { set _ wcsg } + 14 { set _ wcsh } + 15 { set _ wcsi } + 16 { set _ wcsj } + 17 { set _ wcsk } + 18 { set _ wcsl } + 19 { set _ wcsm } + 20 { set _ wcsn } + 21 { set _ wcso } + 22 { set _ wcsp } + 23 { set _ wcsq } + 24 { set _ wcsr } + 25 { set _ wcss } + 26 { set _ wcst } + 27 { set _ wcsu } + 28 { set _ wcsv } + 29 { set _ wcsw } + 30 { set _ wcsx } + 31 { set _ wcsy } + 32 { set _ wcsz } + 33 { set _ fk4 } + 34 { set _ fk4 } + 35 { set _ fk5 } + 36 { set _ fk5 } + 37 { set _ icrs } + 38 { set _ galactic } + 39 { set _ ecliptic } + 40 { set _ degrees } + 41 { set _ sexagesimal } + 42 { set _ degrees } + 43 { set _ arcmin } + 44 { set _ arcsec } + 45 { set _ $1 } + 46 { set _ $1 } + 48 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } + 50 { SIACmdRetrieve $1 } + 51 { ProcessCmdCVAR0 ARCancel } + 52 { ProcessCmdCVAR0 SIAOff } + 53 { ProcessCmdCVAR0 SIADestroy } + 54 { TBLCmdSave $2 VOTWrite } + 55 { TBLCmdSave $3 $2 } + 57 { ProcessCmdCVAR0 SIACrosshair } + 58 { SIACmdRef $2 } + 59 { ProcessCmdCVAR name $2 } + 60 { ProcessCmdCVAR0 TBLCmdPrint } + 61 { global cvarname; SIAApply $cvarname 1 } + 62 { TBLCmdSize $2 $3 } + 63 { TBLCmdSize [expr ($2+$3)/2.] $4 } + 64 { TBLCmdSkyframe $2 } + 65 { ProcessCmdCVAR skyformat $2 } + 66 { TBLCmdSystem $2 } + 67 { ProcessCVAR0 TBLUpdate } + 68 { TBLCmdCoord $1 $2 fk5 } + 69 { TBLCmdCoord $1 $2 $3 } + 70 { TBLCmdCoord $1 $2 fk5 } + 71 { TBLCmdCoord $1 $2 $3 } + 72 { set _ 2mass } + 73 { set _ akari } + 74 { set _ astrowise } + 75 { set _ cadc } + 76 { set _ cxc } + 77 { set _ hla } + 78 { set _ mast } + 79 { set _ sdss } + 80 { set _ skyview } + 81 { set _ tgssadr } } unsetupvalues $dc # pop off tokens from the stack if normal rule diff -Nru saods9-8.2+repack/ds9/parsers/viewlex.fcl saods9-8.3+repack/ds9/parsers/viewlex.fcl --- saods9-8.2+repack/ds9/parsers/viewlex.fcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/viewlex.fcl 2021-11-08 15:46:07.000000000 +0000 @@ -25,6 +25,7 @@ lowhigh {return $LOWHIGH_} magnifier {return $MAGNIFIER_} minmax {return $MINMAX_} +multi {return $MULTI_} object {return $OBJECT_} panner {return $PANNER_} red {return $RED_} diff -Nru saods9-8.2+repack/ds9/parsers/viewlex.tcl saods9-8.3+repack/ds9/parsers/viewlex.tcl --- saods9-8.2+repack/ds9/parsers/viewlex.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/viewlex.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -234,12 +234,13 @@ set LOWHIGH_ 309 set MAGNIFIER_ 310 set MINMAX_ 311 -set OBJECT_ 312 -set PANNER_ 313 -set RED_ 314 -set UNITS_ 315 -set VERTICAL_ 316 -set VERTGRAPH_ 317 +set MULTI_ 312 +set OBJECT_ 313 +set PANNER_ 314 +set RED_ 315 +set UNITS_ 316 +set VERTICAL_ 317 +set VERTGRAPH_ 318 while {1} { if {[string length $yy_current_buffer] - $index_ < 1024} { @@ -387,356 +388,363 @@ set yyleng [string length $yytext] set matched_rule 17 } - # rule 18: object - if {[regexp -start $index_ -indices -line -nocase -- {\A(object)} $yy_current_buffer match] > 0 && \ + # rule 18: multi + if {[regexp -start $index_ -indices -line -nocase -- {\A(multi)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 18 } - # rule 19: panner - if {[regexp -start $index_ -indices -line -nocase -- {\A(panner)} $yy_current_buffer match] > 0 && \ + # rule 19: object + if {[regexp -start $index_ -indices -line -nocase -- {\A(object)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 19 } - # rule 20: red - if {[regexp -start $index_ -indices -line -nocase -- {\A(red)} $yy_current_buffer match] > 0 && \ + # rule 20: panner + if {[regexp -start $index_ -indices -line -nocase -- {\A(panner)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 20 } - # rule 21: units - if {[regexp -start $index_ -indices -line -nocase -- {\A(units)} $yy_current_buffer match] > 0 && \ + # rule 21: red + if {[regexp -start $index_ -indices -line -nocase -- {\A(red)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 21 } - # rule 22: vert - if {[regexp -start $index_ -indices -line -nocase -- {\A(vert)} $yy_current_buffer match] > 0 && \ + # rule 22: units + if {[regexp -start $index_ -indices -line -nocase -- {\A(units)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 22 } - # rule 23: vertical - if {[regexp -start $index_ -indices -line -nocase -- {\A(vertical)} $yy_current_buffer match] > 0 && \ + # rule 23: vert + if {[regexp -start $index_ -indices -line -nocase -- {\A(vert)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 23 } - # rule 24: vertgraph - if {[regexp -start $index_ -indices -line -nocase -- {\A(vertgraph)} $yy_current_buffer match] > 0 && \ + # rule 24: vertical + if {[regexp -start $index_ -indices -line -nocase -- {\A(vertical)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 24 } - # rule 25: yes - if {[regexp -start $index_ -indices -line -nocase -- {\A(yes)} $yy_current_buffer match] > 0 && \ + # rule 25: vertgraph + if {[regexp -start $index_ -indices -line -nocase -- {\A(vertgraph)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 25 } - # rule 26: no - if {[regexp -start $index_ -indices -line -nocase -- {\A(no)} $yy_current_buffer match] > 0 && \ + # rule 26: yes + if {[regexp -start $index_ -indices -line -nocase -- {\A(yes)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 26 } - # rule 27: on - if {[regexp -start $index_ -indices -line -nocase -- {\A(on)} $yy_current_buffer match] > 0 && \ + # rule 27: no + if {[regexp -start $index_ -indices -line -nocase -- {\A(no)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 27 } - # rule 28: off - if {[regexp -start $index_ -indices -line -nocase -- {\A(off)} $yy_current_buffer match] > 0 && \ + # rule 28: on + if {[regexp -start $index_ -indices -line -nocase -- {\A(on)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 28 } - # rule 29: true - if {[regexp -start $index_ -indices -line -nocase -- {\A(true)} $yy_current_buffer match] > 0 && \ + # rule 29: off + if {[regexp -start $index_ -indices -line -nocase -- {\A(off)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 29 } - # rule 30: false - if {[regexp -start $index_ -indices -line -nocase -- {\A(false)} $yy_current_buffer match] > 0 && \ + # rule 30: true + if {[regexp -start $index_ -indices -line -nocase -- {\A(true)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 30 } - # rule 31: image - if {[regexp -start $index_ -indices -line -nocase -- {\A(image)} $yy_current_buffer match] > 0 && \ + # rule 31: false + if {[regexp -start $index_ -indices -line -nocase -- {\A(false)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 31 } - # rule 32: physical - if {[regexp -start $index_ -indices -line -nocase -- {\A(physical)} $yy_current_buffer match] > 0 && \ + # rule 32: image + if {[regexp -start $index_ -indices -line -nocase -- {\A(image)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 32 } - # rule 33: amplifier - if {[regexp -start $index_ -indices -line -nocase -- {\A(amplifier)} $yy_current_buffer match] > 0 && \ + # rule 33: physical + if {[regexp -start $index_ -indices -line -nocase -- {\A(physical)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 33 } - # rule 34: detector - if {[regexp -start $index_ -indices -line -nocase -- {\A(detector)} $yy_current_buffer match] > 0 && \ + # rule 34: amplifier + if {[regexp -start $index_ -indices -line -nocase -- {\A(amplifier)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 34 } - # rule 35: wcs - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcs)} $yy_current_buffer match] > 0 && \ + # rule 35: detector + if {[regexp -start $index_ -indices -line -nocase -- {\A(detector)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 35 } - # rule 36: wcsa - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsa)} $yy_current_buffer match] > 0 && \ + # rule 36: wcs + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcs)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 36 } - # rule 37: wcsb - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsb)} $yy_current_buffer match] > 0 && \ + # rule 37: wcsa + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsa)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 37 } - # rule 38: wcsc - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsc)} $yy_current_buffer match] > 0 && \ + # rule 38: wcsb + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsb)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 38 } - # rule 39: wcsd - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsd)} $yy_current_buffer match] > 0 && \ + # rule 39: wcsc + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsc)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 39 } - # rule 40: wcse - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcse)} $yy_current_buffer match] > 0 && \ + # rule 40: wcsd + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsd)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 40 } - # rule 41: wcsf - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsf)} $yy_current_buffer match] > 0 && \ + # rule 41: wcse + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcse)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 41 } - # rule 42: wcsg - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsg)} $yy_current_buffer match] > 0 && \ + # rule 42: wcsf + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsf)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 42 } - # rule 43: wcsh - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsh)} $yy_current_buffer match] > 0 && \ + # rule 43: wcsg + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsg)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 43 } - # rule 44: wcsi - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsi)} $yy_current_buffer match] > 0 && \ + # rule 44: wcsh + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsh)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 44 } - # rule 45: wcsj - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsj)} $yy_current_buffer match] > 0 && \ + # rule 45: wcsi + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsi)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 45 } - # rule 46: wcsk - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsk)} $yy_current_buffer match] > 0 && \ + # rule 46: wcsj + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsj)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 46 } - # rule 47: wcsl - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsl)} $yy_current_buffer match] > 0 && \ + # rule 47: wcsk + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsk)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 47 } - # rule 48: wcsm - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsm)} $yy_current_buffer match] > 0 && \ + # rule 48: wcsl + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsl)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 48 } - # rule 49: wcsn - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsn)} $yy_current_buffer match] > 0 && \ + # rule 49: wcsm + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsm)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 49 } - # rule 50: wcso - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcso)} $yy_current_buffer match] > 0 && \ + # rule 50: wcsn + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsn)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 50 } - # rule 51: wcsp - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsp)} $yy_current_buffer match] > 0 && \ + # rule 51: wcso + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcso)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 51 } - # rule 52: wcsq - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsq)} $yy_current_buffer match] > 0 && \ + # rule 52: wcsp + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsp)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 52 } - # rule 53: wcsr - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsr)} $yy_current_buffer match] > 0 && \ + # rule 53: wcsq + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsq)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 53 } - # rule 54: wcss - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcss)} $yy_current_buffer match] > 0 && \ + # rule 54: wcsr + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsr)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 54 } - # rule 55: wcst - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcst)} $yy_current_buffer match] > 0 && \ + # rule 55: wcss + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcss)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 55 } - # rule 56: wcsu - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsu)} $yy_current_buffer match] > 0 && \ + # rule 56: wcst + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcst)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 56 } - # rule 57: wcsv - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsv)} $yy_current_buffer match] > 0 && \ + # rule 57: wcsu + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsu)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 57 } - # rule 58: wcsw - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsw)} $yy_current_buffer match] > 0 && \ + # rule 58: wcsv + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsv)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 58 } - # rule 59: wcsx - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsx)} $yy_current_buffer match] > 0 && \ + # rule 59: wcsw + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsw)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 59 } - # rule 60: wcsy - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsy)} $yy_current_buffer match] > 0 && \ + # rule 60: wcsx + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsx)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 60 } - # rule 61: wcsz - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsz)} $yy_current_buffer match] > 0 && \ + # rule 61: wcsy + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsy)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 61 } - # rule 62: \"[^\"]*\" - if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ + # rule 62: wcsz + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsz)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 62 } - # rule 63: \'[^\']*\' - if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ + # rule 63: \"[^\"]*\" + if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 63 } - # rule 64: \{[^\}]*\} - if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ + # rule 64: \'[^\']*\' + if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 64 } - # rule 65: \S+\S+ - if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ + # rule 65: \{[^\}]*\} + if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 65 } - # rule 66: \s - if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ + # rule 66: \S+\S+ + if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 66 } - # rule 67: . - if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + # rule 67: \s + if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 67 } + # rule 68: . + if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 68 + } if {$matched_rule == -1} { set yytext [string index $yy_current_buffer $index_] set yyleng 1 @@ -804,139 +812,139 @@ return $MINMAX_ } 18 { -return $OBJECT_ +return $MULTI_ } 19 { -return $PANNER_ +return $OBJECT_ } 20 { -return $RED_ +return $PANNER_ } 21 { -return $UNITS_ +return $RED_ } 22 { -return $VERTICAL_ +return $UNITS_ } 23 { return $VERTICAL_ } 24 { -return $VERTGRAPH_ +return $VERTICAL_ } 25 { -return $YES_ +return $VERTGRAPH_ } 26 { -return $NO_ +return $YES_ } 27 { -return $ON_ +return $NO_ } 28 { -return $OFF_ +return $ON_ } 29 { -return $TRUE_ +return $OFF_ } 30 { -return $FALSE_ +return $TRUE_ } 31 { -return $IMAGE_ +return $FALSE_ } 32 { -return $PHYSICAL_ +return $IMAGE_ } 33 { -return $AMPLIFIER_ +return $PHYSICAL_ } 34 { -return $DETECTOR_ +return $AMPLIFIER_ } 35 { -return $WCS_ +return $DETECTOR_ } 36 { -return $WCSA_ +return $WCS_ } 37 { -return $WCSB_ +return $WCSA_ } 38 { -return $WCSC_ +return $WCSB_ } 39 { -return $WCSD_ +return $WCSC_ } 40 { -return $WCSE_ +return $WCSD_ } 41 { -return $WCSF_ +return $WCSE_ } 42 { -return $WCSG_ +return $WCSF_ } 43 { -return $WCSH_ +return $WCSG_ } 44 { -return $WCSI_ +return $WCSH_ } 45 { -return $WCSJ_ +return $WCSI_ } 46 { -return $WCSK_ +return $WCSJ_ } 47 { -return $WCSL_ +return $WCSK_ } 48 { -return $WCSM_ +return $WCSL_ } 49 { -return $WCSN_ +return $WCSM_ } 50 { -return $WCSO_ +return $WCSN_ } 51 { -return $WCSP_ +return $WCSO_ } 52 { -return $WCSQ_ +return $WCSP_ } 53 { -return $WCSR_ +return $WCSQ_ } 54 { -return $WCSS_ +return $WCSR_ } 55 { -return $WCST_ +return $WCSS_ } 56 { -return $WCSU_ +return $WCST_ } 57 { -return $WCSV_ +return $WCSU_ } 58 { -return $WCSW_ +return $WCSV_ } 59 { -return $WCSX_ +return $WCSW_ } 60 { -return $WCSY_ +return $WCSX_ } 61 { -return $WCSZ_ +return $WCSY_ } 62 { -set yylval [string range $yytext 1 end-1]; return $STRING_ +return $WCSZ_ } 63 { set yylval [string range $yytext 1 end-1]; return $STRING_ @@ -945,12 +953,15 @@ set yylval [string range $yytext 1 end-1]; return $STRING_ } 65 { -set yylval $yytext; return $STRING_ +set yylval [string range $yytext 1 end-1]; return $STRING_ } 66 { -# ignore whitespace +set yylval $yytext; return $STRING_ } 67 { +# ignore whitespace + } + 68 { set yylval $yytext; return $yylval } default diff -Nru saods9-8.2+repack/ds9/parsers/viewparser.tab.tcl saods9-8.3+repack/ds9/parsers/viewparser.tab.tcl --- saods9-8.2+repack/ds9/parsers/viewparser.tab.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/viewparser.tab.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -53,9 +53,10 @@ set LOWHIGH_ 309 set MAGNIFIER_ 310 set MINMAX_ 311 -set OBJECT_ 312 -set PANNER_ 313 -set RED_ 314 -set UNITS_ 315 -set VERTICAL_ 316 -set VERTGRAPH_ 317 +set MULTI_ 312 +set OBJECT_ 313 +set PANNER_ 314 +set RED_ 315 +set UNITS_ 316 +set VERTICAL_ 317 +set VERTGRAPH_ 318 diff -Nru saods9-8.2+repack/ds9/parsers/viewparser.tac saods9-8.3+repack/ds9/parsers/viewparser.tac --- saods9-8.2+repack/ds9/parsers/viewparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/viewparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -26,6 +26,7 @@ %token LOWHIGH_ %token MAGNIFIER_ %token MINMAX_ +%token MULTI_ %token OBJECT_ %token PANNER_ %token RED_ @@ -45,38 +46,39 @@ view : layout | LAYOUT_ layout - | KEYVALUE_ STRING_ {ProcessCmdSet view info,keyvalue $2 UpdateView} - | INFO_ yesno {ProcessCmdSet view info $2 UpdateView} - | PANNER_ yesno {ProcessCmdSet view panner $2 UpdateView} - | MAGNIFIER_ yesno {ProcessCmdSet view magnifier $2 UpdateView} - | BUTTONS_ yesno {ProcessCmdSet view buttons $2 UpdateView} - | COLORBAR_ yesno {ProcessCmdSet view colorbar $2 UpdateView} + | MULTI_ yesno {ProcessCmdSet view multi $2 LayoutFrames} + | KEYVALUE_ STRING_ {ProcessCmdSet view info,keyvalue $2 LayoutView} + | INFO_ yesno {ProcessCmdSet view info $2 LayoutView} + | PANNER_ yesno {ProcessCmdSet view panner $2 LayoutView} + | MAGNIFIER_ yesno {ProcessCmdSet view magnifier $2 LayoutView} + | BUTTONS_ yesno {ProcessCmdSet view buttons $2 LayoutView} + | COLORBAR_ yesno {ProcessCmdSet view colorbar $2 LayoutFrames} # backward compatible - | COLORBARNUMERICS_ yesno {ColorbarCmdSet numerics $2 UpdateView} + | COLORBARNUMERICS_ yesno {ColorbarCmdSet numerics $2 LayoutFrames} - | GRAPH_ orient yesno {ProcessCmdSet view graph,$2 $3 UpdateView} + | GRAPH_ orient yesno {ProcessCmdSet view graph,$2 $3 LayoutFrames} # backward compatible - | HORZGRAPH_ yesno {ProcessCmdSet view graph,horz $2 UpdateView} - | VERTGRAPH_ yesno {ProcessCmdSet view graph,vert $2 UpdateView} + | HORZGRAPH_ yesno {ProcessCmdSet view graph,horz $2 LayoutFrames} + | VERTGRAPH_ yesno {ProcessCmdSet view graph,vert $2 LayoutFrames} - | FILENAME_ yesno {ProcessCmdSet view info,filename $2 UpdateView} - | OBJECT_ yesno {ProcessCmdSet view info,object $2 UpdateView} - | KEYWORD_ yesno {ProcessCmdSet view info,keyword $2 UpdateView} - | MINMAX_ yesno {ProcessCmdSet view info,minmax $2 UpdateView} - | LOWHIGH_ yesno {ProcessCmdSet view info,lowhigh $2 UpdateView} - | UNITS_ yesno {ProcessCmdSet view info,bunit $2 UpdateView} - | coordsys yesno {ProcessCmdSet view info,$1 $2 UpdateView} - | wcssys yesno {ProcessCmdSet view info,$1 $2 UpdateView} - | FRAME_ yesno {ProcessCmdSet view info,frame $2 UpdateView} + | FILENAME_ yesno {ProcessCmdSet view info,filename $2 LayoutInfoPanel} + | OBJECT_ yesno {ProcessCmdSet view info,object $2 LayoutInfoPanel} + | KEYWORD_ yesno {ProcessCmdSet view info,keyword $2 LayoutInfoPanel} + | MINMAX_ yesno {ProcessCmdSet view info,minmax $2 LayoutInfoPanel} + | LOWHIGH_ yesno {ProcessCmdSet view info,lowhigh $2 LayoutInfoPanel} + | UNITS_ yesno {ProcessCmdSet view info,bunit $2 LayoutInfoPanel} + | coordsys yesno {ProcessCmdSet view info,$1 $2 LayoutInfoPanel} + | wcssys yesno {ProcessCmdSet view info,$1 $2 LayoutInfoPanel} + | FRAME_ yesno {ProcessCmdSet view info,frame $2 LayoutInfoPanel} | RED_ yesno {ProcessCmdSet rgb red $2 RGBView} | GREEN_ yesno {ProcessCmdSet rgb green $2 RGBView} | BLUE_ yesno {ProcessCmdSet rgb blue $2 RGBView} ; -layout : HORIZONTAL_ {ProcessCmdSet view layout horizontal ViewHorzCmd} - | VERTICAL_ {ProcessCmdSet view layout vertical ViewVertCmd} +layout : HORIZONTAL_ {ProcessCmdSet view layout horizontal LayoutView} + | VERTICAL_ {ProcessCmdSet view layout vertical LayoutView} ; orient : HORIZONTAL_ {set _ horz} diff -Nru saods9-8.2+repack/ds9/parsers/viewparser.tcl saods9-8.3+repack/ds9/parsers/viewparser.tcl --- saods9-8.2+repack/ds9/parsers/viewparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/viewparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -61,12 +61,12 @@ } array set view::table { - 76:294,target 52 + 76:294,target 65 56:257 shift 6:259,target 13 6:260,target 13 56:258 shift - 33:261,target 64 + 33:261,target 65 56:260 shift 56:259 shift 56:261 shift @@ -77,25 +77,27 @@ 26:258 reduce 26:259 reduce 26:260 reduce + 95:0,target 41 0:275,target 13 26:261 reduce - 51:318 goto + 91:0 reduce 26:262 reduce + 51:319 goto 1:258,target 8 27:259,target 34 27:260,target 34 73:260,target 69 73:259,target 69 - 64:0,target 4 + 64:0,target 6 33:0,target 1 - 39:262,target 65 + 39:262,target 66 22:258,target 29 32:294,target 1 - 77:294,target 45 + 77:294,target 53 7:259,target 14 7:260,target 14 21:0 reduce - 34:261,target 64 + 34:261,target 65 86:294 reduce 0:292,target 30 0:302,target 39 @@ -105,26 +107,27 @@ 2:258,target 9 28:259,target 35 28:260,target 35 - 74:260,target 63 - 74:259,target 62 - 41:262,target 65 + 74:260,target 70 + 74:259,target 70 + 41:262,target 66 32:257 shift 32:258 shift 32:259 shift 32:260 shift - 92:0,target 51 + 92:0,target 62 32:261 shift - 56:318 goto 23:258,target 30 32:262 shift + 56:319 goto 33:294,target 1 - 78:294,target 44 - 61:0,target 5 + 78:294,target 46 + 61:0,target 2 8:259,target 15 8:260,target 15 - 35:261,target 64 + 35:261,target 65 29:0,target 36 30:0,target 37 + 0:318,target 55 35:0 reduce 17:257,target 24 3:258,target 10 @@ -133,41 +136,43 @@ 29:260,target 36 30:259,target 37 30:260,target 37 + 75:260,target 64 + 75:259,target 63 0:266,target 4 9:0 reduce 92:294 reduce - 42:262,target 65 + 42:262,target 66 62:294 reduce 24:258,target 31 34:294,target 1 - 80:294,target 43 - 79:294,target 56 + 80:294,target 57 + 79:294,target 45 9:259,target 16 9:260,target 16 32:294 reduce - 36:261,target 64 + 36:261,target 65 37:257 shift 37:258 shift 18:257,target 25 37:259 shift 37:260 shift - 88:0,target 53 + 88:0,target 64 37:261 shift 37:262 shift 50:0 reduce 49:0 reduce 4:258,target 11 - 57:0,target 0 + 57:0,target 1 31:259,target 38 31:260,target 38 0:283,target 21 - 32:318 goto + 32:319 goto 92:0 reduce 26:0,target 33 25:258,target 32 35:294,target 1 - 81:294,target 58 - 37:261,target 64 + 81:294,target 43 + 37:261,target 65 19:257,target 26 20:257,target 27 67:294 reduce @@ -177,8 +182,8 @@ 0:299,target 36 0:309,target 46 73:257 reduce - 32:259,target 62 - 32:260,target 63 + 32:259,target 63 + 32:260,target 64 73:258 reduce 37:294 reduce 73:260 reduce @@ -186,31 +191,31 @@ 64:0 reduce 73:261 reduce 73:262 reduce - 44:262,target 65 - 85:0,target 46 + 44:262,target 66 + 85:0,target 44 13:257 reduce 26:258,target 33 - 72:258,target 68 13:258 reduce 36:294,target 1 - 82:294,target 47 - 54:0,target 1 + 82:294,target 59 + 54:0,target 68 13:259 reduce 13:260 reduce 13:261 reduce 13:262 reduce - 37:318 goto + 37:319 goto 2:257 reduce 23:0,target 30 2:258 reduce 2:260 reduce 2:259 reduce 2:261 reduce + 75:319,target 94 2:262 reduce 21:257,target 28 6:258,target 13 - 33:259,target 62 - 33:260,target 63 + 33:259,target 63 + 33:260,target 64 36:0 reduce 78:0 reduce 0:274,target 12 @@ -218,15 +223,15 @@ 27:258,target 34 73:258,target 69 37:294,target 1 - 83:294,target 57 + 83:294,target 48 43:294 shift - 39:261,target 64 + 39:261,target 65 48:257 shift 48:258 shift 8:0,target 15 48:260 shift 48:259 shift - 82:0,target 47 + 82:0,target 59 48:261 shift 22:257,target 29 48:262 shift @@ -237,15 +242,15 @@ 18:259 reduce 18:260 reduce 18:261 reduce - 34:259,target 62 - 34:260,target 63 + 34:259,target 63 + 34:260,target 64 18:262 reduce 7:257 reduce 19:0,target 26 20:0,target 27 51:0 reduce 7:258 reduce - 46:262,target 65 + 46:262,target 66 0:291,target 29 0:301,target 38 7:259 reduce @@ -253,63 +258,60 @@ 7:261 reduce 7:262 reduce 2:257,target 9 - 93:0 reduce 28:258,target 35 - 74:258,target 61 - 84:294,target 55 - 41:261,target 64 + 74:258,target 70 + 84:294,target 58 + 41:261,target 65 + 32:319,target 67 78:294 reduce 23:257,target 30 8:258,target 15 48:294 reduce - 35:259,target 62 - 35:260,target 63 + 35:259,target 63 + 35:260,target 64 23:0 reduce 0:317,target 54 - 54:257 shift - 54:258 shift - 47:262,target 65 + 47:262,target 66 5:0,target 12 - 54:260 shift - 54:259 shift - 78:0,target 44 - 54:261 shift + 78:0,target 46 65:0 reduce - 54:262 shift 3:257,target 10 24:257 reduce 24:258 reduce 29:258,target 36 30:258,target 37 + 75:258,target 62 47:0,target 1 24:259 reduce 24:260 reduce 39:294,target 1 - 40:294,target 66 - 85:294,target 46 + 40:294,target 67 + 85:294,target 44 24:261 reduce - 48:318 goto 0:265,target 3 24:262 reduce + 48:319 goto 16:0,target 23 - 42:261,target 64 + 42:261,target 65 + 33:319,target 68 24:257,target 31 9:258,target 16 - 36:259,target 62 - 36:260,target 63 - 48:262,target 65 + 36:259,target 63 + 36:260,target 64 + 48:262,target 66 37:0 reduce 84:294 reduce 4:257,target 11 31:258,target 38 0:282,target 20 41:294,target 1 - 86:294,target 63 + 86:294,target 56 80:0 reduce 79:0 reduce 54:294 reduce 2:0,target 9 - 75:0,target 64 + 75:0,target 1 + 34:319,target 69 25:257,target 32 29:257 reduce 30:257 reduce @@ -322,69 +324,72 @@ 44:0,target 1 29:261 reduce 30:261 reduce - 54:318 goto 29:262 reduce 30:262 reduce - 37:259,target 62 - 37:260,target 63 + 37:259,target 63 + 37:260,target 64 13:0,target 20 10:0 reduce - 74:318,target 92 - 50:262,target 65 - 49:262,target 65 + 50:262,target 66 + 49:262,target 66 5:257,target 12 0:308,target 45 0:298,target 35 52:0 reduce - 32:258,target 61 + 32:258,target 62 42:294,target 1 - 87:294,target 59 - 44:261,target 64 + 87:294,target 47 + 44:261,target 65 + 94:0 reduce 90:294 reduce 89:294 reduce + 35:319,target 70 26:257,target 33 - 72:257,target 68 60:294 reduce 59:294 reduce - 51:262,target 65 - 72:0,target 68 + 51:262,target 66 + 72:0,target 63 + 0:325,target 60 24:0 reduce 35:257 shift 6:257,target 13 35:258 shift - 33:258,target 61 + 33:258,target 62 35:259 shift 35:260 shift 41:0,target 1 35:261 shift - 43:294,target 78 - 88:294,target 53 + 43:294,target 79 + 88:294,target 64 35:262 shift 66:0 reduce 10:0,target 17 + 59:323 goto 0:273,target 11 + 36:319,target 71 27:257,target 34 73:257,target 69 - 39:259,target 62 - 39:260,target 63 - 52:262,target 65 + 39:259,target 63 + 39:260,target 64 + 52:262,target 66 7:257,target 14 - 34:258,target 61 + 34:258,target 62 65:294 reduce 44:294,target 1 - 90:294,target 61 + 90:294,target 54 89:294,target 60 0:290,target 28 0:289,target 27 0:300,target 37 - 46:261,target 64 + 46:261,target 65 35:294 reduce 81:0 reduce 68:0,target 49 + 37:319,target 72 28:257,target 35 41:257 shift - 74:257,target 60 - 38:303,target 72 + 74:257,target 70 + 38:303,target 73 41:258 shift 37:0,target 1 41:259 shift @@ -392,25 +397,25 @@ 41:261 shift 41:262 shift 11:257 reduce - 41:259,target 62 - 41:260,target 63 + 41:259,target 63 + 41:260,target 64 11:258 reduce 11:259 reduce 11:260 reduce 11:261 reduce 11:262 reduce - 32:318,target 66 - 35:318 goto + 53:262,target 66 + 35:319 goto 8:257,target 15 11:0 reduce - 35:258,target 61 + 35:258,target 62 0:263 shift - 91:294,target 93 + 91:294,target 61 0:264 shift 0:265 shift 0:316,target 53 0:266 shift - 47:261,target 64 + 47:261,target 65 0:267 shift 53:0 reduce 0:268 shift @@ -421,24 +426,24 @@ 0:273 shift 29:257,target 36 30:257,target 37 + 75:257,target 61 0:274 shift + 95:0 reduce 0:275 shift 71:294 reduce 0:276 shift 0:264,target 2 0:277 shift 0:278 shift - 42:259,target 62 - 42:260,target 63 + 42:259,target 63 + 42:260,target 64 0:280 shift 0:279 shift 0:281 shift 0:282 shift 41:294 reduce 0:283 shift - 33:318,target 67 - 65:0,target 7 - 54:262,target 65 + 65:0,target 4 0:284 shift 0:285 shift 0:286 shift @@ -453,13 +458,13 @@ 0:290 shift 0:289 shift 0:300 shift - 36:258,target 61 + 36:258,target 62 46:261 shift + 46:262 shift 0:291 shift 0:301 shift 46:294,target 1 - 46:262 shift - 92:294,target 51 + 92:294,target 62 0:292 shift 0:302 shift 16:257 reduce @@ -470,16 +475,16 @@ 16:259 reduce 16:260 reduce 25:0 reduce - 48:261,target 64 + 48:261,target 65 0:295 shift 0:305 shift 16:261 reduce 0:306 shift 0:296 shift 16:262 reduce - 41:318 goto 0:297 shift 0:307 shift + 41:319 goto 5:257 reduce 0:308 shift 0:298 shift @@ -487,6 +492,7 @@ 0:310 shift 0:299 shift 0:309 shift + 39:319,target 76 67:0 reduce 5:260 reduce 5:259 reduce @@ -501,29 +507,30 @@ 0:315 shift 0:316 shift 0:317 shift - 0:319 goto + 0:318 shift 0:320 goto 0:321 goto 10:262,target 17 - 34:318,target 68 - 55:262,target 65 - 0:323 goto + 55:262,target 66 + 0:322 goto 0:324 goto + 0:325 goto 76:294 reduce - 37:258,target 61 + 37:258,target 62 47:294,target 1 - 93:0,target 41 - 50:261,target 64 - 49:261,target 64 + 93:294,target 95 + 50:261,target 65 + 49:261,target 65 46:294 reduce - 62:0,target 3 + 62:0,target 5 39:0 reduce 40:0 reduce 52:257 shift 0:297,target 34 0:307,target 44 + 41:319,target 77 52:258 shift - 32:257,target 60 + 32:257,target 61 52:260 shift 52:259 shift 31:0,target 38 @@ -532,32 +539,40 @@ 82:0 reduce 22:257 reduce 22:258 reduce - 44:259,target 62 - 44:260,target 63 + 44:259,target 63 + 44:260,target 64 22:259 reduce 22:260 reduce 22:261 reduce 22:262 reduce - 46:318 goto 11:262,target 18 - 35:318,target 69 - 56:262,target 65 + 46:319 goto + 56:262,target 66 48:294,target 1 - 51:261,target 64 + 94:294,target 52 + 59:323,target 93 + 51:261,target 65 12:0 reduce 0:324,target 59 - 33:257,target 60 + 42:319,target 78 + 33:257,target 61 82:294 reduce 54:0 reduce - 90:0,target 61 + 90:0,target 54 89:0,target 60 52:294 reduce 0:272,target 10 - 58:0,target 39 + 58:0,target 0 12:262,target 19 - 36:318,target 70 + 57:262,target 66 + 57:257 shift + 57:258 shift + 57:260 shift + 57:259 shift 27:0,target 34 - 39:258,target 61 + 57:261 shift + 57:262 shift + 39:258,target 62 50:294,target 1 49:294,target 1 27:257 reduce @@ -565,112 +580,113 @@ 27:259 reduce 27:260 reduce 27:261 reduce - 52:261,target 64 - 52:318 goto + 52:261,target 65 27:262 reduce + 52:319 goto 26:0 reduce - 34:257,target 60 + 34:257,target 61 + 46:260,target 64 0:288,target 26 - 46:259,target 62 - 46:260,target 63 + 46:259,target 63 68:0 reduce 1:0 reduce 13:262,target 20 - 37:318,target 71 87:294 reduce - 41:258,target 61 + 41:258,target 62 51:294,target 1 - 86:0,target 63 + 86:0,target 56 + 57:294 reduce + 53:261,target 65 55:0,target 1 + 44:319,target 80 24:0,target 31 - 35:257,target 60 + 35:257,target 61 45:303,target 40 0:315,target 52 33:257 shift 33:258 shift 41:0 reduce - 47:260,target 63 - 47:259,target 62 + 47:260,target 64 + 47:259,target 63 33:259 shift 33:260 shift 33:261 shift 33:262 shift + 57:319 goto 14:262,target 21 83:0 reduce 0:263,target 1 - 42:258,target 61 + 42:258,target 62 52:294,target 1 - 54:261,target 64 - 36:257,target 60 + 36:257,target 61 + 93:294 shift 9:0,target 16 13:0 reduce - 83:0,target 57 - 48:260,target 63 - 48:259,target 62 + 83:0,target 48 + 48:260,target 64 + 48:259,target 63 63:294 reduce 55:0 reduce 52:0,target 1 15:262,target 22 - 39:318,target 75 0:280,target 18 0:279,target 17 33:294 reduce 21:0,target 28 - 53:294,target 67 + 53:294,target 1 10:261,target 17 - 55:261,target 64 - 33:318 goto - 37:257,target 60 - 58:322,target 91 - 50:260,target 63 - 50:259,target 62 - 49:260,target 63 - 49:259,target 62 + 55:261,target 65 + 46:319,target 82 + 33:319 goto + 37:257,target 61 + 50:260,target 64 + 50:259,target 63 + 49:260,target 64 + 49:259,target 63 27:0 reduce 0:306,target 43 0:296,target 33 16:262,target 23 - 41:318,target 76 70:0 reduce 69:0 reduce 6:0,target 13 2:0 reduce - 44:258,target 61 - 80:0,target 43 - 79:0,target 56 - 54:294,target 1 + 44:258,target 62 + 80:0,target 57 + 79:0,target 45 + 54:294,target 68 68:294 reduce 11:261,target 18 - 56:261,target 64 + 56:261,target 65 48:0,target 1 - 74:257 shift + 74:257 reduce 38:303 shift - 74:258 shift - 74:260 shift - 74:259 shift + 74:258 reduce + 74:260 reduce + 74:259 reduce + 47:319,target 83 17:0,target 24 - 74:261 shift - 74:262 shift + 74:261 reduce + 74:262 reduce 44:257 shift 44:258 shift 44:259 shift 44:260 shift - 51:260,target 63 - 51:259,target 62 + 51:260,target 64 + 51:259,target 63 44:261 shift 44:262 shift - 0:323,target 58 14:257 reduce 14:258 reduce 14:259 reduce 14:260 reduce 17:262,target 24 - 38:316 shift - 42:318,target 77 14:261 reduce + 38:317 shift 42:0 reduce 14:262 reduce 3:257 reduce + 38:326,target 75 3:258 reduce 3:260 reduce 3:259 reduce @@ -679,14 +695,15 @@ 3:261 reduce 3:262 reduce 0:271,target 9 - 38:325 goto + 38:326 goto 12:261,target 19 - 39:257,target 60 + 57:261,target 65 + 48:319,target 84 + 39:257,target 61 3:0,target 10 - 76:0,target 52 - 74:294 reduce - 52:260,target 63 - 52:259,target 62 + 76:0,target 65 + 52:260,target 64 + 52:259,target 63 14:0 reduce 18:262,target 25 44:294 reduce @@ -697,7 +714,7 @@ 50:258 shift 49:258 shift 0:287,target 25 - 46:258,target 61 + 46:258,target 62 56:294,target 1 50:260 shift 50:259 shift @@ -705,7 +722,6 @@ 49:259 shift 50:261 shift 49:261 shift - 74:318 goto 50:262 shift 49:262 shift 13:261,target 20 @@ -721,137 +737,136 @@ 20:261 reduce 19:262 reduce 20:262 reduce - 44:318 goto + 50:319,target 86 + 49:319,target 85 + 44:319 goto 8:257 reduce - 41:257,target 60 + 41:257,target 61 8:258 reduce 8:259 reduce 8:260 reduce 8:261 reduce 8:262 reduce + 53:260,target 64 + 53:259,target 63 19:262,target 26 20:262,target 27 - 44:318,target 79 28:0 reduce 0:314,target 51 73:0,target 69 - 47:258,target 61 + 47:258,target 62 + 57:294,target 1 80:294 reduce 79:294 reduce 71:0 reduce 14:261,target 21 + 38:317,target 74 42:0,target 1 3:0 reduce 50:294 reduce 49:294 reduce 11:0,target 18 - 42:257,target 60 + 51:319,target 87 + 42:257,target 61 55:257 shift 55:258 shift 55:260 shift 55:259 shift 55:261 shift 55:262 shift - 54:260,target 63 - 54:259,target 62 25:257 reduce 25:258 reduce 25:259 reduce 25:260 reduce 21:262,target 28 25:261 reduce - 50:318 goto - 49:318 goto 25:262 reduce - 48:258,target 61 - 58:294,target 40 + 50:319 goto + 49:319 goto + 48:258,target 62 15:261,target 22 0:278,target 16 85:0 reduce 1:262,target 8 - 70:0,target 54 + 52:319,target 88 + 70:0,target 51 69:0,target 50 85:294 reduce 10:259,target 17 10:260,target 17 - 55:260,target 63 - 55:259,target 62 + 55:260,target 64 + 55:259,target 63 55:294 reduce 22:262,target 29 - 46:318,target 81 15:0 reduce - 50:258,target 61 - 49:258,target 61 - 60:294,target 2 - 59:294,target 42 + 50:258,target 62 + 49:258,target 62 + 60:294,target 42 + 59:294,target 40 31:257 reduce 0:295,target 32 0:305,target 42 16:261,target 23 31:258 reduce - 57:0 accept + 57:0 reduce 31:259 reduce 31:260 reduce 31:261 reduce - 55:318 goto 31:262 reduce + 55:319 goto 2:262,target 9 - 44:257,target 60 + 53:319,target 89 + 44:257,target 61 11:259,target 18 11:260,target 18 - 56:260,target 63 - 56:259,target 62 - 47:318,target 82 + 56:260,target 64 + 56:259,target 63 23:262,target 30 - 66:0,target 65 - 51:258,target 61 - 91:294 shift - 61:294,target 5 + 66:0,target 7 + 51:258,target 62 + 91:294 reduce + 61:294,target 2 + 0:322,target 58 29:0 reduce 30:0 reduce 35:0,target 1 17:261,target 24 61:294 reduce 3:262,target 10 - 38:325,target 74 72:0 reduce 4:0 reduce 0:270,target 8 0:269,target 7 12:259,target 19 12:260,target 19 + 57:260,target 64 + 57:259,target 63 36:257 shift 36:258 shift 36:259 shift 36:260 shift 36:261 shift - 48:318,target 83 24:262,target 31 36:262 shift - 52:258,target 61 - 62:294,target 3 + 52:258,target 62 + 62:294,target 5 18:261,target 25 + 94:0,target 52 44:0 reduce 4:262,target 11 + 55:319,target 90 0:286,target 24 - 46:257,target 60 - 63:0,target 6 + 46:257,target 61 + 63:0,target 3 86:0 reduce 13:259,target 20 13:260,target 20 32:0,target 1 66:294 reduce - 50:318,target 85 - 49:318,target 84 25:262,target 32 - 72:257 reduce - 72:258 reduce 36:294 reduce - 72:260 reduce - 72:259 reduce - 72:261 reduce - 72:262 reduce - 63:294,target 6 + 53:258,target 62 + 63:294,target 3 42:257 shift 42:258 shift 19:261,target 26 @@ -865,34 +880,35 @@ 5:262,target 12 0:313,target 50 12:258 reduce + 56:319,target 91 12:259 reduce 12:260 reduce - 47:257,target 60 + 47:257,target 61 12:261 reduce - 58:0 reduce + 58:0 accept 12:262 reduce - 36:318 goto + 36:319 goto 1:257 reduce 1:258 reduce 14:259,target 21 14:260,target 21 - 38:316,target 73 1:260 reduce 1:259 reduce 1:261 reduce 1:262 reduce - 51:318,target 86 + 91:0,target 61 26:262,target 33 - 72:262,target 68 - 60:0,target 2 - 59:0,target 42 - 54:258,target 61 - 64:294,target 4 + 60:0,target 42 + 59:0,target 39 + 64:294,target 6 28:0,target 35 21:261,target 28 + 45:317,target 54 + 72:294 reduce 6:262,target 13 + 57:319,target 92 31:0 reduce - 48:257,target 60 + 48:257,target 61 42:294 reduce 47:257 shift 15:259,target 22 @@ -906,7 +922,6 @@ 47:262 shift 5:0 reduce 1:261,target 8 - 52:318,target 87 17:257 reduce 27:262,target 34 73:262,target 69 @@ -915,22 +930,22 @@ 17:260 reduce 17:261 reduce 17:262 reduce - 42:318 goto 10:258,target 17 - 55:258,target 61 + 42:319 goto + 55:258,target 62 6:257 reduce - 65:294,target 7 + 65:294,target 4 6:258 reduce 6:259 reduce 6:260 reduce 6:261 reduce 6:262 reduce 22:261,target 29 - 87:0,target 59 + 87:0,target 47 7:262,target 14 56:0,target 1 - 50:257,target 60 - 49:257,target 60 + 50:257,target 61 + 49:257,target 61 0:304,target 41 16:259,target 23 16:260,target 23 @@ -939,48 +954,55 @@ 2:261,target 9 87:0 reduce 28:262,target 35 - 74:262,target 65 + 74:262,target 70 47:294 reduce 11:258,target 18 - 56:258,target 61 - 66:294,target 65 + 56:258,target 62 + 66:294,target 7 + 53:257 shift + 53:258 shift + 53:260 shift + 53:259 shift + 53:261 shift 23:261,target 30 + 53:262 shift 23:257 reduce 23:258 reduce 8:262,target 15 23:259 reduce 23:260 reduce 23:261 reduce - 51:257,target 60 - 47:318 goto + 51:257,target 61 23:262 reduce + 47:319 goto 17:0 reduce 0:321,target 57 17:259,target 24 17:260,target 24 60:0 reduce 59:0 reduce - 84:0,target 55 + 84:0,target 58 3:261,target 10 - 54:318,target 88 29:262,target 36 30:262,target 37 - 53:0,target 67 + 75:262,target 66 + 53:0,target 1 0:268,target 6 12:258,target 19 - 67:294,target 48 + 57:258,target 62 + 67:294,target 66 22:0,target 29 83:294 reduce 24:261,target 31 9:262,target 16 + 45:325,target 81 53:294 reduce - 52:257,target 60 + 52:257,target 61 18:259,target 25 18:260,target 25 32:0 reduce 4:261,target 11 28:257 reduce - 55:318,target 89 28:258 reduce 31:262,target 38 0:285,target 23 @@ -989,14 +1011,16 @@ 74:0 reduce 28:261 reduce 28:262 reduce + 53:319 goto 6:0 reduce 13:258,target 20 68:294,target 49 7:0,target 14 25:261,target 32 - 81:0,target 58 + 81:0,target 43 50:0,target 1 49:0,target 1 + 53:257,target 61 18:0,target 25 19:259,target 26 19:260,target 26 @@ -1005,52 +1029,47 @@ 88:294 reduce 5:261,target 12 0:312,target 49 - 56:318,target 90 - 32:262,target 65 + 32:262,target 66 46:0 reduce - 58:294 reduce 14:258,target 21 88:0 reduce - 70:294,target 54 + 70:294,target 51 69:294,target 50 26:261,target 33 - 72:261,target 68 34:257 shift 34:258 shift 34:259 shift 34:260 shift 34:261 shift 34:262 shift - 54:257,target 60 - 58:322 goto 21:259,target 28 21:260,target 28 - 45:316,target 53 4:0,target 11 - 77:0,target 45 + 77:0,target 53 18:0 reduce 6:261,target 13 - 33:262,target 65 + 33:262,target 66 46:0,target 1 61:0 reduce 15:258,target 22 15:0,target 22 - 71:294,target 62 + 71:294,target 55 0:276,target 14 + 94:294 reduce 1:260,target 8 1:259,target 8 27:261,target 34 73:261,target 69 64:294 reduce 10:257,target 17 - 55:257,target 60 + 55:257,target 61 34:294 reduce 22:259,target 29 22:260,target 29 39:257 shift 7:261,target 14 39:258 shift - 34:262,target 65 + 34:262,target 66 39:259 shift 39:260 shift 39:261 shift @@ -1064,64 +1083,70 @@ 10:260 reduce 16:258,target 23 10:261 reduce + 72:294,target 63 10:262 reduce - 34:318 goto 75:0 reduce 1:0,target 8 + 34:319 goto 2:260,target 9 2:259,target 9 - 74:0,target 1 + 74:0,target 70 28:261,target 35 - 74:261,target 64 + 74:261,target 70 7:0 reduce 11:257,target 18 - 56:257,target 60 + 56:257,target 61 12:0,target 19 23:259,target 30 23:260,target 30 8:261,target 15 - 35:262,target 65 + 35:262,target 66 70:294 reduce 69:294 reduce - 0:319,target 55 0:320,target 56 + 75:257 shift 17:258,target 24 + 75:258 shift 47:0 reduce 39:294 reduce 40:294 reduce + 75:260 shift + 75:259 shift + 75:261 shift + 75:262 shift 3:260,target 10 3:259,target 10 29:261,target 36 30:261,target 37 + 75:261,target 65 90:0 reduce 89:0 reduce 0:267,target 5 12:257,target 19 15:257 reduce + 57:257,target 61 15:258 reduce 15:259 reduce 15:260 reduce 15:261 reduce 15:262 reduce - 39:318 goto 24:259,target 31 24:260,target 31 + 39:319 goto 4:257 reduce - 71:0,target 62 + 71:0,target 55 4:258 reduce 4:260 reduce 4:259 reduce 4:261 reduce 9:261,target 16 - 45:324,target 80 4:262 reduce - 36:262,target 65 + 36:262,target 66 39:0,target 1 - 40:0,target 66 + 40:0,target 67 19:0 reduce 20:0 reduce 18:258,target 25 - 74:294,target 1 4:260,target 11 4:259,target 11 62:0 reduce @@ -1137,115 +1162,115 @@ 51:260 shift 51:259 shift 51:261 shift - 37:262,target 65 + 37:262,target 66 51:262 shift + 75:319 goto 21:257 reduce 21:258 reduce 21:259 reduce 21:260 reduce - 45:316 shift 19:258,target 26 20:258,target 27 21:261 reduce + 45:317 shift 21:262 reduce - 75:294,target 64 + 75:294,target 1 9:257 reduce 34:0 reduce - 67:0,target 48 + 67:0,target 66 5:260,target 12 5:259,target 12 0:311,target 48 9:258 reduce 9:259 reduce 9:260 reduce - 32:261,target 64 + 32:261,target 65 9:261 reduce - 45:324 goto 9:262 reduce + 45:325 goto 36:0,target 1 76:0 reduce 14:257,target 21 8:0 reduce 26:259,target 33 26:260,target 33 - 72:260,target 68 - 72:259,target 68 81:294 reduce 51:294 reduce 21:258,target 28 } array set view::rules { - 9,l 319 - 11,l 319 - 32,l 320 - 53,l 323 - 6,l 318 - 28,l 320 - 50,l 323 - 49,l 323 - 3,l 318 - 25,l 320 - 46,l 323 - 67,l 324 - 0,l 326 - 22,l 320 - 43,l 323 - 64,l 323 - 18,l 320 - 40,l 322 - 39,l 321 - 61,l 323 - 15,l 320 - 36,l 320 - 57,l 323 - 12,l 320 - 33,l 320 - 54,l 323 - 7,l 318 - 29,l 320 - 30,l 320 - 51,l 323 - 4,l 318 - 26,l 320 - 47,l 323 + 9,l 320 + 11,l 320 + 32,l 321 + 53,l 324 + 6,l 319 + 28,l 321 + 50,l 324 + 49,l 324 + 3,l 319 + 25,l 321 + 46,l 324 + 67,l 325 + 0,l 327 + 22,l 321 + 43,l 324 + 64,l 324 + 18,l 321 + 40,l 323 + 39,l 322 + 61,l 324 + 15,l 321 + 36,l 321 + 57,l 324 + 12,l 321 + 33,l 321 + 54,l 324 + 7,l 319 + 29,l 321 + 30,l 321 + 51,l 324 + 4,l 319 + 26,l 321 + 47,l 324 68,l 325 - 1,l 318 - 23,l 320 - 44,l 323 - 65,l 323 - 19,l 320 - 20,l 320 - 41,l 321 - 62,l 323 - 16,l 320 - 37,l 320 - 58,l 323 - 13,l 320 - 34,l 320 - 55,l 323 - 8,l 319 - 10,l 319 - 31,l 320 - 52,l 323 - 5,l 318 - 27,l 320 - 48,l 323 - 69,l 325 - 2,l 318 - 24,l 320 - 45,l 323 + 1,l 319 + 23,l 321 + 44,l 324 + 65,l 324 + 19,l 321 + 20,l 321 + 41,l 322 + 62,l 324 + 16,l 321 + 37,l 321 + 58,l 324 + 13,l 321 + 34,l 321 + 55,l 324 + 8,l 320 + 10,l 320 + 31,l 321 + 52,l 324 + 5,l 319 + 27,l 321 + 48,l 324 + 70,l 326 + 69,l 326 + 2,l 319 + 24,l 321 + 45,l 324 66,l 324 - 21,l 320 - 42,l 323 - 63,l 323 - 17,l 320 - 38,l 320 - 60,l 323 - 59,l 323 - 14,l 320 - 35,l 320 - 56,l 323 + 21,l 321 + 42,l 324 + 63,l 324 + 17,l 321 + 38,l 321 + 60,l 324 + 59,l 324 + 14,l 321 + 35,l 321 + 56,l 324 } array set view::rules { @@ -1255,6 +1280,7 @@ 3,dc 1 41,dc 3 55,dc 2 + 70,dc 1 69,dc 1 18,dc 1 33,dc 1 @@ -1288,8 +1314,8 @@ 23,dc 1 0,dc 1 37,dc 1 - 52,dc 2 - 66,dc 1 + 52,dc 3 + 66,dc 2 15,dc 1 29,dc 1 30,dc 1 @@ -1298,7 +1324,7 @@ 58,dc 2 22,dc 1 36,dc 1 - 51,dc 3 + 51,dc 2 65,dc 2 14,dc 1 28,dc 1 @@ -1322,267 +1348,272 @@ } array set view::rules { - 41,line 162 - 7,line 125 - 37,line 157 - 4,line 122 - 34,line 154 - 1,line 119 - 31,line 151 - 27,line 147 - 24,line 144 - 21,line 141 - 17,line 137 - 14,line 134 - 69,line 202 - 11,line 130 - 66,line 197 - 63,line 192 + 41,line 163 + 7,line 126 + 37,line 158 + 4,line 123 + 34,line 155 + 1,line 120 + 31,line 152 + 27,line 148 + 24,line 145 + 21,line 142 + 17,line 138 + 14,line 135 + 70,line 204 + 69,line 203 + 11,line 131 + 66,line 196 + 63,line 193 40,e 1 - 60,line 189 - 59,line 188 - 56,line 185 + 60,line 190 + 59,line 189 + 56,line 186 53,line 182 50,line 176 - 49,line 174 - 46,line 169 - 43,line 166 - 9,line 128 - 40,line 161 - 39,line 161 - 6,line 124 - 36,line 156 - 3,line 121 - 33,line 153 - 29,line 149 - 30,line 150 - 26,line 146 - 23,line 143 - 19,line 139 - 20,line 140 - 16,line 136 - 13,line 133 - 68,line 201 - 10,line 129 - 65,line 194 - 62,line 191 - 58,line 187 - 55,line 184 - 52,line 180 - 48,line 171 - 45,line 168 - 42,line 165 - 8,line 127 - 38,line 158 - 5,line 123 - 35,line 155 - 2,line 120 - 32,line 152 - 28,line 148 - 25,line 145 - 22,line 142 - 18,line 138 - 15,line 135 - 12,line 132 - 67,line 198 - 64,line 193 - 61,line 190 - 57,line 186 - 54,line 183 - 51,line 179 - 47,line 170 - 44,line 167 + 49,line 173 + 46,line 170 + 43,line 167 + 9,line 129 + 40,line 162 + 39,line 162 + 6,line 125 + 36,line 157 + 3,line 122 + 33,line 154 + 29,line 150 + 30,line 151 + 26,line 147 + 23,line 144 + 19,line 140 + 20,line 141 + 16,line 137 + 13,line 134 + 68,line 200 + 10,line 130 + 65,line 195 + 62,line 192 + 58,line 188 + 55,line 185 + 52,line 181 + 48,line 172 + 45,line 169 + 42,line 166 + 8,line 128 + 38,line 159 + 5,line 124 + 35,line 156 + 2,line 121 + 32,line 153 + 28,line 149 + 25,line 146 + 22,line 143 + 18,line 139 + 15,line 136 + 12,line 133 + 67,line 199 + 64,line 194 + 61,line 191 + 57,line 187 + 54,line 184 + 51,line 178 + 47,line 171 + 44,line 168 } array set view::lr1_table { + 35 {{51 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} 66,trans {} - 35 {{50 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 36 {{55 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} 85,trans {} - 14,trans {} - 36 {{54 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} - 33,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 67}} - 37 {{62 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} - 52,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 87}} - 38 {{51 {0 294} 1} {68 {0 257 258 259 260 261 262} 0} {69 {0 257 258 259 260 261 262} 0}} - 71,trans {} - 39 {{64 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} - 40 {{66 {0 294} 1}} - 90,trans {} - 89,trans {} - 18,trans {} - 1,trans {} - 41 {{52 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} - 37,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 71}} - 42 {{45 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} - 56,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 90}} - 43 {{44 {0 294} 1}} - 75,trans {} - 44 {{56 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} - 23,trans {} - 5,trans {} - 45 {{43 {0 294} 1} {66 {0 294} 0} {67 {0 294} 0}} - 42,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 77}} - 46 {{58 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} - 61,trans {} - 47 {{47 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} - 80,trans {} - 79,trans {} - 48 {{57 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 37 {{63 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 38 {{52 {0 294} 1} {69 {0 257 258 259 260 261 262} 0} {70 {0 257 258 259 260 261 262} 0}} + 40 {{67 {0 294} 1}} + 39 {{65 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 41 {{53 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 42 {{46 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 43 {{45 {0 294} 1}} + 44 {{57 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 45 {{43 {0 294} 1} {67 {0 294} 0} {68 {0 294} 0}} + 46 {{59 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 47 {{48 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 48 {{58 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 49 {{44 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 50 {{56 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} 27,trans {} - 9,trans {} - 50 {{46 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} - 49 {{55 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} - 46,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 81}} - 51 {{63 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 51 {{47 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 46,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 82}} + 52 {{64 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} 65,trans {} - 52 {{59 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 53 {{60 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} 84,trans {} - 13,trans {} - 53 {{67 {0 294} 1}} - 32,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 66}} - 54 {{53 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} - 51,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 86}} - 55 {{60 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} - 70,trans {} - 69,trans {} + 54 {{68 {0 294} 1}} + 55 {{54 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} 56 {{61 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} - 88,trans {} - 17,trans {} - 0,trans {{263 1} {264 2} {265 3} {266 4} {267 5} {268 6} {269 7} {270 8} {271 9} {272 10} {273 11} {274 12} {275 13} {276 14} {277 15} {278 16} {279 17} {280 18} {281 19} {282 20} {283 21} {284 22} {285 23} {286 24} {287 25} {288 26} {289 27} {290 28} {291 29} {292 30} {293 31} {295 32} {296 33} {297 34} {298 35} {299 36} {300 37} {301 38} {302 39} {303 40} {304 41} {305 42} {306 43} {307 44} {308 45} {309 46} {310 47} {311 48} {312 49} {313 50} {314 51} {315 52} {316 53} {317 54} {319 55} {320 56} {321 57} {323 58} {324 59}} - 57 {{0 0 1}} - 36,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 70}} - 58 {{39 0 1} {41 0 1} {40 294 0}} - 55,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 89}} - 60 {{2 {0 294} 1}} - 59 {{42 {0 294} 1}} - 74,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 92}} - 61 {{5 {0 294} 1}} - 93,trans {} - 62 {{3 {0 294} 1}} + 57 {{62 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 58 {{0 0 1}} + 59 {{39 0 1} {41 0 1} {40 294 0}} + 60 {{42 {0 294} 1}} + 61 {{2 {0 294} 1}} + 62 {{5 {0 294} 1}} + 63 {{3 {0 294} 1}} + 64 {{6 {0 294} 1}} + 65 {{4 {0 294} 1}} + 26,trans {} + 66 {{7 {0 294} 1}} + 67 {{66 {0 294} 2}} + 45,trans {{303 40} {317 54} {325 81}} + 68 {{49 {0 294} 2}} + 64,trans {} + 69 {{50 {0 294} 2}} + 70 {{51 {0 294} 2}} + 83,trans {} + 71 {{55 {0 294} 2}} + 72 {{63 {0 294} 2}} + 73 {{69 {0 257 258 259 260 261 262} 1}} + 74 {{70 {0 257 258 259 260 261 262} 1}} + 75 {{52 {0 294} 2} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 76 {{65 {0 294} 2}} + 77 {{53 {0 294} 2}} + 78 {{46 {0 294} 2}} + 79 {{45 {0 294} 2}} + 80 {{57 {0 294} 2}} + 81 {{43 {0 294} 2}} + 82 {{59 {0 294} 2}} + 25,trans {} + 83 {{48 {0 294} 2}} + 44,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 80}} + 84 {{58 {0 294} 2}} + 85 {{44 {0 294} 2}} + 63,trans {} + 86 {{56 {0 294} 2}} + 82,trans {} + 87 {{47 {0 294} 2}} + 0 {{0 0 0} {39 0 0} {41 0 0} {42 {0 294} 0} {43 {0 294} 0} {44 {0 294} 0} {45 {0 294} 0} {46 {0 294} 0} {47 {0 294} 0} {48 {0 294} 0} {49 {0 294} 0} {50 {0 294} 0} {51 {0 294} 0} {52 {0 294} 0} {53 {0 294} 0} {54 {0 294} 0} {55 {0 294} 0} {56 {0 294} 0} {57 {0 294} 0} {58 {0 294} 0} {59 {0 294} 0} {60 {0 294} 0} {61 {0 294} 0} {62 {0 294} 0} {63 {0 294} 0} {64 {0 294} 0} {65 {0 294} 0} {66 {0 294} 0} {67 {0 294} 0} {68 {0 294} 0} {8 {0 257 258 259 260 261 262} 0} {9 {0 257 258 259 260 261 262} 0} {10 {0 257 258 259 260 261 262} 0} {11 {0 257 258 259 260 261 262} 0} {12 {0 257 258 259 260 261 262} 0} {13 {0 257 258 259 260 261 262} 0} {14 {0 257 258 259 260 261 262} 0} {15 {0 257 258 259 260 261 262} 0} {16 {0 257 258 259 260 261 262} 0} {17 {0 257 258 259 260 261 262} 0} {18 {0 257 258 259 260 261 262} 0} {19 {0 257 258 259 260 261 262} 0} {20 {0 257 258 259 260 261 262} 0} {21 {0 257 258 259 260 261 262} 0} {22 {0 257 258 259 260 261 262} 0} {23 {0 257 258 259 260 261 262} 0} {24 {0 257 258 259 260 261 262} 0} {25 {0 257 258 259 260 261 262} 0} {26 {0 257 258 259 260 261 262} 0} {27 {0 257 258 259 260 261 262} 0} {28 {0 257 258 259 260 261 262} 0} {29 {0 257 258 259 260 261 262} 0} {30 {0 257 258 259 260 261 262} 0} {31 {0 257 258 259 260 261 262} 0} {32 {0 257 258 259 260 261 262} 0} {33 {0 257 258 259 260 261 262} 0} {34 {0 257 258 259 260 261 262} 0} {35 {0 257 258 259 260 261 262} 0} {36 {0 257 258 259 260 261 262} 0} {37 {0 257 258 259 260 261 262} 0} {38 {0 257 258 259 260 261 262} 0}} + 88 {{64 {0 294} 2}} + 1 {{8 {0 257 258 259 260 261 262} 1}} + 89 {{60 {0 294} 2}} + 90 {{54 {0 294} 2}} + 2 {{9 {0 257 258 259 260 261 262} 1}} + 91 {{61 {0 294} 2}} + 3 {{10 {0 257 258 259 260 261 262} 1}} + 92 {{62 {0 294} 2}} + 4 {{11 {0 257 258 259 260 261 262} 1}} + 93 {{41 0 2}} + 5 {{12 {0 257 258 259 260 261 262} 1}} + 94 {{52 {0 294} 3}} + 6 {{13 {0 257 258 259 260 261 262} 1}} + 95 {{41 0 3}} + 7 {{14 {0 257 258 259 260 261 262} 1}} + 8 {{15 {0 257 258 259 260 261 262} 1}} + 9 {{16 {0 257 258 259 260 261 262} 1}} + 24,trans {} + 43,trans {{294 79}} + 62,trans {} + 81,trans {} + 23,trans {} + 42,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 78}} + 61,trans {} + 79,trans {} + 80,trans {} + 9,trans {} 22,trans {} - 4,trans {} - 41,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 76}} - 63 {{6 {0 294} 1}} + 41,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 77}} + 59,trans {{323 93}} 60,trans {} - 59,trans {} - 64 {{4 {0 294} 1}} 78,trans {} - 65 {{7 {0 294} 1}} - 66 {{65 {0 294} 2}} - 26,trans {} 8,trans {} - 45,trans {{303 40} {316 53} {324 80}} - 67 {{48 {0 294} 2}} - 64,trans {} - 68 {{49 {0 294} 2}} - 83,trans {} - 70 {{54 {0 294} 2}} - 69 {{50 {0 294} 2}} + 21,trans {} + 39,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 76}} + 40,trans {} + 58,trans {} + 77,trans {} + 7,trans {} + 19,trans {} + 20,trans {} + 38,trans {{303 73} {317 74} {326 75}} + 57,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 92}} + 76,trans {} + 6,trans {} + 95,trans {} + 18,trans {} + 37,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 72}} + 56,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 91}} + 75,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 94}} + 5,trans {} + 94,trans {} + 17,trans {} + 36,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 71}} + 55,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 90}} + 74,trans {} + 4,trans {} + 93,trans {{294 95}} + 16,trans {} + 35,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 70}} + 54,trans {} + 73,trans {} + 3,trans {} + 92,trans {} + 15,trans {} + 34,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 69}} + 53,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 89}} + 72,trans {} + 2,trans {} + 91,trans {} + 14,trans {} + 33,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 68}} + 52,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 88}} + 71,trans {} + 1,trans {} + 89,trans {} + 90,trans {} + 13,trans {} + 32,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 67}} + 51,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 87}} + 69,trans {} + 70,trans {} + 0,trans {{263 1} {264 2} {265 3} {266 4} {267 5} {268 6} {269 7} {270 8} {271 9} {272 10} {273 11} {274 12} {275 13} {276 14} {277 15} {278 16} {279 17} {280 18} {281 19} {282 20} {283 21} {284 22} {285 23} {286 24} {287 25} {288 26} {289 27} {290 28} {291 29} {292 30} {293 31} {295 32} {296 33} {297 34} {298 35} {299 36} {300 37} {301 38} {302 39} {303 40} {304 41} {305 42} {306 43} {307 44} {308 45} {309 46} {310 47} {311 48} {312 49} {313 50} {314 51} {315 52} {316 53} {317 54} {318 55} {320 56} {321 57} {322 58} {324 59} {325 60}} + 88,trans {} 12,trans {} - 71 {{62 {0 294} 2}} 31,trans {} - 50,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 85}} - 49,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 84}} - 72 {{68 {0 257 258 259 260 261 262} 1}} + 49,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 85}} + 50,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 86}} 68,trans {} - 73 {{69 {0 257 258 259 260 261 262} 1}} 87,trans {} - 74 {{51 {0 294} 2} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} - 16,trans {} - 75 {{64 {0 294} 2}} - 35,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 69}} - 54,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 88}} - 76 {{52 {0 294} 2}} - 73,trans {} - 77 {{45 {0 294} 2}} - 92,trans {} - 78 {{44 {0 294} 2}} - 21,trans {} - 3,trans {} - 80 {{43 {0 294} 2}} - 79 {{56 {0 294} 2}} - 40,trans {} - 39,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 75}} - 58,trans {{322 91}} - 81 {{58 {0 294} 2}} 10 {{17 {0 257 258 259 260 261 262} 1}} - 77,trans {} - 82 {{47 {0 294} 2}} 11 {{18 {0 257 258 259 260 261 262} 1}} - 83 {{57 {0 294} 2}} - 25,trans {} - 7,trans {} 12 {{19 {0 257 258 259 260 261 262} 1}} - 84 {{55 {0 294} 2}} - 44,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 79}} 13 {{20 {0 257 258 259 260 261 262} 1}} - 63,trans {} - 85 {{46 {0 294} 2}} 14 {{21 {0 257 258 259 260 261 262} 1}} - 82,trans {} - 86 {{63 {0 294} 2}} - 11,trans {} 15 {{22 {0 257 258 259 260 261 262} 1}} - 87 {{59 {0 294} 2}} - 30,trans {} - 29,trans {} + 11,trans {} 16 {{23 {0 257 258 259 260 261 262} 1}} - 88 {{53 {0 294} 2}} - 48,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 83}} - 0 {{0 0 0} {39 0 0} {41 0 0} {42 {0 294} 0} {43 {0 294} 0} {44 {0 294} 0} {45 {0 294} 0} {46 {0 294} 0} {47 {0 294} 0} {48 {0 294} 0} {49 {0 294} 0} {50 {0 294} 0} {51 {0 294} 0} {52 {0 294} 0} {53 {0 294} 0} {54 {0 294} 0} {55 {0 294} 0} {56 {0 294} 0} {57 {0 294} 0} {58 {0 294} 0} {59 {0 294} 0} {60 {0 294} 0} {61 {0 294} 0} {62 {0 294} 0} {63 {0 294} 0} {64 {0 294} 0} {65 {0 294} 0} {66 {0 294} 0} {67 {0 294} 0} {8 {0 257 258 259 260 261 262} 0} {9 {0 257 258 259 260 261 262} 0} {10 {0 257 258 259 260 261 262} 0} {11 {0 257 258 259 260 261 262} 0} {12 {0 257 258 259 260 261 262} 0} {13 {0 257 258 259 260 261 262} 0} {14 {0 257 258 259 260 261 262} 0} {15 {0 257 258 259 260 261 262} 0} {16 {0 257 258 259 260 261 262} 0} {17 {0 257 258 259 260 261 262} 0} {18 {0 257 258 259 260 261 262} 0} {19 {0 257 258 259 260 261 262} 0} {20 {0 257 258 259 260 261 262} 0} {21 {0 257 258 259 260 261 262} 0} {22 {0 257 258 259 260 261 262} 0} {23 {0 257 258 259 260 261 262} 0} {24 {0 257 258 259 260 261 262} 0} {25 {0 257 258 259 260 261 262} 0} {26 {0 257 258 259 260 261 262} 0} {27 {0 257 258 259 260 261 262} 0} {28 {0 257 258 259 260 261 262} 0} {29 {0 257 258 259 260 261 262} 0} {30 {0 257 258 259 260 261 262} 0} {31 {0 257 258 259 260 261 262} 0} {32 {0 257 258 259 260 261 262} 0} {33 {0 257 258 259 260 261 262} 0} {34 {0 257 258 259 260 261 262} 0} {35 {0 257 258 259 260 261 262} 0} {36 {0 257 258 259 260 261 262} 0} {37 {0 257 258 259 260 261 262} 0} {38 {0 257 258 259 260 261 262} 0}} + 29,trans {} + 30,trans {} 17 {{24 {0 257 258 259 260 261 262} 1}} - 67,trans {} - 90 {{61 {0 294} 2}} - 89 {{60 {0 294} 2}} - 1 {{8 {0 257 258 259 260 261 262} 1}} + 48,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 84}} 18 {{25 {0 257 258 259 260 261 262} 1}} - 86,trans {} - 91 {{41 0 2}} - 15,trans {} - 2 {{9 {0 257 258 259 260 261 262} 1}} - 19 {{26 {0 257 258 259 260 261 262} 1}} + 67,trans {} 20 {{27 {0 257 258 259 260 261 262} 1}} - 92 {{51 {0 294} 3}} - 34,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 68}} - 3 {{10 {0 257 258 259 260 261 262} 1}} + 19 {{26 {0 257 258 259 260 261 262} 1}} + 86,trans {} 21 {{28 {0 257 258 259 260 261 262} 1}} - 93 {{41 0 3}} - 53,trans {} - 4 {{11 {0 257 258 259 260 261 262} 1}} 22 {{29 {0 257 258 259 260 261 262} 1}} - 72,trans {} - 5 {{12 {0 257 258 259 260 261 262} 1}} 23 {{30 {0 257 258 259 260 261 262} 1}} - 91,trans {{294 93}} - 20,trans {} - 19,trans {} - 2,trans {} - 6 {{13 {0 257 258 259 260 261 262} 1}} 24 {{31 {0 257 258 259 260 261 262} 1}} - 38,trans {{303 72} {316 73} {325 74}} - 7 {{14 {0 257 258 259 260 261 262} 1}} 25 {{32 {0 257 258 259 260 261 262} 1}} - 57,trans {} - 8 {{15 {0 257 258 259 260 261 262} 1}} 26 {{33 {0 257 258 259 260 261 262} 1}} - 76,trans {} - 9 {{16 {0 257 258 259 260 261 262} 1}} 27 {{34 {0 257 258 259 260 261 262} 1}} - 24,trans {} - 6,trans {} 28 {{35 {0 257 258 259 260 261 262} 1}} - 43,trans {{294 78}} - 29 {{36 {0 257 258 259 260 261 262} 1}} 30 {{37 {0 257 258 259 260 261 262} 1}} - 62,trans {} + 29 {{36 {0 257 258 259 260 261 262} 1}} 31 {{38 {0 257 258 259 260 261 262} 1}} - 81,trans {} + 32 {{66 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} 10,trans {} - 32 {{65 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 33 {{49 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} 28,trans {} - 33 {{48 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} - 47,trans {{257 60} {258 61} {259 62} {260 63} {261 64} {262 65} {318 82}} - 34 {{49 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 34 {{50 {0 294} 1} {1 {0 294} 0} {2 {0 294} 0} {3 {0 294} 0} {4 {0 294} 0} {5 {0 294} 0} {6 {0 294} 0} {7 {0 294} 0}} + 47,trans {{257 61} {258 62} {259 63} {260 64} {261 65} {262 66} {319 83}} } array set view::token_id_table { @@ -1600,7 +1631,7 @@ 284,title WCSQ 291 WCSX_ 301 GRAPH_ - 313,title PANNER + 313,title OBJECT 292 WCSY_ 302 GREEN_ 288,line 40 @@ -1623,32 +1654,33 @@ 299 FILENAME_ 311 MINMAX_ 283,t 0 - 312 OBJECT_ - 313 PANNER_ + 312 MULTI_ + 313 OBJECT_ 314,t 0 - 314 RED_ + 314 PANNER_ 282,line 34 - 315 UNITS_ - 316 VERTICAL_ + 315 RED_ + 316 UNITS_ 264,title PHYSICAL - 317 VERTGRAPH_ + 317 VERTICAL_ 283,title WCSP - 318 yesno - 312,title OBJECT - 320 wcssys - 319 coordsys + 318 VERTGRAPH_ + 312,title MULTI + 320 coordsys + 319 yesno 278,line 30 - 321 command - error,line 117 - 322 @PSEUDO1 + 321 wcssys + error,line 118 + 322 command 258,t 0 - 323 view - 324 layout - 325 orient + 323 @PSEUDO1 + 324 view + 325 layout 275,line 27 279,t 0 280,t 0 - 326 start' + 326 orient + 327 start' 311,t 0 272,line 24 263,title IMAGE @@ -1660,6 +1692,7 @@ 307,t 0 297,t 0 262,line 12 + 327,line 205 0,t 0 0 {$} 262,title FALSE @@ -1670,11 +1703,11 @@ 299,title FILENAME 258,line 8 273,t 0 - 324,line 196 + 324,line 165 294,t 0 304,t 0 325,t 1 - 321,line 160 + 321,line 132 317,line 73 261,title TRUE 279,title WCSL @@ -1683,6 +1716,7 @@ 269,t 0 270,t 0 298,title COLORBARNUMERICS + 327,title {} 314,line 70 291,t 0 301,t 0 @@ -1700,7 +1734,7 @@ 287,t 0 294,line 47 304,line 60 - 318,t 1 + 318,t 0 error,title {} 291,line 43 301,line 57 @@ -1738,18 +1772,18 @@ 264,line 15 261,line 11 274,t 0 - 326,line 203 + 326,line 202 305,t 0 295,t 0 257,line 7 326,t 1 274,title WCSG - 323,line 164 + 323,line 162 293,title WCSZ 303,title HORIZONTAL 322,title {} - 320,line 131 - 319,line 126 + 320,line 127 + 319,line 119 error error 271,t 0 292,t 0 @@ -1790,7 +1824,7 @@ 289,title WCSV 290,title WCSW 300,title FRAME - 318,title {} + 318,title VERTGRAPH 282,t 0 279,line 31 280,line 32 @@ -1801,7 +1835,7 @@ 270,title WCSC 273,line 25 288,title WCSU - 317,title VERTGRAPH + 317,title VERTICAL 278,t 0 310,t 0 309,t 0 @@ -1813,12 +1847,13 @@ 275,t 0 263,line 14 287,title WCST - 316,title VERTICAL + 316,title UNITS 306,t 0 296,t 0 + 327,t 1 260,line 10 259,line 9 - 325,line 200 + 325,line 198 322,line 161 272,t 0 267,title WCS @@ -1826,9 +1861,9 @@ 286,title WCSS 293,t 0 303,t 0 - 315,title UNITS + 315,title RED 258 NO_ - 318,line 118 + 318,line 74 260 OFF_ 259 ON_ 324,t 1 @@ -1855,7 +1890,7 @@ 274 WCSG_ 285,title WCSR 321,t 1 - 314,title RED + 314,title PANNER 275 WCSH_ 308,line 64 276 WCSI_ @@ -2007,32 +2042,33 @@ 37 { set _ wcsy } 38 { set _ wcsz } 40 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } - 44 { ProcessCmdSet view info,keyvalue $2 UpdateView } - 45 { ProcessCmdSet view info $2 UpdateView } - 46 { ProcessCmdSet view panner $2 UpdateView } - 47 { ProcessCmdSet view magnifier $2 UpdateView } - 48 { ProcessCmdSet view buttons $2 UpdateView } - 49 { ProcessCmdSet view colorbar $2 UpdateView } - 50 { ColorbarCmdSet numerics $2 UpdateView } - 51 { ProcessCmdSet view graph,$2 $3 UpdateView } - 52 { ProcessCmdSet view graph,horz $2 UpdateView } - 53 { ProcessCmdSet view graph,vert $2 UpdateView } - 54 { ProcessCmdSet view info,filename $2 UpdateView } - 55 { ProcessCmdSet view info,object $2 UpdateView } - 56 { ProcessCmdSet view info,keyword $2 UpdateView } - 57 { ProcessCmdSet view info,minmax $2 UpdateView } - 58 { ProcessCmdSet view info,lowhigh $2 UpdateView } - 59 { ProcessCmdSet view info,bunit $2 UpdateView } - 60 { ProcessCmdSet view info,$1 $2 UpdateView } - 61 { ProcessCmdSet view info,$1 $2 UpdateView } - 62 { ProcessCmdSet view info,frame $2 UpdateView } - 63 { ProcessCmdSet rgb red $2 RGBView } - 64 { ProcessCmdSet rgb green $2 RGBView } - 65 { ProcessCmdSet rgb blue $2 RGBView } - 66 { ProcessCmdSet view layout horizontal ViewHorzCmd } - 67 { ProcessCmdSet view layout vertical ViewVertCmd } - 68 { set _ horz } - 69 { set _ vert } + 44 { ProcessCmdSet view multi $2 LayoutFrames } + 45 { ProcessCmdSet view info,keyvalue $2 LayoutView } + 46 { ProcessCmdSet view info $2 LayoutView } + 47 { ProcessCmdSet view panner $2 LayoutView } + 48 { ProcessCmdSet view magnifier $2 LayoutView } + 49 { ProcessCmdSet view buttons $2 LayoutView } + 50 { ProcessCmdSet view colorbar $2 LayoutFrames } + 51 { ColorbarCmdSet numerics $2 LayoutFrames } + 52 { ProcessCmdSet view graph,$2 $3 LayoutFrames } + 53 { ProcessCmdSet view graph,horz $2 LayoutFrames } + 54 { ProcessCmdSet view graph,vert $2 LayoutFrames } + 55 { ProcessCmdSet view info,filename $2 LayoutInfoPanel } + 56 { ProcessCmdSet view info,object $2 LayoutInfoPanel } + 57 { ProcessCmdSet view info,keyword $2 LayoutInfoPanel } + 58 { ProcessCmdSet view info,minmax $2 LayoutInfoPanel } + 59 { ProcessCmdSet view info,lowhigh $2 LayoutInfoPanel } + 60 { ProcessCmdSet view info,bunit $2 LayoutInfoPanel } + 61 { ProcessCmdSet view info,$1 $2 LayoutInfoPanel } + 62 { ProcessCmdSet view info,$1 $2 LayoutInfoPanel } + 63 { ProcessCmdSet view info,frame $2 LayoutInfoPanel } + 64 { ProcessCmdSet rgb red $2 RGBView } + 65 { ProcessCmdSet rgb green $2 RGBView } + 66 { ProcessCmdSet rgb blue $2 RGBView } + 67 { ProcessCmdSet view layout horizontal LayoutView } + 68 { ProcessCmdSet view layout vertical LayoutView } + 69 { set _ horz } + 70 { set _ vert } } unsetupvalues $dc # pop off tokens from the stack if normal rule diff -Nru saods9-8.2+repack/ds9/parsers/viewsendlex.fcl saods9-8.3+repack/ds9/parsers/viewsendlex.fcl --- saods9-8.2+repack/ds9/parsers/viewsendlex.fcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/viewsendlex.fcl 2021-11-08 15:46:07.000000000 +0000 @@ -25,6 +25,7 @@ lowhigh {return $LOWHIGH_} magnifier {return $MAGNIFIER_} minmax {return $MINMAX_} +multi {return $MULTI_} object {return $OBJECT_} panner {return $PANNER_} red {return $RED_} diff -Nru saods9-8.2+repack/ds9/parsers/viewsendlex.tcl saods9-8.3+repack/ds9/parsers/viewsendlex.tcl --- saods9-8.2+repack/ds9/parsers/viewsendlex.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/viewsendlex.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -225,11 +225,12 @@ set LOWHIGH_ 300 set MAGNIFIER_ 301 set MINMAX_ 302 -set OBJECT_ 303 -set PANNER_ 304 -set UNITS_ 305 -set VERTGRAPH_ 306 -set VERTICAL_ 307 +set MULTI_ 303 +set OBJECT_ 304 +set PANNER_ 305 +set UNITS_ 306 +set VERTGRAPH_ 307 +set VERTICAL_ 308 while {1} { if {[string length $yy_current_buffer] - $index_ < 1024} { @@ -377,286 +378,293 @@ set yyleng [string length $yytext] set matched_rule 17 } - # rule 18: object - if {[regexp -start $index_ -indices -line -nocase -- {\A(object)} $yy_current_buffer match] > 0 && \ + # rule 18: multi + if {[regexp -start $index_ -indices -line -nocase -- {\A(multi)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 18 } - # rule 19: panner - if {[regexp -start $index_ -indices -line -nocase -- {\A(panner)} $yy_current_buffer match] > 0 && \ + # rule 19: object + if {[regexp -start $index_ -indices -line -nocase -- {\A(object)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 19 } - # rule 20: red - if {[regexp -start $index_ -indices -line -nocase -- {\A(red)} $yy_current_buffer match] > 0 && \ + # rule 20: panner + if {[regexp -start $index_ -indices -line -nocase -- {\A(panner)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 20 } - # rule 21: units - if {[regexp -start $index_ -indices -line -nocase -- {\A(units)} $yy_current_buffer match] > 0 && \ + # rule 21: red + if {[regexp -start $index_ -indices -line -nocase -- {\A(red)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 21 } - # rule 22: vert - if {[regexp -start $index_ -indices -line -nocase -- {\A(vert)} $yy_current_buffer match] > 0 && \ + # rule 22: units + if {[regexp -start $index_ -indices -line -nocase -- {\A(units)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 22 } - # rule 23: vertical - if {[regexp -start $index_ -indices -line -nocase -- {\A(vertical)} $yy_current_buffer match] > 0 && \ + # rule 23: vert + if {[regexp -start $index_ -indices -line -nocase -- {\A(vert)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 23 } - # rule 24: vertgraph - if {[regexp -start $index_ -indices -line -nocase -- {\A(vertgraph)} $yy_current_buffer match] > 0 && \ + # rule 24: vertical + if {[regexp -start $index_ -indices -line -nocase -- {\A(vertical)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 24 } - # rule 25: image - if {[regexp -start $index_ -indices -line -nocase -- {\A(image)} $yy_current_buffer match] > 0 && \ + # rule 25: vertgraph + if {[regexp -start $index_ -indices -line -nocase -- {\A(vertgraph)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 25 } - # rule 26: physical - if {[regexp -start $index_ -indices -line -nocase -- {\A(physical)} $yy_current_buffer match] > 0 && \ + # rule 26: image + if {[regexp -start $index_ -indices -line -nocase -- {\A(image)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 26 } - # rule 27: amplifier - if {[regexp -start $index_ -indices -line -nocase -- {\A(amplifier)} $yy_current_buffer match] > 0 && \ + # rule 27: physical + if {[regexp -start $index_ -indices -line -nocase -- {\A(physical)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 27 } - # rule 28: detector - if {[regexp -start $index_ -indices -line -nocase -- {\A(detector)} $yy_current_buffer match] > 0 && \ + # rule 28: amplifier + if {[regexp -start $index_ -indices -line -nocase -- {\A(amplifier)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 28 } - # rule 29: wcs - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcs)} $yy_current_buffer match] > 0 && \ + # rule 29: detector + if {[regexp -start $index_ -indices -line -nocase -- {\A(detector)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 29 } - # rule 30: wcsa - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsa)} $yy_current_buffer match] > 0 && \ + # rule 30: wcs + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcs)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 30 } - # rule 31: wcsb - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsb)} $yy_current_buffer match] > 0 && \ + # rule 31: wcsa + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsa)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 31 } - # rule 32: wcsc - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsc)} $yy_current_buffer match] > 0 && \ + # rule 32: wcsb + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsb)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 32 } - # rule 33: wcsd - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsd)} $yy_current_buffer match] > 0 && \ + # rule 33: wcsc + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsc)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 33 } - # rule 34: wcse - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcse)} $yy_current_buffer match] > 0 && \ + # rule 34: wcsd + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsd)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 34 } - # rule 35: wcsf - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsf)} $yy_current_buffer match] > 0 && \ + # rule 35: wcse + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcse)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 35 } - # rule 36: wcsg - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsg)} $yy_current_buffer match] > 0 && \ + # rule 36: wcsf + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsf)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 36 } - # rule 37: wcsh - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsh)} $yy_current_buffer match] > 0 && \ + # rule 37: wcsg + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsg)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 37 } - # rule 38: wcsi - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsi)} $yy_current_buffer match] > 0 && \ + # rule 38: wcsh + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsh)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 38 } - # rule 39: wcsj - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsj)} $yy_current_buffer match] > 0 && \ + # rule 39: wcsi + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsi)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 39 } - # rule 40: wcsk - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsk)} $yy_current_buffer match] > 0 && \ + # rule 40: wcsj + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsj)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 40 } - # rule 41: wcsl - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsl)} $yy_current_buffer match] > 0 && \ + # rule 41: wcsk + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsk)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 41 } - # rule 42: wcsm - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsm)} $yy_current_buffer match] > 0 && \ + # rule 42: wcsl + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsl)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 42 } - # rule 43: wcsn - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsn)} $yy_current_buffer match] > 0 && \ + # rule 43: wcsm + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsm)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 43 } - # rule 44: wcso - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcso)} $yy_current_buffer match] > 0 && \ + # rule 44: wcsn + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsn)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 44 } - # rule 45: wcsp - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsp)} $yy_current_buffer match] > 0 && \ + # rule 45: wcso + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcso)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 45 } - # rule 46: wcsq - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsq)} $yy_current_buffer match] > 0 && \ + # rule 46: wcsp + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsp)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 46 } - # rule 47: wcsr - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsr)} $yy_current_buffer match] > 0 && \ + # rule 47: wcsq + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsq)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 47 } - # rule 48: wcss - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcss)} $yy_current_buffer match] > 0 && \ + # rule 48: wcsr + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsr)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 48 } - # rule 49: wcst - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcst)} $yy_current_buffer match] > 0 && \ + # rule 49: wcss + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcss)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 49 } - # rule 50: wcsu - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsu)} $yy_current_buffer match] > 0 && \ + # rule 50: wcst + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcst)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 50 } - # rule 51: wcsv - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsv)} $yy_current_buffer match] > 0 && \ + # rule 51: wcsu + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsu)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 51 } - # rule 52: wcsw - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsw)} $yy_current_buffer match] > 0 && \ + # rule 52: wcsv + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsv)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 52 } - # rule 53: wcsx - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsx)} $yy_current_buffer match] > 0 && \ + # rule 53: wcsw + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsw)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 53 } - # rule 54: wcsy - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsy)} $yy_current_buffer match] > 0 && \ + # rule 54: wcsx + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsx)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 54 } - # rule 55: wcsz - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsz)} $yy_current_buffer match] > 0 && \ + # rule 55: wcsy + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsy)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 55 } - # rule 56: \s - if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ + # rule 56: wcsz + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsz)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 56 } - # rule 57: . - if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + # rule 57: \s + if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 57 } + # rule 58: . + if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 58 + } if {$matched_rule == -1} { set yytext [string index $yy_current_buffer $index_] set yyleng 1 @@ -724,123 +732,126 @@ return $MINMAX_ } 18 { -return $OBJECT_ +return $MULTI_ } 19 { -return $PANNER_ +return $OBJECT_ } 20 { -return $RED_ +return $PANNER_ } 21 { -return $UNITS_ +return $RED_ } 22 { -return $VERTICAL_ +return $UNITS_ } 23 { return $VERTICAL_ } 24 { -return $VERTGRAPH_ +return $VERTICAL_ } 25 { -return $IMAGE_ +return $VERTGRAPH_ } 26 { -return $PHYSICAL_ +return $IMAGE_ } 27 { -return $AMPLIFIER_ +return $PHYSICAL_ } 28 { -return $DETECTOR_ +return $AMPLIFIER_ } 29 { -return $WCS_ +return $DETECTOR_ } 30 { -return $WCSA_ +return $WCS_ } 31 { -return $WCSB_ +return $WCSA_ } 32 { -return $WCSC_ +return $WCSB_ } 33 { -return $WCSD_ +return $WCSC_ } 34 { -return $WCSE_ +return $WCSD_ } 35 { -return $WCSF_ +return $WCSE_ } 36 { -return $WCSG_ +return $WCSF_ } 37 { -return $WCSH_ +return $WCSG_ } 38 { -return $WCSI_ +return $WCSH_ } 39 { -return $WCSJ_ +return $WCSI_ } 40 { -return $WCSK_ +return $WCSJ_ } 41 { -return $WCSL_ +return $WCSK_ } 42 { -return $WCSM_ +return $WCSL_ } 43 { -return $WCSN_ +return $WCSM_ } 44 { -return $WCSO_ +return $WCSN_ } 45 { -return $WCSP_ +return $WCSO_ } 46 { -return $WCSQ_ +return $WCSP_ } 47 { -return $WCSR_ +return $WCSQ_ } 48 { -return $WCSS_ +return $WCSR_ } 49 { -return $WCST_ +return $WCSS_ } 50 { -return $WCSU_ +return $WCST_ } 51 { -return $WCSV_ +return $WCSU_ } 52 { -return $WCSW_ +return $WCSV_ } 53 { -return $WCSX_ +return $WCSW_ } 54 { -return $WCSY_ +return $WCSX_ } 55 { -return $WCSZ_ +return $WCSY_ } 56 { -# ignore whitespace +return $WCSZ_ } 57 { +# ignore whitespace + } + 58 { set yylval $yytext; return $yylval } default diff -Nru saods9-8.2+repack/ds9/parsers/viewsendparser.tab.tcl saods9-8.3+repack/ds9/parsers/viewsendparser.tab.tcl --- saods9-8.2+repack/ds9/parsers/viewsendparser.tab.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/viewsendparser.tab.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -44,8 +44,9 @@ set LOWHIGH_ 300 set MAGNIFIER_ 301 set MINMAX_ 302 -set OBJECT_ 303 -set PANNER_ 304 -set UNITS_ 305 -set VERTGRAPH_ 306 -set VERTICAL_ 307 +set MULTI_ 303 +set OBJECT_ 304 +set PANNER_ 305 +set UNITS_ 306 +set VERTGRAPH_ 307 +set VERTICAL_ 308 diff -Nru saods9-8.2+repack/ds9/parsers/viewsendparser.tac saods9-8.3+repack/ds9/parsers/viewsendparser.tac --- saods9-8.2+repack/ds9/parsers/viewsendparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/viewsendparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -22,6 +22,7 @@ %token LOWHIGH_ %token MAGNIFIER_ %token MINMAX_ +%token MULTI_ %token OBJECT_ %token PANNER_ %token UNITS_ @@ -35,6 +36,7 @@ viewsend : | LAYOUT_ {ProcessSendCmdGet view layout} + | MULTI_ {ProcessSendCmdYesNo view multi} | KEYVALUE_ {ProcessSendCmdGet view info,keyvalue} | INFO_ {ProcessSendCmdYesNo view info} | PANNER_ {ProcessSendCmdYesNo view panner} diff -Nru saods9-8.2+repack/ds9/parsers/viewsendparser.tcl saods9-8.3+repack/ds9/parsers/viewsendparser.tcl --- saods9-8.2+repack/ds9/parsers/viewsendparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/viewsendparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -61,7 +61,6 @@ } array set viewsend::table { - 37:307,target 54 27:0 reduce 48:0 reduce 0:306,target 49 @@ -69,11 +68,12 @@ 0:275,target 19 6:0,target 6 2:0 reduce + 56:0,target 42 24:0 reduce - 48:0,target 49 - 41:0,target 34 + 48:0,target 37 + 41:0,target 35 45:0 reduce - 33:0,target 39 + 33:0,target 40 0:304,target 47 25:0,target 25 17:0,target 17 @@ -90,16 +90,17 @@ 0:290,target 34 0:289,target 33 3:0,target 3 - 53:0,target 54 + 53:0,target 0 0:268,target 12 - 45:0,target 47 + 45:0,target 48 14:0 reduce - 37:0,target 53 + 37:0,target 54 29:0,target 29 30:0,target 30 22:0,target 22 14:0,target 14 35:0 reduce + 56:0 reduce 0:287,target 31 0:257 shift 0:258 shift @@ -116,7 +117,7 @@ 32:0 reduce 0:266 shift 0:267 shift - 53:0 reduce + 53:0 accept 0:268 shift 0:269 shift 0:270 shift @@ -143,14 +144,14 @@ 0:283 shift 0:284 shift 0:285 shift - 50:0,target 50 - 49:0,target 43 + 50:0,target 44 + 49:0,target 50 0:283,target 27 0:286 shift 42:0,target 33 0:287 shift 0:288 shift - 34:0,target 40 + 34:0,target 41 0:300 shift 0:290 shift 0:289 shift @@ -163,68 +164,70 @@ 0:302 shift 0:262,target 6 11:0,target 11 - 0:303 shift 0:293 shift + 0:303 shift 0:304 shift 25:0 reduce - 0:305 shift 0:295 shift + 0:305 shift 0:306 shift 0:296 shift 46:0 reduce 0:297 shift - 0:308 goto + 0:307 shift 0:298 shift - 0:309 goto 0:310 goto + 0:309 goto 0:299 shift + 0:311 goto 0:281,target 25 0:0 reduce - 37:311,target 55 0:259,target 3 0:260,target 4 22:0 reduce 43:0 reduce - 0:309,target 51 0:310,target 52 + 0:309,target 51 0:299,target 42 37:294 shift 0:278,target 22 - 37:307 shift + 37:308 shift 4:0,target 4 - 37:311 goto + 37:312 goto + 37:308,target 55 0:257,target 1 18:0 reduce 54:0,target 55 - 39:0 reduce 40:0 reduce - 46:0,target 45 + 39:0 reduce + 46:0,target 34 0:297,target 40 - 38:0,target 42 + 0:307,target 50 + 38:0,target 43 31:0,target 31 23:0,target 23 15:0,target 15 0:276,target 20 15:0 reduce 36:0 reduce - 0:305,target 48 0:295,target 38 + 0:305,target 48 0:274,target 18 12:0 reduce - 37:294,target 53 + 37:294,target 54 33:0 reduce 54:0 reduce - 0:303,target 46 0:293,target 37 + 0:303,target 46 8:0,target 8 1:0,target 1 0:272,target 16 7:0 reduce 51:0,target 51 - 43:0,target 48 + 43:0,target 49 29:0 reduce 30:0 reduce - 35:0,target 44 + 35:0,target 45 27:0,target 27 19:0,target 19 20:0,target 20 @@ -244,12 +247,12 @@ 44:0 reduce 5:0,target 5 0:286,target 30 - 55:0,target 41 - 47:0,target 36 - 40:0,target 46 - 39:0,target 35 + 55:0,target 56 + 47:0,target 46 + 40:0,target 47 + 39:0,target 36 0:265,target 9 - 32:0,target 38 + 32:0,target 39 24:0,target 24 16:0,target 16 19:0 reduce @@ -260,15 +263,17 @@ 16:0 reduce 37:0 reduce 0:282,target 26 + 37:312,target 56 0:261,target 5 9:0,target 9 13:0 reduce 2:0,target 2 34:0 reduce + 0:311,target 53 55:0 reduce - 52:0,target 0 - 44:0,target 37 - 36:0,target 52 + 52:0,target 52 + 44:0,target 38 + 36:0,target 53 0:279,target 23 0:280,target 24 28:0,target 28 @@ -278,77 +283,77 @@ 10:0 reduce 0:258,target 2 31:0 reduce - 0:308,target 50 0:298,target 41 - 52:0 accept + 52:0 reduce 0:277,target 21 5:0 reduce } array set viewsend::rules { - 9,l 309 - 11,l 309 - 32,l 310 + 9,l 310 + 11,l 310 + 32,l 311 53,l 311 - 6,l 309 - 28,l 309 - 50,l 310 - 49,l 310 - 3,l 308 - 25,l 309 - 46,l 310 - 0,l 312 - 22,l 309 - 43,l 310 - 18,l 309 - 40,l 310 - 39,l 310 - 15,l 309 - 36,l 310 - 12,l 309 - 33,l 310 - 54,l 311 - 7,l 309 - 29,l 309 - 30,l 309 - 51,l 310 - 4,l 308 - 26,l 309 - 47,l 310 - 1,l 308 - 23,l 309 - 44,l 310 - 19,l 309 - 20,l 309 - 41,l 310 - 16,l 309 - 37,l 310 - 13,l 309 - 34,l 310 - 55,l 311 - 8,l 309 - 10,l 309 - 31,l 309 - 52,l 310 - 5,l 309 - 27,l 309 - 48,l 310 - 2,l 308 - 24,l 309 - 45,l 310 - 21,l 309 - 42,l 310 - 17,l 309 - 38,l 310 - 14,l 309 - 35,l 310 + 6,l 310 + 28,l 310 + 50,l 311 + 49,l 311 + 3,l 309 + 25,l 310 + 46,l 311 + 0,l 313 + 22,l 310 + 43,l 311 + 18,l 310 + 40,l 311 + 39,l 311 + 15,l 310 + 36,l 311 + 12,l 310 + 33,l 311 + 54,l 312 + 7,l 310 + 29,l 310 + 30,l 310 + 51,l 311 + 4,l 309 + 26,l 310 + 47,l 311 + 1,l 309 + 23,l 310 + 44,l 311 + 19,l 310 + 20,l 310 + 41,l 311 + 16,l 310 + 37,l 311 + 13,l 310 + 34,l 311 + 55,l 312 + 8,l 310 + 10,l 310 + 31,l 310 + 52,l 311 + 5,l 310 + 27,l 310 + 48,l 311 + 2,l 309 + 24,l 310 + 45,l 311 + 21,l 310 + 42,l 311 + 17,l 310 + 38,l 311 + 14,l 310 + 35,l 311 + 56,l 312 } array set viewsend::rules { 12,dc 1 26,dc 1 3,dc 1 - 41,dc 2 + 41,dc 1 55,dc 1 18,dc 1 33,dc 1 @@ -359,7 +364,7 @@ 2,dc 1 40,dc 1 39,dc 1 - 54,dc 1 + 54,dc 0 17,dc 1 32,dc 0 8,dc 1 @@ -368,7 +373,7 @@ 24,dc 1 1,dc 1 38,dc 1 - 53,dc 0 + 53,dc 1 16,dc 1 31,dc 1 7,dc 1 @@ -396,7 +401,8 @@ 13,dc 1 27,dc 1 4,dc 1 - 42,dc 1 + 42,dc 2 + 56,dc 1 19,dc 1 20,dc 1 34,dc 1 @@ -405,101 +411,104 @@ array set viewsend::rules { 41,line 144 - 7,line 106 - 37,line 138 - 4,line 102 - 34,line 135 - 1,line 99 - 31,line 130 - 27,line 126 - 24,line 123 - 21,line 120 - 17,line 116 - 14,line 113 - 11,line 110 - 53,line 162 - 50,line 156 + 7,line 107 + 37,line 139 + 4,line 103 + 34,line 136 + 1,line 100 + 31,line 131 + 27,line 127 + 24,line 124 + 21,line 121 + 17,line 117 + 14,line 114 + 11,line 111 + 56,line 166 + 53,line 161 + 50,line 157 49,line 155 - 46,line 151 + 46,line 152 43,line 148 - 9,line 108 - 40,line 142 + 9,line 109 + 40,line 143 39,line 141 - 6,line 105 - 36,line 137 - 3,line 101 - 33,line 134 - 29,line 128 - 30,line 129 - 26,line 125 - 23,line 122 - 19,line 118 - 20,line 119 - 16,line 115 - 13,line 112 - 10,line 109 - 55,line 164 - 52,line 159 - 48,line 153 - 45,line 150 + 6,line 106 + 36,line 138 + 3,line 102 + 33,line 135 + 29,line 129 + 30,line 130 + 26,line 126 + 23,line 123 + 19,line 119 + 20,line 120 + 16,line 116 + 13,line 113 + 10,line 110 + 55,line 165 + 52,line 160 + 48,line 154 + 45,line 151 42,line 146 - 8,line 107 - 38,line 139 - 5,line 104 - 35,line 136 - 2,line 100 - 32,line 133 - 28,line 127 - 25,line 124 - 22,line 121 - 18,line 117 - 15,line 114 - 12,line 111 - 54,line 163 + 8,line 108 + 38,line 140 + 5,line 105 + 35,line 137 + 2,line 101 + 32,line 134 + 28,line 128 + 25,line 125 + 22,line 122 + 18,line 118 + 15,line 115 + 12,line 112 + 54,line 164 51,line 158 - 47,line 152 - 44,line 149 + 47,line 153 + 44,line 150 } array set viewsend::lr1_table { - 35 {{44 0 1}} + 35 {{45 0 1}} 14,trans {} - 36 {{52 0 1}} + 36 {{53 0 1}} 33,trans {} - 37 {{41 0 1} {53 0 0} {54 0 0} {55 0 0}} + 37 {{42 0 1} {54 0 0} {55 0 0} {56 0 0}} 52,trans {} - 38 {{42 0 1}} - 39 {{35 0 1}} - 40 {{46 0 1}} + 38 {{43 0 1}} + 39 {{36 0 1}} + 40 {{47 0 1}} 18,trans {} 1,trans {} - 41 {{34 0 1}} - 37,trans {{294 53} {307 54} {311 55}} + 41 {{35 0 1}} + 37,trans {{294 54} {308 55} {312 56}} 42 {{33 0 1}} - 43 {{48 0 1}} - 44 {{37 0 1}} + 56,trans {} + 43 {{49 0 1}} + 44 {{38 0 1}} 23,trans {} 5,trans {} - 45 {{47 0 1}} + 45 {{48 0 1}} 42,trans {} - 46 {{45 0 1}} - 47 {{36 0 1}} - 48 {{49 0 1}} + 46 {{34 0 1}} + 47 {{46 0 1}} + 48 {{37 0 1}} 27,trans {} 9,trans {} - 50 {{50 0 1}} - 49 {{43 0 1}} + 50 {{44 0 1}} + 49 {{50 0 1}} 46,trans {} 51 {{51 0 1}} - 52 {{0 0 1}} - 53 {{54 0 1}} + 52 {{52 0 1}} 13,trans {} + 53 {{0 0 1}} 54 {{55 0 1}} 32,trans {} 51,trans {} - 55 {{41 0 2}} + 55 {{56 0 1}} + 56 {{42 0 2}} 17,trans {} - 0,trans {{257 1} {258 2} {259 3} {260 4} {261 5} {262 6} {263 7} {264 8} {265 9} {266 10} {267 11} {268 12} {269 13} {270 14} {271 15} {272 16} {273 17} {274 18} {275 19} {276 20} {277 21} {278 22} {279 23} {280 24} {281 25} {282 26} {283 27} {284 28} {285 29} {286 30} {287 31} {288 32} {289 33} {290 34} {291 35} {292 36} {293 37} {295 38} {296 39} {297 40} {298 41} {299 42} {300 43} {301 44} {302 45} {303 46} {304 47} {305 48} {306 49} {308 50} {309 51} {310 52}} + 0,trans {{257 1} {258 2} {259 3} {260 4} {261 5} {262 6} {263 7} {264 8} {265 9} {266 10} {267 11} {268 12} {269 13} {270 14} {271 15} {272 16} {273 17} {274 18} {275 19} {276 20} {277 21} {278 22} {279 23} {280 24} {281 25} {282 26} {283 27} {284 28} {285 29} {286 30} {287 31} {288 32} {289 33} {290 34} {291 35} {292 36} {293 37} {295 38} {296 39} {297 40} {298 41} {299 42} {300 43} {301 44} {302 45} {303 46} {304 47} {305 48} {306 49} {307 50} {309 51} {310 52} {311 53}} 36,trans {} 55,trans {} 22,trans {} @@ -533,7 +542,7 @@ 29,trans {} 16 {{16 0 1}} 48,trans {} - 0 {{0 0 0} {32 0 0} {33 0 0} {34 0 0} {35 0 0} {36 0 0} {37 0 0} {38 0 0} {39 0 0} {40 0 0} {41 0 0} {42 0 0} {43 0 0} {44 0 0} {45 0 0} {46 0 0} {47 0 0} {48 0 0} {49 0 0} {50 0 0} {51 0 0} {52 0 0} {1 0 0} {2 0 0} {3 0 0} {4 0 0} {5 0 0} {6 0 0} {7 0 0} {8 0 0} {9 0 0} {10 0 0} {11 0 0} {12 0 0} {13 0 0} {14 0 0} {15 0 0} {16 0 0} {17 0 0} {18 0 0} {19 0 0} {20 0 0} {21 0 0} {22 0 0} {23 0 0} {24 0 0} {25 0 0} {26 0 0} {27 0 0} {28 0 0} {29 0 0} {30 0 0} {31 0 0}} + 0 {{0 0 0} {32 0 0} {33 0 0} {34 0 0} {35 0 0} {36 0 0} {37 0 0} {38 0 0} {39 0 0} {40 0 0} {41 0 0} {42 0 0} {43 0 0} {44 0 0} {45 0 0} {46 0 0} {47 0 0} {48 0 0} {49 0 0} {50 0 0} {51 0 0} {52 0 0} {53 0 0} {1 0 0} {2 0 0} {3 0 0} {4 0 0} {5 0 0} {6 0 0} {7 0 0} {8 0 0} {9 0 0} {10 0 0} {11 0 0} {12 0 0} {13 0 0} {14 0 0} {15 0 0} {16 0 0} {17 0 0} {18 0 0} {19 0 0} {20 0 0} {21 0 0} {22 0 0} {23 0 0} {24 0 0} {25 0 0} {26 0 0} {27 0 0} {28 0 0} {29 0 0} {30 0 0} {31 0 0}} 17 {{17 0 1}} 1 {{1 0 1}} 18 {{18 0 1}} @@ -569,11 +578,11 @@ 30 {{30 0 1}} 31 {{31 0 1}} 10,trans {} - 32 {{38 0 1}} + 32 {{39 0 1}} 28,trans {} - 33 {{39 0 1}} + 33 {{40 0 1}} 47,trans {} - 34 {{40 0 1}} + 34 {{41 0 1}} } array set viewsend::token_id_table { @@ -590,35 +599,37 @@ 284,title WCSW 291 FILENAME_ 301 MAGNIFIER_ + 313,title {} 292 FRAME_ 302 MINMAX_ 288,line 42 293 GRAPH_ - 303 OBJECT_ + 303 MULTI_ 294 HORIZONTAL_ - 304 PANNER_ - 305 UNITS_ + 304 OBJECT_ + 305 PANNER_ 295 HORZGRAPH_ - 306 VERTGRAPH_ + 306 UNITS_ 296 INFO_ - 307 VERTICAL_ + 307 VERTGRAPH_ 262,t 0 297 KEYWORD_ - 308 coordsys + 308 VERTICAL_ 285,line 36 298 KEYVALUE_ - 310 viewsend - 309 wcssys + 310 wcssys + 309 coordsys 299 LAYOUT_ - 311 graph + 311 viewsend 283,t 0 - 312 start' + 312 graph + 313 start' 282,line 33 264,title WCSC 283,title WCSV 312,title {} 278,line 29 - error,line 97 + error,line 98 258,t 0 275,line 26 279,t 0 @@ -649,20 +660,20 @@ 261,title WCS 279,title WCSR 280,title WCSS - 308,title {} + 308,title VERTICAL 269,t 0 270,t 0 298,title KEYVALUE 291,t 0 301,t 0 - 311,line 161 + 311,line 133 307,line 61 266,t 0 260,title DETECTOR 259,title AMPLIFIER 297,line 51 278,title WCSQ - 307,title VERTICAL + 307,title VERTGRAPH 297,title KEYWORD 287,t 0 294,line 48 @@ -675,7 +686,7 @@ 287,line 38 277,title WCSP 284,t 0 - 306,title VERTGRAPH + 306,title UNITS 296,title INFO 284,line 35 281,line 32 @@ -686,17 +697,17 @@ 277,line 28 276,title WCSO 312,t 1 - 305,title UNITS + 305,title PANNER 295,title HORZGRAPH 274,line 25 271,line 22 277,t 0 - 308,t 1 + 308,t 0 267,line 18 298,t 0 275,title WCSN 294,title HORIZONTAL - 304,title PANNER + 304,title OBJECT 264,line 15 261,line 12 274,t 0 @@ -705,17 +716,18 @@ 257,line 7 274,title WCSM 293,title GRAPH - 303,title OBJECT + 303,title MULTI error error 271,t 0 292,t 0 302,t 0 273,title WCSL + 313,line 167 292,title FRAME 302,title MINMAX 267,t 0 - 310,line 132 - 309,line 103 + 310,line 104 + 309,line 99 299,line 53 288,t 0 306,line 60 @@ -740,6 +752,7 @@ 282,t 0 279,line 30 280,line 31 + 313,t 1 276,line 27 257,t 0 269,title WCSH @@ -781,7 +794,7 @@ 268 WCSG_ 269 WCSH_ 270 WCSI_ - 312,line 165 + 312,line 163 271 WCSJ_ 272 WCSK_ 289,t 0 @@ -792,7 +805,7 @@ 274 WCSM_ 285,title WCSX 275 WCSN_ - 308,line 98 + 308,line 62 276 WCSO_ 298,line 52 277 WCSP_ @@ -935,26 +948,27 @@ 30 { set _ wcsy } 31 { set _ wcsz } 33 { ProcessSendCmdGet view layout } - 34 { ProcessSendCmdGet view info,keyvalue } - 35 { ProcessSendCmdYesNo view info } - 36 { ProcessSendCmdYesNo view panner } - 37 { ProcessSendCmdYesNo view magnifier } - 38 { ProcessSendCmdYesNo view buttons } - 39 { ProcessSendCmdYesNo view colorbar } - 40 { ProcessSendCmdYesNo colorbar numerics } - 42 { ProcessSendCmdYesNo view graph,horz } - 43 { ProcessSendCmdYesNo view graph,graph } - 44 { ProcessSendCmdYesNo view info,filename } - 45 { ProcessSendCmdYesNo view info,object } - 46 { ProcessSendCmdYesNo view info,keyword } - 47 { ProcessSendCmdYesNo view info,minmax } - 48 { ProcessSendCmdYesNo view info,lowhigh } - 49 { ProcessSendCmdYesNo view info,bunit } - 50 { ProcessSendCmdYesNo view info,$1 } + 34 { ProcessSendCmdYesNo view multi } + 35 { ProcessSendCmdGet view info,keyvalue } + 36 { ProcessSendCmdYesNo view info } + 37 { ProcessSendCmdYesNo view panner } + 38 { ProcessSendCmdYesNo view magnifier } + 39 { ProcessSendCmdYesNo view buttons } + 40 { ProcessSendCmdYesNo view colorbar } + 41 { ProcessSendCmdYesNo colorbar numerics } + 43 { ProcessSendCmdYesNo view graph,horz } + 44 { ProcessSendCmdYesNo view graph,graph } + 45 { ProcessSendCmdYesNo view info,filename } + 46 { ProcessSendCmdYesNo view info,object } + 47 { ProcessSendCmdYesNo view info,keyword } + 48 { ProcessSendCmdYesNo view info,minmax } + 49 { ProcessSendCmdYesNo view info,lowhigh } + 50 { ProcessSendCmdYesNo view info,bunit } 51 { ProcessSendCmdYesNo view info,$1 } - 52 { ProcessSendCmdYesNo view info,frame } - 54 { ProcessSendCmdYesNo view graph,horz } - 55 { ProcessSendCmdYesNo view graph,vert } + 52 { ProcessSendCmdYesNo view info,$1 } + 53 { ProcessSendCmdYesNo view info,frame } + 55 { ProcessSendCmdYesNo view graph,horz } + 56 { ProcessSendCmdYesNo view graph,vert } } unsetupvalues $dc # pop off tokens from the stack if normal rule diff -Nru saods9-8.2+repack/ds9/parsers/widthparser.tac saods9-8.3+repack/ds9/parsers/widthparser.tac --- saods9-8.2+repack/ds9/parsers/widthparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/widthparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -13,7 +13,7 @@ | width {global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT}} STRING_ ; -width : INT_ {ProcessCmdSet canvas width $1 UpdateView} +width : INT_ {LayoutChangeWidth $1} ; %% diff -Nru saods9-8.2+repack/ds9/parsers/widthparser.tcl saods9-8.3+repack/ds9/parsers/widthparser.tcl --- saods9-8.2+repack/ds9/parsers/widthparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/widthparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -252,7 +252,7 @@ set yylval [lindex $value_stack end] switch -- $rule { 2 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } - 4 { ProcessCmdSet canvas width $1 UpdateView } + 4 { LayoutChangeWidth $1 } } unsetupvalues $dc # pop off tokens from the stack if normal rule diff -Nru saods9-8.2+repack/ds9/parsers/writer.trl saods9-8.3+repack/ds9/parsers/writer.trl --- saods9-8.2+repack/ds9/parsers/writer.trl 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/writer.trl 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,6 @@ +writer : RDB_ {set _ starbase_write} + | SB_ {set _ starbase_write} + | STARBASE_ {set _ starbase_write} + | CSV_ {set _ TSVWrite} + | TSV_ {set _ TSVWrite} + ; diff -Nru saods9-8.2+repack/ds9/parsers/xpaparser.tac saods9-8.3+repack/ds9/parsers/xpaparser.tac --- saods9-8.2+repack/ds9/parsers/xpaparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/xpaparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -25,9 +25,10 @@ | xpa {global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT}} STRING_ ; -xpa : yesno +xpa : yesno {if {$1} {XPAConnect} else {XPADisconnect}} | method - | NOXPANS_ +# backward compatibility + | NOXPANS_ # do nothing | CONNECT_ {XPAConnect} | DISCONNECT_ {XPADisconnect} diff -Nru saods9-8.2+repack/ds9/parsers/xpaparser.tcl saods9-8.3+repack/ds9/parsers/xpaparser.tcl --- saods9-8.2+repack/ds9/parsers/xpaparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/xpaparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -236,28 +236,28 @@ } array set xpa::rules { - 13,line 55 + 13,line 56 7,line 45 10,line 49 4,line 42 - 18,line 63 + 18,line 64 1,line 39 - 15,line 57 + 15,line 58 9,line 48 - 12,line 53 + 12,line 54 6,line 44 - 21,line 66 + 21,line 67 3,line 41 - 17,line 60 - 14,line 56 + 17,line 61 + 14,line 57 8,line 48 11,line 52 5,line 43 - 20,line 65 - 19,line 64 + 20,line 66 + 19,line 65 2,line 40 9,e 1 - 16,line 59 + 16,line 60 } array set xpa::lr1_table { @@ -333,7 +333,7 @@ 271,t 0 264,title CONNECT 266,line 20 - 278,line 67 + 278,line 68 275,t 1 error,line 37 268,title LOCAL @@ -365,7 +365,7 @@ 265,line 19 262 FALSE_ 263 STRING_ - 277,line 62 + 277,line 63 257,title YES 264 CONNECT_ 264,t 0 @@ -506,6 +506,7 @@ 6 { set _ 0 } 7 { set _ 0 } 9 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } + 11 { if {$1} {XPAConnect} else {XPADisconnect} } 14 { XPAConnect } 15 { XPADisconnect } 16 { XPAInfo } diff -Nru saods9-8.2+repack/ds9/parsers/xpasendparser.tac saods9-8.3+repack/ds9/parsers/xpasendparser.tac --- saods9-8.2+repack/ds9/parsers/xpasendparser.tac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/xpasendparser.tac 2021-11-08 15:46:07.000000000 +0000 @@ -9,6 +9,7 @@ %% xpasend : {ProcessSendCmd XPAInfoResult} +# backward compatibility | INFO_ {ProcessSendCmd XPAInfoResult} ; diff -Nru saods9-8.2+repack/ds9/parsers/xpasendparser.tcl saods9-8.3+repack/ds9/parsers/xpasendparser.tcl --- saods9-8.2+repack/ds9/parsers/xpasendparser.tcl 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/ds9/parsers/xpasendparser.tcl 2021-11-08 15:46:07.000000000 +0000 @@ -86,8 +86,8 @@ } array set xpasend::rules { - 2,line 14 - 1,line 13 + 2,line 15 + 1,line 14 } array set xpasend::lr1_table { @@ -114,7 +114,7 @@ 259 start' error,title {} 257,line 8 - 259,line 15 + 259,line 16 257,title INFO 258,title {} 259,title {} diff -Nru saods9-8.2+repack/fitsy/alloc.C saods9-8.3+repack/fitsy/alloc.C --- saods9-8.2+repack/fitsy/alloc.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/alloc.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -13,6 +13,12 @@ if (!valid_) return; + // reset + valid_ =0; + + if (!pName_) + return; + // we need the 'b' for windows... if (!strncmp(pName_, "stdin", 5) || !strncmp(pName_, "STDIN", 5) || diff -Nru saods9-8.2+repack/fitsy/allocgz.C saods9-8.3+repack/fitsy/allocgz.C --- saods9-8.2+repack/fitsy/allocgz.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/allocgz.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -11,6 +11,12 @@ if (!valid_) return; + // reset + valid_ =0; + + if (!pName_) + return; + // we need the 'b' for windows... if (!strncmp(pName_, "stdin", 5) || !strncmp(pName_, "STDIN", 5) || diff -Nru saods9-8.2+repack/fitsy/allocgz.h saods9-8.3+repack/fitsy/allocgz.h --- saods9-8.2+repack/fitsy/allocgz.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/allocgz.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/alloc.h saods9-8.3+repack/fitsy/alloc.h --- saods9-8.2+repack/fitsy/alloc.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/alloc.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/analysis.C saods9-8.3+repack/fitsy/analysis.C --- saods9-8.2+repack/fitsy/analysis.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/analysis.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/analysis.h saods9-8.3+repack/fitsy/analysis.h --- saods9-8.2+repack/fitsy/analysis.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/analysis.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/block.C saods9-8.3+repack/fitsy/block.C --- saods9-8.2+repack/fitsy/block.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/block.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -164,32 +164,32 @@ Translate(.5,.5); if (head_->find("LTV1")) - head_->setReal("LTV1", im.matrix(2,0), 8, ""); + head_->setReal("LTV1", im.matrix(2,0), 9, ""); else - head_->appendReal("LTV1", im.matrix(2,0), 8, ""); + head_->appendReal("LTV1", im.matrix(2,0), 9, ""); if (head_->find("LTV2")) - head_->setReal("LTV2", im.matrix(2,1), 8, ""); + head_->setReal("LTV2", im.matrix(2,1), 9, ""); else - head_->appendReal("LTV2", im.matrix(2,1), 8, ""); + head_->appendReal("LTV2", im.matrix(2,1), 9, ""); if (head_->find("LTM1_1")) - head_->setReal("LTM1_1", ltm11/block[0], 8, ""); + head_->setReal("LTM1_1", ltm11/block[0], 9, ""); else - head_->appendReal("LTM1_1", ltm11/block[0], 8, ""); + head_->appendReal("LTM1_1", ltm11/block[0], 9, ""); if (head_->find("LTM1_2")) - head_->setReal("LTM1_2", ltm12, 8, ""); + head_->setReal("LTM1_2", ltm12, 9, ""); else - head_->appendReal("LTM1_2", ltm12, 8, ""); + head_->appendReal("LTM1_2", ltm12, 9, ""); if (head_->find("LTM2_1")) - head_->setReal("LTM2_1", ltm21, 8, ""); + head_->setReal("LTM2_1", ltm21, 9, ""); else - head_->appendReal("LTM2_1", ltm21, 8, ""); + head_->appendReal("LTM2_1", ltm21, 9, ""); if (head_->find("LTM2_2")) - head_->setReal("LTM2_2", ltm22/block[1], 8, ""); + head_->setReal("LTM2_2", ltm22/block[1], 9, ""); else - head_->appendReal("LTM2_2", ltm22/block[1], 8, ""); + head_->appendReal("LTM2_2", ltm22/block[1], 9, ""); } diff -Nru saods9-8.2+repack/fitsy/block.h saods9-8.3+repack/fitsy/block.h --- saods9-8.2+repack/fitsy/block.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/block.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/card.C saods9-8.3+repack/fitsy/card.C --- saods9-8.2+repack/fitsy/card.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/card.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -109,7 +109,8 @@ memset(card_+8, ' ', FTY_CARDLEN-8); ostringstream str; - str << "= " << setw(20) << setprecision(prec) << real << img; + str << "= " << setw(20) << setprecision(prec) + << '(' << real << ',' << img << ')'; if (comment) str << " / " << comment; memcpy(card_+8,str.str().c_str(),str.str().length()); @@ -200,9 +201,10 @@ ptr++; } + char dummy; // for '(' and ',' string x(buf,FTY_CARDLEN-10); istringstream str(x); - str >> *r >> *i; + str >> dummy >> *r >> dummy >> *i >> dummy; } char* FitsCard::getString() diff -Nru saods9-8.2+repack/fitsy/card.h saods9-8.3+repack/fitsy/card.h --- saods9-8.2+repack/fitsy/card.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/card.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/channel.C saods9-8.3+repack/fitsy/channel.C --- saods9-8.2+repack/fitsy/channel.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/channel.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/channel.h saods9-8.3+repack/fitsy/channel.h --- saods9-8.2+repack/fitsy/channel.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/channel.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/column.C saods9-8.3+repack/fitsy/column.C --- saods9-8.2+repack/fitsy/column.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/column.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/column.h saods9-8.3+repack/fitsy/column.h --- saods9-8.2+repack/fitsy/column.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/column.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/compress.C saods9-8.3+repack/fitsy/compress.C --- saods9-8.2+repack/fitsy/compress.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/compress.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/compress.h saods9-8.3+repack/fitsy/compress.h --- saods9-8.2+repack/fitsy/compress.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/compress.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/configure saods9-8.3+repack/fitsy/configure --- saods9-8.2+repack/fitsy/configure 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/configure 2021-11-08 15:46:07.000000000 +0000 @@ -1698,6 +1698,93 @@ } # ac_fn_cxx_try_compile +# ac_fn_c_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 () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_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;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_mongrel + # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. @@ -5576,6 +5663,25 @@ +case ${TEA_PLATFORM} in + windows*) + ;; + *) + for ac_header in sys/shm.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/shm.h" "ac_cv_header_sys_shm_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_shm_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_SHM_H 1 +_ACEOF + +fi + +done + + ;; +esac + #-------------------------------------------------------------------- # __CHANGE__ # diff -Nru saods9-8.2+repack/fitsy/configure.ac saods9-8.3+repack/fitsy/configure.ac --- saods9-8.2+repack/fitsy/configure.ac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/configure.ac 2021-11-08 15:46:07.000000000 +0000 @@ -173,6 +173,14 @@ TEA_ADD_STUB_SOURCES([]) TEA_ADD_TCL_SOURCES([]) +case ${TEA_PLATFORM} in + windows*) + ;; + *) + AC_CHECK_HEADERS(sys/shm.h) + ;; +esac + #-------------------------------------------------------------------- # __CHANGE__ # diff -Nru saods9-8.2+repack/fitsy/envi.C saods9-8.3+repack/fitsy/envi.C --- saods9-8.2+repack/fitsy/envi.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/envi.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -46,18 +46,18 @@ if (pCRPIX3_>0 || pCRVAL3_>0 || pCDELT3_!=1) { head_->appendString("CTYPE1","LINEAR", NULL); head_->appendReal("CRPIX1",1, 9, NULL); - head_->appendReal("CRVAL1",1, 9, NULL); - head_->appendReal("CDELT1",1, 9, NULL); + head_->appendReal("CRVAL1",1, 15, NULL); + head_->appendReal("CDELT1",1, 15, NULL); head_->appendString("CTYPE2","LINEAR", NULL); head_->appendReal("CRPIX2",1, 9, NULL); - head_->appendReal("CRVAL2",1, 9, NULL); - head_->appendReal("CDELT2",1, 9, NULL); + head_->appendReal("CRVAL2",1, 15, NULL); + head_->appendReal("CDELT2",1, 15, NULL); head_->appendString("CTYPE3","WAVELENGTH", NULL); head_->appendReal("CRPIX3",pCRPIX3_, 9, NULL); - head_->appendReal("CRVAL3",pCRVAL3_, 9, NULL); - head_->appendReal("CDELT3",pCDELT3_, 9, NULL); + head_->appendReal("CRVAL3",pCRVAL3_, 15, NULL); + head_->appendReal("CDELT3",pCDELT3_, 15, NULL); } // other diff -Nru saods9-8.2+repack/fitsy/envi.h saods9-8.3+repack/fitsy/envi.h --- saods9-8.2+repack/fitsy/envi.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/envi.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/envilex.C saods9-8.3+repack/fitsy/envilex.C --- saods9-8.2+repack/fitsy/envilex.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/envilex.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,6 +1,6 @@ -#line 2 "envilex.C" +#line 1 "envilex.C" -#line 4 "envilex.C" +#line 3 "envilex.C" #define YY_INT_ALIGNED short int @@ -8,8 +8,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -22,6 +22,24 @@ */ #define yyFlexLexer enviFlexLexer +#ifdef yyalloc +#define envialloc_ALREADY_DEFINED +#else +#define yyalloc envialloc +#endif + +#ifdef yyrealloc +#define envirealloc_ALREADY_DEFINED +#else +#define yyrealloc envirealloc +#endif + +#ifdef yyfree +#define envifree_ALREADY_DEFINED +#else +#define yyfree envifree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -59,7 +77,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -90,70 +107,67 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ -#include +#include #include #include +#include #include /* end standard C++ headers. */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) - #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -175,8 +189,9 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -191,7 +206,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -199,7 +213,7 @@ struct yy_buffer_state { - std::istream* yy_input_file; + std::streambuf* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ @@ -207,7 +221,7 @@ /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -235,7 +249,7 @@ int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -269,18 +283,16 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -void *envialloc (yy_size_t ); -void *envirealloc (void *,yy_size_t ); -void envifree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -290,7 +302,6 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -300,13 +311,11 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; #define yytext_ptr yytext @@ -323,7 +332,6 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 72 #define YY_END_OF_BUFFER 73 /* This struct is not used in this scanner, @@ -333,7 +341,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[282] = +static const flex_int16_t yy_accept[282] = { 0, 0, 0, 2, 2, 0, 0, 73, 71, 68, 70, 71, 71, 71, 64, 67, 67, 67, 67, 67, 67, @@ -368,7 +376,7 @@ 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, @@ -400,7 +408,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[63] = +static const YY_CHAR yy_meta[63] = { 0, 1, 1, 2, 1, 1, 1, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, @@ -411,7 +419,7 @@ 1, 1 } ; -static yyconst flex_int16_t yy_base[287] = +static const flex_int16_t yy_base[287] = { 0, 0, 0, 806, 805, 62, 124, 807, 810, 800, 810, 788, 64, 781, 66, 78, 179, 781, 68, 69, 127, @@ -446,7 +454,7 @@ 810, 792, 796, 94, 800, 802 } ; -static yyconst flex_int16_t yy_def[287] = +static const flex_int16_t yy_def[287] = { 0, 281, 1, 282, 282, 283, 283, 281, 281, 281, 281, 281, 281, 281, 284, 284, 284, 284, 284, 284, 284, @@ -481,7 +489,7 @@ 0, 281, 281, 281, 281, 281 } ; -static yyconst flex_int16_t yy_nxt[873] = +static const flex_int16_t yy_nxt[873] = { 0, 8, 9, 10, 11, 12, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 17, 17, @@ -581,7 +589,7 @@ 281, 281 } ; -static yyconst flex_int16_t yy_chk[873] = +static const flex_int16_t yy_chk[873] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -689,7 +697,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "envilex.L" -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -703,10 +711,10 @@ extern YYSTYPE* envilval; extern enviFlexLexer* envilexx; - +#line 714 "envilex.C" /* rules */ -#line 710 "envilex.C" +#line 717 "envilex.C" #define INITIAL 0 #define DISCARD 1 @@ -725,11 +733,11 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -738,7 +746,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -752,7 +765,7 @@ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif @@ -794,7 +807,7 @@ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -804,15 +817,10 @@ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 30 "envilex.L" - - -#line 815 "envilex.C" - if ( !(yy_init) ) { (yy_init) = 1; @@ -825,10 +833,10 @@ (yy_start) = 1; /* first start state */ if ( ! yyin ) - yyin = & std::cin; + yyin.rdbuf(std::cin.rdbuf()); if ( ! yyout ) - yyout = & std::cout; + yyout.rdbuf(std::cout.rdbuf()); if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); @@ -839,7 +847,13 @@ yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 30 "envilex.L" + + +#line 854 "envilex.C" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -855,7 +869,7 @@ yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -865,9 +879,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 282 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 281 ); @@ -1307,7 +1321,7 @@ #line 181 "envilex.L" ECHO; YY_BREAK -#line 1311 "envilex.C" +#line 1324 "envilex.C" case YY_END_OF_BUFFER: { @@ -1330,7 +1344,7 @@ * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -1437,14 +1451,33 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. */ -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::ctor_common() { - yyin = arg_yyin; - yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; @@ -1461,7 +1494,7 @@ yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -1474,23 +1507,36 @@ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; - envifree(yy_start_stack ); + yyfree( yy_start_stack ); yy_delete_buffer( YY_CURRENT_BUFFER ); - envifree(yy_buffer_stack ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } + if( ! new_in ) { + new_in = &yyin; + } - if ( new_out ) - yyout = new_out; + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); } #ifdef YY_INTERACTIVE @@ -1499,33 +1545,33 @@ size_t yyFlexLexer::LexerInput( char* buf, size_t max_size ) #endif { - if ( yyin->eof() || yyin->fail() ) + if ( yyin.eof() || yyin.fail() ) return 0; #ifdef YY_INTERACTIVE - yyin->get( buf[0] ); + yyin.get( buf[0] ); - if ( yyin->eof() ) + if ( yyin.eof() ) return 0; - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; return 1; #else - (void) yyin->read( buf, max_size ); + (void) yyin.read( buf, max_size ); - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; else - return yyin->gcount(); + return yyin.gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, size_t size ) { - (void) yyout->write( buf, size ); + (void) yyout.write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer @@ -1537,9 +1583,9 @@ */ int yyFlexLexer::yy_get_next_buffer() { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1568,7 +1614,7 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1588,7 +1634,7 @@ { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); @@ -1604,11 +1650,12 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - envirealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1650,12 +1697,15 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) envirealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1671,14 +1721,14 @@ yy_state_type yyFlexLexer::yy_get_previous_state() { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1688,9 +1738,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 282 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1703,10 +1753,10 @@ */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1716,17 +1766,18 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 282 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 281); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - void yyFlexLexer::yyunput( int c, register char* yy_bp) +#ifndef YY_NO_UNPUT + void yyFlexLexer::yyunput( int c, char* yy_bp) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -1736,10 +1787,10 @@ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -1748,7 +1799,7 @@ yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -1760,6 +1811,7 @@ (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } +#endif int yyFlexLexer::yyinput() { @@ -1833,7 +1885,7 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void yyFlexLexer::yyrestart( std::istream* input_file ) + void yyFlexLexer::yyrestart( std::istream& input_file ) { if ( ! YY_CURRENT_BUFFER ){ @@ -1846,6 +1898,19 @@ yy_load_buffer_state( ); } +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -1885,7 +1950,7 @@ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); (yy_hold_char) = *(yy_c_buf_p); } @@ -1895,11 +1960,11 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) envialloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1908,7 +1973,7 @@ /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) envialloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1919,6 +1984,17 @@ return b; } +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -1933,23 +2009,23 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - envifree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - envifree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) { int oerrno = errno; yy_flush_buffer( b ); - b->yy_input_file = file; + b->yy_input_file = file.rdbuf(); b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -2057,15 +2133,15 @@ * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)envialloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -2074,10 +2150,10 @@ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)envirealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -2090,20 +2166,21 @@ } } - void yyFlexLexer::yy_push_state( int new_state ) + void yyFlexLexer::yy_push_state( int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) envialloc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) envirealloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -2111,7 +2188,7 @@ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } void yyFlexLexer::yy_pop_state() @@ -2131,7 +2208,7 @@ #define YY_EXIT_FAILURE 2 #endif -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( const char* msg ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); @@ -2144,7 +2221,7 @@ do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -2161,18 +2238,19 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -2180,13 +2258,14 @@ } #endif -void *envialloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *envirealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -2194,12 +2273,12 @@ * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void envifree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see envirealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -2207,7 +2286,6 @@ #line 181 "envilex.L" - void enviDiscard(int doit) { if (envilexx) diff -Nru saods9-8.2+repack/fitsy/enviparser.Y saods9-8.3+repack/fitsy/enviparser.Y --- saods9-8.2+repack/fitsy/enviparser.Y 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/enviparser.Y 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/file.C saods9-8.3+repack/fitsy/file.C --- saods9-8.2+repack/fitsy/file.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/file.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/file.h saods9-8.3+repack/fitsy/file.h --- saods9-8.2+repack/fitsy/file.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/file.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/gzip.C saods9-8.3+repack/fitsy/gzip.C --- saods9-8.2+repack/fitsy/gzip.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/gzip.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/gzip.h saods9-8.3+repack/fitsy/gzip.h --- saods9-8.2+repack/fitsy/gzip.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/gzip.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/hcompress.C saods9-8.3+repack/fitsy/hcompress.C --- saods9-8.2+repack/fitsy/hcompress.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/hcompress.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/hcompress.h saods9-8.3+repack/fitsy/hcompress.h --- saods9-8.2+repack/fitsy/hcompress.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/hcompress.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/hdecompress.c saods9-8.3+repack/fitsy/hdecompress.c --- saods9-8.2+repack/fitsy/hdecompress.c 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/hdecompress.c 2021-11-08 15:46:07.000000000 +0000 @@ -38,6 +38,8 @@ /*#include "fitsio2.h"*/ #define LONGLONG long long #define DATA_DECOMPRESSION_ERR 0 +#define FFLOCK +#define FFUNLOCK static void ffpmsg(const char* str) {} @@ -68,7 +70,7 @@ static int dodecode64(unsigned char *infile, LONGLONG a[], int nx, int ny, unsigned char nbitplanes[3]); static int qtree_decode(unsigned char *infile, int a[], int n, int nqx, int nqy, int nbitplanes); static int qtree_decode64(unsigned char *infile, LONGLONG a[], int n, int nqx, int nqy, int nbitplanes); -static void start_inputing_bits(); +static void start_inputing_bits(void); static int input_bit(unsigned char *infile); static int input_nbits(unsigned char *infile, int n); /* make input_nybble a separate routine, for added effiency */ @@ -107,7 +109,10 @@ /* decode the input array */ + FFLOCK; /* decode uses the nextchar global variable */ stat = decode(input, a, nx, ny, scale); + FFUNLOCK; + *status = stat; if (stat) return(*status); @@ -147,7 +152,10 @@ /* decode the input array */ + FFLOCK; /* decode uses the nextchar global variable */ stat = decode64(input, a, nx, ny, scale); + FFUNLOCK; + *status = stat; if (stat) return(*status); @@ -1048,7 +1056,7 @@ */ { LONGLONG sumall; -int nel, stat; +int stat; unsigned char nbitplanes[3]; char tmagic[2]; @@ -1071,8 +1079,6 @@ *ny =readint(infile); /* y size of image */ *scale=readint(infile); /* scale factor for digitization */ - nel = (*nx) * (*ny); - /* sum of all pixels */ sumall=readlonglong(infile); /* # bits in quadrants */ @@ -1095,7 +1101,7 @@ int *scale; scale factor for digitization */ { -int nel, stat; +int stat; LONGLONG sumall; unsigned char nbitplanes[3]; char tmagic[2]; @@ -1119,8 +1125,6 @@ *ny =readint(infile); /* y size of image */ *scale=readint(infile); /* scale factor for digitization */ - nel = (*nx) * (*ny); - /* sum of all pixels */ sumall=readlonglong(infile); /* # bits in quadrants */ @@ -1995,9 +1999,9 @@ { int i, j, k; int s00; -int plane_val; +LONGLONG plane_val; - plane_val = 1 << bit; + plane_val = ((LONGLONG) 1) << bit; /* * expand each 2x2 block @@ -2279,13 +2283,11 @@ static void read_bdirect(unsigned char *infile, int a[], int n, int nqx, int nqy, unsigned char scratch[], int bit) { - - /* * read bit image packed 4 pixels/nybble */ /* - int i; +int i; for (i = 0; i < ((nqx+1)/2) * ((nqy+1)/2); i++) { scratch[i] = input_nybble(infile); } @@ -2301,12 +2303,11 @@ static void read_bdirect64(unsigned char *infile, LONGLONG a[], int n, int nqx, int nqy, unsigned char scratch[], int bit) { - /* * read bit image packed 4 pixels/nybble */ /* - int i; +int i; for (i = 0; i < ((nqx+1)/2) * ((nqy+1)/2); i++) { scratch[i] = input_nybble(infile); } @@ -2475,7 +2476,7 @@ /* INITIALIZE BIT INPUT */ /* ############################################################################ */ -static void start_inputing_bits() +static void start_inputing_bits(void) { /* * Buffer starts out with no bits in it diff -Nru saods9-8.2+repack/fitsy/hdu.C saods9-8.3+repack/fitsy/hdu.C --- saods9-8.2+repack/fitsy/hdu.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/hdu.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -44,9 +44,10 @@ for(int i=0; igetInteger(keycat("NAXIS",(i+1)), 0); + // NOTE: naxis_[1]=0 is legal // special case: 1D image - if (naxis_[0]>0 && naxis_[1]==0) - naxis_[1] = 1; + // if (naxis_[0]>0 && naxis_[1]==0) + // naxis_[1] = 1; realbytes_ = 0; heapbytes_ = head->getInteger("PCOUNT",0); diff -Nru saods9-8.2+repack/fitsy/hdu.h saods9-8.3+repack/fitsy/hdu.h --- saods9-8.2+repack/fitsy/hdu.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/hdu.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/head.C saods9-8.3+repack/fitsy/head.C --- saods9-8.2+repack/fitsy/head.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/head.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/head.h saods9-8.3+repack/fitsy/head.h --- saods9-8.2+repack/fitsy/head.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/head.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/hist.C saods9-8.3+repack/fitsy/hist.C --- saods9-8.2+repack/fitsy/hist.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/hist.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -16,7 +16,15 @@ #ifndef HAVE_CONFIG_H #define HAVE_CONFIG_H 1 #endif + +// windows has conflict with typedef byte and +#ifdef __WIN32 +#define byte foo +#endif #include "filter.h" +#ifdef __WIN32 +#undef foo +#endif #ifdef __CYGWIN__ // limit size, cygwin pipe to 64K / (4 args x 4 bytes) @@ -218,7 +226,7 @@ // MJD-OBJ deprecated double rr = srcHead->getReal("MJD_OBS",0); if (rr) - head_->appendReal("MJD-OBS", rr, 10, NULL); + head_->appendReal("MJD-OBS", rr, 15, NULL); // we added cards head_->updateHDU(); @@ -442,12 +450,12 @@ void FitsHist::initLTMV(Matrix& m) { - head_->appendReal("LTM1_1", m[0][0], 10, NULL); - head_->appendReal("LTM1_2", m[0][1], 10, NULL); - head_->appendReal("LTM2_1", m[1][0], 10, NULL); - head_->appendReal("LTM2_2", m[1][1], 10, NULL); - head_->appendReal("LTV1" , m[2][0], 10, NULL); - head_->appendReal("LTV2" , m[2][1], 10, NULL); + head_->appendReal("LTM1_1", m[0][0], 9, NULL); + head_->appendReal("LTM1_2", m[0][1], 9, NULL); + head_->appendReal("LTM2_1", m[1][0], 9, NULL); + head_->appendReal("LTM2_2", m[1][1], 9, NULL); + head_->appendReal("LTV1" , m[2][0], 9, NULL); + head_->appendReal("LTV2" , m[2][1], 9, NULL); } void FitsHist::mapWCSString(FitsHead* head, char* w, @@ -506,8 +514,8 @@ istr << in << xcol_->index() << ends; if (head->find(istr.str().c_str())) { - float cc = head->getReal(istr.str().c_str(), 0); - head_->appendReal(out, cc, 10, NULL); + double cc = head->getReal(istr.str().c_str(), 0); + head_->appendReal(out, cc, 15, NULL); } } @@ -518,8 +526,8 @@ istr << in << xcol_->index() << w << ends; if (head->find(istr.str().c_str())) { - float cc = head->getReal(istr.str().c_str(), 0); - head_->appendReal(out, cc, 10, NULL); + double cc = head->getReal(istr.str().c_str(), 0); + head_->appendReal(out, cc, 15, NULL); } } @@ -547,18 +555,18 @@ ostr3 << out << "3" << w << ends; if (head->find(istr1.str().c_str()) || head->find(istr2.str().c_str())) { - float cc1 = head->getReal(istr1.str().c_str(),0); - float cc2 = head->getReal(istr2.str().c_str(),0); + double cc1 = head->getReal(istr1.str().c_str(),0); + double cc2 = head->getReal(istr2.str().c_str(),0); Vector cc = Vector(cc1,cc2) * mm; - head_->appendReal(ostr1.str().c_str(), cc[0], 10, NULL); - head_->appendReal(ostr2.str().c_str(), cc[1], 10, NULL); + head_->appendReal(ostr1.str().c_str(), cc[0], 15, NULL); + head_->appendReal(ostr2.str().c_str(), cc[1], 15, NULL); } if (zcol_) { if (head->find(istr3.str().c_str())) { - float cc3 = head->getReal(istr3.str().c_str(),0); - head_->appendReal(ostr3.str().c_str(), cc3, 10, NULL); + double cc3 = head->getReal(istr3.str().c_str(),0); + head_->appendReal(ostr3.str().c_str(), cc3, 15, NULL); } } } @@ -583,17 +591,17 @@ head->find(istr2.str().c_str()) || head->find(istr3.str().c_str()) || head->find(istr4.str().c_str())) { - float cc11 = head->getReal(istr1.str().c_str(), 0); - float cc12 = head->getReal(istr2.str().c_str(), 0); - float cc21 = head->getReal(istr3.str().c_str(), 0); - float cc22 = head->getReal(istr4.str().c_str(), 0); + double cc11 = head->getReal(istr1.str().c_str(), 0); + double cc12 = head->getReal(istr2.str().c_str(), 0); + double cc21 = head->getReal(istr3.str().c_str(), 0); + double cc22 = head->getReal(istr4.str().c_str(), 0); Matrix cc = Matrix(cc11*vv[0], cc12*vv[0], cc21*vv[1], cc22*vv[1], 0, 0); - head_->appendReal(ostr1.str().c_str(), cc[0][0], 10, NULL); - head_->appendReal(ostr2.str().c_str(), cc[0][1], 10, NULL); - head_->appendReal(ostr3.str().c_str(), cc[1][0], 10, NULL); - head_->appendReal(ostr4.str().c_str(), cc[1][1], 10, NULL); + head_->appendReal(ostr1.str().c_str(), cc[0][0], 15, NULL); + head_->appendReal(ostr2.str().c_str(), cc[0][1], 15, NULL); + head_->appendReal(ostr3.str().c_str(), cc[1][0], 15, NULL); + head_->appendReal(ostr4.str().c_str(), cc[1][1], 15, NULL); } } @@ -611,10 +619,10 @@ if (head->find(istr1.str().c_str()) || head->find(istr2.str().c_str())) { - float cc1 = head->getReal(istr1.str().c_str(), 0); - float cc2 = head->getReal(istr2.str().c_str(), 0); - head_->appendReal(ostr1.str().c_str(), cc1, 10, NULL); - head_->appendReal(ostr2.str().c_str(), cc2, 10, NULL); + double cc1 = head->getReal(istr1.str().c_str(), 0); + double cc2 = head->getReal(istr2.str().c_str(), 0); + head_->appendReal(ostr1.str().c_str(), cc1, 15, NULL); + head_->appendReal(ostr2.str().c_str(), cc2, 15, NULL); } } } diff -Nru saods9-8.2+repack/fitsy/hist.h saods9-8.3+repack/fitsy/hist.h --- saods9-8.2+repack/fitsy/hist.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/hist.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/hpx.C saods9-8.3+repack/fitsy/hpx.C --- saods9-8.2+repack/fitsy/hpx.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/hpx.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -440,23 +440,23 @@ break; } float crpix2 = crpix1; - head_->appendReal("CRPIX1", crpix1, 8, "Coordinate reference pixel"); - head_->appendReal("CRPIX2", crpix2, 8, "Coordinate reference pixel"); + head_->appendReal("CRPIX1", crpix1, 9, "Coordinate reference pixel"); + head_->appendReal("CRPIX2", crpix2, 9, "Coordinate reference pixel"); // PCx_y float cos45 = sqrt(2.0) / 2.0; if (layout_ == EQUATOR) { - head_->appendReal("PC1_1", cos45, 8, "Transformation matrix element"); - head_->appendReal("PC1_2", cos45, 8, "Transformation matrix element"); - head_->appendReal("PC2_1", -cos45, 8, "Transformation matrix element"); - head_->appendReal("PC2_2", cos45, 8, "Transformation matrix element"); + head_->appendReal("PC1_1", cos45, 15, "Transformation matrix element"); + head_->appendReal("PC1_2", cos45, 15, "Transformation matrix element"); + head_->appendReal("PC2_1", -cos45, 15, "Transformation matrix element"); + head_->appendReal("PC2_2", cos45, 15, "Transformation matrix element"); } // CDELT1/2 float cdelt1 = -90.0 / nside_ / sqrt(2.); float cdelt2 = -cdelt1; - head_->appendReal("CDELT1", cdelt1, 8, "[deg] Coordinate increment"); - head_->appendReal("CDELT2", cdelt2, 8, "[deg] Coordinate increment"); + head_->appendReal("CDELT1", cdelt1, 15, "[deg] Coordinate increment"); + head_->appendReal("CDELT2", cdelt2, 15, "[deg] Coordinate increment"); // CTYPE1/2 const char* pcode; @@ -535,12 +535,12 @@ { ostringstream comm; comm << "[deg] " << descr1 << " at the reference point" << ends; - head_->appendReal("CRVAL1", crval1, 8, comm.str().c_str()); + head_->appendReal("CRVAL1", crval1, 15, comm.str().c_str()); } { ostringstream comm; comm << "[deg] " << descr2 << " at the reference point" << ends; - head_->appendReal("CRVAL2", crval2, 8, comm.str().c_str()); + head_->appendReal("CRVAL2", crval2, 15, comm.str().c_str()); } // PV2_1/2 @@ -551,7 +551,7 @@ break; case NORTH: case SOUTH: - head_->appendReal("LONPOLE", 180., 8, "[deg] Native longitude of the celestial pole"); + head_->appendReal("LONPOLE", 180., 9, "[deg] Native longitude of the celestial pole"); break; } diff -Nru saods9-8.2+repack/fitsy/hpx.h saods9-8.3+repack/fitsy/hpx.h --- saods9-8.2+repack/fitsy/hpx.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/hpx.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/iis.C saods9-8.3+repack/fitsy/iis.C --- saods9-8.2+repack/fitsy/iis.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/iis.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/iis.h saods9-8.3+repack/fitsy/iis.h --- saods9-8.2+repack/fitsy/iis.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/iis.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/lex.C saods9-8.3+repack/fitsy/lex.C --- saods9-8.2+repack/fitsy/lex.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/lex.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,6 +1,6 @@ -#line 2 "lex.C" +#line 1 "lex.C" -#line 4 "lex.C" +#line 3 "lex.C" #define YY_INT_ALIGNED short int @@ -8,8 +8,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -22,6 +22,24 @@ */ #define yyFlexLexer ffFlexLexer +#ifdef yyalloc +#define ffalloc_ALREADY_DEFINED +#else +#define yyalloc ffalloc +#endif + +#ifdef yyrealloc +#define ffrealloc_ALREADY_DEFINED +#else +#define yyrealloc ffrealloc +#endif + +#ifdef yyfree +#define fffree_ALREADY_DEFINED +#else +#define yyfree fffree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -59,7 +77,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -90,70 +107,67 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ -#include +#include #include #include +#include #include /* end standard C++ headers. */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) - #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -175,8 +189,9 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -191,7 +206,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -199,7 +213,7 @@ struct yy_buffer_state { - std::istream* yy_input_file; + std::streambuf* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ @@ -207,7 +221,7 @@ /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -235,7 +249,7 @@ int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -269,18 +283,16 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -void *ffalloc (yy_size_t ); -void *ffrealloc (void *,yy_size_t ); -void fffree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -290,7 +302,6 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -300,13 +311,11 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; #define yytext_ptr yytext @@ -323,7 +332,6 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 45 #define YY_END_OF_BUFFER 46 /* This struct is not used in this scanner, @@ -333,7 +341,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[178] = +static const flex_int16_t yy_accept[178] = { 0, 0, 0, 0, 0, 42, 42, 0, 0, 46, 1, 3, 1, 1, 2, 4, 41, 40, 45, 41, 39, @@ -356,7 +364,7 @@ 37, 37, 18, 37, 37, 23, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -388,7 +396,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[58] = +static const YY_CHAR yy_meta[58] = { 0, 1, 2, 3, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, @@ -398,7 +406,7 @@ 4, 4, 4, 4, 4, 4, 4 } ; -static yyconst flex_int16_t yy_base[184] = +static const flex_int16_t yy_base[184] = { 0, 0, 3, 37, 0, 339, 336, 5, 6, 119, 0, 14, 0, 15, 381, 381, 381, 18, 381, 108, 381, @@ -422,7 +430,7 @@ 372, 24, 376 } ; -static yyconst flex_int16_t yy_def[184] = +static const flex_int16_t yy_def[184] = { 0, 178, 178, 177, 3, 179, 179, 180, 180, 177, 181, 177, 181, 181, 177, 177, 177, 177, 177, 177, 177, @@ -446,7 +454,7 @@ 177, 177, 177 } ; -static yyconst flex_int16_t yy_nxt[439] = +static const flex_int16_t yy_nxt[439] = { 0, 177, 11, 12, 13, 11, 12, 13, 18, 18, 44, 44, 44, 44, 45, 45, 47, 47, 47, 48, 49, @@ -498,7 +506,7 @@ 177, 177, 177, 177, 177, 177, 177, 177 } ; -static yyconst flex_int16_t yy_chk[439] = +static const flex_int16_t yy_chk[439] = { 0, 0, 1, 1, 1, 2, 2, 2, 7, 8, 7, 8, 7, 8, 7, 8, 11, 13, 11, 13, 17, @@ -558,7 +566,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "lex.L" -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -576,11 +584,10 @@ extern char ff_filter[]; #define RET(x) {strcat(ff_filter,yytext);return x;} #define CLEARFILTER {ff_filter[0]='\0';} - - +#line 587 "lex.C" /* rules */ -#line 584 "lex.C" +#line 590 "lex.C" #define INITIAL 0 #define EXT 1 @@ -600,11 +607,11 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -613,7 +620,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -627,7 +639,7 @@ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif @@ -669,7 +681,7 @@ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -679,15 +691,10 @@ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 32 "lex.L" - - -#line 690 "lex.C" - if ( !(yy_init) ) { (yy_init) = 1; @@ -700,10 +707,10 @@ (yy_start) = 1; /* first start state */ if ( ! yyin ) - yyin = & std::cin; + yyin.rdbuf(std::cin.rdbuf()); if ( ! yyout ) - yyout = & std::cout; + yyout.rdbuf(std::cout.rdbuf()); if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); @@ -714,7 +721,13 @@ yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 32 "lex.L" + + +#line 728 "lex.C" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -730,7 +743,7 @@ yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -740,9 +753,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 178 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 177 ); @@ -1032,7 +1045,7 @@ #line 137 "lex.L" ECHO; YY_BREAK -#line 1036 "lex.C" +#line 1048 "lex.C" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(EXT): case YY_STATE_EOF(FILTER): @@ -1060,7 +1073,7 @@ * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -1167,14 +1180,33 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. */ -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) +void yyFlexLexer::ctor_common() { - yyin = arg_yyin; - yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; @@ -1191,7 +1223,7 @@ yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -1204,23 +1236,36 @@ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; - fffree(yy_start_stack ); + yyfree( yy_start_stack ); + yy_delete_buffer( YY_CURRENT_BUFFER ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) yy_delete_buffer( YY_CURRENT_BUFFER ); - fffree(yy_buffer_stack ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } + if( ! new_in ) { + new_in = &yyin; + } - if ( new_out ) - yyout = new_out; + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); } #ifdef YY_INTERACTIVE @@ -1229,33 +1274,33 @@ size_t yyFlexLexer::LexerInput( char* buf, size_t max_size ) #endif { - if ( yyin->eof() || yyin->fail() ) + if ( yyin.eof() || yyin.fail() ) return 0; #ifdef YY_INTERACTIVE - yyin->get( buf[0] ); + yyin.get( buf[0] ); - if ( yyin->eof() ) + if ( yyin.eof() ) return 0; - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; return 1; #else - (void) yyin->read( buf, max_size ); + (void) yyin.read( buf, max_size ); - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; else - return yyin->gcount(); + return yyin.gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, size_t size ) { - (void) yyout->write( buf, size ); + (void) yyout.write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer @@ -1267,9 +1312,9 @@ */ int yyFlexLexer::yy_get_next_buffer() { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1298,7 +1343,7 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1318,7 +1363,7 @@ { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); @@ -1334,11 +1379,12 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - ffrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1380,12 +1426,15 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) ffrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1401,14 +1450,14 @@ yy_state_type yyFlexLexer::yy_get_previous_state() { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1418,9 +1467,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 178 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1433,10 +1482,10 @@ */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1446,17 +1495,18 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 178 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 177); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - void yyFlexLexer::yyunput( int c, register char* yy_bp) +#ifndef YY_NO_UNPUT + void yyFlexLexer::yyunput( int c, char* yy_bp) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -1466,10 +1516,10 @@ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -1478,7 +1528,7 @@ yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -1490,6 +1540,7 @@ (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } +#endif int yyFlexLexer::yyinput() { @@ -1563,7 +1614,7 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void yyFlexLexer::yyrestart( std::istream* input_file ) + void yyFlexLexer::yyrestart( std::istream& input_file ) { if ( ! YY_CURRENT_BUFFER ){ @@ -1576,6 +1627,19 @@ yy_load_buffer_state( ); } +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -1615,7 +1679,7 @@ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); (yy_hold_char) = *(yy_c_buf_p); } @@ -1625,11 +1689,11 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) ffalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1638,7 +1702,7 @@ /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) ffalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1649,6 +1713,17 @@ return b; } +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -1663,23 +1738,23 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - fffree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - fffree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) { int oerrno = errno; yy_flush_buffer( b ); - b->yy_input_file = file; + b->yy_input_file = file.rdbuf(); b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -1787,15 +1862,15 @@ * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)ffalloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -1804,10 +1879,10 @@ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)ffrealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -1820,20 +1895,21 @@ } } - void yyFlexLexer::yy_push_state( int new_state ) + void yyFlexLexer::yy_push_state( int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) ffalloc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) ffrealloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -1841,7 +1917,7 @@ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } void yyFlexLexer::yy_pop_state() @@ -1861,7 +1937,7 @@ #define YY_EXIT_FAILURE 2 #endif -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( const char* msg ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); @@ -1874,7 +1950,7 @@ do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -1891,18 +1967,19 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -1910,13 +1987,14 @@ } #endif -void *ffalloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *ffrealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -1924,12 +2002,12 @@ * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void fffree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see ffrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -1937,7 +2015,6 @@ #line 137 "lex.L" - void ffFilter(int doit) { if (fflexx) diff -Nru saods9-8.2+repack/fitsy/map.C saods9-8.3+repack/fitsy/map.C --- saods9-8.2+repack/fitsy/map.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/map.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/map.h saods9-8.3+repack/fitsy/map.h --- saods9-8.2+repack/fitsy/map.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/map.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/mapincr.C saods9-8.3+repack/fitsy/mapincr.C --- saods9-8.2+repack/fitsy/mapincr.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/mapincr.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/mapincr.h saods9-8.3+repack/fitsy/mapincr.h --- saods9-8.2+repack/fitsy/mapincr.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/mapincr.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/mmap.C saods9-8.3+repack/fitsy/mmap.C --- saods9-8.2+repack/fitsy/mmap.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/mmap.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/mmap.h saods9-8.3+repack/fitsy/mmap.h --- saods9-8.2+repack/fitsy/mmap.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/mmap.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/mmapincr.C saods9-8.3+repack/fitsy/mmapincr.C --- saods9-8.2+repack/fitsy/mmapincr.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/mmapincr.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/mmapincr.h saods9-8.3+repack/fitsy/mmapincr.h --- saods9-8.2+repack/fitsy/mmapincr.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/mmapincr.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/nrrd.C saods9-8.3+repack/fitsy/nrrd.C --- saods9-8.2+repack/fitsy/nrrd.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/nrrd.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/nrrdgzip.C saods9-8.3+repack/fitsy/nrrdgzip.C --- saods9-8.2+repack/fitsy/nrrdgzip.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/nrrdgzip.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/nrrdgzip.h saods9-8.3+repack/fitsy/nrrdgzip.h --- saods9-8.2+repack/fitsy/nrrdgzip.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/nrrdgzip.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/nrrd.h saods9-8.3+repack/fitsy/nrrd.h --- saods9-8.2+repack/fitsy/nrrd.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/nrrd.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/nrrdlex.C saods9-8.3+repack/fitsy/nrrdlex.C --- saods9-8.2+repack/fitsy/nrrdlex.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/nrrdlex.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,6 +1,6 @@ -#line 2 "nrrdlex.C" +#line 1 "nrrdlex.C" -#line 4 "nrrdlex.C" +#line 3 "nrrdlex.C" #define YY_INT_ALIGNED short int @@ -8,8 +8,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -22,6 +22,24 @@ */ #define yyFlexLexer nrrdFlexLexer +#ifdef yyalloc +#define nrrdalloc_ALREADY_DEFINED +#else +#define yyalloc nrrdalloc +#endif + +#ifdef yyrealloc +#define nrrdrealloc_ALREADY_DEFINED +#else +#define yyrealloc nrrdrealloc +#endif + +#ifdef yyfree +#define nrrdfree_ALREADY_DEFINED +#else +#define yyfree nrrdfree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -59,7 +77,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -90,70 +107,67 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ -#include +#include #include #include +#include #include /* end standard C++ headers. */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) - #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -175,8 +189,9 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -191,7 +206,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -199,7 +213,7 @@ struct yy_buffer_state { - std::istream* yy_input_file; + std::streambuf* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ @@ -207,7 +221,7 @@ /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -235,7 +249,7 @@ int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -269,18 +283,16 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -void *nrrdalloc (yy_size_t ); -void *nrrdrealloc (void *,yy_size_t ); -void nrrdfree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -290,7 +302,6 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -300,13 +311,11 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; #define yytext_ptr yytext @@ -323,7 +332,6 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 105 #define YY_END_OF_BUFFER 106 /* This struct is not used in this scanner, @@ -333,7 +341,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[359] = +static const flex_int16_t yy_accept[359] = { 0, 0, 0, 2, 2, 106, 104, 100, 103, 104, 104, 104, 95, 99, 99, 99, 99, 99, 99, 99, 99, @@ -376,7 +384,7 @@ 99, 88, 15, 17, 99, 44, 78, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, @@ -408,7 +416,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[67] = +static const YY_CHAR yy_meta[67] = { 0, 1, 1, 2, 1, 3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 7, @@ -419,7 +427,7 @@ 6, 6, 6, 6, 1, 1 } ; -static yyconst flex_int16_t yy_base[367] = +static const flex_int16_t yy_base[367] = { 0, 0, 0, 1080, 1073, 1060, 1098, 1055, 1098, 1051, 1047, 60, 70, 80, 81, 91, 106, 89, 82, 85, 83, @@ -463,7 +471,7 @@ 1067, 1074, 1081, 1084, 1089, 1092 } ; -static yyconst flex_int16_t yy_def[367] = +static const flex_int16_t yy_def[367] = { 0, 358, 1, 359, 359, 358, 358, 358, 358, 358, 360, 358, 361, 361, 361, 361, 361, 361, 361, 361, 361, @@ -507,7 +515,7 @@ 358, 358, 358, 358, 358, 358 } ; -static yyconst flex_int16_t yy_nxt[1165] = +static const flex_int16_t yy_nxt[1165] = { 0, 6, 7, 8, 9, 10, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 14, 15, 16, 17, @@ -639,7 +647,7 @@ 358, 358, 358, 358 } ; -static yyconst flex_int16_t yy_chk[1165] = +static const flex_int16_t yy_chk[1165] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -779,7 +787,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "nrrdlex.L" -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -793,9 +801,10 @@ extern YYSTYPE* nrrdlval; extern nrrdFlexLexer* nrrdlexx; +#line 804 "nrrdlex.C" /* rules */ -#line 799 "nrrdlex.C" +#line 807 "nrrdlex.C" #define INITIAL 0 #define DISCARD 1 @@ -813,11 +822,11 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -826,7 +835,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -840,7 +854,7 @@ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif @@ -882,7 +896,7 @@ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -892,15 +906,10 @@ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 29 "nrrdlex.L" - - -#line 903 "nrrdlex.C" - if ( !(yy_init) ) { (yy_init) = 1; @@ -913,10 +922,10 @@ (yy_start) = 1; /* first start state */ if ( ! yyin ) - yyin = & std::cin; + yyin.rdbuf(std::cin.rdbuf()); if ( ! yyout ) - yyout = & std::cout; + yyout.rdbuf(std::cout.rdbuf()); if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); @@ -927,7 +936,13 @@ yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 29 "nrrdlex.L" + + +#line 943 "nrrdlex.C" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -943,7 +958,7 @@ yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -953,9 +968,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 359 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 358 ); @@ -1546,7 +1561,7 @@ #line 202 "nrrdlex.L" ECHO; YY_BREAK -#line 1550 "nrrdlex.C" +#line 1564 "nrrdlex.C" case YY_END_OF_BUFFER: { @@ -1569,7 +1584,7 @@ * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -1676,14 +1691,33 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. */ -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::ctor_common() { - yyin = arg_yyin; - yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; @@ -1700,7 +1734,7 @@ yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -1713,23 +1747,36 @@ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; - nrrdfree(yy_start_stack ); + yyfree( yy_start_stack ); yy_delete_buffer( YY_CURRENT_BUFFER ); - nrrdfree(yy_buffer_stack ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } + if( ! new_in ) { + new_in = &yyin; + } - if ( new_out ) - yyout = new_out; + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); } #ifdef YY_INTERACTIVE @@ -1738,33 +1785,33 @@ size_t yyFlexLexer::LexerInput( char* buf, size_t max_size ) #endif { - if ( yyin->eof() || yyin->fail() ) + if ( yyin.eof() || yyin.fail() ) return 0; #ifdef YY_INTERACTIVE - yyin->get( buf[0] ); + yyin.get( buf[0] ); - if ( yyin->eof() ) + if ( yyin.eof() ) return 0; - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; return 1; #else - (void) yyin->read( buf, max_size ); + (void) yyin.read( buf, max_size ); - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; else - return yyin->gcount(); + return yyin.gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, size_t size ) { - (void) yyout->write( buf, size ); + (void) yyout.write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer @@ -1776,9 +1823,9 @@ */ int yyFlexLexer::yy_get_next_buffer() { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1807,7 +1854,7 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1827,7 +1874,7 @@ { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); @@ -1843,11 +1890,12 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - nrrdrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1889,12 +1937,15 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) nrrdrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1910,14 +1961,14 @@ yy_state_type yyFlexLexer::yy_get_previous_state() { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1927,9 +1978,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 359 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1942,10 +1993,10 @@ */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1955,17 +2006,18 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 359 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 358); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - void yyFlexLexer::yyunput( int c, register char* yy_bp) +#ifndef YY_NO_UNPUT + void yyFlexLexer::yyunput( int c, char* yy_bp) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -1975,10 +2027,10 @@ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -1987,7 +2039,7 @@ yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -1999,6 +2051,7 @@ (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } +#endif int yyFlexLexer::yyinput() { @@ -2072,7 +2125,7 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void yyFlexLexer::yyrestart( std::istream* input_file ) + void yyFlexLexer::yyrestart( std::istream& input_file ) { if ( ! YY_CURRENT_BUFFER ){ @@ -2085,6 +2138,19 @@ yy_load_buffer_state( ); } +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -2124,7 +2190,7 @@ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); (yy_hold_char) = *(yy_c_buf_p); } @@ -2134,11 +2200,11 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) nrrdalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -2147,7 +2213,7 @@ /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) nrrdalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -2158,6 +2224,17 @@ return b; } +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -2172,23 +2249,23 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - nrrdfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - nrrdfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) { int oerrno = errno; yy_flush_buffer( b ); - b->yy_input_file = file; + b->yy_input_file = file.rdbuf(); b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -2296,15 +2373,15 @@ * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)nrrdalloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -2313,10 +2390,10 @@ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)nrrdrealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -2329,20 +2406,21 @@ } } - void yyFlexLexer::yy_push_state( int new_state ) + void yyFlexLexer::yy_push_state( int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) nrrdalloc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) nrrdrealloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -2350,7 +2428,7 @@ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } void yyFlexLexer::yy_pop_state() @@ -2370,7 +2448,7 @@ #define YY_EXIT_FAILURE 2 #endif -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( const char* msg ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); @@ -2383,7 +2461,7 @@ do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -2400,18 +2478,19 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -2419,13 +2498,14 @@ } #endif -void *nrrdalloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *nrrdrealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -2433,12 +2513,12 @@ * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void nrrdfree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see nrrdrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -2446,7 +2526,6 @@ #line 202 "nrrdlex.L" - void nrrdDiscard(int doit) { if (nrrdlexx) diff -Nru saods9-8.2+repack/fitsy/nrrdparser.Y saods9-8.3+repack/fitsy/nrrdparser.Y --- saods9-8.2+repack/fitsy/nrrdparser.Y 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/nrrdparser.Y 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/order.C saods9-8.3+repack/fitsy/order.C --- saods9-8.2+repack/fitsy/order.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/order.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/order.h saods9-8.3+repack/fitsy/order.h --- saods9-8.2+repack/fitsy/order.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/order.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/outchannel.C saods9-8.3+repack/fitsy/outchannel.C --- saods9-8.2+repack/fitsy/outchannel.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/outchannel.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/outchannel.h saods9-8.3+repack/fitsy/outchannel.h --- saods9-8.2+repack/fitsy/outchannel.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/outchannel.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/outfile.C saods9-8.3+repack/fitsy/outfile.C --- saods9-8.2+repack/fitsy/outfile.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/outfile.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/outfile.h saods9-8.3+repack/fitsy/outfile.h --- saods9-8.2+repack/fitsy/outfile.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/outfile.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/outfits.C saods9-8.3+repack/fitsy/outfits.C --- saods9-8.2+repack/fitsy/outfits.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/outfits.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/outfits.h saods9-8.3+repack/fitsy/outfits.h --- saods9-8.2+repack/fitsy/outfits.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/outfits.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/outsocket.C saods9-8.3+repack/fitsy/outsocket.C --- saods9-8.2+repack/fitsy/outsocket.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/outsocket.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/outsocket.h saods9-8.3+repack/fitsy/outsocket.h --- saods9-8.2+repack/fitsy/outsocket.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/outsocket.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/parser.Y saods9-8.3+repack/fitsy/parser.Y --- saods9-8.2+repack/fitsy/parser.Y 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/parser.Y 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/photo.C saods9-8.3+repack/fitsy/photo.C --- saods9-8.2+repack/fitsy/photo.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/photo.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/photo.h saods9-8.3+repack/fitsy/photo.h --- saods9-8.2+repack/fitsy/photo.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/photo.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/plio.C saods9-8.3+repack/fitsy/plio.C --- saods9-8.2+repack/fitsy/plio.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/plio.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/pliocomp.c saods9-8.3+repack/fitsy/pliocomp.c --- saods9-8.2+repack/fitsy/pliocomp.c 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/pliocomp.c 2021-11-08 15:46:07.000000000 +0000 @@ -33,7 +33,7 @@ int ret_val, i__1, i__2, i__3; /* Local variables */ - static int zero, v, x1, hi, ip, dv, xe, np, op, iz, nv, pv, nz; + int zero, v, x1, hi, ip, dv, xe, np, op, iz, nv = 0, pv, nz; /* Parameter adjustments */ --lldst; @@ -190,9 +190,9 @@ int ret_val, i__1, i__2; /* Local variables */ - static int data, sw0001, otop, i__, lllen, i1, i2, x1, x2, ip, xe, np, + int data, sw0001, otop, i__, lllen, i1, i2, x1, x2, ip, xe, np, op, pv, opcode, llfirt; - static int skipwd; + int skipwd; /* Parameter adjustments */ --px_dst; diff -Nru saods9-8.2+repack/fitsy/plio.h saods9-8.3+repack/fitsy/plio.h --- saods9-8.2+repack/fitsy/plio.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/plio.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/rice.C saods9-8.3+repack/fitsy/rice.C --- saods9-8.2+repack/fitsy/rice.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/rice.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -107,8 +107,8 @@ { short* obuf = new short[ocnt]; if (fits_rdecomp_short(ibuf, icnt, (unsigned short*)obuf, ocnt, block_)) { - internalError("Fitsy++ rice bad inflate result"); - return 0; + // internalError("Fitsy++ rice bad inflate result"); + // return 0; } for (int kk=kkstart; kkcurrent)++ = c), 0) /*#include "fitsio2.h"*/ -#define FFLOCK -#define FFUNLOCK static void start_outputing_bits(Buffer *buffer); static int done_outputing_bits(Buffer *buffer); static int output_nbits(Buffer *buffer, int bits, int n); +/* only used for diagnoistics +static int case1, case2, case3; +int fits_get_case(int *c1, int*c2, int*c3) { + + *c1 = case1; + *c2 = case2; + *c3 = case3; + return(0); +} +*/ + /* this routine used to be called 'rcomp' (WDP) */ /*---------------------------------------------------------------------------*/ @@ -103,6 +146,7 @@ /* move out of switch block, to tweak performance */ fsbits = 5; fsmax = 25; + bbits = 1<= fsmax) { +/* case3++; */ /* Special high entropy case when FS >= fsmax * Just write pixel difference values directly, no Rice coding at all. */ @@ -415,6 +460,7 @@ } } } else if (fs == 0 && pixelsum == 0) { +/* case1++; */ /* * special low entropy case when FS = 0 and pixelsum=0 (all * pixels in block are zero.) @@ -426,6 +472,7 @@ return(-1); } } else { +/* case2++; */ /* normal case: not either very high or very low entropy */ if (output_nbits(buffer, fs+1, fsbits) == EOF) { ffpmsg("rice_encode: end of buffer"); @@ -832,7 +879,7 @@ unsigned char *cend, bytevalue; unsigned int b, diff, lastpix; int fsmax, fsbits, bbits; -static int *nonzero_count = (int *)NULL; +extern const int nonzero_count[]; /* * Original size of each pixel (bsize, bytes) and coding block @@ -876,30 +923,6 @@ bbits = 1<=0; ) { - for ( ; i>=k; i--) nonzero_count[i] = nzero; - k = k/2; - nzero--; - } - } - FFUNLOCK; - /* * Decode in blocks of nblock pixels */ @@ -1025,7 +1048,7 @@ unsigned char *cend, bytevalue; unsigned int b, diff, lastpix; int fsmax, fsbits, bbits; -static int *nonzero_count = (int *)NULL; +extern const int nonzero_count[]; /* * Original size of each pixel (bsize, bytes) and coding block @@ -1070,29 +1093,6 @@ bbits = 1<=0; ) { - for ( ; i>=k; i--) nonzero_count[i] = nzero; - k = k/2; - nzero--; - } - } - FFUNLOCK; /* * Decode in blocks of nblock pixels */ @@ -1215,7 +1215,7 @@ unsigned char *cend; unsigned int b, diff, lastpix; int fsmax, fsbits, bbits; -static int *nonzero_count = (int *)NULL; +extern const int nonzero_count[]; /* * Original size of each pixel (bsize, bytes) and coding block @@ -1260,29 +1260,6 @@ bbits = 1<=0; ) { - for ( ; i>=k; i--) nonzero_count[i] = nzero; - k = k/2; - nzero--; - } - } - FFUNLOCK; /* * Decode in blocks of nblock pixels */ diff -Nru saods9-8.2+repack/fitsy/rice.h saods9-8.3+repack/fitsy/rice.h --- saods9-8.2+repack/fitsy/rice.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/rice.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/savefits.C saods9-8.3+repack/fitsy/savefits.C --- saods9-8.2+repack/fitsy/savefits.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/savefits.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/share.C saods9-8.3+repack/fitsy/share.C --- saods9-8.2+repack/fitsy/share.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/share.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/share.h saods9-8.3+repack/fitsy/share.h --- saods9-8.2+repack/fitsy/share.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/share.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/shmload.C saods9-8.3+repack/fitsy/shmload.C --- saods9-8.2+repack/fitsy/shmload.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/shmload.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/smap.C saods9-8.3+repack/fitsy/smap.C --- saods9-8.2+repack/fitsy/smap.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/smap.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -124,18 +124,18 @@ if (pCRPIX3_ || pCRVAL3_ || pCDELT3_) { head_->appendString("CTYPE1","LINEAR", NULL); head_->appendReal("CRPIX1",1, 9, NULL); - head_->appendReal("CRVAL1",1, 9, NULL); - head_->appendReal("CDELT1",1, 9, NULL); + head_->appendReal("CRVAL1",1, 15, NULL); + head_->appendReal("CDELT1",1, 15, NULL); head_->appendString("CTYPE2","LINEAR", NULL); head_->appendReal("CRPIX2",1, 9, NULL); - head_->appendReal("CRVAL2",1, 9, NULL); - head_->appendReal("CDELT2",1, 9, NULL); + head_->appendReal("CRVAL2",1, 15, NULL); + head_->appendReal("CDELT2",1, 15, NULL); head_->appendString("CTYPE3","WAVELENGTH", NULL); head_->appendReal("CRPIX3",pCRPIX3_, 9, NULL); - head_->appendReal("CRVAL3",pCRVAL3_, 9, NULL); - head_->appendReal("CDELT3",pCDELT3_, 9, NULL); + head_->appendReal("CRVAL3",pCRVAL3_, 15, NULL); + head_->appendReal("CDELT3",pCDELT3_, 15, NULL); } // do we byteswap? diff -Nru saods9-8.2+repack/fitsy/smap.h saods9-8.3+repack/fitsy/smap.h --- saods9-8.2+repack/fitsy/smap.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/smap.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/smmap.C saods9-8.3+repack/fitsy/smmap.C --- saods9-8.2+repack/fitsy/smmap.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/smmap.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/smmap.h saods9-8.3+repack/fitsy/smmap.h --- saods9-8.2+repack/fitsy/smmap.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/smmap.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/socket.C saods9-8.3+repack/fitsy/socket.C --- saods9-8.2+repack/fitsy/socket.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/socket.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/socketgz.C saods9-8.3+repack/fitsy/socketgz.C --- saods9-8.2+repack/fitsy/socketgz.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/socketgz.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/socketgz.h saods9-8.3+repack/fitsy/socketgz.h --- saods9-8.2+repack/fitsy/socketgz.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/socketgz.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/socket.h saods9-8.3+repack/fitsy/socket.h --- saods9-8.2+repack/fitsy/socket.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/socket.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/sshare.C saods9-8.3+repack/fitsy/sshare.C --- saods9-8.2+repack/fitsy/sshare.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/sshare.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/sshare.h saods9-8.3+repack/fitsy/sshare.h --- saods9-8.2+repack/fitsy/sshare.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/sshare.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/strm.C saods9-8.3+repack/fitsy/strm.C --- saods9-8.2+repack/fitsy/strm.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/strm.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/strm.h saods9-8.3+repack/fitsy/strm.h --- saods9-8.2+repack/fitsy/strm.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/strm.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/var.C saods9-8.3+repack/fitsy/var.C --- saods9-8.2+repack/fitsy/var.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/var.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/fitsy/var.h saods9-8.3+repack/fitsy/var.h --- saods9-8.2+repack/fitsy/var.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/fitsy/var.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/make.include saods9-8.3+repack/make.include --- saods9-8.2+repack/make.include 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/make.include 2021-11-08 15:46:07.000000000 +0000 @@ -1,32 +1,34 @@ -# tcl 8.6.10 -# tk 8.6.10 +# tcl 8.6.11 +# tk 8.6.12 +# tcllib 1.20 + +# tksvg 0.7 +# awthemes 10.3.0 +# ttkthemes 3.2.2 +# scidthemes 0.9.3 + # tclfitsy 1.0 # tcliis 1.0 -# tcllib 1.19 -# tclsignal 1.4 +# tclsignal 1.4.4.1 # tclxml 3.2 # tclzipfs 1.0 # tls 1.6.7 # tkblt 3.2 -# tkcon 2.7 +# tkcon 2.7.10 # tkhtml1 1.0 -# tkimg 1.4.9 +# tkimg 1.4.13 # tkmpeg 1.0 # tkagif 1.0 # tktable 2.10 -# awthemes 9.0 -# ttkthemes 2.4.0 -# scidthemes 0.9.3 -# ast 8.7.1 -# funtools 1.4.7 +# ast 9.2.4 +# funtools 1.4.8 # zlib 1.2.8 # xpa 2.1.20 -# libxml2 2.9.4 # libxslt 1.1.29 -# openssl 1.0.2k +# openssl 1.0.2u -DS9_VERSION = 8.2 +DS9_VERSION = 8.3 XPA_VERSION = 2.1.20 TCL_VERSION = 8.6 @@ -69,7 +71,7 @@ .NOTPARALLEL : .PHONY : all dirs ds9 tcliis tclxml tclzipfs tls xpa -.PHONY : tkblt tclfitsy tkcon tkhtml1 tkimg tkmpeg tkagif tksao tktable +.PHONY : tkblt tclfitsy tkcon tkhtml1 tkimg tkmpeg tksvg tkagif tksao tktable .PHONY : util vector fitsy ast funtools openssl all : saods9 @@ -99,6 +101,7 @@ cd ds9/$(OS); \ ./configure \ $(WITHTK) \ + --with-xml2-config=$(XML2CONFIG) \ $(PREFIX) \ $(STD) \ $(CACHE) @@ -164,7 +167,8 @@ cd tclxml; \ ./configure \ $(WITHTCL) \ - $(TCLXMLFLAGS) \ + --with-xml2-config=$(XML2CONFIG) \ + --with-xslt-config=$(XSLTCONFIG) \ $(PREFIX) \ $(STD) \ $(CACHE) @@ -331,6 +335,7 @@ cd tksao; \ ./configure \ $(WITHTK) \ + --with-xml2-config=$(XML2CONFIG) \ $(PREFIX) \ $(STD) \ $(CACHE) @@ -410,8 +415,8 @@ $(MAKE) -C ast -j $(JOBS) libast_err.la $(MAKE) -C ast -j $(JOBS) libast_pal.la cp ast/ast.h $(includedir)/. - cp ast/grf.h $(includedir)/. - cp ast/grf3d.h $(includedir)/. + cp ast/src/grf.h $(includedir)/. + cp ast/src/grf3d.h $(includedir)/. cp ast/.libs/libast.a $(libdir)/. cp ast/.libs/libast_err.a $(libdir)/. cp ast/.libs/libast_pal.a $(libdir)/. @@ -465,6 +470,23 @@ cd funtools; \ ./mkconfigure +#-------------------------- tksvg + +tksvg : tksvg/Makefile + @echo "" + @echo "*** $@ ***" + $(MAKE) -C tksvg -j $(JOBS) install + +tksvg/Makefile : + @echo "" + @echo "*** $@ ***" + cd tksvg; \ + ./configure \ + $(WITHTK) \ + $(PREFIX) \ + $(STD) \ + $(CACHE) + #-------------------------- tktable # no parallel @@ -522,7 +544,7 @@ .PHONY : opensslclean tcliisclean .PHONY : tclxmlclean tlsclean .PHONY : tkbltclean tclfitsy tkconclean tkhtml1clean tkimgclean -.PHONY : tkmpegclean tkagifclean +.PHONY : tkmpegclean tksvgclean tkagifclean .PHONY : tktableclean xpaclean .PHONY : utilclean vectorclean fitsyclean astclean funtoolsclean .PHONY : tksaoclean @@ -532,7 +554,7 @@ tcliisclean \ tlsclean tclxmlclean xpaclean \ tkbltclean tclfitsy tkconclean tktableclean tkimgclean \ - tkmpegclean tkagifclean tkhtml1clean \ + tkmpegclean tksvgclean tkagifclean tkhtml1clean \ utilclean vectorclean fitsyclean astclean funtoolsclean ds9clean \ tksaoclean osclean dirsclean localclean scrub @@ -606,6 +628,11 @@ @echo "*** $@ ***" $(MAKE) -C tkmpeg clean +tksvgclean: + @echo "" + @echo "*** $@ ***" + $(MAKE) -C tksvg clean + tkagifclean: @echo "" @echo "*** $@ ***" @@ -657,7 +684,7 @@ .PHONY : openssldistclean tcliisdistclean .PHONY : tclxmldistclean tlsdistclean .PHONY : tkbltdistclean tclfitsydistclean tkcondistclean tkhtml1distclean -.PHONY : tkimgdistclean tkmpegdistclean tkagifdistclean +.PHONY : tkimgdistclean tkmpegdistclean tksvgdistclean tkagifdistclean .PHONY : tktabledistclean xpadistclean .PHONY : utildistclean vectordistclean fitsydistclean .PHONY : astdistclean funtoolsdistclean @@ -669,7 +696,7 @@ tlsdistclean tclxmldistclean xpadistclean \ tkbltdistclean tclfitsydistclean tktabledistclean \ tkcondistclean tkimgdistclean \ - tkmpegdistclean tkagifdistclean tkhtml1distclean \ + tkmpegdistclean tksvgdistclean tkagifdistclean tkhtml1distclean \ utildistclean vectordistclean fitsydistclean astdistclean \ vectordistclean fitsydistclean astdistclean \ funtoolsdistclean ds9distclean \ @@ -760,6 +787,12 @@ $(MAKE) -C tkmpeg distclean rm -f tkmpeg/tkmpegConfig.sh +tksvgdistclean: + @echo "" + @echo "*** $@ ***" + $(MAKE) -C tksvg distclean + rm -f tksvg/tksvgConfig.sh + tkagifdistclean: @echo "" @echo "*** $@ ***" diff -Nru saods9-8.2+repack/tclfitsy/tclfitsy.C saods9-8.3+repack/tclfitsy/tclfitsy.C --- saods9-8.2+repack/tclfitsy/tclfitsy.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tclfitsy/tclfitsy.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2020 +// Copyright (C) 2020-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -478,7 +478,7 @@ Tcl_SetVar2(interp_, argv[2], "Header" , headstr.str().c_str(), TCL_GLOBAL_ONLY); - // secondary header + // secondary headers if (doUnits) { int ccnt=0; for (int jj=0; jjtunit(); - ostringstream value; - if (unit && *unit) - value << trim(col->tunit()) << kk+1 << ends; - else - value << ' ' << endl; Tcl_SetVar2(interp_, argv[2], index.str().c_str(), value.str().c_str(), TCL_GLOBAL_ONLY); @@ -523,6 +517,95 @@ } } + // VOT DataType + { + ostringstream datatypestr; + ostringstream unitstr; + ostringstream arraysizestr; + + for (int jj=0; jjfind(jj); + + char dt[32]; + dt[0] = '\0'; + switch (col->type()) { + case 'L': + strcpy(dt,"boolean"); + break; + case 'X': + strcpy(dt,"bit"); + break; + case 'B': + strcpy(dt,"unsignedByte"); + break; + case 'I': + strcpy(dt, "short"); + break; + case 'J': + strcpy(dt, "int"); + break; + case 'K': + strcpy(dt, "long"); + break; + case 'A': + strcpy(dt, "char"); + break; + case 'E': + strcpy(dt, "float"); + break; + case 'D': + strcpy(dt, "double"); + break; + case 'C': + case 'M': + case 'P': + case 'Q': + // not supported + break; + } + datatypestr << dt << ' '; + + const char* ut = col->tunit(); + if (ut && *ut) + unitstr << ut << ' '; + else + unitstr << '"' << '"' << ' '; + + if (col->repeat()>1) { + switch (col->type()) { + case 'A': + case 'X': + case 'L': + arraysizestr << col->repeat() << ' '; + break; + default: + for (int kk=1; kkrepeat(); kk++) { + datatypestr << dt << ' '; + if (ut && *ut) + unitstr << ut << ' '; + else + unitstr << '"' << '"' << ' '; + arraysizestr << '1' << ' '; + } + break; + } + } + else { + arraysizestr << '1' << ' '; + } + } + + datatypestr << ends; + Tcl_SetVar2(interp_, argv[2], "DataType" , datatypestr.str().c_str(), + TCL_GLOBAL_ONLY); + unitstr << ends; + Tcl_SetVar2(interp_, argv[2], "Unit" , unitstr.str().c_str(), + TCL_GLOBAL_ONLY); + arraysizestr << ends; + Tcl_SetVar2(interp_, argv[2], "ArraySize" , arraysizestr.str().c_str(), + TCL_GLOBAL_ONLY); + } + int end = (maxrepeat(); kk++) { ccnt++; ostringstream index; - index << ii+1 << ',' << ccnt << ends; + index << ii+1+doUnits << ',' << ccnt << ends; ostringstream value; value << col->str(ptr,kk) << ends; Tcl_SetVar2(interp_, argv[2], index.str().c_str(), diff -Nru saods9-8.2+repack/tclfitsy/tclfitsy.h saods9-8.3+repack/tclfitsy/tclfitsy.h --- saods9-8.2+repack/tclfitsy/tclfitsy.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tclfitsy/tclfitsy.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 2020 +// Copyright (C) 2020-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tcliis/iistcl.C saods9-8.3+repack/tcliis/iistcl.C --- saods9-8.2+repack/tcliis/iistcl.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tcliis/iistcl.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2013 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tcliis/iistcl.h saods9-8.3+repack/tcliis/iistcl.h --- saods9-8.2+repack/tcliis/iistcl.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tcliis/iistcl.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2013 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tcliis/util.c saods9-8.3+repack/tcliis/util.c --- saods9-8.2+repack/tcliis/util.c 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tcliis/util.c 2021-11-08 15:46:07.000000000 +0000 @@ -82,7 +82,7 @@ if ((fname=getenv(FBCONFIG_ENV1)) || (fname=getenv(FBCONFIG_ENV2))) fp = fopen (fname, "r"); if (!fp && (fname = getenv ("HOME"))) { - sprintf (lbuf, "%s/%s", fname, FBCONFIG_1); + snprintf (lbuf, SZ_LINE, "%s/%s", fname, FBCONFIG_1); fp = fopen (fname = lbuf, "r"); if (fp) { if (xim->imtoolrc) diff -Nru saods9-8.2+repack/tcliis/xim.C saods9-8.3+repack/tcliis/xim.C --- saods9-8.2+repack/tcliis/xim.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tcliis/xim.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2013 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -13,8 +13,11 @@ #include +// windows has conflict with typedef byte and #ifdef __WIN32 +#define byte foo #include +#undef foo #endif #include "iistcl.h" diff -Nru saods9-8.2+repack/tksao/colorbar/cbgrid.C saods9-8.3+repack/tksao/colorbar/cbgrid.C --- saods9-8.2+repack/tksao/colorbar/cbgrid.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/cbgrid.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/colorbar/cbgrid.h saods9-8.3+repack/tksao/colorbar/cbgrid.h --- saods9-8.2+repack/tksao/colorbar/cbgrid.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/cbgrid.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/colorbar/colorbarbase.C saods9-8.3+repack/tksao/colorbar/colorbarbase.C --- saods9-8.2+repack/tksao/colorbar/colorbarbase.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbarbase.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -391,12 +391,16 @@ void ColorbarBase::renderGrid() { + // just in case (MacOS) + if (!pixmap) + return; + ColorbarBaseOptions* opts = (ColorbarBaseOptions*)options; // box XSetForeground(display, widgetGC, opts->fgColor->pixel); if (!opts->orientation) - XDrawRectangle(display, pixmap, widgetGC, 0, 0, + XDrawRectangle(display, pixmap, widgetGC, 0, 0, options->width-1, opts->size-1); else XDrawRectangle(display, pixmap, widgetGC, 0, 0, @@ -408,6 +412,10 @@ void ColorbarBase::renderGridNumerics() { + // just in case (MacOS) + if (!pixmap) + return; + ColorbarBaseOptions* opts = (ColorbarBaseOptions*)options; // font @@ -760,7 +768,7 @@ Tcl_AppendResult(interp, "0", NULL); } -void ColorbarBase::getValueCmd(int x, int y) +void ColorbarBase::getValueCmd(int xx, int yy) { ColorbarBaseOptions* opts = (ColorbarBaseOptions*)options; @@ -769,11 +777,11 @@ ostringstream str; if (!opts->orientation) { // horizontal - id = (int)(x/float(options->width) * cnt); + id = (int)((xx-options->x) / float(options->width) * cnt); } else { // vertical - id = (int)((options->height -y)/float(options->height) * cnt); + id = (int)((options->height - (yy-options->y)) / float(options->height) * cnt); } if (id<0) @@ -831,7 +839,6 @@ // MacOSX #ifdef MAC_OSX_TK -#include void ColorbarBase::macosxPrintCmd() { diff -Nru saods9-8.2+repack/tksao/colorbar/colorbarbase.h saods9-8.3+repack/tksao/colorbar/colorbarbase.h --- saods9-8.2+repack/tksao/colorbar/colorbarbase.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbarbase.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -156,11 +156,13 @@ virtual void getColormapCmd() =0; virtual void getColormapNameCmd(int) =0; virtual void getColormapFileNameCmd(int) =0; + virtual void getColormapFileNameCmd(const char*) =0; virtual void getContrastCmd() =0; virtual void getCurrentFileNameCmd() =0; virtual void getCurrentIDCmd() =0; virtual void getCurrentNameCmd() =0; void getInvertCmd(); + virtual void getTypeCmd() =0; void getNumericsCmd(); virtual void getRGBChannelCmd() =0; void getValueCmd(int,int); @@ -179,6 +181,8 @@ virtual void saveCmd(const char*) {} virtual void saveCmd(int, const char*) {} + virtual void saveCmd(const char*, const char*) {} + virtual void saveVarCmd(const char*, const char*) {} virtual void setColorbarCmd(int, float, float, int) {} virtual void setColorbarCmd(float, float, float, float, float, float, int) {} void setColormapLevelCmd(); diff -Nru saods9-8.2+repack/tksao/colorbar/colorbar.C saods9-8.3+repack/tksao/colorbar/colorbar.C --- saods9-8.2+repack/tksao/colorbar/colorbar.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbar.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -16,6 +16,9 @@ Colorbar::Colorbar(Tcl_Interp* i, Tk_Canvas c, Tk_Item* item) : ColorbarBase(i,c,item) { + cmapid_ =1; + ctagid_ =1; + bias = .5; contrast = 1.0; @@ -241,7 +244,7 @@ { if (cmaps.current()) { ostringstream str; - str << cmaps.current()->getID() << ' ' + str << cmaps.current()->id() << ' ' << bias << ' ' << contrast << ' ' << invert << ends; @@ -255,7 +258,7 @@ { if (cmaps.current()) { ostringstream str; - str << cmaps.current()->getID() << ' ' + str << cmaps.current()->id() << ' ' << bias << ' ' << contrast << ' ' << invert << ' ' @@ -271,8 +274,8 @@ { ColorMapInfo* ptr = cmaps.begin(); while (ptr) { - if (ptr->getID() == id) { - Tcl_AppendResult(interp, (char*)ptr->getName(), NULL); + if (ptr->id() == id) { + Tcl_AppendResult(interp, (char*)ptr->name(), NULL); return; } ptr = ptr->next(); @@ -287,8 +290,24 @@ { ColorMapInfo* ptr = cmaps.begin(); while (ptr) { - if (ptr->getID() == id) { - Tcl_AppendResult(interp, (char*)ptr->getFileName(), NULL); + if (ptr->id() == id) { + Tcl_AppendResult(interp, (char*)ptr->filename(), NULL); + return; + } + ptr = ptr->next(); + } + + // if we got this far, we did not find it, bail out + Tcl_AppendResult(interp, " colormap not found.", NULL); + result = TCL_ERROR; +} + +void Colorbar::getColormapFileNameCmd(const char* str) +{ + ColorMapInfo* ptr = cmaps.begin(); + while (ptr) { + if (!strcmp(ptr->name(),str)) { + Tcl_AppendResult(interp, (char*)ptr->filename(), NULL); return; } ptr = ptr->next(); @@ -310,7 +329,7 @@ { if (cmaps.current()) { ostringstream str; - str << cmaps.current()->getID() << ends; + str << cmaps.current()->id() << ends; Tcl_AppendResult(interp, str.str().c_str(), NULL); } else @@ -320,7 +339,7 @@ void Colorbar::getCurrentNameCmd() { if (cmaps.current()) - Tcl_AppendElement(interp, (char*)cmaps.current()->getName()); + Tcl_AppendElement(interp, (char*)cmaps.current()->name()); else result = TCL_ERROR; } @@ -328,7 +347,7 @@ void Colorbar::getCurrentFileNameCmd() { if (cmaps.current()) - Tcl_AppendElement(interp, (char*)cmaps.current()->getFileName()); + Tcl_AppendElement(interp, (char*)cmaps.current()->filename()); else result = TCL_ERROR; } @@ -387,6 +406,11 @@ } } +void Colorbar::getTypeCmd() +{ + Tcl_AppendResult(interp, "base", NULL); +} + void Colorbar::getRGBChannelCmd() { Tcl_AppendResult(interp, "red", NULL); @@ -398,7 +422,7 @@ ColorMapInfo* ptr = cmaps.begin(); while (ptr) { ostringstream str; - str << ptr->getID() << ends; + str << ptr->id() << ends; Tcl_AppendElement(interp, str.str().c_str()); ptr = ptr->next(); @@ -409,7 +433,7 @@ { ColorMapInfo* ptr = cmaps.begin(); while (ptr) { - Tcl_AppendElement(interp, (char*)ptr->getName()); + Tcl_AppendElement(interp, (char*)ptr->name()); ptr = ptr->next(); } } @@ -453,7 +477,7 @@ char* a = toLower(which); cmaps.head(); do { - char* b = toLower(cmaps.current()->getName()); + char* b = toLower(cmaps.current()->name()); if (!strcmp(a,b)) { reset(); delete [] a; @@ -474,7 +498,7 @@ { cmaps.head(); do { - if (cmaps.current()->getID() == id) { + if (cmaps.current()->id() == id) { reset(); return; } @@ -498,7 +522,25 @@ { ColorMapInfo* ptr = cmaps.begin(); while (ptr) { - if (ptr->getID() == id) { + if (ptr->id() == id) { + if (!ptr->save(fn)) { + Tcl_AppendResult(interp, " unable to save colormap: ", fn, NULL); + result = TCL_ERROR; + } + return; + } + ptr = ptr->next(); + } + + Tcl_AppendResult(interp, " unable to save colormap: ", fn, NULL); + result = TCL_ERROR; +} + +void Colorbar::saveCmd(const char* cmap, const char* fn) +{ + ColorMapInfo* ptr = cmaps.begin(); + while (ptr) { + if (!strcmp(ptr->name(),cmap)) { if (!ptr->save(fn)) { Tcl_AppendResult(interp, " unable to save colormap: ", fn, NULL); result = TCL_ERROR; @@ -512,11 +554,29 @@ result = TCL_ERROR; } +void Colorbar::saveVarCmd(const char* cmap, const char* var) +{ + ColorMapInfo* ptr = cmaps.begin(); + while (ptr) { + if (!strcmp(ptr->name(),cmap)) { + if (!ptr->saveVar(var)) { + Tcl_AppendResult(interp, " unable to save colormap: ", var, NULL); + result = TCL_ERROR; + } + return; + } + ptr = ptr->next(); + } + + Tcl_AppendResult(interp, " unable to save colormap: ", var, NULL); + result = TCL_ERROR; +} + void Colorbar::setColorbarCmd(int id, float b, float c, int i) { cmaps.head(); while (cmaps.current()) { - if (cmaps.current()->getID() == id) { + if (cmaps.current()->id() == id) { bias = b; contrast = c; invert = i; @@ -807,7 +867,6 @@ } #ifdef MAC_OSX_TK -#include void Colorbar::macosx(float scale, int width, int height, const Vector& v, const Vector& s) diff -Nru saods9-8.2+repack/tksao/colorbar/colorbar.h saods9-8.3+repack/tksao/colorbar/colorbar.h --- saods9-8.2+repack/tksao/colorbar/colorbar.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbar.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -23,7 +23,11 @@ protected: List cmaps; + int cmapid_; + List ctags; + int ctagid_; + float bias; float contrast; @@ -54,6 +58,9 @@ Colorbar(Tcl_Interp*, Tk_Canvas, Tk_Item*); virtual ~Colorbar(); + int cmapid() {return cmapid_++;} + int ctagid() {return ctagid_++;} + // commands void adjustCmd(float, float); @@ -62,10 +69,12 @@ void getColormapCmd(); void getColormapNameCmd(int); void getColormapFileNameCmd(int); + void getColormapFileNameCmd(const char*); void getContrastCmd(); void getCurrentFileNameCmd(); void getCurrentIDCmd(); void getCurrentNameCmd(); + void getTypeCmd(); void listIDCmd(); void listNameCmd(); void loadCmd(const char*, const char*); @@ -74,6 +83,8 @@ void mapCmd(int); void saveCmd(const char*); void saveCmd(int, const char*); + void saveCmd(const char*, const char*); + void saveVarCmd(const char*, const char*); void setColorbarCmd(int, float, float, int); void getTagCmd(); diff -Nru saods9-8.2+repack/tksao/colorbar/colorbarrgb.C saods9-8.3+repack/tksao/colorbar/colorbarrgb.C --- saods9-8.2+repack/tksao/colorbar/colorbarrgb.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbarrgb.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -266,6 +266,11 @@ Tcl_AppendResult(interp, "rgb.rgb", NULL); } +void ColorbarRGB::getColormapFileNameCmd(const char* str) +{ + Tcl_AppendResult(interp, "rgb.rgb", NULL); +} + void ColorbarRGB::getContrastCmd() { ostringstream str; @@ -303,6 +308,11 @@ } } +void ColorbarRGB::getTypeCmd() +{ + Tcl_AppendResult(interp, "rgb", NULL); +} + void ColorbarRGB::setColorbarCmd(float rb, float gb, float bb, float rc, float gc, float bc, int i) @@ -332,7 +342,6 @@ } #ifdef MAC_OSX_TK -#include void ColorbarRGB::macosx(float scale, int width, int height, const Vector& v, const Vector& s) diff -Nru saods9-8.2+repack/tksao/colorbar/colorbarrgb.h saods9-8.3+repack/tksao/colorbar/colorbarrgb.h --- saods9-8.2+repack/tksao/colorbar/colorbarrgb.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbarrgb.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -43,10 +43,12 @@ void getColormapCmd(); void getColormapNameCmd(int); void getColormapFileNameCmd(int); + void getColormapFileNameCmd(const char*); void getContrastCmd(); void getCurrentFileNameCmd(); void getCurrentIDCmd(); void getCurrentNameCmd(); + void getTypeCmd(); void setColorbarCmd(float, float, float, float, float, float, int); void getRGBChannelCmd(); void setRGBChannelCmd(const char*); diff -Nru saods9-8.2+repack/tksao/colorbar/colorbarrgbtruecolor16.C saods9-8.3+repack/tksao/colorbar/colorbarrgbtruecolor16.C --- saods9-8.2+repack/tksao/colorbar/colorbarrgbtruecolor16.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbarrgbtruecolor16.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/colorbar/colorbarrgbtruecolor16.h saods9-8.3+repack/tksao/colorbar/colorbarrgbtruecolor16.h --- saods9-8.2+repack/tksao/colorbar/colorbarrgbtruecolor16.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbarrgbtruecolor16.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/colorbar/colorbarrgbtruecolor24.C saods9-8.3+repack/tksao/colorbar/colorbarrgbtruecolor24.C --- saods9-8.2+repack/tksao/colorbar/colorbarrgbtruecolor24.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbarrgbtruecolor24.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/colorbar/colorbarrgbtruecolor24.h saods9-8.3+repack/tksao/colorbar/colorbarrgbtruecolor24.h --- saods9-8.2+repack/tksao/colorbar/colorbarrgbtruecolor24.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbarrgbtruecolor24.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/colorbar/colorbarrgbtruecolor8.C saods9-8.3+repack/tksao/colorbar/colorbarrgbtruecolor8.C --- saods9-8.2+repack/tksao/colorbar/colorbarrgbtruecolor8.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbarrgbtruecolor8.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/colorbar/colorbarrgbtruecolor8.h saods9-8.3+repack/tksao/colorbar/colorbarrgbtruecolor8.h --- saods9-8.2+repack/tksao/colorbar/colorbarrgbtruecolor8.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbarrgbtruecolor8.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/colorbar/colorbartruecolor16.C saods9-8.3+repack/tksao/colorbar/colorbartruecolor16.C --- saods9-8.2+repack/tksao/colorbar/colorbartruecolor16.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbartruecolor16.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/colorbar/colorbartruecolor16.h saods9-8.3+repack/tksao/colorbar/colorbartruecolor16.h --- saods9-8.2+repack/tksao/colorbar/colorbartruecolor16.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbartruecolor16.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/colorbar/colorbartruecolor24.C saods9-8.3+repack/tksao/colorbar/colorbartruecolor24.C --- saods9-8.2+repack/tksao/colorbar/colorbartruecolor24.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbartruecolor24.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/colorbar/colorbartruecolor24.h saods9-8.3+repack/tksao/colorbar/colorbartruecolor24.h --- saods9-8.2+repack/tksao/colorbar/colorbartruecolor24.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbartruecolor24.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/colorbar/colorbartruecolor8.C saods9-8.3+repack/tksao/colorbar/colorbartruecolor8.C --- saods9-8.2+repack/tksao/colorbar/colorbartruecolor8.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbartruecolor8.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/colorbar/colorbartruecolor8.h saods9-8.3+repack/tksao/colorbar/colorbartruecolor8.h --- saods9-8.2+repack/tksao/colorbar/colorbartruecolor8.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colorbartruecolor8.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/colorbar/colormap.C saods9-8.3+repack/tksao/colorbar/colormap.C --- saods9-8.2+repack/tksao/colorbar/colormap.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colormap.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,44 +1,46 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" #include "util.h" #include "colormap.h" - -static int squenceID = 1; +#include "colorbar.h" // ColorMapInfo ColorMapInfo::ColorMapInfo(Colorbar* p) : parent_(p) { - id = squenceID++; - name =NULL; - fileName =NULL; + id_ = parent_->cmapid(); + + name_ =NULL; + filename_ =NULL; next_ =NULL; previous_ =NULL; } ColorMapInfo::~ColorMapInfo() { - if (name) - delete [] name; + if (name_) + delete [] name_; - if (fileName) - delete [] fileName; + if (filename_) + delete [] filename_; } void ColorMapInfo::setName(const char* n) { - if (name) - delete [] name; + if (name_) + delete [] name_; - name = dupstr(n); + name_ = dupstr(n); } void ColorMapInfo::setFileName(const char* n) { - if (fileName) - delete [] fileName; + if (filename_) + delete [] filename_; - fileName = dupstr(n); + filename_ = dupstr(n); } + + diff -Nru saods9-8.2+repack/tksao/colorbar/colormap.h saods9-8.3+repack/tksao/colorbar/colormap.h --- saods9-8.2+repack/tksao/colorbar/colormap.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colormap.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -23,9 +23,9 @@ protected: Colorbar* parent_; - int id; - char* name; - char* fileName; + int id_; + char* name_; + char* filename_; ColorMapInfo* next_; ColorMapInfo* previous_; @@ -35,10 +35,10 @@ Colorbar* parent() {return parent_;} - const char* getName() {return name;} - int getID() {return id;} + int id() {return id_;} + const char* name() {return name_;} + const char* filename() {return filename_;} void setName(const char*); - const char* getFileName() {return fileName;} void setFileName(const char*); ColorMapInfo* next() @@ -54,6 +54,7 @@ virtual int load() =0; virtual int load(const char*) =0; virtual int save(const char*) =0; + virtual int saveVar(const char*) =0; virtual unsigned char getRedChar(int, int) =0; virtual unsigned char getGreenChar(int, int) =0; diff -Nru saods9-8.2+repack/tksao/colorbar/colortag.C saods9-8.3+repack/tksao/colorbar/colortag.C --- saods9-8.2+repack/tksao/colorbar/colortag.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colortag.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -6,12 +6,10 @@ #include "colortag.h" #include "colorbar.h" -static int colorTagSeqID = 1; - ColorTag::ColorTag(Colorbar* p, int b, int e, const char* clr) : parent_(p), start_(b), stop_(e) { - id_ = colorTagSeqID++; + id_ = parent_->ctagid(); colorname_ = dupstr(clr); color_ = parent_->getXColor(colorname_); diff -Nru saods9-8.2+repack/tksao/colorbar/colortag.h saods9-8.3+repack/tksao/colorbar/colortag.h --- saods9-8.2+repack/tksao/colorbar/colortag.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/colortag.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/colorbar/default.C saods9-8.3+repack/tksao/colorbar/default.C --- saods9-8.2+repack/tksao/colorbar/default.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/default.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -9,8 +9,8 @@ GreyColorMap::GreyColorMap(Colorbar* p) : SAOColorMap(p) { - name = dupstr("grey"); - fileName = dupstr("grey.sao"); + name_ = dupstr("grey"); + filename_ = dupstr("grey.sao"); red.append(new LIColor(0,0)); red.append(new LIColor(1,1)); @@ -24,8 +24,8 @@ RedColorMap::RedColorMap(Colorbar* p) : SAOColorMap(p) { - name = dupstr("red"); - fileName = dupstr("red.sao"); + name_ = dupstr("red"); + filename_ = dupstr("red.sao"); red.append(new LIColor(0,0)); red.append(new LIColor(1,1)); @@ -39,8 +39,8 @@ GreenColorMap::GreenColorMap(Colorbar* p) : SAOColorMap(p) { - name = dupstr("green"); - fileName = dupstr("green.sao"); + name_ = dupstr("green"); + filename_ = dupstr("green.sao"); red.append(new LIColor(0,0)); red.append(new LIColor(0,0)); @@ -54,8 +54,8 @@ BlueColorMap::BlueColorMap(Colorbar* p) : SAOColorMap(p) { - name = dupstr("blue"); - fileName = dupstr("blue.sao"); + name_ = dupstr("blue"); + filename_ = dupstr("blue.sao"); red.append(new LIColor(0,0)); red.append(new LIColor(0,0)); @@ -69,8 +69,8 @@ AColorMap::AColorMap(Colorbar* p) : SAOColorMap(p) { - name = dupstr("a"); - fileName = dupstr("a.sao"); + name_ = dupstr("a"); + filename_ = dupstr("a.sao"); red.append(new LIColor(0,0)); red.append(new LIColor(.25,0)); @@ -93,8 +93,8 @@ BColorMap::BColorMap(Colorbar* p) : SAOColorMap(p) { - name = dupstr("b"); - fileName = dupstr("b.sao"); + name_ = dupstr("b"); + filename_ = dupstr("b.sao"); red.append(new LIColor(0,0)); red.append(new LIColor(.25,0)); @@ -115,8 +115,8 @@ BBColorMap::BBColorMap(Colorbar* p) : SAOColorMap(p) { - name = dupstr("bb"); - fileName = dupstr("bb.sao"); + name_ = dupstr("bb"); + filename_ = dupstr("bb.sao"); red.append(new LIColor(0,0)); red.append(new LIColor(.5,1)); @@ -134,8 +134,8 @@ HEColorMap::HEColorMap(Colorbar* p) : SAOColorMap(p) { - name = dupstr("he"); - fileName = dupstr("he.sao"); + name_ = dupstr("he"); + filename_ = dupstr("he.sao"); red.append(new LIColor(0,0)); red.append(new LIColor(.015,.5)); @@ -160,8 +160,8 @@ I8ColorMap::I8ColorMap(Colorbar* p) : LUTColorMap(p) { - name = dupstr("i8"); - fileName = dupstr("i8.lut"); + name_ = dupstr("i8"); + filename_ = dupstr("i8.lut"); colors.append(new RGBColor(0,0,0)); colors.append(new RGBColor(0,1,0)); @@ -175,8 +175,8 @@ AIPSColorMap::AIPSColorMap(Colorbar* p) : LUTColorMap(p) { - name = dupstr("aips0"); - fileName = dupstr("aips0.lut"); + name_ = dupstr("aips0"); + filename_ = dupstr("aips0.lut"); colors.append(new RGBColor(.196,.196,.196)); colors.append(new RGBColor(.475,.000,.608)); @@ -191,8 +191,8 @@ HeatColorMap::HeatColorMap(Colorbar* p) : SAOColorMap(p) { - name = dupstr("heat"); - fileName = dupstr("heat.sao"); + name_ = dupstr("heat"); + filename_ = dupstr("heat.sao"); red.append(new LIColor(0,0)); red.append(new LIColor(.34,1)); @@ -209,8 +209,8 @@ CoolColorMap::CoolColorMap(Colorbar* p) : SAOColorMap(p) { - name = dupstr("cool"); - fileName = dupstr("cool.sao"); + name_ = dupstr("cool"); + filename_ = dupstr("cool.sao"); red.append(new LIColor(0,0)); red.append(new LIColor(.29,0)); @@ -229,8 +229,8 @@ RainbowColorMap::RainbowColorMap(Colorbar* p) : SAOColorMap(p) { - name = dupstr("rainbow"); - fileName = dupstr("rainbow.sao"); + name_ = dupstr("rainbow"); + filename_ = dupstr("rainbow.sao"); red.append(new LIColor(0,1)); red.append(new LIColor(.2,0)); @@ -252,8 +252,8 @@ StandardColorMap::StandardColorMap(Colorbar* p) : SAOColorMap(p) { - name = dupstr("standard"); - fileName = dupstr("standard.sao"); + name_ = dupstr("standard"); + filename_ = dupstr("standard.sao"); red.append(new LIColor(0,0)); red.append(new LIColor(.333,.3)); @@ -279,8 +279,8 @@ StaircaseColorMap::StaircaseColorMap(Colorbar* p) : LUTColorMap(p) { - name = dupstr("staircase"); - fileName = dupstr("staircase.lut"); + name_ = dupstr("staircase"); + filename_ = dupstr("staircase.lut"); for (int ii=1; ii<=5; ii++) { float kk = ii/5.; @@ -300,8 +300,8 @@ ColorColorMap::ColorColorMap(Colorbar* p) : LUTColorMap(p) { - name = dupstr("color"); - fileName = dupstr("color.lut"); + name_ = dupstr("color"); + filename_ = dupstr("color.lut"); colors.append(new RGBColor(0,0,0)); colors.append(new RGBColor(0.18431, 0.18431, 0.18431)); @@ -323,8 +323,8 @@ SLSColorMap::SLSColorMap(Colorbar* p) : LUTColorMap(p) { - name = dupstr("sls"); - fileName = dupstr("sls.lut"); + name_ = dupstr("sls"); + filename_ = dupstr("sls.lut"); colors.append(new RGBColor(0.000000, 0.000000, 0.000000)); colors.append(new RGBColor(0.043442, 0.000000, 0.052883)); @@ -539,8 +539,8 @@ * in the middle of the range. */ - name = dupstr("hsv"); - fileName = dupstr("hsv.lut"); + name_ = dupstr("hsv"); + filename_ = dupstr("hsv.lut"); int size = 200; for (int i=0; i 0 #define FLEX_BETA #endif @@ -22,6 +22,24 @@ */ #define yyFlexLexer cbFlexLexer +#ifdef yyalloc +#define cballoc_ALREADY_DEFINED +#else +#define yyalloc cballoc +#endif + +#ifdef yyrealloc +#define cbrealloc_ALREADY_DEFINED +#else +#define yyrealloc cbrealloc +#endif + +#ifdef yyfree +#define cbfree_ALREADY_DEFINED +#else +#define yyfree cbfree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -59,7 +77,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -90,70 +107,67 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ -#include +#include #include #include +#include #include /* end standard C++ headers. */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) - #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -175,8 +189,9 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -191,7 +206,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -199,7 +213,7 @@ struct yy_buffer_state { - std::istream* yy_input_file; + std::streambuf* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ @@ -207,7 +221,7 @@ /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -235,7 +249,7 @@ int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -269,18 +283,16 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -void *cballoc (yy_size_t ); -void *cbrealloc (void *,yy_size_t ); -void cbfree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -290,7 +302,6 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -300,13 +311,11 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; #define yytext_ptr yytext @@ -323,9 +332,8 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - -#define YY_NUM_RULES 67 -#define YY_END_OF_BUFFER 68 +#define YY_NUM_RULES 68 +#define YY_END_OF_BUFFER 69 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -333,39 +341,39 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[257] = +static const flex_int16_t yy_accept[260] = { 0, - 0, 0, 68, 66, 65, 67, 66, 66, 66, 66, - 66, 57, 57, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 34, 66, 66, 66, 66, 66, - 66, 66, 66, 55, 66, 65, 64, 0, 64, 61, - 0, 64, 62, 64, 57, 59, 58, 64, 64, 64, - 64, 64, 4, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 25, 64, 64, 64, - 64, 64, 64, 64, 64, 36, 64, 38, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 0, 64, 63, 61, 62, 64, 64, 58, 60, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 18, 64, 64, 19, 64, 64, 64, 64, 27, - 64, 64, 64, 64, 32, 64, 64, 37, 64, 64, - 64, 64, 44, 64, 64, 47, 64, 64, 50, 64, - 64, 64, 56, 63, 64, 59, 64, 64, 3, 64, - 6, 64, 64, 64, 64, 64, 17, 64, 22, 20, - 64, 24, 64, 64, 29, 30, 64, 64, 35, 64, - 64, 64, 64, 64, 45, 46, 48, 64, 64, 64, - 64, 64, 64, 2, 64, 64, 64, 64, 64, 15, - 64, 21, 64, 64, 28, 64, 64, 64, 40, 41, - - 42, 64, 49, 64, 52, 53, 64, 1, 64, 64, - 64, 64, 64, 64, 14, 16, 23, 26, 31, 33, - 64, 64, 64, 54, 5, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 51, 9, 7, 64, 64, 64, - 64, 13, 64, 64, 64, 10, 8, 64, 64, 64, - 11, 64, 39, 43, 12, 0 + 0, 0, 69, 67, 66, 68, 67, 67, 67, 67, + 67, 58, 58, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 34, 67, 67, 67, 67, 67, + 67, 67, 67, 56, 67, 66, 65, 0, 65, 62, + 0, 65, 63, 65, 58, 60, 59, 65, 65, 65, + 65, 65, 4, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 25, 65, 65, 65, + 65, 65, 65, 65, 65, 36, 65, 38, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 0, 65, 64, 62, 63, 65, 65, 59, + + 61, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 18, 65, 65, 19, 65, 65, 65, 65, + 27, 65, 65, 65, 65, 32, 65, 65, 37, 65, + 65, 65, 65, 44, 65, 65, 47, 65, 65, 65, + 51, 65, 65, 65, 57, 64, 65, 60, 65, 65, + 3, 65, 6, 65, 65, 65, 65, 65, 17, 65, + 22, 20, 65, 24, 65, 65, 29, 30, 65, 65, + 35, 65, 65, 65, 65, 65, 45, 46, 48, 49, + 65, 65, 65, 65, 65, 65, 2, 65, 65, 65, + 65, 65, 15, 65, 21, 65, 65, 28, 65, 65, + + 65, 40, 41, 42, 65, 50, 65, 53, 54, 65, + 1, 65, 65, 65, 65, 65, 65, 14, 16, 23, + 26, 31, 33, 65, 65, 65, 55, 5, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 52, 9, 7, + 65, 65, 65, 65, 13, 65, 65, 65, 10, 8, + 65, 65, 65, 11, 65, 39, 43, 12, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -397,7 +405,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[65] = +static const YY_CHAR yy_meta[65] = { 0, 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -408,73 +416,73 @@ 3, 3, 3, 3 } ; -static yyconst flex_int16_t yy_base[264] = +static const flex_int16_t yy_base[267] = { 0, - 0, 0, 120, 604, 107, 604, 0, 64, 66, 65, + 0, 0, 120, 612, 107, 612, 0, 64, 66, 65, 69, 74, 84, 71, 82, 80, 72, 82, 98, 85, 101, 105, 124, 121, 126, 131, 125, 71, 141, 141, - 137, 152, 142, 151, 170, 104, 0, 92, 194, 0, - 84, 196, 0, 194, 199, 203, 212, 221, 246, 178, - 182, 204, 0, 205, 182, 222, 197, 226, 226, 233, - 227, 229, 234, 254, 247, 253, 0, 236, 245, 245, - 249, 268, 268, 250, 265, 0, 279, 0, 267, 278, - 283, 270, 289, 275, 283, 292, 279, 289, 284, 301, - 285, 24, 328, 0, 604, 604, 336, 226, 344, 0, - - 299, 312, 309, 323, 327, 324, 327, 329, 328, 345, - 331, 0, 333, 349, 0, 331, 350, 353, 354, 0, - 355, 341, 361, 351, 0, 358, 363, 0, 349, 356, - 353, 373, 0, 382, 366, 0, 392, 377, 0, 380, - 380, 401, 0, 604, 409, 418, 383, 390, 0, 396, - 0, 410, 393, 404, 413, 401, 0, 421, 0, 0, - 424, 0, 415, 422, 0, 0, 418, 423, 0, 420, - 420, 416, 422, 431, 0, 0, 0, 442, 439, 441, - 60, 435, 432, 0, 449, 467, 442, 469, 453, 0, - 471, 0, 458, 461, 0, 458, 469, 481, 0, 0, - - 0, 466, 0, 473, 0, 0, 466, 0, 478, 490, - 491, 477, 508, 478, 0, 0, 0, 0, 0, 0, - 480, 479, 486, 0, 0, 486, 503, 519, 525, 527, - 514, 511, 523, 524, 0, 0, 0, 531, 518, 521, - 537, 0, 523, 525, 536, 0, 0, 539, 523, 533, - 0, 543, 0, 0, 0, 604, 67, 585, 588, 591, - 594, 597, 600 + 154, 152, 129, 146, 170, 104, 0, 92, 194, 0, + 84, 196, 0, 194, 202, 211, 215, 226, 249, 146, + 196, 204, 0, 205, 192, 221, 200, 232, 227, 233, + 226, 227, 220, 255, 248, 262, 0, 245, 248, 248, + 252, 271, 270, 254, 270, 0, 278, 0, 266, 278, + 283, 270, 288, 272, 285, 294, 281, 287, 304, 286, + 303, 286, 24, 331, 0, 612, 612, 336, 340, 346, + + 0, 302, 315, 331, 337, 341, 338, 334, 336, 335, + 352, 339, 0, 341, 356, 0, 337, 356, 359, 360, + 0, 361, 347, 364, 354, 0, 361, 366, 0, 352, + 359, 356, 395, 0, 396, 379, 0, 398, 399, 384, + 0, 387, 387, 408, 0, 612, 416, 420, 390, 397, + 0, 407, 0, 420, 404, 408, 417, 413, 0, 434, + 0, 0, 432, 0, 424, 431, 0, 0, 425, 430, + 0, 431, 431, 427, 433, 442, 0, 0, 0, 0, + 450, 447, 449, 60, 444, 440, 0, 456, 470, 444, + 470, 455, 0, 469, 0, 468, 470, 0, 467, 478, + + 490, 0, 0, 0, 473, 0, 480, 0, 0, 477, + 0, 489, 501, 502, 488, 519, 486, 0, 0, 0, + 0, 0, 0, 488, 489, 496, 0, 0, 493, 496, + 521, 522, 523, 517, 519, 531, 532, 0, 0, 0, + 539, 525, 528, 544, 0, 534, 536, 547, 0, 0, + 550, 534, 541, 0, 551, 0, 0, 0, 612, 67, + 593, 596, 599, 602, 605, 608 } ; -static yyconst flex_int16_t yy_def[264] = +static const flex_int16_t yy_def[267] = { 0, - 256, 1, 256, 256, 256, 256, 257, 258, 259, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 260, 256, 257, 261, 258, 257, - 262, 259, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 263, 260, 257, 256, 256, 257, 257, 257, 49, - - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 256, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 0, 256, 256, 256, 256, - 256, 256, 256 + 259, 1, 259, 259, 259, 259, 260, 261, 262, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 263, 259, 260, 264, 261, 260, + 265, 262, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 266, 263, 260, 259, 259, 260, 260, 260, + + 49, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 259, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 0, 259, + 259, 259, 259, 259, 259, 259 } ; -static yyconst flex_int16_t yy_nxt[669] = +static const flex_int16_t yy_nxt[677] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 13, 13, 14, 15, 16, 17, 18, 19, 20, 21, @@ -483,75 +491,76 @@ 17, 18, 19, 20, 21, 22, 7, 7, 23, 24, 25, 26, 27, 28, 29, 30, 31, 7, 32, 33, 7, 34, 35, 7, 38, 38, 41, 41, 40, 37, - 206, 43, 44, 45, 45, 45, 45, 46, 46, 46, - 46, 47, 45, 45, 45, 45, 50, 144, 58, 96, - 48, 47, 45, 45, 45, 45, 95, 59, 51, 54, + 209, 43, 44, 45, 45, 45, 45, 46, 46, 46, + 46, 47, 45, 45, 45, 45, 50, 146, 58, 97, + 48, 47, 45, 45, 45, 45, 96, 59, 51, 54, 48, 63, 52, 81, 55, 36, 56, 60, 36, 49, - 61, 50, 57, 58, 64, 48, 53, 65, 62, 256, + 61, 50, 57, 58, 64, 48, 53, 65, 62, 259, 67, 66, 59, 51, 54, 48, 63, 52, 81, 55, 68, 56, 60, 73, 49, 61, 69, 57, 75, 64, - 70, 53, 65, 62, 71, 67, 66, 74, 77, 86, + 70, 53, 65, 62, 71, 67, 66, 74, 77, 91, 72, 79, 76, 84, 80, 68, 78, 82, 73, 83, - 85, 69, 90, 75, 88, 70, 87, 91, 89, 71, - 92, 92, 74, 77, 86, 72, 79, 76, 84, 80, - 256, 78, 82, 256, 83, 85, 256, 90, 256, 88, - 256, 87, 91, 89, 38, 38, 41, 41, 40, 101, - - 102, 43, 46, 46, 46, 46, 47, 45, 45, 45, - 45, 46, 46, 46, 46, 48, 103, 104, 105, 97, - 46, 46, 46, 46, 101, 102, 108, 98, 48, 99, - 99, 99, 99, 94, 99, 99, 99, 99, 256, 109, - 48, 103, 104, 105, 97, 106, 111, 107, 112, 110, - 113, 108, 114, 48, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 109, 115, 116, 117, 118, 119, - 106, 111, 107, 112, 110, 113, 120, 114, 121, 122, - 123, 126, 124, 100, 100, 100, 100, 100, 100, 127, - 115, 116, 117, 118, 119, 125, 128, 129, 130, 131, - - 132, 120, 133, 121, 122, 123, 126, 124, 134, 135, - 136, 137, 138, 140, 127, 143, 141, 256, 139, 256, - 125, 128, 129, 130, 131, 132, 142, 133, 92, 92, - 256, 147, 148, 134, 135, 136, 137, 138, 140, 149, - 143, 141, 145, 139, 146, 146, 146, 146, 150, 151, - 152, 142, 99, 99, 99, 99, 147, 148, 153, 154, - 155, 156, 157, 158, 149, 159, 256, 160, 161, 162, - 163, 164, 165, 150, 151, 152, 166, 167, 168, 169, - 170, 171, 172, 153, 154, 155, 156, 157, 158, 173, - 159, 94, 160, 161, 162, 163, 164, 165, 175, 174, - - 176, 166, 167, 168, 169, 170, 171, 172, 177, 178, - 179, 180, 181, 183, 173, 184, 182, 146, 146, 146, - 146, 185, 188, 175, 174, 176, 146, 146, 146, 146, - 189, 190, 191, 177, 178, 179, 180, 192, 183, 186, - 184, 182, 187, 193, 194, 195, 185, 188, 196, 197, - 198, 199, 200, 201, 202, 189, 190, 191, 203, 204, - 205, 207, 192, 208, 186, 209, 256, 187, 193, 194, - 195, 213, 256, 196, 197, 198, 199, 200, 201, 202, - 210, 214, 215, 203, 204, 205, 207, 216, 208, 217, - 209, 211, 218, 219, 220, 221, 213, 212, 222, 223, - - 224, 225, 226, 227, 228, 210, 214, 215, 232, 233, - 234, 235, 216, 256, 217, 236, 211, 218, 219, 220, - 221, 229, 212, 222, 223, 224, 225, 226, 227, 228, - 237, 238, 230, 232, 233, 234, 235, 239, 231, 240, - 236, 241, 242, 243, 244, 245, 229, 246, 247, 248, - 249, 250, 251, 252, 253, 237, 238, 230, 254, 255, - 256, 256, 239, 231, 240, 256, 241, 242, 243, 244, - 245, 256, 246, 247, 248, 249, 250, 251, 252, 253, - 256, 256, 256, 254, 255, 39, 256, 39, 42, 256, - 42, 93, 256, 93, 38, 256, 38, 41, 256, 41, - - 92, 256, 92, 3, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256 + 85, 69, 92, 75, 89, 70, 86, 102, 90, 71, + 93, 93, 74, 77, 91, 72, 79, 76, 84, 80, + 259, 78, 82, 87, 83, 85, 259, 92, 259, 89, + 88, 86, 102, 90, 38, 38, 41, 41, 40, 259, + + 259, 43, 46, 46, 46, 46, 259, 259, 87, 47, + 45, 45, 45, 45, 103, 88, 104, 105, 48, 46, + 46, 46, 46, 46, 46, 46, 46, 98, 106, 109, + 259, 48, 99, 95, 100, 100, 100, 100, 259, 103, + 259, 104, 105, 48, 107, 110, 108, 112, 113, 114, + 115, 116, 98, 106, 109, 111, 48, 101, 101, 101, + 101, 101, 101, 101, 101, 101, 101, 117, 118, 107, + 110, 108, 112, 113, 114, 115, 116, 119, 120, 121, + 111, 122, 123, 124, 125, 127, 101, 101, 101, 101, + 101, 101, 117, 118, 128, 129, 130, 126, 131, 132, + + 133, 134, 119, 120, 121, 135, 122, 123, 124, 125, + 127, 136, 137, 138, 139, 142, 145, 259, 143, 128, + 129, 130, 126, 131, 132, 133, 134, 140, 144, 259, + 135, 93, 93, 141, 149, 150, 136, 137, 138, 139, + 142, 145, 147, 143, 148, 148, 148, 148, 100, 100, + 100, 100, 140, 144, 100, 100, 100, 100, 141, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 259, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 151, 152, 153, 154, + 155, 156, 157, 158, 95, 159, 160, 161, 162, 163, + + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 177, 178, 179, 180, 181, 182, 183, 184, + 186, 176, 187, 185, 148, 148, 148, 148, 148, 148, + 148, 148, 188, 191, 192, 193, 175, 177, 178, 179, + 180, 181, 182, 183, 194, 186, 176, 187, 185, 189, + 195, 196, 190, 197, 198, 199, 200, 188, 191, 192, + 193, 201, 202, 203, 204, 205, 206, 207, 208, 194, + 210, 211, 212, 216, 189, 195, 196, 190, 197, 198, + 199, 200, 217, 213, 218, 219, 201, 202, 203, 204, + 205, 206, 207, 208, 214, 210, 211, 212, 216, 220, + + 215, 221, 222, 223, 224, 225, 226, 217, 213, 218, + 219, 227, 228, 229, 230, 231, 235, 236, 259, 214, + 237, 238, 239, 240, 220, 215, 221, 222, 223, 224, + 225, 226, 232, 241, 242, 243, 227, 228, 229, 230, + 231, 235, 236, 233, 244, 237, 238, 239, 240, 234, + 245, 246, 247, 248, 249, 250, 251, 232, 241, 242, + 243, 252, 253, 254, 255, 256, 257, 258, 233, 244, + 259, 259, 259, 259, 234, 245, 246, 247, 248, 249, + 250, 251, 259, 259, 259, 259, 252, 253, 254, 255, + 256, 257, 258, 39, 259, 39, 42, 259, 42, 94, + + 259, 94, 38, 259, 38, 41, 259, 41, 93, 259, + 93, 3, 259, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259 } ; -static yyconst flex_int16_t yy_chk[669] = +static const flex_int16_t yy_chk[677] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -559,73 +568,74 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 8, 8, 9, 9, 8, 257, - 181, 9, 10, 10, 10, 10, 10, 11, 11, 11, - 11, 12, 12, 12, 12, 12, 14, 92, 17, 41, + 1, 1, 1, 1, 8, 8, 9, 9, 8, 260, + 184, 9, 10, 10, 10, 10, 10, 11, 11, 11, + 11, 12, 12, 12, 12, 12, 14, 93, 17, 41, 12, 13, 13, 13, 13, 13, 38, 18, 15, 16, 13, 20, 15, 28, 16, 36, 16, 18, 5, 12, 19, 14, 16, 17, 20, 12, 15, 21, 19, 3, 22, 21, 18, 15, 16, 13, 20, 15, 28, 16, 22, 16, 18, 24, 12, 19, 22, 16, 25, 20, - 23, 15, 21, 19, 23, 22, 21, 24, 26, 31, + 23, 15, 21, 19, 23, 22, 21, 24, 26, 33, 23, 27, 25, 30, 27, 22, 26, 29, 24, 29, - 30, 22, 33, 25, 32, 23, 31, 34, 32, 23, - 35, 35, 24, 26, 31, 23, 27, 25, 30, 27, - 0, 26, 29, 0, 29, 30, 0, 33, 0, 32, - 0, 31, 34, 32, 39, 39, 42, 42, 39, 50, - - 51, 42, 44, 44, 44, 44, 45, 45, 45, 45, - 45, 46, 46, 46, 46, 45, 52, 54, 55, 46, - 47, 47, 47, 47, 50, 51, 57, 48, 47, 48, - 48, 48, 48, 35, 98, 98, 98, 98, 0, 58, - 45, 52, 54, 55, 46, 56, 59, 56, 60, 58, - 61, 57, 62, 47, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 58, 63, 64, 65, 66, 68, - 56, 59, 56, 60, 58, 61, 69, 62, 70, 71, - 72, 74, 73, 49, 49, 49, 49, 49, 49, 75, - 63, 64, 65, 66, 68, 73, 77, 79, 80, 81, - - 82, 69, 83, 70, 71, 72, 74, 73, 84, 85, - 86, 87, 88, 89, 75, 91, 90, 0, 88, 0, - 73, 77, 79, 80, 81, 82, 90, 83, 93, 93, - 0, 101, 102, 84, 85, 86, 87, 88, 89, 103, - 91, 90, 97, 88, 97, 97, 97, 97, 104, 105, - 106, 90, 99, 99, 99, 99, 101, 102, 107, 108, - 109, 110, 111, 113, 103, 114, 0, 116, 117, 118, - 119, 121, 122, 104, 105, 106, 123, 124, 126, 127, - 129, 130, 131, 107, 108, 109, 110, 111, 113, 132, - 114, 93, 116, 117, 118, 119, 121, 122, 134, 132, - - 135, 123, 124, 126, 127, 129, 130, 131, 137, 138, - 140, 141, 142, 147, 132, 148, 142, 145, 145, 145, - 145, 150, 153, 134, 132, 135, 146, 146, 146, 146, - 154, 155, 156, 137, 138, 140, 141, 158, 147, 152, - 148, 142, 152, 161, 163, 164, 150, 153, 167, 168, - 170, 171, 172, 173, 174, 154, 155, 156, 178, 179, - 180, 182, 158, 183, 152, 185, 0, 152, 161, 163, - 164, 187, 0, 167, 168, 170, 171, 172, 173, 174, - 186, 188, 189, 178, 179, 180, 182, 191, 183, 193, - 185, 186, 194, 196, 197, 198, 187, 186, 202, 204, - - 207, 209, 210, 211, 212, 186, 188, 189, 214, 221, - 222, 223, 191, 0, 193, 226, 186, 194, 196, 197, - 198, 213, 186, 202, 204, 207, 209, 210, 211, 212, - 227, 228, 213, 214, 221, 222, 223, 229, 213, 230, - 226, 231, 232, 233, 234, 238, 213, 239, 240, 241, - 243, 244, 245, 248, 249, 227, 228, 213, 250, 252, - 0, 0, 229, 213, 230, 0, 231, 232, 233, 234, - 238, 0, 239, 240, 241, 243, 244, 245, 248, 249, - 0, 0, 0, 250, 252, 258, 0, 258, 259, 0, - 259, 260, 0, 260, 261, 0, 261, 262, 0, 262, - - 263, 0, 263, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256 + 30, 22, 34, 25, 32, 23, 31, 50, 32, 23, + 35, 35, 24, 26, 33, 23, 27, 25, 30, 27, + 0, 26, 29, 31, 29, 30, 0, 34, 0, 32, + 31, 31, 50, 32, 39, 39, 42, 42, 39, 0, + + 0, 42, 44, 44, 44, 44, 0, 0, 31, 45, + 45, 45, 45, 45, 51, 31, 52, 54, 45, 46, + 46, 46, 46, 47, 47, 47, 47, 46, 55, 57, + 0, 47, 48, 35, 48, 48, 48, 48, 0, 51, + 0, 52, 54, 45, 56, 58, 56, 59, 60, 61, + 62, 63, 46, 55, 57, 58, 47, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 64, 65, 56, + 58, 56, 59, 60, 61, 62, 63, 66, 68, 69, + 58, 70, 71, 72, 73, 74, 49, 49, 49, 49, + 49, 49, 64, 65, 75, 77, 79, 73, 80, 81, + + 82, 83, 66, 68, 69, 84, 70, 71, 72, 73, + 74, 85, 86, 87, 88, 90, 92, 0, 91, 75, + 77, 79, 73, 80, 81, 82, 83, 89, 91, 0, + 84, 94, 94, 89, 102, 103, 85, 86, 87, 88, + 90, 92, 98, 91, 98, 98, 98, 98, 99, 99, + 99, 99, 89, 91, 100, 100, 100, 100, 89, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 0, + 112, 114, 115, 117, 118, 119, 120, 122, 123, 124, + 125, 127, 128, 130, 131, 132, 104, 105, 106, 107, + 108, 109, 110, 111, 94, 112, 114, 115, 117, 118, + + 119, 120, 122, 123, 124, 125, 127, 128, 130, 131, + 132, 133, 135, 136, 138, 139, 140, 142, 143, 144, + 149, 133, 150, 144, 147, 147, 147, 147, 148, 148, + 148, 148, 152, 155, 156, 157, 133, 135, 136, 138, + 139, 140, 142, 143, 158, 149, 133, 150, 144, 154, + 160, 163, 154, 165, 166, 169, 170, 152, 155, 156, + 157, 172, 173, 174, 175, 176, 181, 182, 183, 158, + 185, 186, 188, 190, 154, 160, 163, 154, 165, 166, + 169, 170, 191, 189, 192, 194, 172, 173, 174, 175, + 176, 181, 182, 183, 189, 185, 186, 188, 190, 196, + + 189, 197, 199, 200, 201, 205, 207, 191, 189, 192, + 194, 210, 212, 213, 214, 215, 217, 224, 0, 189, + 225, 226, 229, 230, 196, 189, 197, 199, 200, 201, + 205, 207, 216, 231, 232, 233, 210, 212, 213, 214, + 215, 217, 224, 216, 234, 225, 226, 229, 230, 216, + 235, 236, 237, 241, 242, 243, 244, 216, 231, 232, + 233, 246, 247, 248, 251, 252, 253, 255, 216, 234, + 0, 0, 0, 0, 216, 235, 236, 237, 241, 242, + 243, 244, 0, 0, 0, 0, 246, 247, 248, 251, + 252, 253, 255, 261, 0, 261, 262, 0, 262, 263, + + 0, 263, 264, 0, 264, 265, 0, 265, 266, 0, + 266, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259 } ; /* The intent behind this definition is that it'll catch @@ -636,7 +646,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "colorbar/lex.L" -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -648,8 +658,9 @@ #include "parser.H" extern YYSTYPE* cblval; +#line 661 "colorbar/lex.C" /* rules */ -#line 653 "colorbar/lex.C" +#line 663 "colorbar/lex.C" #define INITIAL 0 @@ -666,11 +677,11 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -679,7 +690,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -693,7 +709,7 @@ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif @@ -735,7 +751,7 @@ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -745,15 +761,10 @@ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 26 "colorbar/lex.L" - - -#line 756 "colorbar/lex.C" - if ( !(yy_init) ) { (yy_init) = 1; @@ -766,10 +777,10 @@ (yy_start) = 1; /* first start state */ if ( ! yyin ) - yyin = & std::cin; + yyin.rdbuf(std::cin.rdbuf()); if ( ! yyout ) - yyout = & std::cout; + yyout.rdbuf(std::cout.rdbuf()); if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); @@ -780,7 +791,13 @@ yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 26 "colorbar/lex.L" + + +#line 798 "colorbar/lex.C" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -796,7 +813,7 @@ yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -805,13 +822,13 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 257 ) - yy_c = yy_meta[(unsigned int) yy_c]; + if ( yy_current_state >= 260 ) + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 256 ); + while ( yy_current_state != 259 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -1074,74 +1091,79 @@ case 49: YY_RULE_SETUP #line 76 "colorbar/lex.L" -{return VALUE_;} +{return TYPE_;} YY_BREAK case 50: YY_RULE_SETUP #line 77 "colorbar/lex.L" -{return VAR_;} +{return VALUE_;} YY_BREAK case 51: YY_RULE_SETUP #line 78 "colorbar/lex.L" -{return VERSION_;} +{return VAR_;} YY_BREAK case 52: YY_RULE_SETUP #line 79 "colorbar/lex.L" -{return WIDTH_;} +{return VERSION_;} YY_BREAK case 53: YY_RULE_SETUP #line 80 "colorbar/lex.L" -{return WIN32_;} +{return WIDTH_;} YY_BREAK case 54: YY_RULE_SETUP #line 81 "colorbar/lex.L" -{return WINDOW_;} +{return WIN32_;} YY_BREAK case 55: YY_RULE_SETUP #line 82 "colorbar/lex.L" -{return Y_;} +{return WINDOW_;} YY_BREAK case 56: YY_RULE_SETUP #line 83 "colorbar/lex.L" -{return YES_;} +{return Y_;} YY_BREAK case 57: YY_RULE_SETUP -#line 85 "colorbar/lex.L" +#line 84 "colorbar/lex.L" +{return YES_;} + YY_BREAK +case 58: +YY_RULE_SETUP +#line 86 "colorbar/lex.L" { // Integer cblval->integer = atoi(yytext); return INT; } YY_BREAK -case 58: -#line 91 "colorbar/lex.L" case 59: +#line 92 "colorbar/lex.L" +case 60: YY_RULE_SETUP -#line 91 "colorbar/lex.L" +#line 92 "colorbar/lex.L" { // Real Number cblval->real = atof(yytext); return REAL; } YY_BREAK -case 60: +case 61: YY_RULE_SETUP -#line 96 "colorbar/lex.L" +#line 97 "colorbar/lex.L" { // Pointer cblval->ptr = (void*)strtoul(yytext,NULL,16); return POINTER; } YY_BREAK -case 61: -#line 102 "colorbar/lex.L" case 62: +#line 103 "colorbar/lex.L" +case 63: YY_RULE_SETUP -#line 102 "colorbar/lex.L" +#line 103 "colorbar/lex.L" { // Quoted String int ll = (yyleng-2)<(CBBUFSIZE-1) ? (yyleng-2):(CBBUFSIZE-1); strncpy(cblval->str,yytext+1,ll); // skip the " " @@ -1149,9 +1171,9 @@ return STRING; } YY_BREAK -case 63: +case 64: YY_RULE_SETUP -#line 109 "colorbar/lex.L" +#line 110 "colorbar/lex.L" { // Quoted String int ll = (yyleng-2)<(CBBUFSIZE-1) ? (yyleng-2):(CBBUFSIZE-1); strncpy(cblval->str,yytext+1,ll); // skip the '{' @@ -1159,9 +1181,9 @@ return STRING; } YY_BREAK -case 64: +case 65: YY_RULE_SETUP -#line 116 "colorbar/lex.L" +#line 117 "colorbar/lex.L" { // General String-- at least 2 printable chars int ll = yyleng <(CBBUFSIZE-1) ? yyleng:(CBBUFSIZE-1); strncpy(cblval->str,yytext,ll); @@ -1169,25 +1191,25 @@ return STRING; } YY_BREAK -case 65: +case 66: YY_RULE_SETUP -#line 123 "colorbar/lex.L" +#line 124 "colorbar/lex.L" { // White Spaces } YY_BREAK -case 66: +case 67: YY_RULE_SETUP -#line 126 "colorbar/lex.L" +#line 127 "colorbar/lex.L" { // Else, return the char return yytext[0]; } YY_BREAK -case 67: +case 68: YY_RULE_SETUP -#line 130 "colorbar/lex.L" +#line 131 "colorbar/lex.L" ECHO; YY_BREAK -#line 1191 "colorbar/lex.C" +#line 1212 "colorbar/lex.C" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -1212,7 +1234,7 @@ * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -1319,14 +1341,33 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. */ -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) +void yyFlexLexer::ctor_common() { - yyin = arg_yyin; - yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; @@ -1343,7 +1384,7 @@ yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -1356,23 +1397,36 @@ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; - cbfree(yy_start_stack ); + yyfree( yy_start_stack ); yy_delete_buffer( YY_CURRENT_BUFFER ); - cbfree(yy_buffer_stack ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } + if( ! new_in ) { + new_in = &yyin; + } - if ( new_out ) - yyout = new_out; + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); } #ifdef YY_INTERACTIVE @@ -1381,33 +1435,33 @@ size_t yyFlexLexer::LexerInput( char* buf, size_t max_size ) #endif { - if ( yyin->eof() || yyin->fail() ) + if ( yyin.eof() || yyin.fail() ) return 0; #ifdef YY_INTERACTIVE - yyin->get( buf[0] ); + yyin.get( buf[0] ); - if ( yyin->eof() ) + if ( yyin.eof() ) return 0; - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; return 1; #else - (void) yyin->read( buf, max_size ); + (void) yyin.read( buf, max_size ); - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; else - return yyin->gcount(); + return yyin.gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, size_t size ) { - (void) yyout->write( buf, size ); + (void) yyout.write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer @@ -1419,9 +1473,9 @@ */ int yyFlexLexer::yy_get_next_buffer() { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1450,7 +1504,7 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1470,7 +1524,7 @@ { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); @@ -1486,11 +1540,12 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - cbrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1532,12 +1587,15 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) cbrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1553,14 +1611,14 @@ yy_state_type yyFlexLexer::yy_get_previous_state() { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1569,10 +1627,10 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 257 ) - yy_c = yy_meta[(unsigned int) yy_c]; + if ( yy_current_state >= 260 ) + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1585,10 +1643,10 @@ */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1597,18 +1655,19 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 257 ) - yy_c = yy_meta[(unsigned int) yy_c]; + if ( yy_current_state >= 260 ) + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 256); + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + yy_is_jam = (yy_current_state == 259); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - void yyFlexLexer::yyunput( int c, register char* yy_bp) +#ifndef YY_NO_UNPUT + void yyFlexLexer::yyunput( int c, char* yy_bp) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -1618,10 +1677,10 @@ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -1630,7 +1689,7 @@ yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -1642,6 +1701,7 @@ (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } +#endif int yyFlexLexer::yyinput() { @@ -1715,7 +1775,7 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void yyFlexLexer::yyrestart( std::istream* input_file ) + void yyFlexLexer::yyrestart( std::istream& input_file ) { if ( ! YY_CURRENT_BUFFER ){ @@ -1728,6 +1788,19 @@ yy_load_buffer_state( ); } +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -1767,7 +1840,7 @@ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); (yy_hold_char) = *(yy_c_buf_p); } @@ -1777,11 +1850,11 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) cballoc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1790,7 +1863,7 @@ /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) cballoc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1801,6 +1874,17 @@ return b; } +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -1815,23 +1899,23 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - cbfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - cbfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) { int oerrno = errno; yy_flush_buffer( b ); - b->yy_input_file = file; + b->yy_input_file = file.rdbuf(); b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -1939,15 +2023,15 @@ * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)cballoc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -1956,10 +2040,10 @@ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)cbrealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -1972,20 +2056,21 @@ } } - void yyFlexLexer::yy_push_state( int new_state ) + void yyFlexLexer::yy_push_state( int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) cballoc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) cbrealloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -1993,7 +2078,7 @@ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } void yyFlexLexer::yy_pop_state() @@ -2013,7 +2098,7 @@ #define YY_EXIT_FAILURE 2 #endif -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( const char* msg ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); @@ -2026,7 +2111,7 @@ do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -2043,18 +2128,19 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -2062,13 +2148,14 @@ } #endif -void *cballoc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *cbrealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -2076,17 +2163,16 @@ * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void cbfree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see cbrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" -#line 130 "colorbar/lex.L" - +#line 131 "colorbar/lex.L" diff -Nru saods9-8.2+repack/tksao/colorbar/lex.L saods9-8.3+repack/tksao/colorbar/lex.L --- saods9-8.2+repack/tksao/colorbar/lex.L 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/lex.L 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -73,6 +73,7 @@ show {return SHOW_;} tag {return TAG_;} true {return TRUE_;} +type {return TYPE_;} value {return VALUE_;} var {return VAR_;} version {return VERSION_;} diff -Nru saods9-8.2+repack/tksao/colorbar/lut.C saods9-8.3+repack/tksao/colorbar/lut.C --- saods9-8.2+repack/tksao/colorbar/lut.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/lut.C 2021-11-08 15:46:07.000000000 +0000 @@ -51,7 +51,7 @@ int LUTColorMap::load() { - ifstream str(fileName); + ifstream str(filename_); if (!str) return 0; @@ -105,6 +105,16 @@ return 1; } +int LUTColorMap::saveVar(const char* var) +{ + ostringstream str; + str << *this; + + Tcl_SetVar(parent_->getInterp(), var, str.str().c_str(), + TCL_GLOBAL_ONLY | TCL_LEAVE_ERR_MSG); + return 1; +} + unsigned char LUTColorMap::getRedChar(int ii, int count) { int size = colors.count(); diff -Nru saods9-8.2+repack/tksao/colorbar/lut.h saods9-8.3+repack/tksao/colorbar/lut.h --- saods9-8.2+repack/tksao/colorbar/lut.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/lut.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -58,6 +58,7 @@ int load(); int load(const char* var); int save(const char*); + int saveVar(const char*); unsigned char getRedChar(int, int); unsigned char getGreenChar(int, int); diff -Nru saods9-8.2+repack/tksao/colorbar/lutlex.C saods9-8.3+repack/tksao/colorbar/lutlex.C --- saods9-8.2+repack/tksao/colorbar/lutlex.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/lutlex.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,6 +1,6 @@ -#line 2 "colorbar/lutlex.C" +#line 1 "colorbar/lutlex.C" -#line 4 "colorbar/lutlex.C" +#line 3 "colorbar/lutlex.C" #define YY_INT_ALIGNED short int @@ -8,8 +8,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -22,6 +22,24 @@ */ #define yyFlexLexer rgbFlexLexer +#ifdef yyalloc +#define rgballoc_ALREADY_DEFINED +#else +#define yyalloc rgballoc +#endif + +#ifdef yyrealloc +#define rgbrealloc_ALREADY_DEFINED +#else +#define yyrealloc rgbrealloc +#endif + +#ifdef yyfree +#define rgbfree_ALREADY_DEFINED +#else +#define yyfree rgbfree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -59,7 +77,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -90,70 +107,67 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ -#include +#include #include #include +#include #include /* end standard C++ headers. */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) - #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -175,8 +189,9 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -191,7 +206,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -199,7 +213,7 @@ struct yy_buffer_state { - std::istream* yy_input_file; + std::streambuf* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ @@ -207,7 +221,7 @@ /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -235,7 +249,7 @@ int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -269,18 +283,16 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -void *rgballoc (yy_size_t ); -void *rgbrealloc (void *,yy_size_t ); -void rgbfree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -290,7 +302,6 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -300,13 +311,11 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; #define yytext_ptr yytext @@ -323,7 +332,6 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 18 #define YY_END_OF_BUFFER 19 /* This struct is not used in this scanner, @@ -333,7 +341,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[57] = +static const flex_int16_t yy_accept[57] = { 0, 0, 0, 2, 2, 19, 17, 14, 16, 17, 17, 17, 10, 13, 13, 13, 13, 13, 13, 13, 2, @@ -343,7 +351,7 @@ 13, 13, 8, 3, 4, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, @@ -375,7 +383,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[37] = +static const YY_CHAR yy_meta[37] = { 0, 1, 1, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -383,7 +391,7 @@ 3, 3, 3, 3, 3, 3 } ; -static yyconst flex_int16_t yy_base[60] = +static const flex_int16_t yy_base[60] = { 0, 0, 0, 139, 138, 140, 143, 137, 143, 135, 31, 129, 33, 123, 35, 40, 36, 38, 37, 44, 0, @@ -393,7 +401,7 @@ 100, 101, 91, 60, 46, 143, 131, 46, 134 } ; -static yyconst flex_int16_t yy_def[60] = +static const flex_int16_t yy_def[60] = { 0, 56, 1, 57, 57, 56, 56, 56, 56, 56, 56, 56, 58, 58, 58, 58, 58, 58, 58, 58, 59, @@ -403,7 +411,7 @@ 58, 58, 58, 58, 58, 0, 56, 56, 56 } ; -static yyconst flex_int16_t yy_nxt[180] = +static const flex_int16_t yy_nxt[180] = { 0, 6, 7, 8, 9, 10, 11, 12, 13, 13, 13, 14, 13, 15, 13, 13, 16, 17, 13, 13, 18, @@ -426,7 +434,7 @@ 56, 56, 56, 56, 56, 56, 56, 56, 56 } ; -static yyconst flex_int16_t yy_chk[180] = +static const flex_int16_t yy_chk[180] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -457,7 +465,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "colorbar/lutlex.L" -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -472,9 +480,10 @@ extern YYSTYPE* rgblval; extern rgbFlexLexer* rgblexx; +#line 483 "colorbar/lutlex.C" /* rules */ -#line 478 "colorbar/lutlex.C" +#line 486 "colorbar/lutlex.C" #define INITIAL 0 #define DISCARD 1 @@ -492,11 +501,11 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -505,7 +514,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -519,7 +533,7 @@ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif @@ -561,7 +575,7 @@ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -571,15 +585,10 @@ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 31 "colorbar/lutlex.L" - - -#line 582 "colorbar/lutlex.C" - if ( !(yy_init) ) { (yy_init) = 1; @@ -592,10 +601,10 @@ (yy_start) = 1; /* first start state */ if ( ! yyin ) - yyin = & std::cin; + yyin.rdbuf(std::cin.rdbuf()); if ( ! yyout ) - yyout = & std::cout; + yyout.rdbuf(std::cout.rdbuf()); if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); @@ -606,7 +615,13 @@ yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 31 "colorbar/lutlex.L" + + +#line 622 "colorbar/lutlex.C" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -622,7 +637,7 @@ yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -632,9 +647,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 57 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 56 ); @@ -783,7 +798,7 @@ #line 93 "colorbar/lutlex.L" ECHO; YY_BREAK -#line 787 "colorbar/lutlex.C" +#line 801 "colorbar/lutlex.C" case YY_END_OF_BUFFER: { @@ -806,7 +821,7 @@ * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -913,14 +928,33 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. */ -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::ctor_common() { - yyin = arg_yyin; - yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; @@ -937,7 +971,7 @@ yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -950,23 +984,36 @@ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; - rgbfree(yy_start_stack ); + yyfree( yy_start_stack ); yy_delete_buffer( YY_CURRENT_BUFFER ); - rgbfree(yy_buffer_stack ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } + if( ! new_in ) { + new_in = &yyin; + } - if ( new_out ) - yyout = new_out; + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); } #ifdef YY_INTERACTIVE @@ -975,33 +1022,33 @@ size_t yyFlexLexer::LexerInput( char* buf, size_t max_size ) #endif { - if ( yyin->eof() || yyin->fail() ) + if ( yyin.eof() || yyin.fail() ) return 0; #ifdef YY_INTERACTIVE - yyin->get( buf[0] ); + yyin.get( buf[0] ); - if ( yyin->eof() ) + if ( yyin.eof() ) return 0; - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; return 1; #else - (void) yyin->read( buf, max_size ); + (void) yyin.read( buf, max_size ); - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; else - return yyin->gcount(); + return yyin.gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, size_t size ) { - (void) yyout->write( buf, size ); + (void) yyout.write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer @@ -1013,9 +1060,9 @@ */ int yyFlexLexer::yy_get_next_buffer() { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1044,7 +1091,7 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1064,7 +1111,7 @@ { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); @@ -1080,11 +1127,12 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - rgbrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1126,12 +1174,15 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) rgbrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1147,14 +1198,14 @@ yy_state_type yyFlexLexer::yy_get_previous_state() { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1164,9 +1215,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 57 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1179,10 +1230,10 @@ */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1192,17 +1243,18 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 57 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 56); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - void yyFlexLexer::yyunput( int c, register char* yy_bp) +#ifndef YY_NO_UNPUT + void yyFlexLexer::yyunput( int c, char* yy_bp) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -1212,10 +1264,10 @@ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -1224,7 +1276,7 @@ yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -1236,6 +1288,7 @@ (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } +#endif int yyFlexLexer::yyinput() { @@ -1309,7 +1362,7 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void yyFlexLexer::yyrestart( std::istream* input_file ) + void yyFlexLexer::yyrestart( std::istream& input_file ) { if ( ! YY_CURRENT_BUFFER ){ @@ -1322,6 +1375,19 @@ yy_load_buffer_state( ); } +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -1361,7 +1427,7 @@ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); (yy_hold_char) = *(yy_c_buf_p); } @@ -1371,11 +1437,11 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) rgballoc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1384,7 +1450,7 @@ /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) rgballoc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1395,6 +1461,17 @@ return b; } +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -1409,23 +1486,23 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - rgbfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - rgbfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) { int oerrno = errno; yy_flush_buffer( b ); - b->yy_input_file = file; + b->yy_input_file = file.rdbuf(); b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -1533,15 +1610,15 @@ * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)rgballoc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -1550,10 +1627,10 @@ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)rgbrealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -1566,20 +1643,21 @@ } } - void yyFlexLexer::yy_push_state( int new_state ) + void yyFlexLexer::yy_push_state( int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) rgballoc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) rgbrealloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -1587,7 +1665,7 @@ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } void yyFlexLexer::yy_pop_state() @@ -1607,7 +1685,7 @@ #define YY_EXIT_FAILURE 2 #endif -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( const char* msg ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); @@ -1620,7 +1698,7 @@ do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -1637,18 +1715,19 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -1656,13 +1735,14 @@ } #endif -void *rgballoc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *rgbrealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -1670,12 +1750,12 @@ * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void rgbfree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see rgbrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -1683,7 +1763,6 @@ #line 93 "colorbar/lutlex.L" - void rgbDiscard(int doit) { if (rgblexx) diff -Nru saods9-8.2+repack/tksao/colorbar/lutlex.L saods9-8.3+repack/tksao/colorbar/lutlex.L --- saods9-8.2+repack/tksao/colorbar/lutlex.L 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/lutlex.L 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ diff -Nru saods9-8.2+repack/tksao/colorbar/lutparser.Y saods9-8.3+repack/tksao/colorbar/lutparser.Y --- saods9-8.2+repack/tksao/colorbar/lutparser.Y 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/lutparser.Y 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/colorbar/parser.C saods9-8.3+repack/tksao/colorbar/parser.C --- saods9-8.2+repack/tksao/colorbar/parser.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/parser.C 2021-11-08 15:46:07.000000000 +0000 @@ -123,14 +123,15 @@ SHOW_ = 304, TAG_ = 305, TRUE_ = 306, - VALUE_ = 307, - VAR_ = 308, - VERSION_ = 309, - WIDTH_ = 310, - WIN32_ = 311, - WINDOW_ = 312, - Y_ = 313, - YES_ = 314 + TYPE_ = 307, + VALUE_ = 308, + VAR_ = 309, + VERSION_ = 310, + WIDTH_ = 311, + WIN32_ = 312, + WINDOW_ = 313, + Y_ = 314, + YES_ = 315 }; #endif /* Tokens. */ @@ -183,14 +184,15 @@ #define SHOW_ 304 #define TAG_ 305 #define TRUE_ 306 -#define VALUE_ 307 -#define VAR_ 308 -#define VERSION_ 309 -#define WIDTH_ 310 -#define WIN32_ 311 -#define WINDOW_ 312 -#define Y_ 313 -#define YES_ 314 +#define TYPE_ 307 +#define VALUE_ 308 +#define VAR_ 309 +#define VERSION_ 310 +#define WIDTH_ 311 +#define WIN32_ 312 +#define WINDOW_ 313 +#define Y_ 314 +#define YES_ 315 @@ -241,7 +243,7 @@ void* ptr; } /* Line 193 of yacc.c. */ -#line 245 "colorbar/parser.C" +#line 247 "colorbar/parser.C" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -254,7 +256,7 @@ /* Line 216 of yacc.c. */ -#line 258 "colorbar/parser.C" +#line 260 "colorbar/parser.C" #ifdef short # undef short @@ -467,22 +469,22 @@ #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 93 +#define YYFINAL 98 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 139 +#define YYLAST 148 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 60 +#define YYNTOKENS 63 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 23 +#define YYNNTS 24 /* YYNRULES -- Number of rules. */ -#define YYNRULES 96 +#define YYNRULES 104 /* YYNRULES -- Number of states. */ -#define YYNSTATES 154 +#define YYNSTATES 164 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 314 +#define YYMAXUTOK 315 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -499,7 +501,7 @@ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 61, 62, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -521,70 +523,74 @@ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59 + 55, 56, 57, 58, 59, 60 }; #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ -static const yytype_uint8 yyprhs[] = +static const yytype_uint16 yyprhs[] = { 0, 0, 3, 6, 10, 13, 16, 19, 21, 24, 27, 30, 33, 36, 39, 42, 45, 47, 51, 54, 57, 59, 61, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 95, 104, 107, - 110, 111, 114, 116, 118, 120, 122, 125, 129, 131, - 133, 135, 137, 140, 143, 147, 150, 152, 153, 156, - 158, 160, 161, 163, 165, 167, 170, 173, 175, 178, - 181, 184, 187, 191, 193, 195, 197, 200, 203, 206, - 208, 210, 212, 214, 217, 220, 223, 226, 231, 233, - 234, 237, 242, 246, 250, 252, 255 + 110, 111, 114, 116, 118, 120, 122, 125, 129, 133, + 135, 137, 139, 141, 144, 147, 151, 154, 156, 158, + 159, 162, 164, 166, 167, 169, 171, 173, 176, 179, + 181, 184, 187, 190, 193, 197, 199, 201, 203, 205, + 207, 209, 212, 215, 218, 220, 222, 224, 226, 229, + 232, 235, 238, 243, 245, 246, 249, 254, 258, 262, + 264, 267, 270, 273, 276 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { - 61, 0, -1, 18, 63, -1, 7, 62, 62, -1, - 14, 65, -1, 13, 66, -1, 22, 68, -1, 27, - -1, 29, 64, -1, 30, 70, -1, 32, 71, -1, - 33, 72, -1, 34, 74, -1, 35, 75, -1, 42, - 76, -1, 44, 17, -1, 45, -1, 47, 11, 5, - -1, 50, 78, -1, 48, 81, -1, 49, -1, 54, - -1, 56, 82, -1, 4, -1, 3, -1, 41, -1, - 40, -1, 3, -1, 59, -1, 58, -1, 41, -1, + 64, 0, -1, 18, 66, -1, 7, 65, 65, -1, + 14, 68, -1, 13, 69, -1, 22, 71, -1, 27, + -1, 29, 67, -1, 30, 73, -1, 32, 74, -1, + 33, 75, -1, 34, 77, -1, 35, 78, -1, 42, + 79, -1, 44, 17, -1, 45, -1, 47, 11, 5, + -1, 50, 81, -1, 48, 84, -1, 49, -1, 55, + -1, 57, 86, -1, 4, -1, 3, -1, 41, -1, + 40, -1, 3, -1, 60, -1, 59, -1, 41, -1, 51, -1, 39, -1, 37, -1, 40, -1, 24, -1, - 3, 62, 62, 3, -1, 47, 62, 62, 62, 62, - 62, 62, 3, -1, 31, 67, -1, 57, 5, -1, + 3, 65, 65, 3, -1, 47, 65, 65, 65, 65, + 65, 65, 3, -1, 31, 70, -1, 58, 5, -1, -1, 3, 6, -1, 9, -1, 14, -1, 13, -1, - 16, -1, 25, 38, -1, 25, 38, 3, -1, 26, - -1, 28, -1, 29, -1, 38, -1, 38, 3, -1, - 47, 11, -1, 52, 3, 3, -1, 50, 69, -1, - 55, -1, -1, 3, 3, -1, 5, -1, 3, -1, - -1, 28, -1, 38, -1, 30, -1, 30, 28, -1, - 30, 38, -1, 5, -1, 5, 5, -1, 53, 73, - -1, 30, 5, -1, 5, 5, -1, 5, 5, 5, - -1, 43, -1, 5, -1, 3, -1, 15, 77, -1, - 31, 3, -1, 46, 3, -1, 10, -1, 23, -1, - 47, -1, 12, -1, 19, 79, -1, 20, 80, -1, - 33, 5, -1, 48, 5, -1, 3, 62, 62, 5, - -1, 5, -1, -1, 3, 3, -1, 8, 3, 3, - 5, -1, 36, 3, 3, -1, 21, 3, 3, -1, - 5, -1, 3, 5, -1, 43, -1 + 16, -1, 25, 38, -1, 25, 38, 3, -1, 25, + 38, 5, -1, 26, -1, 28, -1, 29, -1, 38, + -1, 38, 3, -1, 47, 11, -1, 53, 3, 3, + -1, 50, 72, -1, 52, -1, 56, -1, -1, 3, + 3, -1, 5, -1, 3, -1, -1, 28, -1, 38, + -1, 30, -1, 30, 28, -1, 30, 38, -1, 5, + -1, 5, 5, -1, 54, 76, -1, 30, 5, -1, + 5, 5, -1, 5, 5, 5, -1, 43, -1, 61, + -1, 62, -1, 47, -1, 5, -1, 3, -1, 15, + 80, -1, 31, 3, -1, 46, 3, -1, 10, -1, + 23, -1, 47, -1, 12, -1, 19, 82, -1, 20, + 83, -1, 33, 5, -1, 48, 5, -1, 3, 65, + 65, 5, -1, 5, -1, -1, 3, 3, -1, 8, + 3, 3, 5, -1, 36, 3, 3, -1, 21, 3, + 3, -1, 5, -1, 3, 5, -1, 5, 5, -1, + 54, 85, -1, 5, 5, -1, 43, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint8 yyrline[] = { - 0, 98, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 121, 122, 125, 126, 129, 131, 132, - 133, 134, 136, 137, 138, 139, 142, 143, 147, 148, - 151, 152, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 172, 173, 176, - 177, 180, 181, 182, 183, 184, 185, 188, 189, 190, - 191, 194, 195, 198, 205, 206, 209, 211, 212, 215, - 216, 217, 218, 221, 222, 223, 224, 225, 226, 229, - 230, 233, 234, 235, 238, 239, 242 + 0, 99, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 122, 123, 126, 127, 130, 132, 133, + 134, 135, 137, 138, 139, 140, 143, 144, 148, 149, + 152, 153, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 175, + 176, 179, 180, 183, 184, 185, 186, 187, 188, 191, + 192, 193, 194, 197, 198, 201, 208, 209, 210, 211, + 212, 215, 217, 218, 221, 222, 223, 224, 227, 228, + 229, 230, 231, 232, 235, 236, 239, 240, 241, 244, + 245, 246, 247, 250, 253 }; #endif @@ -600,11 +606,12 @@ "ID_", "INVERT_", "ITT_", "LEVEL_", "LIST_", "LOAD_", "MACOSX_", "MAP_", "MOTION_", "N_", "NAME_", "NO_", "OFF_", "ON_", "POSTSCRIPT_", "PRINT_", "QUERY_", "RESET_", "RESOLUTION_", "RGB_", "SAVE_", "SHOW_", "TAG_", - "TRUE_", "VALUE_", "VAR_", "VERSION_", "WIDTH_", "WIN32_", "WINDOW_", - "Y_", "YES_", "$accept", "command", "numeric", "debug", "yesno", - "colorbar", "colormap", "colormaplevel", "get", "getTag", "itt", "list", - "load", "loadVar", "macosx", "map", "postscript", "pscolorspace", "tag", - "tagdelete", "tagedit", "save", "win32", 0 + "TRUE_", "TYPE_", "VALUE_", "VAR_", "VERSION_", "WIDTH_", "WIN32_", + "WINDOW_", "Y_", "YES_", "'a'", "'b'", "$accept", "command", "numeric", + "debug", "yesno", "colorbar", "colormap", "colormaplevel", "get", + "getTag", "itt", "list", "load", "loadVar", "macosx", "map", + "postscript", "pscolorspace", "tag", "tagdelete", "tagedit", "save", + "saveVar", "win32", 0 }; #endif @@ -618,23 +625,25 @@ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314 + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 97, 98 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 60, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 62, 62, 63, 63, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 65, 65, 66, 66, - 67, 67, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 69, 69, 70, - 70, 71, 71, 71, 71, 71, 71, 72, 72, 72, - 72, 73, 73, 74, 75, 75, 76, 76, 76, 77, - 77, 77, 77, 78, 78, 78, 78, 78, 78, 79, - 79, 80, 80, 80, 81, 81, 82 + 0, 63, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 65, 65, 66, 66, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 68, 68, 69, 69, + 70, 70, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 71, 71, 71, 71, 71, 72, + 72, 73, 73, 74, 74, 74, 74, 74, 74, 75, + 75, 75, 75, 76, 76, 77, 78, 78, 78, 78, + 78, 79, 79, 79, 80, 80, 80, 80, 81, 81, + 81, 81, 81, 81, 82, 82, 83, 83, 83, 84, + 84, 84, 84, 85, 86 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -644,12 +653,13 @@ 2, 2, 2, 2, 2, 2, 1, 3, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 8, 2, 2, - 0, 2, 1, 1, 1, 1, 2, 3, 1, 1, - 1, 1, 2, 2, 3, 2, 1, 0, 2, 1, - 1, 0, 1, 1, 1, 2, 2, 1, 2, 2, - 2, 2, 3, 1, 1, 1, 2, 2, 2, 1, - 1, 1, 1, 2, 2, 2, 2, 4, 1, 0, - 2, 4, 3, 3, 1, 2, 1 + 0, 2, 1, 1, 1, 1, 2, 3, 3, 1, + 1, 1, 1, 2, 2, 3, 2, 1, 1, 0, + 2, 1, 1, 0, 1, 1, 1, 2, 2, 1, + 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, + 2, 2, 4, 1, 0, 2, 4, 3, 3, 1, + 2, 2, 2, 2, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -657,61 +667,63 @@ means the default is an error. */ static const yytype_uint8 yydefact[] = { - 0, 0, 0, 0, 0, 0, 7, 0, 0, 61, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 63, 0, 0, 0, 0, 0, 16, 0, 0, 20, 0, 21, 0, 0, 24, 23, 0, 40, 0, 5, 0, 0, 4, 26, 25, 2, 42, 44, 43, 45, 0, - 48, 49, 50, 51, 0, 57, 0, 56, 6, 27, - 35, 33, 32, 34, 30, 31, 29, 28, 8, 60, - 59, 9, 62, 64, 63, 10, 67, 0, 0, 11, - 73, 12, 75, 74, 13, 0, 0, 0, 14, 15, - 0, 0, 94, 19, 0, 88, 89, 0, 0, 0, - 18, 96, 22, 1, 3, 0, 38, 39, 0, 0, - 46, 52, 53, 0, 55, 0, 65, 66, 68, 70, - 0, 69, 79, 82, 80, 81, 76, 77, 78, 17, - 95, 0, 0, 83, 0, 0, 0, 84, 85, 86, - 41, 0, 0, 47, 58, 54, 71, 0, 90, 0, - 0, 0, 36, 0, 72, 87, 0, 93, 92, 0, - 91, 0, 0, 37 + 49, 50, 51, 52, 0, 59, 57, 0, 58, 6, + 27, 35, 33, 32, 34, 30, 31, 29, 28, 8, + 62, 61, 9, 64, 66, 65, 10, 69, 0, 0, + 11, 75, 12, 80, 79, 78, 76, 77, 13, 0, + 0, 0, 14, 15, 0, 0, 99, 0, 19, 0, + 93, 94, 0, 0, 0, 18, 104, 22, 1, 3, + 0, 38, 39, 0, 0, 46, 53, 54, 0, 56, + 0, 67, 68, 70, 72, 0, 71, 84, 87, 85, + 86, 81, 82, 83, 17, 100, 101, 0, 102, 0, + 0, 88, 0, 0, 0, 89, 90, 91, 41, 0, + 0, 47, 48, 60, 55, 73, 103, 0, 95, 0, + 0, 0, 36, 0, 74, 92, 0, 98, 97, 0, + 96, 0, 0, 37 }; /* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int8 yydefgoto[] = +static const yytype_int16 yydefgoto[] = { - -1, 22, 25, 34, 58, 31, 28, 96, 48, 104, - 61, 65, 69, 111, 71, 74, 78, 116, 90, 123, - 127, 83, 92 + -1, 22, 25, 34, 59, 31, 28, 101, 49, 109, + 62, 66, 70, 116, 72, 78, 82, 121, 95, 131, + 135, 88, 128, 97 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -41 -static const yytype_int8 yypact[] = +#define YYPACT_NINF -26 +static const yytype_int16 yypact[] = { - 33, 15, -15, 5, 13, 84, -41, -2, 9, -21, - -3, -40, 20, -5, -11, -41, 17, 67, -41, 10, - -41, -19, 31, -41, -41, 15, 41, 56, -41, 15, - 15, -41, -41, -41, -41, -41, -41, -41, -41, 26, - -41, -41, -41, 68, 25, 73, 76, -41, -41, -41, - -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, - -41, -41, -41, -17, -41, -41, 79, 80, 81, -41, - -41, -41, -41, -41, -41, 22, 85, 87, -41, -41, - 86, 89, -41, -41, 15, -41, 92, 12, 94, 96, - -41, -41, -41, -41, -41, 97, -41, -41, 15, 15, - 99, -41, -41, 101, -41, 102, -41, -41, -41, -41, - 103, -41, -41, -41, -41, -41, -41, -41, -41, -41, - -41, 15, 108, -41, 111, 112, 113, -41, -41, -41, - -41, 114, 15, -41, -41, -41, 115, 116, -41, 120, - 122, 124, -41, 15, -41, -41, 123, -41, -41, 15, - -41, 15, 126, -41 + 39, 22, -23, 8, -12, 92, -26, 3, 10, -8, + 11, -11, -2, -13, 19, -26, 20, 4, -26, 90, + -26, -6, 38, -26, -26, 22, 36, 43, -26, 22, + 22, -26, -26, -26, -26, -26, -26, -26, -26, 12, + -26, -26, -26, 48, 45, 64, -26, 67, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -14, -26, -26, 70, 71, 72, + -26, -26, -26, -26, -26, -26, -26, -26, -26, 0, + 77, 79, -26, -26, 80, 85, 86, 87, -26, 22, + -26, 94, 13, 93, 95, -26, -26, -26, -26, -26, + 96, -26, -26, 22, 22, 14, -26, -26, 100, -26, + 104, -26, -26, -26, -26, 106, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, 107, -26, 22, + 110, -26, 111, 113, 116, -26, -26, -26, -26, 119, + 22, -26, -26, -26, -26, 120, -26, 121, -26, 124, + 126, 128, -26, 22, -26, -26, 127, -26, -26, 22, + -26, 22, 130, -26 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { - -41, -41, -25, -41, -41, -41, -41, -41, -41, -41, - -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, - -41, -41, -41 + -26, -26, -25, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -721,38 +733,40 @@ #define YYTABLE_NINF -1 static const yytype_uint8 yytable[] = { - 94, 49, 66, 70, 98, 99, 79, 62, 29, 63, - 75, 106, 59, 84, 60, 85, 26, 64, 23, 24, - 124, 107, 50, 72, 91, 73, 76, 67, 80, 86, - 87, 93, 112, 125, 113, 51, 102, 52, 53, 54, - 1, 77, 27, 88, 95, 114, 2, 3, 126, 55, - 68, 4, 30, 32, 33, 5, 56, 57, 89, 121, - 6, 97, 7, 8, 100, 9, 10, 11, 12, 115, - 81, 101, 82, 131, 132, 13, 103, 14, 15, 105, - 16, 17, 18, 19, 108, 109, 110, 20, 117, 21, - 118, 119, 0, 35, 120, 122, 137, 36, 37, 128, - 38, 129, 133, 130, 134, 135, 0, 143, 136, 39, - 40, 138, 41, 42, 139, 140, 141, 142, 149, 0, - 144, 145, 43, 146, 151, 147, 152, 148, 150, 153, - 0, 44, 0, 0, 45, 0, 46, 0, 0, 47 + 99, 73, 79, 74, 103, 104, 50, 85, 26, 86, + 117, 29, 118, 60, 111, 61, 67, 141, 80, 142, + 63, 132, 64, 119, 112, 23, 24, 51, 32, 33, + 65, 84, 71, 81, 133, 27, 83, 96, 98, 100, + 52, 68, 53, 54, 55, 75, 1, 120, 102, 134, + 105, 106, 2, 3, 56, 30, 107, 4, 87, 76, + 77, 5, 57, 58, 129, 69, 6, 108, 7, 8, + 110, 9, 10, 11, 12, 113, 114, 115, 139, 140, + 122, 13, 123, 14, 15, 124, 16, 17, 18, 19, + 125, 126, 127, 89, 20, 90, 21, 130, 136, 0, + 137, 35, 138, 143, 147, 36, 37, 144, 38, 91, + 92, 145, 146, 148, 149, 153, 150, 39, 40, 151, + 41, 42, 152, 93, 0, 154, 155, 156, 159, 157, + 43, 158, 160, 163, 161, 0, 162, 0, 94, 44, + 0, 0, 45, 0, 46, 47, 0, 0, 48 }; static const yytype_int16 yycheck[] = { - 25, 3, 5, 43, 29, 30, 17, 28, 3, 30, - 15, 28, 3, 3, 5, 5, 31, 38, 3, 4, - 8, 38, 24, 3, 43, 5, 31, 30, 11, 19, - 20, 0, 10, 21, 12, 37, 11, 39, 40, 41, - 7, 46, 57, 33, 3, 23, 13, 14, 36, 51, - 53, 18, 47, 40, 41, 22, 58, 59, 48, 84, - 27, 5, 29, 30, 38, 32, 33, 34, 35, 47, - 3, 3, 5, 98, 99, 42, 3, 44, 45, 3, - 47, 48, 49, 50, 5, 5, 5, 54, 3, 56, - 3, 5, -1, 9, 5, 3, 121, 13, 14, 5, - 16, 5, 3, 6, 3, 3, -1, 132, 5, 25, - 26, 3, 28, 29, 3, 3, 3, 3, 143, -1, - 5, 5, 38, 3, 149, 3, 151, 3, 5, 3, - -1, 47, -1, -1, 50, -1, 52, -1, -1, 55 + 25, 3, 15, 5, 29, 30, 3, 3, 31, 5, + 10, 3, 12, 3, 28, 5, 5, 3, 31, 5, + 28, 8, 30, 23, 38, 3, 4, 24, 40, 41, + 38, 11, 43, 46, 21, 58, 17, 43, 0, 3, + 37, 30, 39, 40, 41, 47, 7, 47, 5, 36, + 38, 3, 13, 14, 51, 47, 11, 18, 54, 61, + 62, 22, 59, 60, 89, 54, 27, 3, 29, 30, + 3, 32, 33, 34, 35, 5, 5, 5, 103, 104, + 3, 42, 3, 44, 45, 5, 47, 48, 49, 50, + 5, 5, 5, 3, 55, 5, 57, 3, 5, -1, + 5, 9, 6, 3, 129, 13, 14, 3, 16, 19, + 20, 5, 5, 3, 3, 140, 3, 25, 26, 3, + 28, 29, 3, 33, -1, 5, 5, 3, 153, 3, + 38, 3, 5, 3, 159, -1, 161, -1, 48, 47, + -1, -1, 50, -1, 52, 53, -1, -1, 56 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -761,20 +775,21 @@ { 0, 7, 13, 14, 18, 22, 27, 29, 30, 32, 33, 34, 35, 42, 44, 45, 47, 48, 49, 50, - 54, 56, 61, 3, 4, 62, 31, 57, 66, 3, - 47, 65, 40, 41, 63, 9, 13, 14, 16, 25, - 26, 28, 29, 38, 47, 50, 52, 55, 68, 3, - 24, 37, 39, 40, 41, 51, 58, 59, 64, 3, - 5, 70, 28, 30, 38, 71, 5, 30, 53, 72, - 43, 74, 3, 5, 75, 15, 31, 46, 76, 17, - 11, 3, 5, 81, 3, 5, 19, 20, 33, 48, - 78, 43, 82, 0, 62, 3, 67, 5, 62, 62, - 38, 3, 11, 3, 69, 3, 28, 38, 5, 5, - 5, 73, 10, 12, 23, 47, 77, 3, 3, 5, - 5, 62, 3, 79, 8, 21, 36, 80, 5, 5, - 6, 62, 62, 3, 3, 3, 5, 62, 3, 3, - 3, 3, 3, 62, 5, 5, 3, 3, 3, 62, - 5, 62, 62, 3 + 55, 57, 64, 3, 4, 65, 31, 58, 69, 3, + 47, 68, 40, 41, 66, 9, 13, 14, 16, 25, + 26, 28, 29, 38, 47, 50, 52, 53, 56, 71, + 3, 24, 37, 39, 40, 41, 51, 59, 60, 67, + 3, 5, 73, 28, 30, 38, 74, 5, 30, 54, + 75, 43, 77, 3, 5, 47, 61, 62, 78, 15, + 31, 46, 79, 17, 11, 3, 5, 54, 84, 3, + 5, 19, 20, 33, 48, 81, 43, 86, 0, 65, + 3, 70, 5, 65, 65, 38, 3, 11, 3, 72, + 3, 28, 38, 5, 5, 5, 76, 10, 12, 23, + 47, 80, 3, 3, 5, 5, 5, 5, 85, 65, + 3, 82, 8, 21, 36, 83, 5, 5, 6, 65, + 65, 3, 5, 3, 3, 5, 5, 65, 3, 3, + 3, 3, 3, 65, 5, 5, 3, 3, 3, 65, + 5, 65, 65, 3 }; #define yyerrok (yyerrstatus = 0) @@ -1602,282 +1617,292 @@ switch (yyn) { case 3: -#line 99 "colorbar/parser.Y" +#line 100 "colorbar/parser.Y" {cb->adjustCmd((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real));;} break; case 7: -#line 103 "colorbar/parser.Y" +#line 104 "colorbar/parser.Y" {cb->hideCmd();;} break; case 8: -#line 104 "colorbar/parser.Y" +#line 105 "colorbar/parser.Y" {cb->invertCmd((yyvsp[(2) - (2)].integer) );;} break; case 15: -#line 111 "colorbar/parser.Y" +#line 112 "colorbar/parser.Y" {cb->queryCursorCmd();;} break; case 16: -#line 112 "colorbar/parser.Y" +#line 113 "colorbar/parser.Y" {cb->resetCmd();;} break; case 17: -#line 113 "colorbar/parser.Y" +#line 114 "colorbar/parser.Y" {cb->setRGBChannelCmd((yyvsp[(3) - (3)].str));;} break; case 20: -#line 116 "colorbar/parser.Y" +#line 117 "colorbar/parser.Y" {cb->showCmd();;} break; case 21: -#line 117 "colorbar/parser.Y" +#line 118 "colorbar/parser.Y" {cb->msg("Colorbar 1.0");;} break; case 23: -#line 121 "colorbar/parser.Y" +#line 122 "colorbar/parser.Y" {(yyval.real)=(yyvsp[(1) - (1)].real);;} break; case 24: -#line 122 "colorbar/parser.Y" +#line 123 "colorbar/parser.Y" {(yyval.real)=(yyvsp[(1) - (1)].integer);;} break; case 25: -#line 125 "colorbar/parser.Y" +#line 126 "colorbar/parser.Y" {yydebug=1;;} break; case 26: -#line 126 "colorbar/parser.Y" +#line 127 "colorbar/parser.Y" {yydebug=0;;} break; case 27: -#line 129 "colorbar/parser.Y" +#line 130 "colorbar/parser.Y" {(yyval.integer)=((yyvsp[(1) - (1)].integer) ? 1 : 0);;} break; case 28: -#line 131 "colorbar/parser.Y" +#line 132 "colorbar/parser.Y" {(yyval.integer)=1;;} break; case 29: -#line 132 "colorbar/parser.Y" +#line 133 "colorbar/parser.Y" {(yyval.integer)=1;;} break; case 30: -#line 133 "colorbar/parser.Y" +#line 134 "colorbar/parser.Y" {(yyval.integer)=1;;} break; case 31: -#line 134 "colorbar/parser.Y" +#line 135 "colorbar/parser.Y" {(yyval.integer)=1;;} break; case 32: -#line 136 "colorbar/parser.Y" +#line 137 "colorbar/parser.Y" {(yyval.integer)=0;;} break; case 33: -#line 137 "colorbar/parser.Y" +#line 138 "colorbar/parser.Y" {(yyval.integer)=0;;} break; case 34: -#line 138 "colorbar/parser.Y" +#line 139 "colorbar/parser.Y" {(yyval.integer)=0;;} break; case 35: -#line 139 "colorbar/parser.Y" +#line 140 "colorbar/parser.Y" {(yyval.integer)=0;;} break; case 36: -#line 142 "colorbar/parser.Y" +#line 143 "colorbar/parser.Y" {cb->setColorbarCmd((yyvsp[(1) - (4)].integer), (yyvsp[(2) - (4)].real), (yyvsp[(3) - (4)].real), (yyvsp[(4) - (4)].integer));;} break; case 37: -#line 144 "colorbar/parser.Y" +#line 145 "colorbar/parser.Y" {cb->setColorbarCmd((yyvsp[(2) - (8)].real), (yyvsp[(3) - (8)].real), (yyvsp[(4) - (8)].real), (yyvsp[(5) - (8)].real), (yyvsp[(6) - (8)].real), (yyvsp[(7) - (8)].real), (yyvsp[(8) - (8)].integer));;} break; case 39: -#line 148 "colorbar/parser.Y" +#line 149 "colorbar/parser.Y" {cb->setColormapWindowCmd((yyvsp[(2) - (2)].str));;} break; case 40: -#line 151 "colorbar/parser.Y" +#line 152 "colorbar/parser.Y" {cb->setColormapLevelCmd();;} break; case 41: -#line 152 "colorbar/parser.Y" +#line 153 "colorbar/parser.Y" {cb->setColormapLevelCmd((yyvsp[(1) - (2)].integer), (double*)(yyvsp[(2) - (2)].ptr));;} break; case 42: -#line 155 "colorbar/parser.Y" +#line 156 "colorbar/parser.Y" {cb->getBiasCmd();;} break; case 43: -#line 156 "colorbar/parser.Y" +#line 157 "colorbar/parser.Y" {cb->getColorbarCmd();;} break; case 44: -#line 157 "colorbar/parser.Y" +#line 158 "colorbar/parser.Y" {cb->getColormapCmd();;} break; case 45: -#line 158 "colorbar/parser.Y" +#line 159 "colorbar/parser.Y" {cb->getContrastCmd();;} break; case 46: -#line 159 "colorbar/parser.Y" +#line 160 "colorbar/parser.Y" {cb->getCurrentFileNameCmd();;} break; case 47: -#line 160 "colorbar/parser.Y" +#line 161 "colorbar/parser.Y" {cb->getColormapFileNameCmd((yyvsp[(3) - (3)].integer));;} break; case 48: -#line 161 "colorbar/parser.Y" - {cb->getHeightCmd();;} +#line 162 "colorbar/parser.Y" + {cb->getColormapFileNameCmd((yyvsp[(3) - (3)].str));;} break; case 49: -#line 162 "colorbar/parser.Y" - {cb->getCurrentIDCmd();;} +#line 163 "colorbar/parser.Y" + {cb->getHeightCmd();;} break; case 50: -#line 163 "colorbar/parser.Y" - {cb->getInvertCmd();;} +#line 164 "colorbar/parser.Y" + {cb->getCurrentIDCmd();;} break; case 51: -#line 164 "colorbar/parser.Y" - {cb->getCurrentNameCmd();;} +#line 165 "colorbar/parser.Y" + {cb->getInvertCmd();;} break; case 52: -#line 165 "colorbar/parser.Y" - {cb->getColormapNameCmd((yyvsp[(2) - (2)].integer));;} +#line 166 "colorbar/parser.Y" + {cb->getCurrentNameCmd();;} break; case 53: -#line 166 "colorbar/parser.Y" - {cb->getRGBChannelCmd();;} +#line 167 "colorbar/parser.Y" + {cb->getColormapNameCmd((yyvsp[(2) - (2)].integer));;} break; case 54: -#line 167 "colorbar/parser.Y" - {cb->getValueCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].integer));;} +#line 168 "colorbar/parser.Y" + {cb->getRGBChannelCmd();;} break; - case 56: + case 55: #line 169 "colorbar/parser.Y" - {cb->getWidthCmd();;} + {cb->getValueCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].integer));;} break; case 57: -#line 172 "colorbar/parser.Y" - {cb->getTagCmd();;} +#line 171 "colorbar/parser.Y" + {cb->getTypeCmd();;} break; case 58: -#line 173 "colorbar/parser.Y" - {cb->getTagCmd((yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].integer));;} +#line 172 "colorbar/parser.Y" + {cb->getWidthCmd();;} break; case 59: -#line 176 "colorbar/parser.Y" - {;} +#line 175 "colorbar/parser.Y" + {cb->getTagCmd();;} break; case 60: -#line 177 "colorbar/parser.Y" - {;} +#line 176 "colorbar/parser.Y" + {cb->getTagCmd((yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].integer));;} break; case 61: -#line 180 "colorbar/parser.Y" - {cb->listNameCmd();;} +#line 179 "colorbar/parser.Y" + {;} break; case 62: -#line 181 "colorbar/parser.Y" - {cb->listIDCmd();;} +#line 180 "colorbar/parser.Y" + {;} break; case 63: -#line 182 "colorbar/parser.Y" +#line 183 "colorbar/parser.Y" {cb->listNameCmd();;} break; case 64: -#line 183 "colorbar/parser.Y" - {;} +#line 184 "colorbar/parser.Y" + {cb->listIDCmd();;} break; case 65: -#line 184 "colorbar/parser.Y" - {;} +#line 185 "colorbar/parser.Y" + {cb->listNameCmd();;} break; case 66: -#line 185 "colorbar/parser.Y" +#line 186 "colorbar/parser.Y" {;} break; case 67: +#line 187 "colorbar/parser.Y" + {;} + break; + + case 68: #line 188 "colorbar/parser.Y" + {;} + break; + + case 69: +#line 191 "colorbar/parser.Y" {cb->loadCmd((yyvsp[(1) - (1)].str),NULL);;} break; - case 68: -#line 189 "colorbar/parser.Y" + case 70: +#line 192 "colorbar/parser.Y" {cb->loadCmd((yyvsp[(1) - (2)].str),(yyvsp[(2) - (2)].str));;} break; - case 70: -#line 191 "colorbar/parser.Y" + case 72: +#line 194 "colorbar/parser.Y" {;} break; - case 71: -#line 194 "colorbar/parser.Y" + case 73: +#line 197 "colorbar/parser.Y" {cb->loadCmd((yyvsp[(1) - (2)].str),NULL,(yyvsp[(2) - (2)].str));;} break; - case 72: -#line 195 "colorbar/parser.Y" + case 74: +#line 198 "colorbar/parser.Y" {cb->loadCmd((yyvsp[(1) - (3)].str),(yyvsp[(2) - (3)].str),(yyvsp[(3) - (3)].str));;} break; - case 73: -#line 198 "colorbar/parser.Y" + case 75: +#line 201 "colorbar/parser.Y" { #ifdef MAC_OSX_TK cb->macosxPrintCmd(); @@ -1885,108 +1910,133 @@ ;} break; - case 74: -#line 205 "colorbar/parser.Y" + case 76: +#line 208 "colorbar/parser.Y" + {cb->mapCmd("a");;} + break; + + case 77: +#line 209 "colorbar/parser.Y" + {cb->mapCmd("b");;} + break; + + case 78: +#line 210 "colorbar/parser.Y" + {cb->mapCmd("rgb");;} + break; + + case 79: +#line 211 "colorbar/parser.Y" {cb->mapCmd((yyvsp[(1) - (1)].str));;} break; - case 75: -#line 206 "colorbar/parser.Y" + case 80: +#line 212 "colorbar/parser.Y" {cb->mapCmd((yyvsp[(1) - (1)].integer));;} break; - case 76: -#line 210 "colorbar/parser.Y" + case 81: +#line 216 "colorbar/parser.Y" {cb->psColorSpaceCmd((PSColorSpace)(yyvsp[(2) - (2)].integer));;} break; - case 77: -#line 211 "colorbar/parser.Y" + case 82: +#line 217 "colorbar/parser.Y" {cb->psLevelCmd((yyvsp[(2) - (2)].integer));;} break; - case 78: -#line 212 "colorbar/parser.Y" + case 83: +#line 218 "colorbar/parser.Y" {cb->psResolutionCmd((yyvsp[(2) - (2)].integer));;} break; - case 79: -#line 215 "colorbar/parser.Y" + case 84: +#line 221 "colorbar/parser.Y" {(yyval.integer) = BW;;} break; - case 80: -#line 216 "colorbar/parser.Y" + case 85: +#line 222 "colorbar/parser.Y" {(yyval.integer) = GRAY;;} break; - case 81: -#line 217 "colorbar/parser.Y" + case 86: +#line 223 "colorbar/parser.Y" {(yyval.integer) = RGB;;} break; - case 82: -#line 218 "colorbar/parser.Y" + case 87: +#line 224 "colorbar/parser.Y" {(yyval.integer) = CMYK;;} break; - case 85: -#line 223 "colorbar/parser.Y" + case 90: +#line 229 "colorbar/parser.Y" {cb->tagLoadCmd((yyvsp[(2) - (2)].str));;} break; - case 86: -#line 224 "colorbar/parser.Y" + case 91: +#line 230 "colorbar/parser.Y" {cb->tagSaveCmd((yyvsp[(2) - (2)].str));;} break; - case 87: -#line 225 "colorbar/parser.Y" + case 92: +#line 231 "colorbar/parser.Y" {cb->tagCmd((yyvsp[(1) - (4)].integer),Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)),(yyvsp[(4) - (4)].str));;} break; - case 88: -#line 226 "colorbar/parser.Y" + case 93: +#line 232 "colorbar/parser.Y" {cb->tagCmd((yyvsp[(1) - (1)].str));;} break; - case 89: -#line 229 "colorbar/parser.Y" + case 94: +#line 235 "colorbar/parser.Y" {cb->tagDeleteCmd();;} break; - case 90: -#line 230 "colorbar/parser.Y" + case 95: +#line 236 "colorbar/parser.Y" {cb->tagDeleteCmd((yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].integer));;} break; - case 91: -#line 233 "colorbar/parser.Y" + case 96: +#line 239 "colorbar/parser.Y" {cb->tagEditBeginCmd((yyvsp[(2) - (4)].integer),(yyvsp[(3) - (4)].integer),(yyvsp[(4) - (4)].str));;} break; - case 92: -#line 234 "colorbar/parser.Y" + case 97: +#line 240 "colorbar/parser.Y" {cb->tagEditMotionCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].integer));;} break; - case 93: -#line 235 "colorbar/parser.Y" + case 98: +#line 241 "colorbar/parser.Y" {cb->tagEditEndCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].integer));;} break; - case 94: -#line 238 "colorbar/parser.Y" + case 99: +#line 244 "colorbar/parser.Y" {cb->saveCmd((yyvsp[(1) - (1)].str));;} break; - case 95: -#line 239 "colorbar/parser.Y" + case 100: +#line 245 "colorbar/parser.Y" {cb->saveCmd((yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].str));;} break; - case 96: -#line 242 "colorbar/parser.Y" + case 101: +#line 246 "colorbar/parser.Y" + {cb->saveCmd((yyvsp[(1) - (2)].str),(yyvsp[(2) - (2)].str));;} + break; + + case 103: +#line 250 "colorbar/parser.Y" + {cb->saveVarCmd((yyvsp[(1) - (2)].str),(yyvsp[(2) - (2)].str));;} + break; + + case 104: +#line 253 "colorbar/parser.Y" { #ifdef _WIN32 cb->win32PrintCmd(); @@ -1996,7 +2046,7 @@ /* Line 1267 of yacc.c. */ -#line 2000 "colorbar/parser.C" +#line 2050 "colorbar/parser.C" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2210,6 +2260,6 @@ } -#line 249 "colorbar/parser.Y" +#line 260 "colorbar/parser.Y" diff -Nru saods9-8.2+repack/tksao/colorbar/parser.H saods9-8.3+repack/tksao/colorbar/parser.H --- saods9-8.2+repack/tksao/colorbar/parser.H 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/parser.H 2021-11-08 15:46:07.000000000 +0000 @@ -88,14 +88,15 @@ SHOW_ = 304, TAG_ = 305, TRUE_ = 306, - VALUE_ = 307, - VAR_ = 308, - VERSION_ = 309, - WIDTH_ = 310, - WIN32_ = 311, - WINDOW_ = 312, - Y_ = 313, - YES_ = 314 + TYPE_ = 307, + VALUE_ = 308, + VAR_ = 309, + VERSION_ = 310, + WIDTH_ = 311, + WIN32_ = 312, + WINDOW_ = 313, + Y_ = 314, + YES_ = 315 }; #endif /* Tokens. */ @@ -148,14 +149,15 @@ #define SHOW_ 304 #define TAG_ 305 #define TRUE_ 306 -#define VALUE_ 307 -#define VAR_ 308 -#define VERSION_ 309 -#define WIDTH_ 310 -#define WIN32_ 311 -#define WINDOW_ 312 -#define Y_ 313 -#define YES_ 314 +#define TYPE_ 307 +#define VALUE_ 308 +#define VAR_ 309 +#define VERSION_ 310 +#define WIDTH_ 311 +#define WIN32_ 312 +#define WINDOW_ 313 +#define Y_ 314 +#define YES_ 315 @@ -171,7 +173,7 @@ void* ptr; } /* Line 1529 of yacc.c. */ -#line 175 "colorbar/parser.H" +#line 177 "colorbar/parser.H" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 diff -Nru saods9-8.2+repack/tksao/colorbar/parser.Y saods9-8.3+repack/tksao/colorbar/parser.Y --- saods9-8.2+repack/tksao/colorbar/parser.Y 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/parser.Y 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -84,6 +84,7 @@ %token SHOW_ %token TAG_ %token TRUE_ +%token TYPE_ %token VALUE_ %token VAR_ %token VERSION_ @@ -158,6 +159,7 @@ | CONTRAST_ {cb->getContrastCmd();} | FILE_ NAME_ {cb->getCurrentFileNameCmd();} | FILE_ NAME_ INT {cb->getColormapFileNameCmd($3);} + | FILE_ NAME_ STRING {cb->getColormapFileNameCmd($3);} | HEIGHT_ {cb->getHeightCmd();} | ID_ {cb->getCurrentIDCmd();} | INVERT_ {cb->getInvertCmd();} @@ -166,6 +168,7 @@ | RGB_ CHANNEL_ {cb->getRGBChannelCmd();} | VALUE_ INT INT {cb->getValueCmd($2,$3);} | TAG_ getTag + | TYPE_ {cb->getTypeCmd();} | WIDTH_ {cb->getWidthCmd();} ; @@ -202,7 +205,10 @@ } ; -map : STRING {cb->mapCmd($1);} +map : 'a' {cb->mapCmd("a");} + | 'b' {cb->mapCmd("b");} + | RGB_ {cb->mapCmd("rgb");} + | STRING {cb->mapCmd($1);} | INT {cb->mapCmd($1);} ; @@ -237,8 +243,13 @@ save : STRING {cb->saveCmd($1);} | INT STRING {cb->saveCmd($1,$2);} + | STRING STRING {cb->saveCmd($1,$2);} + | VAR_ saveVar ; +saveVar : STRING STRING {cb->saveVarCmd($1,$2);} + ; + win32 : PRINT_ { #ifdef _WIN32 cb->win32PrintCmd(); diff -Nru saods9-8.2+repack/tksao/colorbar/sao.C saods9-8.3+repack/tksao/colorbar/sao.C --- saods9-8.2+repack/tksao/colorbar/sao.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/sao.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -60,7 +60,7 @@ int SAOColorMap::load() { - ifstream str(fileName); + ifstream str(filename_); if (!str) return 0; @@ -107,10 +107,20 @@ int SAOColorMap::save(const char* fn) { - ofstream f(fn); - if (!f) + ofstream fstr(fn); + if (!fstr) return 0; - f << *this; + fstr << *this; + return 1; +} + +int SAOColorMap::saveVar(const char* var) +{ + ostringstream str; + str << *this; + + Tcl_SetVar(parent_->getInterp(), var, str.str().c_str(), + TCL_GLOBAL_ONLY | TCL_LEAVE_ERR_MSG); return 1; } diff -Nru saods9-8.2+repack/tksao/colorbar/sao.h saods9-8.3+repack/tksao/colorbar/sao.h --- saods9-8.2+repack/tksao/colorbar/sao.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/sao.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -66,6 +66,7 @@ int load(); int load(const char* var); int save(const char*); + int saveVar(const char*); unsigned char getRedChar(int i, int c) {return getColorChar(i,c,&red);} unsigned char getGreenChar(int i, int c) {return getColorChar(i,c,&green);} diff -Nru saods9-8.2+repack/tksao/colorbar/saolex.C saods9-8.3+repack/tksao/colorbar/saolex.C --- saods9-8.2+repack/tksao/colorbar/saolex.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/saolex.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,6 +1,6 @@ -#line 2 "colorbar/saolex.C" +#line 1 "colorbar/saolex.C" -#line 4 "colorbar/saolex.C" +#line 3 "colorbar/saolex.C" #define YY_INT_ALIGNED short int @@ -8,8 +8,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -22,6 +22,24 @@ */ #define yyFlexLexer liFlexLexer +#ifdef yyalloc +#define lialloc_ALREADY_DEFINED +#else +#define yyalloc lialloc +#endif + +#ifdef yyrealloc +#define lirealloc_ALREADY_DEFINED +#else +#define yyrealloc lirealloc +#endif + +#ifdef yyfree +#define lifree_ALREADY_DEFINED +#else +#define yyfree lifree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -59,7 +77,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -90,70 +107,67 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ -#include +#include #include #include +#include #include /* end standard C++ headers. */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) - #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -175,8 +189,9 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -191,7 +206,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -199,7 +213,7 @@ struct yy_buffer_state { - std::istream* yy_input_file; + std::streambuf* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ @@ -207,7 +221,7 @@ /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -235,7 +249,7 @@ int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -269,18 +283,16 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -void *lialloc (yy_size_t ); -void *lirealloc (void *,yy_size_t ); -void lifree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -290,7 +302,6 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -300,13 +311,11 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; #define yytext_ptr yytext @@ -323,7 +332,6 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 24 #define YY_END_OF_BUFFER 25 /* This struct is not used in this scanner, @@ -333,7 +341,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[86] = +static const flex_int16_t yy_accept[86] = { 0, 0, 0, 2, 2, 25, 23, 20, 22, 23, 23, 23, 16, 19, 19, 19, 19, 19, 19, 19, 19, @@ -346,7 +354,7 @@ 19, 11, 19, 12, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, @@ -378,7 +386,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[43] = +static const YY_CHAR yy_meta[43] = { 0, 1, 1, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -387,7 +395,7 @@ 3, 3 } ; -static yyconst flex_int16_t yy_base[89] = +static const flex_int16_t yy_base[89] = { 0, 0, 0, 223, 217, 219, 228, 215, 228, 213, 37, 206, 39, 206, 41, 42, 44, 47, 43, 53, 54, @@ -400,7 +408,7 @@ 177, 71, 183, 55, 228, 221, 53, 224 } ; -static yyconst flex_int16_t yy_def[89] = +static const flex_int16_t yy_def[89] = { 0, 85, 1, 86, 86, 85, 85, 85, 85, 85, 85, 85, 87, 87, 87, 87, 87, 87, 87, 87, 87, @@ -413,7 +421,7 @@ 87, 87, 87, 87, 0, 85, 85, 85 } ; -static yyconst flex_int16_t yy_nxt[271] = +static const flex_int16_t yy_nxt[271] = { 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 13, 15, 13, 16, 17, 13, 13, 13, 18, 19, 20, @@ -446,7 +454,7 @@ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 } ; -static yyconst flex_int16_t yy_chk[271] = +static const flex_int16_t yy_chk[271] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -487,7 +495,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "colorbar/saolex.L" -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -502,9 +510,10 @@ extern YYSTYPE* lilval; extern liFlexLexer* lilexx; +#line 513 "colorbar/saolex.C" /* rules */ -#line 508 "colorbar/saolex.C" +#line 516 "colorbar/saolex.C" #define INITIAL 0 #define DISCARD 1 @@ -522,11 +531,11 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -535,7 +544,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -549,7 +563,7 @@ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif @@ -591,7 +605,7 @@ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -601,15 +615,10 @@ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 31 "colorbar/saolex.L" - - -#line 612 "colorbar/saolex.C" - if ( !(yy_init) ) { (yy_init) = 1; @@ -622,10 +631,10 @@ (yy_start) = 1; /* first start state */ if ( ! yyin ) - yyin = & std::cin; + yyin.rdbuf(std::cin.rdbuf()); if ( ! yyout ) - yyout = & std::cout; + yyout.rdbuf(std::cout.rdbuf()); if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); @@ -636,7 +645,13 @@ yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 31 "colorbar/saolex.L" + + +#line 652 "colorbar/saolex.C" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -652,7 +667,7 @@ yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -662,9 +677,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 86 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 85 ); @@ -843,7 +858,7 @@ #line 99 "colorbar/saolex.L" ECHO; YY_BREAK -#line 847 "colorbar/saolex.C" +#line 861 "colorbar/saolex.C" case YY_END_OF_BUFFER: { @@ -866,7 +881,7 @@ * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -973,14 +988,33 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. */ -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::ctor_common() { - yyin = arg_yyin; - yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; @@ -997,7 +1031,7 @@ yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -1010,23 +1044,36 @@ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; - lifree(yy_start_stack ); + yyfree( yy_start_stack ); yy_delete_buffer( YY_CURRENT_BUFFER ); - lifree(yy_buffer_stack ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } + if( ! new_in ) { + new_in = &yyin; + } - if ( new_out ) - yyout = new_out; + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); } #ifdef YY_INTERACTIVE @@ -1035,33 +1082,33 @@ size_t yyFlexLexer::LexerInput( char* buf, size_t max_size ) #endif { - if ( yyin->eof() || yyin->fail() ) + if ( yyin.eof() || yyin.fail() ) return 0; #ifdef YY_INTERACTIVE - yyin->get( buf[0] ); + yyin.get( buf[0] ); - if ( yyin->eof() ) + if ( yyin.eof() ) return 0; - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; return 1; #else - (void) yyin->read( buf, max_size ); + (void) yyin.read( buf, max_size ); - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; else - return yyin->gcount(); + return yyin.gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, size_t size ) { - (void) yyout->write( buf, size ); + (void) yyout.write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer @@ -1073,9 +1120,9 @@ */ int yyFlexLexer::yy_get_next_buffer() { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1104,7 +1151,7 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1124,7 +1171,7 @@ { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); @@ -1140,11 +1187,12 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - lirealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1186,12 +1234,15 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) lirealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1207,14 +1258,14 @@ yy_state_type yyFlexLexer::yy_get_previous_state() { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1224,9 +1275,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 86 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1239,10 +1290,10 @@ */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1252,17 +1303,18 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 86 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 85); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - void yyFlexLexer::yyunput( int c, register char* yy_bp) +#ifndef YY_NO_UNPUT + void yyFlexLexer::yyunput( int c, char* yy_bp) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -1272,10 +1324,10 @@ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -1284,7 +1336,7 @@ yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -1296,6 +1348,7 @@ (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } +#endif int yyFlexLexer::yyinput() { @@ -1369,7 +1422,7 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void yyFlexLexer::yyrestart( std::istream* input_file ) + void yyFlexLexer::yyrestart( std::istream& input_file ) { if ( ! YY_CURRENT_BUFFER ){ @@ -1382,6 +1435,19 @@ yy_load_buffer_state( ); } +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -1421,7 +1487,7 @@ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); (yy_hold_char) = *(yy_c_buf_p); } @@ -1431,11 +1497,11 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) lialloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1444,7 +1510,7 @@ /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) lialloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1455,6 +1521,17 @@ return b; } +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -1469,23 +1546,23 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - lifree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - lifree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) { int oerrno = errno; yy_flush_buffer( b ); - b->yy_input_file = file; + b->yy_input_file = file.rdbuf(); b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -1593,15 +1670,15 @@ * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)lialloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -1610,10 +1687,10 @@ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)lirealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -1626,20 +1703,21 @@ } } - void yyFlexLexer::yy_push_state( int new_state ) + void yyFlexLexer::yy_push_state( int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) lialloc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) lirealloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -1647,7 +1725,7 @@ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } void yyFlexLexer::yy_pop_state() @@ -1667,7 +1745,7 @@ #define YY_EXIT_FAILURE 2 #endif -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( const char* msg ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); @@ -1680,7 +1758,7 @@ do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -1697,18 +1775,19 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -1716,13 +1795,14 @@ } #endif -void *lialloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *lirealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -1730,12 +1810,12 @@ * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void lifree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see lirealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -1743,7 +1823,6 @@ #line 99 "colorbar/saolex.L" - void liDiscard(int doit) { if (lilexx) diff -Nru saods9-8.2+repack/tksao/colorbar/saolex.L saods9-8.3+repack/tksao/colorbar/saolex.L --- saods9-8.2+repack/tksao/colorbar/saolex.L 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/saolex.L 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ diff -Nru saods9-8.2+repack/tksao/colorbar/saoparser.Y saods9-8.3+repack/tksao/colorbar/saoparser.Y --- saods9-8.2+repack/tksao/colorbar/saoparser.Y 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/colorbar/saoparser.Y 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/configure saods9-8.3+repack/tksao/configure --- saods9-8.2+repack/tksao/configure 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/configure 2021-11-08 15:46:07.000000000 +0000 @@ -1,9 +1,10 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for tksao 1.0. +# Generated by GNU Autoconf 2.71 for tksao 1.0. # # -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Inc. # # # This configure script is free software; the Free Software Foundation @@ -14,14 +15,16 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else +else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -31,46 +34,46 @@ fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || @@ -79,13 +82,6 @@ fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( @@ -94,8 +90,12 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS @@ -107,30 +107,10 @@ as_myself=$0 fi if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. @@ -152,20 +132,22 @@ exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + as_bourne_compatible="as_nop=: +if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST -else +else \$as_nop case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( @@ -185,42 +167,53 @@ as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : +if ( set x; as_fn_ret_success y && test x = \"\$1\" ) +then : -else +else \$as_nop exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 +blah=\$(echo \$(echo blah)) +test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : + if (eval "$as_required") 2>/dev/null +then : as_have_required=yes -else +else $as_nop as_have_required=no fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null +then : -else +else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base + as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null +then : break 2 fi fi @@ -228,14 +221,21 @@ esac as_found=false done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi +fi - if test "x$CONFIG_SHELL" != x; then : + if test "x$CONFIG_SHELL" != x +then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also @@ -253,18 +253,19 @@ exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." + if test x$as_have_required = xno +then : + printf "%s\n" "$0: This script requires a shell more modern than all" + printf "%s\n" "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then + printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, + printf "%s\n" "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." @@ -291,6 +292,7 @@ } as_unset=as_fn_unset + # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -308,6 +310,14 @@ as_fn_set_status $1 exit $1 } # as_fn_exit +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop # as_fn_mkdir_p # ------------- @@ -322,7 +332,7 @@ as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -331,7 +341,7 @@ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -370,12 +380,13 @@ # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : eval 'as_fn_append () { eval $1+=\$2 }' -else +else $as_nop as_fn_append () { eval $1=\$$1\$2 @@ -387,18 +398,27 @@ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else +else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- @@ -410,9 +430,9 @@ as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -439,7 +459,7 @@ $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -483,7 +503,7 @@ s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall @@ -497,6 +517,10 @@ exit } + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -510,6 +534,13 @@ ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -584,40 +615,36 @@ # Factoring default headers for most tests. ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include +#include +#ifdef HAVE_STDIO_H +# include #endif -#ifdef STDC_HEADERS +#ifdef HAVE_STDLIB_H # include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif #endif #ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif # include #endif -#ifdef HAVE_STRINGS_H -# include -#endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif #ifdef HAVE_UNISTD_H # include #endif" +ac_header_c_list= ac_subst_vars='LTLIBOBJS LIBOBJS PATCHLEVEL @@ -629,6 +656,8 @@ tksao_BUILD_STUB_LIB_SPEC tksao_LIB_SPEC tksao_BUILD_LIB_SPEC +XML2_LIBS +XML2_CFLAGS WISH_PROG TCLSH_PROG VC_MANIFEST_EMBED_EXE @@ -638,6 +667,8 @@ MAKE_STATIC_LIB MAKE_SHARED_LIB MAKE_LIB +EGREP +GREP TCL_DBGX LDFLAGS_DEFAULT CFLAGS_DEFAULT @@ -665,8 +696,6 @@ ac_ct_CXX CXXFLAGS CXX -EGREP -GREP RANLIB SET_MAKE CPP @@ -739,6 +768,7 @@ docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -775,6 +805,7 @@ enable_wince with_celib enable_symbols +with_xml2_config ' ac_precious_vars='build_alias host_alias @@ -827,6 +858,7 @@ sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -856,8 +888,6 @@ *) ac_optarg=yes ;; esac - # Accept the important Cygnus configure options, so we can diagnose typos. - case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; @@ -898,9 +928,9 @@ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -924,9 +954,9 @@ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -1079,6 +1109,15 @@ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1128,9 +1167,9 @@ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1144,9 +1183,9 @@ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1190,9 +1229,9 @@ *) # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; @@ -1208,7 +1247,7 @@ case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1216,7 +1255,7 @@ for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1272,7 +1311,7 @@ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | +printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1369,6 +1408,7 @@ --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1422,6 +1462,7 @@ --with-tkinclude directory containing the public Tk header files --with-x use the X Window System --with-celib=DIR use Windows/CE support library from DIR + --with-xml2-config the xml2-config configuration script Some influential environment variables: CC C compiler command @@ -1455,9 +1496,9 @@ case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -1485,7 +1526,8 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. + # Check for configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive @@ -1493,7 +1535,7 @@ echo && $SHELL "$ac_srcdir/configure" --help=recursive else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done @@ -1503,9 +1545,9 @@ if $ac_init_version; then cat <<\_ACEOF tksao configure 1.0 -generated by GNU Autoconf 2.69 +generated by GNU Autoconf 2.71 -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1522,14 +1564,14 @@ ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext + rm -f conftest.$ac_objext conftest.beam 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 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1537,14 +1579,15 @@ cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest.$ac_objext; then : + } && test -s conftest.$ac_objext +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1566,7 +1609,7 @@ *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1574,14 +1617,15 @@ cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$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 : + } +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1593,8 +1637,8 @@ # ac_fn_c_try_run LINENO # ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. +# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that +# executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack @@ -1604,25 +1648,26 @@ *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$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 : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } +then : ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: program exited with status $ac_status" >&5 + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status @@ -1640,26 +1685,28 @@ ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : eval "$3=yes" -else +else $as_nop eval "$3=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile @@ -1670,14 +1717,14 @@ ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext + rm -f conftest.$ac_objext conftest.beam 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 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1685,14 +1732,15 @@ cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err - } && test -s conftest.$ac_objext; then : + } && test -s conftest.$ac_objext +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1702,107 +1750,20 @@ } # ac_fn_cxx_try_compile -# ac_fn_c_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 () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_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;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_mongrel - # 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 + rm -f conftest.$ac_objext conftest.beam 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 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1810,17 +1771,18 @@ cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$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 : + } +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1841,11 +1803,12 @@ ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. @@ -1853,16 +1816,9 @@ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif + which can conflict with char $2 (); below. */ +#include #undef $2 /* Override any GCC internal prototype to avoid an error. @@ -1880,35 +1836,56 @@ #endif int -main () +main (void) { return $2 (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : eval "$3=yes" -else +else $as_nop eval "$3=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func +ac_configure_args_raw= +for ac_arg +do + case $ac_arg in + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_configure_args_raw " '$ac_arg'" +done + +case $ac_configure_args_raw in + *$as_nl*) + ac_safe_unquote= ;; + *) + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" + ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; +esac + 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 tksao $as_me 1.0, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.71. Invocation command line was - $ $0 $@ + $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log @@ -1941,8 +1918,12 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS @@ -1977,7 +1958,7 @@ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; @@ -2012,11 +1993,13 @@ # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? + # Sanitize IFS. + IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo - $as_echo "## ---------------- ## + printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo @@ -2027,8 +2010,8 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -2052,7 +2035,7 @@ ) echo - $as_echo "## ----------------- ## + printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo @@ -2060,14 +2043,14 @@ do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## + printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo @@ -2075,15 +2058,15 @@ do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then - $as_echo "## ----------- ## + printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo @@ -2091,8 +2074,8 @@ echo fi test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" + printf "%s\n" "$as_me: caught signal $ac_signal" + printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && @@ -2106,63 +2089,48 @@ # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h -$as_echo "/* confdefs.h */" > confdefs.h +printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF +printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF +printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF +printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF +printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF +printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF +printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac + ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site + ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site + ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" + +for ac_site_file in $ac_site_files do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} + case $ac_site_file in #( + */*) : + ;; #( + *) : + ac_site_file=./$ac_site_file ;; +esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi @@ -2172,136 +2140,675 @@ # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## +# Test code for whether the C compiler supports C89 (global declarations) +ac_c_conftest_c89_globals=' +/* Does the compiler advertise C89 conformance? + Do not test the value of __STDC__, because some compilers set it to 0 + while being otherwise adequately conformant. */ +#if !defined __STDC__ +# error "Compiler does not advertise C89 conformance" +#endif -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 +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ +struct buf { int x; }; +struct buf * (*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 do not provoke an error unfortunately, instead are silently treated + as an "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 is necessary to write \x00 == 0 to get something + that is 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]; -#-------------------------------------------------------------------- -# Call TEA_INIT as the first TEA_ macro to set up initial vars. -# This will define a ${TEA_PLATFORM} variable == "unix" or "windows" -# as well as PKG_LIB_FILE and PKG_STUB_LIB_FILE. -#-------------------------------------------------------------------- +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), + int, int);' +# Test code for whether the C compiler supports C89 (body of main). +ac_c_conftest_c89_main=' +ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); +' - TEA_VERSION="3.13" +# Test code for whether the C compiler supports C99 (global declarations) +ac_c_conftest_c99_globals=' +// Does the compiler advertise C99 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L +# error "Compiler does not advertise C99 conformance" +#endif - { $as_echo "$as_me:${as_lineno-$LINENO}: checking TEA configuration" >&5 -$as_echo_n "checking TEA configuration... " >&6; } - if test x"${PACKAGE_NAME}" = x ; then - as_fn_error $? " -The PACKAGE_NAME variable must be defined by your TEA configure.ac" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok (TEA ${TEA_VERSION})" >&5 -$as_echo "ok (TEA ${TEA_VERSION})" >&6; } +#include +extern int puts (const char *); +extern int printf (const char *, ...); +extern int dprintf (int, const char *, ...); +extern void *malloc (size_t); + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +// dprintf is used instead of fprintf to avoid needing to declare +// FILE and stderr. +#define debug(...) dprintf (2, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + #error "your preprocessor is broken" +#endif +#if BIG_OK +#else + #error "your preprocessor is broken" +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; - # If the user did not set CFLAGS, set it now to keep macros - # like AC_PROG_CC and AC_TRY_COMPILE from adding "-g -O2". - if test "${CFLAGS+set}" != "set" ; then - CFLAGS="" - fi +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) + continue; + return 0; +} - case "`uname -s`" in - *win32*|*WIN32*|*MINGW32_*|*MINGW64_*) - # Extract the first word of "cygpath", so it can be a program name with args. -set dummy cygpath; 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_CYGPATH+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CYGPATH"; then - ac_cv_prog_CYGPATH="$CYGPATH" # 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_CYGPATH="cygpath -m" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case '\''s'\'': // string + str = va_arg (args_copy, const char *); + break; + case '\''d'\'': // int + number = va_arg (args_copy, int); + break; + case '\''f'\'': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +' + +# Test code for whether the C compiler supports C99 (body of main). +ac_c_conftest_c99_main=' + // Check bool. + _Bool success = false; + success |= (argc != 0); + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[0] = argv[0][0]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' + || dynamic_array[ni.number - 1] != 543); +' + +# Test code for whether the C compiler supports C11 (global declarations) +ac_c_conftest_c11_globals=' +// Does the compiler advertise C11 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L +# error "Compiler does not advertise C11 conformance" +#endif + +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +' + +# Test code for whether the C compiler supports C11 (body of main). +ac_c_conftest_c11_main=' + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + v1.i = 2; + v1.w.k = 5; + ok |= v1.i != 5; +' + +# Test code for whether the C compiler supports C11 (complete). +ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} +${ac_c_conftest_c11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + ${ac_c_conftest_c11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C99 (complete). +ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + return ok; +} +" + +# Test code for whether the C compiler supports C89 (complete). +ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + return ok; +} +" + +as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" +as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" +as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" +as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" +as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" +as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" +as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" +as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" +as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" +# Test code for whether the C++ compiler supports C++98 (global declarations) +ac_cxx_conftest_cxx98_globals=' +// Does the compiler advertise C++98 conformance? +#if !defined __cplusplus || __cplusplus < 199711L +# error "Compiler does not advertise C++98 conformance" +#endif + +// These inclusions are to reject old compilers that +// lack the unsuffixed header files. +#include +#include + +// and are *not* freestanding headers in C++98. +extern void assert (int); +namespace std { + extern int strcmp (const char *, const char *); +} + +// Namespaces, exceptions, and templates were all added after "C++ 2.0". +using std::exception; +using std::strcmp; + +namespace { + +void test_exception_syntax() +{ + try { + throw "test"; + } catch (const char *s) { + // Extra parentheses suppress a warning when building autoconf itself, + // due to lint rules shared with more typical C programs. + assert (!(strcmp) (s, "test")); + } +} + +template struct test_template +{ + T const val; + explicit test_template(T t) : val(t) {} + template T add(U u) { return static_cast(u) + val; } +}; + +} // anonymous namespace +' + +# Test code for whether the C++ compiler supports C++98 (body of main) +ac_cxx_conftest_cxx98_main=' + assert (argc); + assert (! argv[0]); +{ + test_exception_syntax (); + test_template tt (2.0); + assert (tt.add (4) == 6.0); + assert (true && !false); +} +' + +# Test code for whether the C++ compiler supports C++11 (global declarations) +ac_cxx_conftest_cxx11_globals=' +// Does the compiler advertise C++ 2011 conformance? +#if !defined __cplusplus || __cplusplus < 201103L +# error "Compiler does not advertise C++11 conformance" +#endif + +namespace cxx11test +{ + constexpr int get_val() { return 20; } + + struct testinit + { + int i; + double d; + }; + + class delegate + { + public: + delegate(int n) : n(n) {} + delegate(): delegate(2354) {} + + virtual int getval() { return this->n; }; + protected: + int n; + }; + + class overridden : public delegate + { + public: + overridden(int n): delegate(n) {} + virtual int getval() override final { return this->n * 2; } + }; + + class nocopy + { + public: + nocopy(int i): i(i) {} + nocopy() = default; + nocopy(const nocopy&) = delete; + nocopy & operator=(const nocopy&) = delete; + private: + int i; + }; + + // for testing lambda expressions + template Ret eval(Fn f, Ret v) + { + return f(v); + } + + // for testing variadic templates and trailing return types + template auto sum(V first) -> V + { + return first; + } + template auto sum(V first, Args... rest) -> V + { + return first + sum(rest...); + } +} +' + +# Test code for whether the C++ compiler supports C++11 (body of main) +ac_cxx_conftest_cxx11_main=' +{ + // Test auto and decltype + auto a1 = 6538; + auto a2 = 48573953.4; + auto a3 = "String literal"; + + int total = 0; + for (auto i = a3; *i; ++i) { total += *i; } + + decltype(a2) a4 = 34895.034; +} +{ + // Test constexpr + short sa[cxx11test::get_val()] = { 0 }; +} +{ + // Test initializer lists + cxx11test::testinit il = { 4323, 435234.23544 }; +} +{ + // Test range-based for + int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, + 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; + for (auto &x : array) { x += 23; } +} +{ + // Test lambda expressions + using cxx11test::eval; + assert (eval ([](int x) { return x*2; }, 21) == 42); + double d = 2.0; + assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); + assert (d == 5.0); + assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); + assert (d == 5.0); +} +{ + // Test use of variadic templates + using cxx11test::sum; + auto a = sum(1); + auto b = sum(1, 2); + auto c = sum(1.0, 2.0, 3.0); +} +{ + // Test constructor delegation + cxx11test::delegate d1; + cxx11test::delegate d2(); + cxx11test::delegate d3(45); +} +{ + // Test override and final + cxx11test::overridden o1(55464); +} +{ + // Test nullptr + char *c = nullptr; +} +{ + // Test template brackets + test_template<::test_template> v(test_template(12)); +} +{ + // Unicode literals + char const *utf8 = u8"UTF-8 string \u2500"; + char16_t const *utf16 = u"UTF-8 string \u2500"; + char32_t const *utf32 = U"UTF-32 string \u2500"; +} +' + +# Test code for whether the C compiler supports C++11 (complete). +ac_cxx_conftest_cxx11_program="${ac_cxx_conftest_cxx98_globals} +${ac_cxx_conftest_cxx11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_cxx_conftest_cxx98_main} + ${ac_cxx_conftest_cxx11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C++98 (complete). +ac_cxx_conftest_cxx98_program="${ac_cxx_conftest_cxx98_globals} +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_cxx_conftest_cxx98_main} + return ok; +} +" + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' + and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +#-------------------------------------------------------------------- +# Call TEA_INIT as the first TEA_ macro to set up initial vars. +# This will define a ${TEA_PLATFORM} variable == "unix" or "windows" +# as well as PKG_LIB_FILE and PKG_STUB_LIB_FILE. +#-------------------------------------------------------------------- + + + TEA_VERSION="3.13" + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking TEA configuration" >&5 +printf %s "checking TEA configuration... " >&6; } + if test x"${PACKAGE_NAME}" = x ; then + as_fn_error $? " +The PACKAGE_NAME variable must be defined by your TEA configure.ac" "$LINENO" 5 + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok (TEA ${TEA_VERSION})" >&5 +printf "%s\n" "ok (TEA ${TEA_VERSION})" >&6; } + + # If the user did not set CFLAGS, set it now to keep macros + # like AC_PROG_CC and AC_TRY_COMPILE from adding "-g -O2". + if test "${CFLAGS+set}" != "set" ; then + CFLAGS="" + fi + + case "`uname -s`" in + *win32*|*WIN32*|*MINGW32_*|*MINGW64_*) + # Extract the first word of "cygpath", so it can be a program name with args. +set dummy cygpath; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CYGPATH+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CYGPATH"; then + ac_cv_prog_CYGPATH="$CYGPATH" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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_CYGPATH="cygpath -m" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done done IFS=$as_save_IFS @@ -2310,11 +2817,11 @@ fi CYGPATH=$ac_cv_prog_CYGPATH if test -n "$CYGPATH"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CYGPATH" >&5 -$as_echo "$CYGPATH" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CYGPATH" >&5 +printf "%s\n" "$CYGPATH" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2350,8 +2857,8 @@ exec_prefix=$prefix fi - { $as_echo "$as_me:${as_lineno-$LINENO}: configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}" >&5 -$as_echo "$as_me: configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}" >&5 +printf "%s\n" "$as_me: configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}" >&6;} @@ -2380,11 +2887,12 @@ INSTALL_SCRIPT='${INSTALL} -m 755' - { $as_echo "$as_me:${as_lineno-$LINENO}: checking system version" >&5 -$as_echo_n "checking system version... " >&6; } -if ${tcl_cv_sys_version+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking system version" >&5 +printf %s "checking system version... " >&6; } +if test ${tcl_cv_sys_version+y} +then : + printf %s "(cached) " >&6 +else $as_nop # TEA specific: if test "${TEA_PLATFORM}" = "windows" ; then @@ -2392,8 +2900,8 @@ else tcl_cv_sys_version=`uname -s`-`uname -r` if test "$?" -ne 0 ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: can't find uname command" >&5 -$as_echo "$as_me: WARNING: can't find uname command" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: can't find uname command" >&5 +printf "%s\n" "$as_me: WARNING: can't find uname command" >&2;} tcl_cv_sys_version=unknown else if test "`uname -s`" = "AIX" ; then @@ -2403,8 +2911,8 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_sys_version" >&5 -$as_echo "$tcl_cv_sys_version" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_sys_version" >&5 +printf "%s\n" "$tcl_cv_sys_version" >&6; } system=$tcl_cv_sys_version case $system in @@ -2421,34 +2929,6 @@ -ac_aux_dir= -for ac_dir in tclconfig "$srcdir"/tclconfig; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in tclconfig \"$srcdir\"/tclconfig" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - #-------------------------------------------------------------------- @@ -2468,15 +2948,17 @@ no_tcl=true # Check whether --with-tcl was given. -if test "${with_tcl+set}" = set; then : +if test ${with_tcl+y} +then : withval=$with_tcl; with_tclconfig="${withval}" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tcl configuration" >&5 -$as_echo_n "checking for Tcl configuration... " >&6; } - if ${ac_cv_c_tclconfig+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Tcl configuration" >&5 +printf %s "checking for Tcl configuration... " >&6; } + if test ${ac_cv_c_tclconfig+y} +then : + printf %s "(cached) " >&6 +else $as_nop # First check to see if --with-tcl was specified. @@ -2484,8 +2966,8 @@ case "${with_tclconfig}" in */tclConfig.sh ) if test -f "${with_tclconfig}"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself" >&5 -$as_echo "$as_me: WARNING: --with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: --with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself" >&5 +printf "%s\n" "$as_me: WARNING: --with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself" >&2;} with_tclconfig="`echo "${with_tclconfig}" | sed 's!/tclConfig\.sh$!!'`" fi ;; esac @@ -2605,11 +3087,20 @@ else no_tcl= TCL_BIN_DIR="${ac_cv_c_tclconfig}" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found ${TCL_BIN_DIR}/tclConfig.sh" >&5 -$as_echo "found ${TCL_BIN_DIR}/tclConfig.sh" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found ${TCL_BIN_DIR}/tclConfig.sh" >&5 +printf "%s\n" "found ${TCL_BIN_DIR}/tclConfig.sh" >&6; } fi fi + + + + + + + + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -2618,11 +3109,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -2630,11 +3122,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2645,11 +3141,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2658,11 +3154,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -2670,11 +3167,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2685,11 +3186,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -2697,8 +3198,8 @@ 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -2711,11 +3212,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -2723,11 +3225,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2738,11 +3244,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2751,11 +3257,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -2764,15 +3271,19 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac 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 + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2788,18 +3299,18 @@ # 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+' '}$@" + 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2810,11 +3321,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -2822,11 +3334,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2837,11 +3353,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2854,11 +3370,12 @@ 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 : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -2866,11 +3383,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2881,11 +3402,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2897,8 +3418,8 @@ 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -2906,35 +3427,139 @@ fi fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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}clang" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 + +fi + + +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$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. +printf "%s\n" "$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 -version; 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\"" +printf "%s\n" "$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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -2942,7 +3567,7 @@ /* end confdefs.h. */ int -main () +main (void) { ; @@ -2954,9 +3579,9 @@ # 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[^ ]*//'` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +printf %s "checking whether the C compiler works... " >&6; } +ac_link_default=`printf "%s\n" "$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.*" @@ -2977,11 +3602,12 @@ *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$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 : + printf "%s\n" "$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, @@ -2998,7 +3624,7 @@ # certainly right. break;; *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi @@ -3014,44 +3640,46 @@ done test "$ac_cv_exeext" = no && ac_cv_exeext= -else +else $as_nop 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 +if test -z "$ac_file" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +printf "%s\n" "$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;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$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; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +printf %s "checking for C compiler default output file name... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf "%s\n" "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +printf %s "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 +printf "%s\n" "$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 : + printf "%s\n" "$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 @@ -3065,15 +3693,15 @@ * ) 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;} +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext @@ -3082,7 +3710,7 @@ /* end confdefs.h. */ #include int -main () +main (void) { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; @@ -3094,8 +3722,8 @@ 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in @@ -3103,10 +3731,10 @@ *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in @@ -3114,39 +3742,40 @@ *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf "%s\n" "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +printf %s "checking for suffix of object files... " >&6; } +if test ${ac_cv_objext+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -3160,11 +3789,12 @@ *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$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 : + printf "%s\n" "$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 @@ -3173,31 +3803,32 @@ break;; esac done -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$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;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf "%s\n" "$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_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __GNUC__ choke me @@ -3207,29 +3838,33 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else +else $as_nop ac_compiler_gnu=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi -ac_test_CFLAGS=${CFLAGS+set} +ac_test_CFLAGS=${CFLAGS+y} 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no @@ -3238,57 +3873,60 @@ /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes -else +else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -else +else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +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 +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then @@ -3303,94 +3941,144 @@ CFLAGS= fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=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]; +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi -/* 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]; +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi -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; -} +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +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 : + if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_c89=$ac_arg fi -rm -f core conftest.err conftest.$ac_objext +rm -f core conftest.err conftest.$ac_objext conftest.beam 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 : +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 +fi fi ac_ext=c @@ -3401,16 +4089,16 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for existence of ${TCL_BIN_DIR}/tclConfig.sh" >&5 -$as_echo_n "checking for existence of ${TCL_BIN_DIR}/tclConfig.sh... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for existence of ${TCL_BIN_DIR}/tclConfig.sh" >&5 +printf %s "checking for existence of ${TCL_BIN_DIR}/tclConfig.sh... " >&6; } if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: loading" >&5 -$as_echo "loading" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: loading" >&5 +printf "%s\n" "loading" >&6; } . "${TCL_BIN_DIR}/tclConfig.sh" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: could not find ${TCL_BIN_DIR}/tclConfig.sh" >&5 -$as_echo "could not find ${TCL_BIN_DIR}/tclConfig.sh" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: could not find ${TCL_BIN_DIR}/tclConfig.sh" >&5 +printf "%s\n" "could not find ${TCL_BIN_DIR}/tclConfig.sh" >&6; } fi # eval is required to do the TCL_DBGX substitution @@ -3469,14 +4157,14 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking platform" >&5 -$as_echo_n "checking platform... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking platform" >&5 +printf %s "checking platform... " >&6; } hold_cc=$CC; CC="$TCL_CC" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifdef _WIN32 @@ -3487,21 +4175,23 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : TEA_PLATFORM="unix" CYGPATH=echo -else +else $as_nop TEA_PLATFORM="windows" # Extract the first word of "cygpath", so it can be a program name with args. set dummy cygpath; 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_CYGPATH+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CYGPATH+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CYGPATH"; then ac_cv_prog_CYGPATH="$CYGPATH" # Let the user override the test. else @@ -3509,11 +4199,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CYGPATH="cygpath -m" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3525,27 +4219,25 @@ fi CYGPATH=$ac_cv_prog_CYGPATH if test -n "$CYGPATH"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CYGPATH" >&5 -$as_echo "$CYGPATH" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CYGPATH" >&5 +printf "%s\n" "$CYGPATH" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CC=$hold_cc - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEA_PLATFORM" >&5 -$as_echo "$TEA_PLATFORM" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $TEA_PLATFORM" >&5 +printf "%s\n" "$TEA_PLATFORM" >&6; } # The BUILD_$pkg is to define the correct extern storage class # handling when making this package -cat >>confdefs.h <<_ACEOF -#define BUILD_${PACKAGE_NAME} /**/ -_ACEOF +printf "%s\n" "#define BUILD_${PACKAGE_NAME} /**/" >>confdefs.h # Do this here as we have fully defined TEA_PLATFORM now if test "${TEA_PLATFORM}" = "windows" ; then @@ -3578,15 +4270,17 @@ no_tk=true # Check whether --with-tk was given. -if test "${with_tk+set}" = set; then : +if test ${with_tk+y} +then : withval=$with_tk; with_tkconfig="${withval}" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tk configuration" >&5 -$as_echo_n "checking for Tk configuration... " >&6; } - if ${ac_cv_c_tkconfig+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Tk configuration" >&5 +printf %s "checking for Tk configuration... " >&6; } + if test ${ac_cv_c_tkconfig+y} +then : + printf %s "(cached) " >&6 +else $as_nop # First check to see if --with-tkconfig was specified. @@ -3594,8 +4288,8 @@ case "${with_tkconfig}" in */tkConfig.sh ) if test -f "${with_tkconfig}"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --with-tk argument should refer to directory containing tkConfig.sh, not to tkConfig.sh itself" >&5 -$as_echo "$as_me: WARNING: --with-tk argument should refer to directory containing tkConfig.sh, not to tkConfig.sh itself" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: --with-tk argument should refer to directory containing tkConfig.sh, not to tkConfig.sh itself" >&5 +printf "%s\n" "$as_me: WARNING: --with-tk argument should refer to directory containing tkConfig.sh, not to tkConfig.sh itself" >&2;} with_tkconfig="`echo "${with_tkconfig}" | sed 's!/tkConfig\.sh$!!'`" fi ;; esac @@ -3715,22 +4409,22 @@ else no_tk= TK_BIN_DIR="${ac_cv_c_tkconfig}" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found ${TK_BIN_DIR}/tkConfig.sh" >&5 -$as_echo "found ${TK_BIN_DIR}/tkConfig.sh" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found ${TK_BIN_DIR}/tkConfig.sh" >&5 +printf "%s\n" "found ${TK_BIN_DIR}/tkConfig.sh" >&6; } fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for existence of ${TK_BIN_DIR}/tkConfig.sh" >&5 -$as_echo_n "checking for existence of ${TK_BIN_DIR}/tkConfig.sh... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for existence of ${TK_BIN_DIR}/tkConfig.sh" >&5 +printf %s "checking for existence of ${TK_BIN_DIR}/tkConfig.sh... " >&6; } if test -f "${TK_BIN_DIR}/tkConfig.sh" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: loading" >&5 -$as_echo "loading" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: loading" >&5 +printf "%s\n" "loading" >&6; } . "${TK_BIN_DIR}/tkConfig.sh" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: could not find ${TK_BIN_DIR}/tkConfig.sh" >&5 -$as_echo "could not find ${TK_BIN_DIR}/tkConfig.sh" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: could not find ${TK_BIN_DIR}/tkConfig.sh" >&5 +printf "%s\n" "could not find ${TK_BIN_DIR}/tkConfig.sh" >&6; } fi # eval is required to do the TK_DBGX substitution @@ -3781,7 +4475,7 @@ case ${TK_DEFS} in *MAC_OSX_TK*) -$as_echo "#define MAC_OSX_TK 1" >>confdefs.h +printf "%s\n" "#define MAC_OSX_TK 1" >>confdefs.h TEA_WINDOWINGSYSTEM="aqua" ;; @@ -3819,24 +4513,24 @@ if test "${prefix}" = "NONE"; then prefix_default=yes if test x"${TCL_PREFIX}" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: --prefix defaulting to TCL_PREFIX ${TCL_PREFIX}" >&5 -$as_echo "$as_me: --prefix defaulting to TCL_PREFIX ${TCL_PREFIX}" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: --prefix defaulting to TCL_PREFIX ${TCL_PREFIX}" >&5 +printf "%s\n" "$as_me: --prefix defaulting to TCL_PREFIX ${TCL_PREFIX}" >&6;} prefix=${TCL_PREFIX} else - { $as_echo "$as_me:${as_lineno-$LINENO}: --prefix defaulting to /usr/local" >&5 -$as_echo "$as_me: --prefix defaulting to /usr/local" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: --prefix defaulting to /usr/local" >&5 +printf "%s\n" "$as_me: --prefix defaulting to /usr/local" >&6;} prefix=/usr/local fi fi if test "${exec_prefix}" = "NONE" -a x"${prefix_default}" = x"yes" \ -o x"${exec_prefix_default}" = x"yes" ; then if test x"${TCL_EXEC_PREFIX}" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: --exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}" >&5 -$as_echo "$as_me: --exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: --exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}" >&5 +printf "%s\n" "$as_me: --exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}" >&6;} exec_prefix=${TCL_EXEC_PREFIX} else - { $as_echo "$as_me:${as_lineno-$LINENO}: --exec-prefix defaulting to ${prefix}" >&5 -$as_echo "$as_me: --exec-prefix defaulting to ${prefix}" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: --exec-prefix defaulting to ${prefix}" >&5 +printf "%s\n" "$as_me: --exec-prefix defaulting to ${prefix}" >&6;} exec_prefix=$prefix fi fi @@ -3861,11 +4555,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3873,11 +4568,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3888,11 +4587,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3901,11 +4600,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -3913,11 +4613,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3928,11 +4632,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -3940,8 +4644,8 @@ 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -3954,11 +4658,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3966,11 +4671,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3981,11 +4690,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3994,11 +4703,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -4007,15 +4717,19 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac 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 + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4031,18 +4745,18 @@ # 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+' '}$@" + 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4053,11 +4767,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -4065,11 +4780,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4080,11 +4799,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4097,11 +4816,12 @@ 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 : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -4109,11 +4829,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4124,11 +4848,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4140,8 +4864,8 @@ 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -4149,25 +4873,129 @@ fi fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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}clang" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +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;} + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 + +fi + + +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$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 +printf "%s\n" "$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 +for ac_option in --version -v -V -qversion -version; 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 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -4177,20 +5005,21 @@ cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$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_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __GNUC__ choke me @@ -4200,29 +5029,33 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else +else $as_nop ac_compiler_gnu=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi -ac_test_CFLAGS=${CFLAGS+set} +ac_test_CFLAGS=${CFLAGS+y} 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no @@ -4231,57 +5064,60 @@ /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes -else +else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -else +else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +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 +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then @@ -4296,94 +5132,144 @@ CFLAGS= fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=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]; +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi -/* 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]; +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi -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; -} +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +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 : + if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_c89=$ac_arg fi -rm -f core conftest.err conftest.$ac_objext +rm -f core conftest.err conftest.$ac_objext conftest.beam 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 : +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 +fi fi ac_ext=c @@ -4397,40 +5283,36 @@ 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +printf %s "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" + if test ${ac_cv_prog_CPP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Double quotes because $CC needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" 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 +#include Syntax error _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_cpp "$LINENO" +then : -else +else $as_nop # Broken: fails on valid input. continue fi @@ -4442,10 +5324,11 @@ /* end confdefs.h. */ #include _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_cpp "$LINENO" +then : # Broken: success on invalid input. continue -else +else $as_nop # Passes both tests. ac_preproc_ok=: break @@ -4455,7 +5338,8 @@ 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 : +if $ac_preproc_ok +then : break fi @@ -4467,29 +5351,24 @@ else ac_cv_prog_CPP=$CPP fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +printf "%s\n" "$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 +#include Syntax error _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_cpp "$LINENO" +then : -else +else $as_nop # Broken: fails on valid input. continue fi @@ -4501,10 +5380,11 @@ /* end confdefs.h. */ #include _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_cpp "$LINENO" +then : # Broken: success on invalid input. continue -else +else $as_nop # Passes both tests. ac_preproc_ok=: break @@ -4514,11 +5394,12 @@ 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 : +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;} +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$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 @@ -4534,13 +5415,14 @@ # Checks to see if the make program sets the $MAKE variable. #-------------------------------------------------------------------- - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else +ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval test \${ac_cv_prog_make_${ac_make}_set+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @@ -4556,12 +5438,12 @@ rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } SET_MAKE= else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -4573,11 +5455,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else @@ -4585,11 +5468,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4600,11 +5487,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +printf "%s\n" "$RANLIB" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4613,11 +5500,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else @@ -4625,11 +5513,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4640,296 +5532,65 @@ 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 - - - #-------------------------------------------------------------------- - # Determines the correct binary file extension (.o, .obj, .exe etc.) - #-------------------------------------------------------------------- - - - - - -{ $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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +printf "%s\n" "$ac_ct_RANLIB" >&6; } else - ac_cv_path_GREP=$GREP -fi - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } 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" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : + if test "x$ac_ct_RANLIB" = x; then + RANLIB="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi else - ac_cv_header_stdc=no + RANLIB="$ac_cv_prog_RANLIB" fi -rm -f conftest* -fi -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include + #-------------------------------------------------------------------- + # Determines the correct binary file extension (.o, .obj, .exe etc.) + #-------------------------------------------------------------------- -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : -else - ac_cv_header_stdc=no -fi -rm -f conftest* -fi -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif +ac_header= ac_cache= +for ac_item in $ac_header_c_list +do + if test $ac_cache; then + ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then + printf "%s\n" "#define $ac_item 1" >> confdefs.h + fi + ac_header= ac_cache= + elif test $ac_header; then + ac_cache=$ac_item + else + ac_header=$ac_item + fi +done -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then -$as_echo "#define STDC_HEADERS 1" >>confdefs.h -fi -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF -fi -done +if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +then : +printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h +fi # Any macros that use the compiler (e.g. AC_TRY_COMPILE) have to go here. @@ -4940,34 +5601,36 @@ #------------------------------------------------------------------------ if test -z "$no_pipe" -a -n "$GCC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the compiler understands -pipe" >&5 -$as_echo_n "checking if the compiler understands -pipe... " >&6; } -if ${tcl_cv_cc_pipe+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the compiler understands -pipe" >&5 +printf %s "checking if the compiler understands -pipe... " >&6; } +if test ${tcl_cv_cc_pipe+y} +then : + printf %s "(cached) " >&6 +else $as_nop hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -pipe" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_cc_pipe=yes -else +else $as_nop tcl_cv_cc_pipe=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$hold_cflags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_pipe" >&5 -$as_echo "$tcl_cv_cc_pipe" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_pipe" >&5 +printf "%s\n" "$tcl_cv_cc_pipe" >&6; } if test $tcl_cv_cc_pipe = yes; then CFLAGS="$CFLAGS -pipe" fi @@ -4977,11 +5640,12 @@ # Common compiler flag setup #-------------------------------------------------------------------- - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +printf %s "checking whether byte ordering is bigendian... " >&6; } +if test ${ac_cv_c_bigendian+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4992,7 +5656,8 @@ typedef int dummy; _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. @@ -5016,7 +5681,7 @@ fi done fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5025,7 +5690,7 @@ #include int -main () +main (void) { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ @@ -5037,7 +5702,8 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -5045,7 +5711,7 @@ #include int -main () +main (void) { #if BYTE_ORDER != BIG_ENDIAN not big endian @@ -5055,14 +5721,15 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_c_bigendian=yes -else +else $as_nop ac_cv_c_bigendian=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). @@ -5071,7 +5738,7 @@ #include int -main () +main (void) { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros @@ -5081,14 +5748,15 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { #ifndef _BIG_ENDIAN not big endian @@ -5098,31 +5766,33 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_c_bigendian=yes -else +else $as_nop ac_cv_c_bigendian=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # Compile a test program. - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes +then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -short int ascii_mm[] = +unsigned short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = + unsigned short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } - short int ebcdic_ii[] = + unsigned short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = + unsigned short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; @@ -5130,14 +5800,15 @@ extern int foo; int -main () +main (void) { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi @@ -5150,13 +5821,13 @@ fi fi fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int -main () +main (void) { /* Are we little or big endian? From Harbison&Steele. */ @@ -5172,9 +5843,10 @@ return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_c_bigendian=no -else +else $as_nop ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -5183,17 +5855,17 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +printf "%s\n" "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) - $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h + printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h ;; #( no) ;; #( universal) -$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h +printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) @@ -5204,7 +5876,13 @@ if test "${TEA_PLATFORM}" != "windows" ; then - ac_ext=cpp + + + + + + +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' @@ -5214,15 +5892,16 @@ 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 + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else @@ -5230,11 +5909,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5245,11 +5928,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +printf "%s\n" "$CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5258,15 +5941,16 @@ 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 + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else @@ -5274,11 +5958,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5289,11 +5977,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +printf "%s\n" "$ac_ct_CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5305,8 +5993,8 @@ 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX @@ -5316,7 +6004,7 @@ fi fi # Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +printf "%s\n" "$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 @@ -5326,7 +6014,7 @@ *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -5336,20 +6024,21 @@ cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5 +printf %s "checking whether the compiler supports GNU C++... " >&6; } +if test ${ac_cv_cxx_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __GNUC__ choke me @@ -5359,29 +6048,33 @@ return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else +else $as_nop ac_compiler_gnu=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 -$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi -ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_test_CXXFLAGS=${CXXFLAGS+y} 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +printf %s "checking whether $CXX accepts -g... " >&6; } +if test ${ac_cv_prog_cxx_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no @@ -5390,57 +6083,60 @@ /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO" +then : ac_cv_prog_cxx_g=yes -else +else $as_nop CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO" +then : -else +else $as_nop ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +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 +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +printf "%s\n" "$ac_cv_prog_cxx_g" >&6; } +if test $ac_test_CXXFLAGS; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then @@ -5455,6 +6151,100 @@ CXXFLAGS= fi fi +ac_prog_cxx_stdcxx=no +if test x$ac_prog_cxx_stdcxx = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5 +printf %s "checking for $CXX option to enable C++11 features... " >&6; } +if test ${ac_cv_prog_cxx_11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cxx_11=no +ac_save_CXX=$CXX +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_cxx_conftest_cxx11_program +_ACEOF +for ac_arg in '' -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x -qlanglvl=extended0x -AA +do + CXX="$ac_save_CXX $ac_arg" + if ac_fn_cxx_try_compile "$LINENO" +then : + ac_cv_prog_cxx_cxx11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cxx_cxx11" != "xno" && break +done +rm -f conftest.$ac_ext +CXX=$ac_save_CXX +fi + +if test "x$ac_cv_prog_cxx_cxx11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cxx_cxx11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5 +printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; } + CXX="$CXX $ac_cv_prog_cxx_cxx11" +fi + ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11 + ac_prog_cxx_stdcxx=cxx11 +fi +fi +if test x$ac_prog_cxx_stdcxx = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5 +printf %s "checking for $CXX option to enable C++98 features... " >&6; } +if test ${ac_cv_prog_cxx_98+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cxx_98=no +ac_save_CXX=$CXX +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_cxx_conftest_cxx98_program +_ACEOF +for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA +do + CXX="$ac_save_CXX $ac_arg" + if ac_fn_cxx_try_compile "$LINENO" +then : + ac_cv_prog_cxx_cxx98=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cxx_cxx98" != "xno" && break +done +rm -f conftest.$ac_ext +CXX=$ac_save_CXX +fi + +if test "x$ac_cv_prog_cxx_cxx98" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cxx_cxx98" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5 +printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; } + CXX="$CXX $ac_cv_prog_cxx_cxx98" +fi + ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98 + ac_prog_cxx_stdcxx=cxx98 +fi +fi + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -5683,10 +6473,30 @@ done +case $system in + Darwin* ) + case `arch` in + arm64) + + PKG_CFLAGS="$PKG_CFLAGS -DNOSIGBUS" + + + ;; + *) + + PKG_CFLAGS="$PKG_CFLAGS " + + + ;; + esac + ;; + *) PKG_CFLAGS="$PKG_CFLAGS " + ;; +esac vars="" for i in $vars; do @@ -5723,27 +6533,6 @@ -case ${TEA_PLATFORM} in - windows*) - $as_echo "#define HAVE_MINGW32 1" >>confdefs.h - - ;; - *) - for ac_header in sys/shm.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "sys/shm.h" "ac_cv_header_sys_shm_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_shm_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SYS_SHM_H 1 -_ACEOF - -fi - -done - - ;; -esac - #-------------------------------------------------------------------- # __CHANGE__ # @@ -5757,11 +6546,12 @@ #-------------------------------------------------------------------- - { $as_echo "$as_me:${as_lineno-$LINENO}: checking system version" >&5 -$as_echo_n "checking system version... " >&6; } -if ${tcl_cv_sys_version+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking system version" >&5 +printf %s "checking system version... " >&6; } +if test ${tcl_cv_sys_version+y} +then : + printf %s "(cached) " >&6 +else $as_nop # TEA specific: if test "${TEA_PLATFORM}" = "windows" ; then @@ -5769,8 +6559,8 @@ else tcl_cv_sys_version=`uname -s`-`uname -r` if test "$?" -ne 0 ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: can't find uname command" >&5 -$as_echo "$as_me: WARNING: can't find uname command" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: can't find uname command" >&5 +printf "%s\n" "$as_me: WARNING: can't find uname command" >&2;} tcl_cv_sys_version=unknown else if test "`uname -s`" = "AIX" ; then @@ -5780,67 +6570,11 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_sys_version" >&5 -$as_echo "$tcl_cv_sys_version" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_sys_version" >&5 +printf "%s\n" "$tcl_cv_sys_version" >&6; } system=$tcl_cv_sys_version -case $system in - Darwin* ) - devdir=`xcrun --show-sdk-path` - - vars="-I${devdir}/usr/include/libxml2" - for i in $vars; do - PKG_INCLUDES="$PKG_INCLUDES $i" - done - - - ;; - CYGWIN* ) - - vars="-I/usr/include/libxml2" - for i in $vars; do - PKG_INCLUDES="$PKG_INCLUDES $i" - done - - - ;; - Linux* ) - - vars="-I/usr/include/libxml2" - for i in $vars; do - PKG_INCLUDES="$PKG_INCLUDES $i" - done - - - ;; - FreeBSD* ) - - vars="-I/usr/local/include/libxml2" - for i in $vars; do - PKG_INCLUDES="$PKG_INCLUDES $i" - done - - - ;; - windows*) - - vars="-I${prefix}/include/libxml2" - for i in $vars; do - PKG_INCLUDES="$PKG_INCLUDES $i" - done - - - ;; -esac - -#CLEANFILES="$CLEANFILES pkgIndex.tcl" -#if test "${TEA_PLATFORM}" = "windows" ; then -# TEA_ADD_INCLUDES([-I${prefix}/include/libxml2]) -#else -# TEA_ADD_INCLUDES([-I/usr/include/libxml2]) -#fi - #-------------------------------------------------------------------- # __CHANGE__ # Choose which headers you need. Extension authors should try very @@ -5851,19 +6585,21 @@ #-------------------------------------------------------------------- - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tcl public headers" >&5 -$as_echo_n "checking for Tcl public headers... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Tcl public headers" >&5 +printf %s "checking for Tcl public headers... " >&6; } # Check whether --with-tclinclude was given. -if test "${with_tclinclude+set}" = set; then : +if test ${with_tclinclude+y} +then : withval=$with_tclinclude; with_tclinclude=${withval} fi - if ${ac_cv_c_tclh+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${ac_cv_c_tclh+y} +then : + printf %s "(cached) " >&6 +else $as_nop # Use the value from --with-tclinclude, if it was given @@ -5922,8 +6658,8 @@ if test x"${ac_cv_c_tclh}" = x ; then as_fn_error $? "tcl.h not found. Please specify its location with --with-tclinclude" "$LINENO" 5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_c_tclh}" >&5 -$as_echo "${ac_cv_c_tclh}" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_c_tclh}" >&5 +printf "%s\n" "${ac_cv_c_tclh}" >&6; } fi # Convert to a native path and substitute into the output files. @@ -5937,19 +6673,21 @@ #TEA_PRIVATE_TCL_HEADERS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tk public headers" >&5 -$as_echo_n "checking for Tk public headers... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Tk public headers" >&5 +printf %s "checking for Tk public headers... " >&6; } # Check whether --with-tkinclude was given. -if test "${with_tkinclude+set}" = set; then : +if test ${with_tkinclude+y} +then : withval=$with_tkinclude; with_tkinclude=${withval} fi - if ${ac_cv_c_tkh+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${ac_cv_c_tkh+y} +then : + printf %s "(cached) " >&6 +else $as_nop # Use the value from --with-tkinclude, if it was given @@ -6011,8 +6749,8 @@ if test x"${ac_cv_c_tkh}" = x ; then as_fn_error $? "tk.h not found. Please specify its location with --with-tkinclude" "$LINENO" 5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_c_tkh}" >&5 -$as_echo "${ac_cv_c_tkh}" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_c_tkh}" >&5 +printf "%s\n" "${ac_cv_c_tkh}" >&6; } fi # Convert to a native path and substitute into the output files. @@ -6025,22 +6763,22 @@ if test "${TEA_WINDOWINGSYSTEM}" != "x11"; then # On Windows and Aqua, we need the X compat headers - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X11 header files" >&5 -$as_echo_n "checking for X11 header files... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for X11 header files" >&5 +printf %s "checking for X11 header files... " >&6; } if test ! -r "${INCLUDE_DIR_NATIVE}/X11/Xlib.h"; then INCLUDE_DIR_NATIVE="`${CYGPATH} ${TK_SRC_DIR}/xlib`" TK_XINCLUDES=-I\"${INCLUDE_DIR_NATIVE}\" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${INCLUDE_DIR_NATIVE}" >&5 -$as_echo "${INCLUDE_DIR_NATIVE}" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${INCLUDE_DIR_NATIVE}" >&5 +printf "%s\n" "${INCLUDE_DIR_NATIVE}" >&6; } fi # Allow for --with-tkinclude to take effect and define ${ac_cv_c_tkh} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tk private include files" >&5 -$as_echo_n "checking for Tk private include files... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Tk private include files" >&5 +printf %s "checking for Tk private include files... " >&6; } TK_SRC_DIR_NATIVE=`${CYGPATH} ${TK_SRC_DIR}` TK_TOP_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}\" @@ -6103,18 +6841,20 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${result}" >&5 -$as_echo "${result}" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${result}" >&5 +printf "%s\n" "${result}" >&6; } + if test "${TEA_WINDOWINGSYSTEM}" = "x11" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 -$as_echo_n "checking for X... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for X" >&5 +printf %s "checking for X... " >&6; } # Check whether --with-x was given. -if test "${with_x+set}" = set; then : +if test ${with_x+y} +then : withval=$with_x; fi @@ -6125,12 +6865,41 @@ else case $x_includes,$x_libraries in #( *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( - *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : - $as_echo_n "(cached) " >&6 -else + *,NONE | NONE,*) if test ${ac_cv_have_x+y} +then : + printf %s "(cached) " >&6 +else $as_nop # One or both of the vars are not set, and there is no cached value. -ac_x_includes=no ac_x_libraries=no -rm -f -r conftest.dir +ac_x_includes=no +ac_x_libraries=no +# Do we need to do anything special at all? +ac_save_LIBS=$LIBS +LIBS="-lX11 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +XrmInitialize () + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + # We can compile and link X programs with no special options. + ac_x_includes= + ac_x_libraries= +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS="$ac_save_LIBS" +# If that didn't work, only try xmkmf and file system searches +# for native compilation. +if test x"$ac_x_includes" = xno && test "$cross_compiling" = no +then : + rm -f -r conftest.dir if mkdir conftest.dir; then cd conftest.dir cat >Imakefile <<'_ACEOF' @@ -6169,7 +6938,7 @@ rm -f -r conftest.dir fi -# Standard set of common directories for X headers. + # Standard set of common directories for X headers. # Check X11 before X11Rn because it is often a symlink to the current release. ac_x_header_dirs=' /usr/X11/include @@ -6196,6 +6965,8 @@ /usr/local/include/X11R5 /usr/local/include/X11R4 +/opt/X11/include + /usr/X386/include /usr/x386/include /usr/XFree86/include/X11 @@ -6217,10 +6988,11 @@ /* end confdefs.h. */ #include _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_cpp "$LINENO" +then : # We can compile using X headers with no special include directory. ac_x_includes= -else +else $as_nop for ac_dir in $ac_x_header_dirs; do if test -r "$ac_dir/X11/Xlib.h"; then ac_x_includes=$ac_dir @@ -6241,20 +7013,21 @@ /* end confdefs.h. */ #include int -main () +main (void) { XrmInitialize () ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : LIBS=$ac_save_LIBS # We can link X programs with no special library path. ac_x_libraries= -else +else $as_nop LIBS=$ac_save_LIBS -for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` +for ac_dir in `printf "%s\n" "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` do # Don't even attempt the hair of trying to link an X program! for ac_extension in a so sl dylib la dll; do @@ -6265,19 +7038,21 @@ done done fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi # $ac_x_libraries = no +fi +# Record the results. case $ac_x_includes,$ac_x_libraries in #( - no,* | *,no | *\'*) + no,* | *,no | *\'*) : # Didn't find X, or a directory has "'" in its name. - ac_cv_have_x="have_x=no";; #( - *) + ac_cv_have_x="have_x=no" ;; #( + *) : # Record where we found X for the cache. ac_cv_have_x="have_x=yes\ ac_x_includes='$ac_x_includes'\ - ac_x_libraries='$ac_x_libraries'" + ac_x_libraries='$ac_x_libraries'" ;; esac fi ;; #( @@ -6287,8 +7062,8 @@ fi # $with_x != no if test "$have_x" != yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 -$as_echo "$have_x" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 +printf "%s\n" "$have_x" >&6; } no_x=yes else # If each of the values was on the command line, it overrides each guess. @@ -6298,8 +7073,8 @@ ac_cv_have_x="have_x=yes\ ac_x_includes='$x_includes'\ ac_x_libraries='$x_libraries'" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 -$as_echo "libraries $x_libraries, headers $x_includes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 +printf "%s\n" "libraries $x_libraries, headers $x_includes" >&6; } fi not_really_there="" @@ -6309,9 +7084,10 @@ /* end confdefs.h. */ #include _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_cpp "$LINENO" +then : -else +else $as_nop not_really_there="yes" fi rm -f conftest.err conftest.i conftest.$ac_ext @@ -6322,16 +7098,17 @@ fi fi if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X11 header files" >&5 -$as_echo_n "checking for X11 header files... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for X11 header files" >&5 +printf %s "checking for X11 header files... " >&6; } found_xincludes="no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_cpp "$LINENO" +then : found_xincludes="yes" -else +else $as_nop found_xincludes="no" fi rm -f conftest.err conftest.i conftest.$ac_ext @@ -6339,8 +7116,8 @@ dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/X11R6/include /usr/X11R5/include /usr/include/X11R5 /usr/include/X11R4 /usr/openwin/include /usr/X11/include /usr/sww/include" for i in $dirs ; do if test -r $i/X11/Xlib.h; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $i" >&5 -$as_echo "$i" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $i" >&5 +printf "%s\n" "$i" >&6; } XINCLUDES=" -I$i" found_xincludes="yes" break @@ -6354,19 +7131,19 @@ fi fi if test "$found_xincludes" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: couldn't find any!" >&5 -$as_echo "couldn't find any!" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: couldn't find any!" >&5 +printf "%s\n" "couldn't find any!" >&6; } fi if test "$no_x" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X11 libraries" >&5 -$as_echo_n "checking for X11 libraries... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for X11 libraries" >&5 +printf %s "checking for X11 libraries... " >&6; } XLIBSW=nope dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/X11R6/lib /usr/X11R5/lib /usr/lib/X11R5 /usr/lib/X11R4 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib" for i in $dirs ; do if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl -o -r $i/libX11.dylib; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $i" >&5 -$as_echo "$i" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $i" >&5 +printf "%s\n" "$i" >&6; } XLIBSW="-L$i -lX11" x_libraries="$i" break @@ -6380,11 +7157,12 @@ fi fi if test "$XLIBSW" = nope ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCreateWindow in -lXwindow" >&5 -$as_echo_n "checking for XCreateWindow in -lXwindow... " >&6; } -if ${ac_cv_lib_Xwindow_XCreateWindow+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for XCreateWindow in -lXwindow" >&5 +printf %s "checking for XCreateWindow in -lXwindow... " >&6; } +if test ${ac_cv_lib_Xwindow_XCreateWindow+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lXwindow $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6393,37 +7171,36 @@ /* 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 XCreateWindow (); int -main () +main (void) { return XCreateWindow (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_Xwindow_XCreateWindow=yes -else +else $as_nop ac_cv_lib_Xwindow_XCreateWindow=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xwindow_XCreateWindow" >&5 -$as_echo "$ac_cv_lib_Xwindow_XCreateWindow" >&6; } -if test "x$ac_cv_lib_Xwindow_XCreateWindow" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xwindow_XCreateWindow" >&5 +printf "%s\n" "$ac_cv_lib_Xwindow_XCreateWindow" >&6; } +if test "x$ac_cv_lib_Xwindow_XCreateWindow" = xyes +then : XLIBSW=-lXwindow fi fi if test "$XLIBSW" = nope ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: could not find any! Using -lX11." >&5 -$as_echo "could not find any! Using -lX11." >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: could not find any! Using -lX11." >&5 +printf "%s\n" "could not find any! Using -lX11." >&6; } XLIBSW=-lX11 fi # TEA specific: @@ -6441,9 +7218,10 @@ # Check whether --enable-threads was given. -if test "${enable_threads+set}" = set; then : +if test ${enable_threads+y} +then : enableval=$enable_threads; tcl_ok=$enableval -else +else $as_nop tcl_ok=yes fi @@ -6464,24 +7242,25 @@ # USE_THREAD_ALLOC tells us to try the special thread-based # allocator that significantly reduces lock contention -$as_echo "#define USE_THREAD_ALLOC 1" >>confdefs.h +printf "%s\n" "#define USE_THREAD_ALLOC 1" >>confdefs.h -$as_echo "#define _REENTRANT 1" >>confdefs.h +printf "%s\n" "#define _REENTRANT 1" >>confdefs.h if test "`uname -s`" = "SunOS" ; then -$as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h +printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h fi -$as_echo "#define _THREAD_SAFE 1" >>confdefs.h +printf "%s\n" "#define _THREAD_SAFE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lpthread" >&5 -$as_echo_n "checking for pthread_mutex_init in -lpthread... " >&6; } -if ${ac_cv_lib_pthread_pthread_mutex_init+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lpthread" >&5 +printf %s "checking for pthread_mutex_init in -lpthread... " >&6; } +if test ${ac_cv_lib_pthread_pthread_mutex_init+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6490,32 +7269,31 @@ /* 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_mutex_init (); int -main () +main (void) { return pthread_mutex_init (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_pthread_pthread_mutex_init=yes -else +else $as_nop ac_cv_lib_pthread_pthread_mutex_init=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_mutex_init" >&5 -$as_echo "$ac_cv_lib_pthread_pthread_mutex_init" >&6; } -if test "x$ac_cv_lib_pthread_pthread_mutex_init" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_mutex_init" >&5 +printf "%s\n" "$ac_cv_lib_pthread_pthread_mutex_init" >&6; } +if test "x$ac_cv_lib_pthread_pthread_mutex_init" = xyes +then : tcl_ok=yes -else +else $as_nop tcl_ok=no fi @@ -6525,11 +7303,12 @@ # defined. We could alternatively do an AC_TRY_COMPILE with # pthread.h, but that will work with libpthread really doesn't # exist, like AIX 4.2. [Bug: 4359] - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __pthread_mutex_init in -lpthread" >&5 -$as_echo_n "checking for __pthread_mutex_init in -lpthread... " >&6; } -if ${ac_cv_lib_pthread___pthread_mutex_init+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __pthread_mutex_init in -lpthread" >&5 +printf %s "checking for __pthread_mutex_init in -lpthread... " >&6; } +if test ${ac_cv_lib_pthread___pthread_mutex_init+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6538,32 +7317,31 @@ /* 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_mutex_init (); int -main () +main (void) { return __pthread_mutex_init (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_pthread___pthread_mutex_init=yes -else +else $as_nop ac_cv_lib_pthread___pthread_mutex_init=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread___pthread_mutex_init" >&5 -$as_echo "$ac_cv_lib_pthread___pthread_mutex_init" >&6; } -if test "x$ac_cv_lib_pthread___pthread_mutex_init" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread___pthread_mutex_init" >&5 +printf "%s\n" "$ac_cv_lib_pthread___pthread_mutex_init" >&6; } +if test "x$ac_cv_lib_pthread___pthread_mutex_init" = xyes +then : tcl_ok=yes -else +else $as_nop tcl_ok=no fi @@ -6573,11 +7351,12 @@ # The space is needed THREADS_LIBS=" -lpthread" else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lpthreads" >&5 -$as_echo_n "checking for pthread_mutex_init in -lpthreads... " >&6; } -if ${ac_cv_lib_pthreads_pthread_mutex_init+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lpthreads" >&5 +printf %s "checking for pthread_mutex_init in -lpthreads... " >&6; } +if test ${ac_cv_lib_pthreads_pthread_mutex_init+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lpthreads $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6586,32 +7365,31 @@ /* 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_mutex_init (); int -main () +main (void) { return pthread_mutex_init (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_pthreads_pthread_mutex_init=yes -else +else $as_nop ac_cv_lib_pthreads_pthread_mutex_init=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_pthread_mutex_init" >&5 -$as_echo "$ac_cv_lib_pthreads_pthread_mutex_init" >&6; } -if test "x$ac_cv_lib_pthreads_pthread_mutex_init" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_pthread_mutex_init" >&5 +printf "%s\n" "$ac_cv_lib_pthreads_pthread_mutex_init" >&6; } +if test "x$ac_cv_lib_pthreads_pthread_mutex_init" = xyes +then : tcl_ok=yes -else +else $as_nop tcl_ok=no fi @@ -6619,11 +7397,12 @@ # The space is needed THREADS_LIBS=" -lpthreads" else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lc" >&5 -$as_echo_n "checking for pthread_mutex_init in -lc... " >&6; } -if ${ac_cv_lib_c_pthread_mutex_init+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lc" >&5 +printf %s "checking for pthread_mutex_init in -lc... " >&6; } +if test ${ac_cv_lib_c_pthread_mutex_init+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6632,41 +7411,41 @@ /* 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_mutex_init (); int -main () +main (void) { return pthread_mutex_init (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_c_pthread_mutex_init=yes -else +else $as_nop ac_cv_lib_c_pthread_mutex_init=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_pthread_mutex_init" >&5 -$as_echo "$ac_cv_lib_c_pthread_mutex_init" >&6; } -if test "x$ac_cv_lib_c_pthread_mutex_init" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_pthread_mutex_init" >&5 +printf "%s\n" "$ac_cv_lib_c_pthread_mutex_init" >&6; } +if test "x$ac_cv_lib_c_pthread_mutex_init" = xyes +then : tcl_ok=yes -else +else $as_nop tcl_ok=no fi if test "$tcl_ok" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lc_r" >&5 -$as_echo_n "checking for pthread_mutex_init in -lc_r... " >&6; } -if ${ac_cv_lib_c_r_pthread_mutex_init+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lc_r" >&5 +printf %s "checking for pthread_mutex_init in -lc_r... " >&6; } +if test ${ac_cv_lib_c_r_pthread_mutex_init+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lc_r $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6675,32 +7454,31 @@ /* 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_mutex_init (); int -main () +main (void) { return pthread_mutex_init (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_c_r_pthread_mutex_init=yes -else +else $as_nop ac_cv_lib_c_r_pthread_mutex_init=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_mutex_init" >&5 -$as_echo "$ac_cv_lib_c_r_pthread_mutex_init" >&6; } -if test "x$ac_cv_lib_c_r_pthread_mutex_init" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_mutex_init" >&5 +printf "%s\n" "$ac_cv_lib_c_r_pthread_mutex_init" >&6; } +if test "x$ac_cv_lib_c_r_pthread_mutex_init" = xyes +then : tcl_ok=yes -else +else $as_nop tcl_ok=no fi @@ -6709,8 +7487,8 @@ THREADS_LIBS=" -pthread" else TCL_THREADS=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&5 -$as_echo "$as_me: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&5 +printf "%s\n" "$as_me: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&2;} fi fi fi @@ -6720,27 +7498,27 @@ TCL_THREADS=0 fi # Do checking message here to not mess up interleaved configure output - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for building with threads" >&5 -$as_echo_n "checking for building with threads... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for building with threads" >&5 +printf %s "checking for building with threads... " >&6; } if test "${TCL_THREADS}" = 1; then -$as_echo "#define TCL_THREADS 1" >>confdefs.h +printf "%s\n" "#define TCL_THREADS 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (default)" >&5 -$as_echo "yes (default)" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes (default)" >&5 +printf "%s\n" "yes (default)" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi # TCL_THREADS sanity checking. See if our request for building with # threads is the same as the way Tcl was built. If not, warn the user. case ${TCL_DEFS} in *THREADS=1*) if test "${TCL_THREADS}" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Building ${PACKAGE_NAME} without threads enabled, but building against Tcl that IS thread-enabled. It is recommended to use --enable-threads." >&5 -$as_echo "$as_me: WARNING: +printf "%s\n" "$as_me: WARNING: Building ${PACKAGE_NAME} without threads enabled, but building against Tcl that IS thread-enabled. It is recommended to use --enable-threads." >&2;} fi @@ -6755,12 +7533,13 @@ #-------------------------------------------------------------------- - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to build libraries" >&5 -$as_echo_n "checking how to build libraries... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to build libraries" >&5 +printf %s "checking how to build libraries... " >&6; } # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : +if test ${enable_shared+y} +then : enableval=$enable_shared; shared_ok=$enableval -else +else $as_nop shared_ok=yes fi @@ -6773,9 +7552,10 @@ fi # Check whether --enable-stubs was given. -if test "${enable_stubs+set}" = set; then : +if test ${enable_stubs+y} +then : enableval=$enable_stubs; stubs_ok=$enableval -else +else $as_nop stubs_ok=yes fi @@ -6789,16 +7569,16 @@ # Stubs are always enabled for shared builds if test "$shared_ok" = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared" >&5 -$as_echo "shared" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: shared" >&5 +printf "%s\n" "shared" >&6; } SHARED_BUILD=1 STUBS_BUILD=1 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: static" >&5 -$as_echo "static" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: static" >&5 +printf "%s\n" "static" >&6; } SHARED_BUILD=0 -$as_echo "#define STATIC_BUILD 1" >>confdefs.h +printf "%s\n" "#define STATIC_BUILD 1" >>confdefs.h if test "$stubs_ok" = "yes" ; then STUBS_BUILD=1 @@ -6808,14 +7588,14 @@ fi if test "${STUBS_BUILD}" = "1" ; then -$as_echo "#define USE_TCL_STUBS 1" >>confdefs.h +printf "%s\n" "#define USE_TCL_STUBS 1" >>confdefs.h -$as_echo "#define USE_TCLOO_STUBS 1" >>confdefs.h +printf "%s\n" "#define USE_TCLOO_STUBS 1" >>confdefs.h if test "${TEA_WINDOWINGSYSTEM}" != ""; then -$as_echo "#define USE_TK_STUBS 1" >>confdefs.h +printf "%s\n" "#define USE_TK_STUBS 1" >>confdefs.h fi fi @@ -6833,11 +7613,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else @@ -6845,11 +7626,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6860,11 +7645,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +printf "%s\n" "$RANLIB" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6873,11 +7658,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else @@ -6885,11 +7671,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6900,11 +7690,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +printf "%s\n" "$ac_ct_RANLIB" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then @@ -6912,8 +7702,8 @@ 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB @@ -6927,44 +7717,48 @@ # Step 0.a: Enable 64 bit support? - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if 64bit support is requested" >&5 -$as_echo_n "checking if 64bit support is requested... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if 64bit support is requested" >&5 +printf %s "checking if 64bit support is requested... " >&6; } # Check whether --enable-64bit was given. -if test "${enable_64bit+set}" = set; then : +if test ${enable_64bit+y} +then : enableval=$enable_64bit; do64bit=$enableval -else +else $as_nop do64bit=no fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $do64bit" >&5 -$as_echo "$do64bit" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $do64bit" >&5 +printf "%s\n" "$do64bit" >&6; } # Step 0.b: Enable Solaris 64 bit VIS support? - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if 64bit Sparc VIS support is requested" >&5 -$as_echo_n "checking if 64bit Sparc VIS support is requested... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if 64bit Sparc VIS support is requested" >&5 +printf %s "checking if 64bit Sparc VIS support is requested... " >&6; } # Check whether --enable-64bit-vis was given. -if test "${enable_64bit_vis+set}" = set; then : +if test ${enable_64bit_vis+y} +then : enableval=$enable_64bit_vis; do64bitVIS=$enableval -else +else $as_nop do64bitVIS=no fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $do64bitVIS" >&5 -$as_echo "$do64bitVIS" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $do64bitVIS" >&5 +printf "%s\n" "$do64bitVIS" >&6; } # Force 64bit on with VIS - if test "$do64bitVIS" = "yes"; then : + if test "$do64bitVIS" = "yes" +then : do64bit=yes fi # Step 0.c: Check if visibility support is available. Do this here so # that platform specific alternatives can be used below if this fails. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports visibility \"hidden\"" >&5 -$as_echo_n "checking if compiler supports visibility \"hidden\"... " >&6; } -if ${tcl_cv_cc_visibility_hidden+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler supports visibility \"hidden\"" >&5 +printf %s "checking if compiler supports visibility \"hidden\"... " >&6; } +if test ${tcl_cv_cc_visibility_hidden+y} +then : + printf %s "(cached) " >&6 +else $as_nop hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6973,64 +7767,69 @@ extern __attribute__((__visibility__("hidden"))) void f(void); void f(void) {} int -main () +main (void) { f(); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_cc_visibility_hidden=yes -else +else $as_nop tcl_cv_cc_visibility_hidden=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext CFLAGS=$hold_cflags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_visibility_hidden" >&5 -$as_echo "$tcl_cv_cc_visibility_hidden" >&6; } - if test $tcl_cv_cc_visibility_hidden = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_visibility_hidden" >&5 +printf "%s\n" "$tcl_cv_cc_visibility_hidden" >&6; } + if test $tcl_cv_cc_visibility_hidden = yes +then : -$as_echo "#define MODULE_SCOPE extern __attribute__((__visibility__(\"hidden\")))" >>confdefs.h +printf "%s\n" "#define MODULE_SCOPE extern __attribute__((__visibility__(\"hidden\")))" >>confdefs.h -$as_echo "#define HAVE_HIDDEN 1" >>confdefs.h +printf "%s\n" "#define HAVE_HIDDEN 1" >>confdefs.h fi # Step 0.d: Disable -rpath support? - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if rpath support is requested" >&5 -$as_echo_n "checking if rpath support is requested... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if rpath support is requested" >&5 +printf %s "checking if rpath support is requested... " >&6; } # Check whether --enable-rpath was given. -if test "${enable_rpath+set}" = set; then : +if test ${enable_rpath+y} +then : enableval=$enable_rpath; doRpath=$enableval -else +else $as_nop doRpath=yes fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $doRpath" >&5 -$as_echo "$doRpath" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $doRpath" >&5 +printf "%s\n" "$doRpath" >&6; } # TEA specific: Cross-compiling options for Windows/CE builds? - if test "${TEA_PLATFORM}" = windows; then : + if test "${TEA_PLATFORM}" = windows +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Windows/CE build is requested" >&5 -$as_echo_n "checking if Windows/CE build is requested... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if Windows/CE build is requested" >&5 +printf %s "checking if Windows/CE build is requested... " >&6; } # Check whether --enable-wince was given. -if test "${enable_wince+set}" = set; then : +if test ${enable_wince+y} +then : enableval=$enable_wince; doWince=$enableval -else +else $as_nop doWince=no fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $doWince" >&5 -$as_echo "$doWince" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $doWince" >&5 +printf "%s\n" "$doWince" >&6; } fi @@ -7038,11 +7837,12 @@ # for the system. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking system version" >&5 -$as_echo_n "checking system version... " >&6; } -if ${tcl_cv_sys_version+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking system version" >&5 +printf %s "checking system version... " >&6; } +if test ${tcl_cv_sys_version+y} +then : + printf %s "(cached) " >&6 +else $as_nop # TEA specific: if test "${TEA_PLATFORM}" = "windows" ; then @@ -7050,8 +7850,8 @@ else tcl_cv_sys_version=`uname -s`-`uname -r` if test "$?" -ne 0 ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: can't find uname command" >&5 -$as_echo "$as_me: WARNING: can't find uname command" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: can't find uname command" >&5 +printf "%s\n" "$as_me: WARNING: can't find uname command" >&2;} tcl_cv_sys_version=unknown else if test "`uname -s`" = "AIX" ; then @@ -7061,8 +7861,8 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_sys_version" >&5 -$as_echo "$tcl_cv_sys_version" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_sys_version" >&5 +printf "%s\n" "$tcl_cv_sys_version" >&6; } system=$tcl_cv_sys_version @@ -7087,12 +7887,13 @@ ECHO_VERSION='`echo ${PACKAGE_VERSION}`' TCL_LIB_VERSIONS_OK=ok CFLAGS_DEBUG=-g - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : CFLAGS_OPTIMIZE=-O2 CFLAGS_WARNING="-Wall" -else +else $as_nop CFLAGS_OPTIMIZE=-O CFLAGS_WARNING="" @@ -7101,11 +7902,12 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else @@ -7113,11 +7915,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -7128,11 +7934,11 @@ fi AR=$ac_cv_prog_AR if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf "%s\n" "$AR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -7141,11 +7947,12 @@ ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else @@ -7153,11 +7960,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -7168,11 +7979,11 @@ fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +printf "%s\n" "$ac_ct_AR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_AR" = x; then @@ -7180,8 +7991,8 @@ 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR @@ -7192,9 +8003,10 @@ STLIB_LD='${AR} cr' LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH" - if test "x$SHLIB_VERSION" = x; then : + if test "x$SHLIB_VERSION" = x +then : SHLIB_VERSION="" -else +else $as_nop SHLIB_VERSION=".$SHLIB_VERSION" fi case $system in @@ -7223,14 +8035,14 @@ ;; esac if test "$GCC" != "yes" -a ! -d "${PATH64}" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&5 -$as_echo "$as_me: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ensure latest Platform SDK is installed" >&5 -$as_echo "$as_me: WARNING: Ensure latest Platform SDK is installed" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&5 +printf "%s\n" "$as_me: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Ensure latest Platform SDK is installed" >&5 +printf "%s\n" "$as_me: WARNING: Ensure latest Platform SDK is installed" >&2;} do64bit="no" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using 64-bit $MACHINE mode" >&5 -$as_echo " Using 64-bit $MACHINE mode" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Using 64-bit $MACHINE mode" >&5 +printf "%s\n" " Using 64-bit $MACHINE mode" >&6; } do64bit_ok="yes" fi fi @@ -7251,15 +8063,17 @@ no_celib=true # Check whether --with-celib was given. -if test "${with_celib+set}" = set; then : +if test ${with_celib+y} +then : withval=$with_celib; with_celibconfig=${withval} fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Windows/CE celib directory" >&5 -$as_echo_n "checking for Windows/CE celib directory... " >&6; } - if ${ac_cv_c_celibconfig+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Windows/CE celib directory" >&5 +printf %s "checking for Windows/CE celib directory... " >&6; } + if test ${ac_cv_c_celibconfig+y} +then : + printf %s "(cached) " >&6 +else $as_nop # First check to see if --with-celibconfig was specified. if test x"${with_celibconfig}" != x ; then @@ -7297,8 +8111,8 @@ no_celib= CELIB_DIR=${ac_cv_c_celibconfig} CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $CELIB_DIR" >&5 -$as_echo "found $CELIB_DIR" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found $CELIB_DIR" >&5 +printf "%s\n" "found $CELIB_DIR" >&6; } fi fi @@ -7417,20 +8231,14 @@ fi for i in $defs ; do -cat >>confdefs.h <<_ACEOF -#define $i 1 -_ACEOF +printf "%s\n" "#define $i 1" >>confdefs.h done -cat >>confdefs.h <<_ACEOF -#define _WIN32_WCE $CEVERSION -_ACEOF +printf "%s\n" "#define _WIN32_WCE $CEVERSION" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define UNDER_CE $CEVERSION -_ACEOF +printf "%s\n" "#define UNDER_CE $CEVERSION" >>confdefs.h CFLAGS_DEBUG="-nologo -Zi -Od" CFLAGS_OPTIMIZE="-nologo -Ox" @@ -7452,11 +8260,12 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. set dummy ${ac_tool_prefix}windres; 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_RC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$RC"; then ac_cv_prog_RC="$RC" # Let the user override the test. else @@ -7464,11 +8273,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_RC="${ac_tool_prefix}windres" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -7479,11 +8292,11 @@ fi RC=$ac_cv_prog_RC if test -n "$RC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RC" >&5 -$as_echo "$RC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RC" >&5 +printf "%s\n" "$RC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -7492,11 +8305,12 @@ ac_ct_RC=$RC # Extract the first word of "windres", so it can be a program name with args. set dummy windres; 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_RC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_RC"; then ac_cv_prog_ac_ct_RC="$ac_ct_RC" # Let the user override the test. else @@ -7504,11 +8318,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RC="windres" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -7519,11 +8337,11 @@ fi ac_ct_RC=$ac_cv_prog_ac_ct_RC if test -n "$ac_ct_RC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RC" >&5 -$as_echo "$ac_ct_RC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RC" >&5 +printf "%s\n" "$ac_ct_RC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_RC" = x; then @@ -7531,8 +8349,8 @@ 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RC=$ac_ct_RC @@ -7548,11 +8366,12 @@ LDFLAGS_CONSOLE="-wl,--subsystem,console ${lflags}" LDFLAGS_WINDOW="-wl,--subsystem,windows ${lflags}" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cross-compile version of gcc" >&5 -$as_echo_n "checking for cross-compile version of gcc... " >&6; } -if ${ac_cv_cross+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cross-compile version of gcc" >&5 +printf %s "checking for cross-compile version of gcc... " >&6; } +if test ${ac_cv_cross+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7561,23 +8380,24 @@ #endif int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_cross=yes -else +else $as_nop ac_cv_cross=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cross" >&5 -$as_echo "$ac_cv_cross" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cross" >&5 +printf "%s\n" "$ac_cv_cross" >&6; } if test "$ac_cv_cross" = "yes"; then case "$do64bit" in amd64|x64|yes) @@ -7625,7 +8445,8 @@ TCL_LIB_VERSIONS_OK=nodots ;; AIX-*) - if test "${TCL_THREADS}" = "1" -a "$GCC" != "yes"; then : + if test "${TCL_THREADS}" = "1" -a "$GCC" != "yes" +then : # AIX requires the _r compiler when gcc isn't being used case "${CC}" in @@ -7637,8 +8458,8 @@ CC=`echo "$CC" | sed -e 's/^\([^ ]*\)/\1_r/'` ;; esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using $CC for compiling with threads" >&5 -$as_echo "Using $CC for compiling with threads" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Using $CC for compiling with threads" >&5 +printf "%s\n" "Using $CC for compiling with threads" >&6; } fi LIBS="$LIBS -lc" @@ -7648,14 +8469,16 @@ LD_LIBRARY_PATH_VAR="LIBPATH" # Check to enable 64-bit flags for compiler/linker - if test "$do64bit" = yes; then : + if test "$do64bit" = yes +then : - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;} -else +else $as_nop do64bit_ok=yes CFLAGS="$CFLAGS -q64" @@ -7668,28 +8491,31 @@ fi - if test "`uname -m`" = ia64; then : + if test "`uname -m`" = ia64 +then : # AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC SHLIB_LD="/usr/ccs/bin/ld -G -z text" - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' -else +else $as_nop CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}' fi LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' -else +else $as_nop - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : SHLIB_LD='${CC} -shared -Wl,-bexpall' -else +else $as_nop SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bexpall -H512 -T512 -bnoentry" LDFLAGS="$LDFLAGS -brtl" @@ -7711,11 +8537,12 @@ # -lsocket, even if the network functions are in -lnet which # is always linked to, for compatibility. #----------------------------------------------------------- - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_ntoa in -lbind" >&5 -$as_echo_n "checking for inet_ntoa in -lbind... " >&6; } -if ${ac_cv_lib_bind_inet_ntoa+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inet_ntoa in -lbind" >&5 +printf %s "checking for inet_ntoa in -lbind... " >&6; } +if test ${ac_cv_lib_bind_inet_ntoa+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lbind $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7724,30 +8551,29 @@ /* 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 inet_ntoa (); int -main () +main (void) { return inet_ntoa (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_bind_inet_ntoa=yes -else +else $as_nop ac_cv_lib_bind_inet_ntoa=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bind_inet_ntoa" >&5 -$as_echo "$ac_cv_lib_bind_inet_ntoa" >&6; } -if test "x$ac_cv_lib_bind_inet_ntoa" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bind_inet_ntoa" >&5 +printf "%s\n" "$ac_cv_lib_bind_inet_ntoa" >&6; } +if test "x$ac_cv_lib_bind_inet_ntoa" = xyes +then : LIBS="$LIBS -lbind -lsocket" fi @@ -7775,11 +8601,12 @@ SHLIB_CFLAGS="-fPIC" SHLIB_SUFFIX=".so" SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS} -shared' - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_ntoa in -lnetwork" >&5 -$as_echo_n "checking for inet_ntoa in -lnetwork... " >&6; } -if ${ac_cv_lib_network_inet_ntoa+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inet_ntoa in -lnetwork" >&5 +printf %s "checking for inet_ntoa in -lnetwork... " >&6; } +if test ${ac_cv_lib_network_inet_ntoa+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lnetwork $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7788,30 +8615,29 @@ /* 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 inet_ntoa (); int -main () +main (void) { return inet_ntoa (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_network_inet_ntoa=yes -else +else $as_nop ac_cv_lib_network_inet_ntoa=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_network_inet_ntoa" >&5 -$as_echo "$ac_cv_lib_network_inet_ntoa" >&6; } -if test "x$ac_cv_lib_network_inet_ntoa" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_network_inet_ntoa" >&5 +printf "%s\n" "$ac_cv_lib_network_inet_ntoa" >&6; } +if test "x$ac_cv_lib_network_inet_ntoa" = xyes +then : LIBS="$LIBS -lnetwork" fi @@ -7819,13 +8645,14 @@ HP-UX-*.11.*) # Use updated header definitions where possible -$as_echo "#define _XOPEN_SOURCE_EXTENDED 1" >>confdefs.h +printf "%s\n" "#define _XOPEN_SOURCE_EXTENDED 1" >>confdefs.h # TEA specific: Needed by Tcl, but not most extensions #AC_DEFINE(_XOPEN_SOURCE, 1, [Do we want to use the XOPEN network library?]) #LIBS="$LIBS -lxnet" # Use the XOPEN network library - if test "`uname -m`" = ia64; then : + if test "`uname -m`" = ia64 +then : SHLIB_SUFFIX=".so" # Use newer C++ library for C++ extensions @@ -7833,16 +8660,17 @@ # CPPFLAGS="-AA" #fi -else +else $as_nop SHLIB_SUFFIX=".sl" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 -$as_echo_n "checking for shl_load in -ldld... " >&6; } -if ${ac_cv_lib_dld_shl_load+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +printf %s "checking for shl_load in -ldld... " >&6; } +if test ${ac_cv_lib_dld_shl_load+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7851,36 +8679,36 @@ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char shl_load (); int -main () +main (void) { return shl_load (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_dld_shl_load=yes -else +else $as_nop ac_cv_lib_dld_shl_load=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 -$as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes +then : tcl_ok=yes -else +else $as_nop tcl_ok=no fi - if test "$tcl_ok" = yes; then : + if test "$tcl_ok" = yes +then : LDFLAGS="$LDFLAGS -Wl,-E" CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.' @@ -7888,12 +8716,13 @@ LD_LIBRARY_PATH_VAR="SHLIB_PATH" fi - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : SHLIB_LD='${CC} -shared' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} -else +else $as_nop CFLAGS="$CFLAGS -z" # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc @@ -7904,28 +8733,31 @@ fi # Check to enable 64-bit flags for compiler/linker - if test "$do64bit" = "yes"; then : + if test "$do64bit" = "yes" +then : - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : case `${CC} -dumpmachine` in hppa64*) # 64-bit gcc in use. Fix flags for GNU ld. do64bit_ok=yes SHLIB_LD='${CC} -shared' - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' fi LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} ;; *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;} ;; esac -else +else $as_nop do64bit_ok=yes CFLAGS="$CFLAGS +DD64" @@ -7938,17 +8770,19 @@ SHLIB_CFLAGS="" SHLIB_LD="ld -n32 -shared -rdata_shared" SHLIB_SUFFIX=".so" - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' fi - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : CFLAGS="$CFLAGS -mabi=n32" LDFLAGS="$LDFLAGS -mabi=n32" -else +else $as_nop case $system in IRIX-6.3) @@ -7967,7 +8801,8 @@ SHLIB_CFLAGS="" SHLIB_LD="ld -n32 -shared -rdata_shared" SHLIB_SUFFIX=".so" - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' @@ -7975,14 +8810,16 @@ # Check to enable 64-bit flags for compiler/linker - if test "$do64bit" = yes; then : + if test "$do64bit" = yes +then : - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported by gcc" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported by gcc" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported by gcc" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported by gcc" >&2;} -else +else $as_nop do64bit_ok=yes SHLIB_LD="ld -64 -shared -rdata_shared" @@ -8003,21 +8840,25 @@ # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS_DEFAULT} -shared' LDFLAGS="$LDFLAGS -Wl,--export-dynamic" - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' fi LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} - if test "`uname -m`" = "alpha"; then : + if test "`uname -m`" = "alpha" +then : CFLAGS="$CFLAGS -mieee" fi - if test $do64bit = yes; then : + if test $do64bit = yes +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -m64 flag" >&5 -$as_echo_n "checking if compiler accepts -m64 flag... " >&6; } -if ${tcl_cv_cc_m64+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -m64 flag" >&5 +printf %s "checking if compiler accepts -m64 flag... " >&6; } +if test ${tcl_cv_cc_m64+y} +then : + printf %s "(cached) " >&6 +else $as_nop hold_cflags=$CFLAGS CFLAGS="$CFLAGS -m64" @@ -8025,25 +8866,27 @@ /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_cc_m64=yes -else +else $as_nop tcl_cv_cc_m64=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext CFLAGS=$hold_cflags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_m64" >&5 -$as_echo "$tcl_cv_cc_m64" >&6; } - if test $tcl_cv_cc_m64 = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_m64" >&5 +printf "%s\n" "$tcl_cv_cc_m64" >&6; } + if test $tcl_cv_cc_m64 = yes +then : CFLAGS="$CFLAGS -m64" do64bit_ok=yes @@ -8058,7 +8901,8 @@ # of overkill but it works. Disable inlining only when one of the # files in compat/*.c is being linked in. - if test x"${USE_COMPAT}" != x; then : + if test x"${USE_COMPAT}" != x +then : CFLAGS="$CFLAGS -fno-inline" fi ;; @@ -8068,7 +8912,8 @@ CFLAGS_OPTIMIZE=-02 SHLIB_LD='${CC} -shared' LD_FLAGS="-Wl,--export-dynamic" - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' @@ -8086,7 +8931,8 @@ esac SHLIB_LD='${CC} ${SHLIB_CFLAGS} -shared' SHLIB_SUFFIX=".so" - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' fi @@ -8094,7 +8940,8 @@ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so${SHLIB_VERSION}' LDFLAGS="-Wl,-export-dynamic" CFLAGS_OPTIMIZE="-O2" - if test "${TCL_THREADS}" = "1"; then : + if test "${TCL_THREADS}" = "1" +then : # On OpenBSD: Compile with -pthread # Don't link with -lpthread @@ -8112,12 +8959,14 @@ SHLIB_LD='${CC} ${SHLIB_CFLAGS} -shared' SHLIB_SUFFIX=".so" LDFLAGS="$LDFLAGS -export-dynamic" - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' fi LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} - if test "${TCL_THREADS}" = "1"; then : + if test "${TCL_THREADS}" = "1" +then : # The -pthread needs to go in the CFLAGS, not LIBS LIBS=`echo $LIBS | sed s/-pthread//` @@ -8133,12 +8982,14 @@ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,-soname,\$@" SHLIB_SUFFIX=".so" LDFLAGS="" - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' fi - if test "${TCL_THREADS}" = "1"; then : + if test "${TCL_THREADS}" = "1" +then : # The -pthread needs to go in the LDFLAGS, not LIBS LIBS=`echo $LIBS | sed s/-pthread//` @@ -8167,15 +9018,17 @@ CFLAGS="`echo " ${CFLAGS}" | \ awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ if (!($i~/^(isysroot|mmacosx-version-min)/)) print "-"$i}'`" - if test $do64bit = yes; then : + if test $do64bit = yes +then : case `arch` in ppc) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -arch ppc64 flag" >&5 -$as_echo_n "checking if compiler accepts -arch ppc64 flag... " >&6; } -if ${tcl_cv_cc_arch_ppc64+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -arch ppc64 flag" >&5 +printf %s "checking if compiler accepts -arch ppc64 flag... " >&6; } +if test ${tcl_cv_cc_arch_ppc64+y} +then : + printf %s "(cached) " >&6 +else $as_nop hold_cflags=$CFLAGS CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" @@ -8183,36 +9036,39 @@ /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_cc_arch_ppc64=yes -else +else $as_nop tcl_cv_cc_arch_ppc64=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext CFLAGS=$hold_cflags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_arch_ppc64" >&5 -$as_echo "$tcl_cv_cc_arch_ppc64" >&6; } - if test $tcl_cv_cc_arch_ppc64 = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_arch_ppc64" >&5 +printf "%s\n" "$tcl_cv_cc_arch_ppc64" >&6; } + if test $tcl_cv_cc_arch_ppc64 = yes +then : CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" do64bit_ok=yes fi;; i386) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -arch x86_64 flag" >&5 -$as_echo_n "checking if compiler accepts -arch x86_64 flag... " >&6; } -if ${tcl_cv_cc_arch_x86_64+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -arch x86_64 flag" >&5 +printf %s "checking if compiler accepts -arch x86_64 flag... " >&6; } +if test ${tcl_cv_cc_arch_x86_64+y} +then : + printf %s "(cached) " >&6 +else $as_nop hold_cflags=$CFLAGS CFLAGS="$CFLAGS -arch x86_64" @@ -8220,40 +9076,43 @@ /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_cc_arch_x86_64=yes -else +else $as_nop tcl_cv_cc_arch_x86_64=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext CFLAGS=$hold_cflags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_arch_x86_64" >&5 -$as_echo "$tcl_cv_cc_arch_x86_64" >&6; } - if test $tcl_cv_cc_arch_x86_64 = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_arch_x86_64" >&5 +printf "%s\n" "$tcl_cv_cc_arch_x86_64" >&6; } + if test $tcl_cv_cc_arch_x86_64 = yes +then : CFLAGS="$CFLAGS -arch x86_64" do64bit_ok=yes fi;; *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&5 -$as_echo "$as_me: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&2;};; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&5 +printf "%s\n" "$as_me: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&2;};; esac -else +else $as_nop # Check for combined 32-bit and 64-bit fat build if echo "$CFLAGS " |grep -E -q -- '-arch (ppc64|x86_64) ' \ - && echo "$CFLAGS " |grep -E -q -- '-arch (ppc|i386) '; then : + && echo "$CFLAGS " |grep -E -q -- '-arch (ppc|i386) ' +then : fat_32_64=yes fi @@ -8261,11 +9120,12 @@ fi # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS_DEFAULT}' - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ld accepts -single_module flag" >&5 -$as_echo_n "checking if ld accepts -single_module flag... " >&6; } -if ${tcl_cv_ld_single_module+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ld accepts -single_module flag" >&5 +printf %s "checking if ld accepts -single_module flag... " >&6; } +if test ${tcl_cv_ld_single_module+y} +then : + printf %s "(cached) " >&6 +else $as_nop hold_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module" @@ -8273,25 +9133,27 @@ /* end confdefs.h. */ int -main () +main (void) { int i; ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_ld_single_module=yes -else +else $as_nop tcl_cv_ld_single_module=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$hold_ldflags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_single_module" >&5 -$as_echo "$tcl_cv_ld_single_module" >&6; } - if test $tcl_cv_ld_single_module = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_single_module" >&5 +printf "%s\n" "$tcl_cv_ld_single_module" >&6; } + if test $tcl_cv_ld_single_module = yes +then : SHLIB_LD="${SHLIB_LD} -Wl,-single_module" @@ -8302,16 +9164,18 @@ SHLIB_SUFFIX=".dylib" # Don't use -prebind when building for Mac OS X 10.4 or later only: if test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int($2)}'`" -lt 4 -a \ - "`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int($2)}'`" -lt 4; then : + "`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int($2)}'`" -lt 4 +then : LDFLAGS="$LDFLAGS -prebind" fi LDFLAGS="$LDFLAGS -headerpad_max_install_names" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ld accepts -search_paths_first flag" >&5 -$as_echo_n "checking if ld accepts -search_paths_first flag... " >&6; } -if ${tcl_cv_ld_search_paths_first+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ld accepts -search_paths_first flag" >&5 +printf %s "checking if ld accepts -search_paths_first flag... " >&6; } +if test ${tcl_cv_ld_search_paths_first+y} +then : + printf %s "(cached) " >&6 +else $as_nop hold_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-search_paths_first" @@ -8319,33 +9183,36 @@ /* end confdefs.h. */ int -main () +main (void) { int i; ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_ld_search_paths_first=yes -else +else $as_nop tcl_cv_ld_search_paths_first=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$hold_ldflags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_search_paths_first" >&5 -$as_echo "$tcl_cv_ld_search_paths_first" >&6; } - if test $tcl_cv_ld_search_paths_first = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_search_paths_first" >&5 +printf "%s\n" "$tcl_cv_ld_search_paths_first" >&6; } + if test $tcl_cv_ld_search_paths_first = yes +then : LDFLAGS="$LDFLAGS -Wl,-search_paths_first" fi - if test "$tcl_cv_cc_visibility_hidden" != yes; then : + if test "$tcl_cv_cc_visibility_hidden" != yes +then : -$as_echo "#define MODULE_SCOPE __private_extern__" >>confdefs.h +printf "%s\n" "#define MODULE_SCOPE __private_extern__" >>confdefs.h tcl_cv_cc_visibility_hidden=yes @@ -8355,15 +9222,18 @@ LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH" # TEA specific: for combined 32 & 64 bit fat builds of Tk # extensions, verify that 64-bit build is possible. - if test "$fat_32_64" = yes && test -n "${TK_BIN_DIR}"; then : + if test "$fat_32_64" = yes && test -n "${TK_BIN_DIR}" +then : - if test "${TEA_WINDOWINGSYSTEM}" = x11; then : + if test "${TEA_WINDOWINGSYSTEM}" = x11 +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit X11" >&5 -$as_echo_n "checking for 64-bit X11... " >&6; } -if ${tcl_cv_lib_x11_64+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit X11" >&5 +printf %s "checking for 64-bit X11... " >&6; } +if test ${tcl_cv_lib_x11_64+y} +then : + printf %s "(cached) " >&6 +else $as_nop for v in CFLAGS CPPFLAGS LDFLAGS; do eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' @@ -8374,35 +9244,38 @@ /* end confdefs.h. */ #include int -main () +main (void) { XrmInitialize(); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_lib_x11_64=yes -else +else $as_nop tcl_cv_lib_x11_64=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext for v in CFLAGS CPPFLAGS LDFLAGS; do eval $v'="$hold_'$v'"' done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_lib_x11_64" >&5 -$as_echo "$tcl_cv_lib_x11_64" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_lib_x11_64" >&5 +printf "%s\n" "$tcl_cv_lib_x11_64" >&6; } fi - if test "${TEA_WINDOWINGSYSTEM}" = aqua; then : + if test "${TEA_WINDOWINGSYSTEM}" = aqua +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit Tk" >&5 -$as_echo_n "checking for 64-bit Tk... " >&6; } -if ${tcl_cv_lib_tk_64+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit Tk" >&5 +printf %s "checking for 64-bit Tk... " >&6; } +if test ${tcl_cv_lib_tk_64+y} +then : + printf %s "(cached) " >&6 +else $as_nop for v in CFLAGS CPPFLAGS LDFLAGS; do eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' @@ -8413,34 +9286,36 @@ /* end confdefs.h. */ #include int -main () +main (void) { Tk_InitStubs(NULL, "", 0); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_lib_tk_64=yes -else +else $as_nop tcl_cv_lib_tk_64=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext for v in CFLAGS CPPFLAGS LDFLAGS; do eval $v'="$hold_'$v'"' done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_lib_tk_64" >&5 -$as_echo "$tcl_cv_lib_tk_64" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_lib_tk_64" >&5 +printf "%s\n" "$tcl_cv_lib_tk_64" >&6; } fi # remove 64-bit arch flags from CFLAGS et al. if configuration # does not support 64-bit. - if test "$tcl_cv_lib_tk_64" = no -o "$tcl_cv_lib_x11_64" = no; then : + if test "$tcl_cv_lib_tk_64" = no -o "$tcl_cv_lib_x11_64" = no +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: Removing 64-bit architectures from compiler & linker flags" >&5 -$as_echo "$as_me: Removing 64-bit architectures from compiler & linker flags" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Removing 64-bit architectures from compiler & linker flags" >&5 +printf "%s\n" "$as_me: Removing 64-bit architectures from compiler & linker flags" >&6;} for v in CFLAGS CPPFLAGS LDFLAGS; do eval $v'="`echo "$'$v' "|sed -e "s/-arch ppc64 / /g" -e "s/-arch x86_64 / /g"`"' done @@ -8451,44 +9326,49 @@ OS/390-*) CFLAGS_OPTIMIZE="" # Optimizer is buggy -$as_echo "#define _OE_SOCKETS 1" >>confdefs.h +printf "%s\n" "#define _OE_SOCKETS 1" >>confdefs.h ;; OSF1-V*) # Digital OSF/1 SHLIB_CFLAGS="" - if test "$SHARED_BUILD" = 1; then : + if test "$SHARED_BUILD" = 1 +then : SHLIB_LD='ld -shared -expect_unresolved "*"' -else +else $as_nop SHLIB_LD='ld -non_shared -expect_unresolved "*"' fi SHLIB_SUFFIX=".so" - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' fi - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : CFLAGS="$CFLAGS -mieee" -else +else $as_nop CFLAGS="$CFLAGS -DHAVE_TZSET -std1 -ieee" fi # see pthread_intro(3) for pthread support on osf1, k.furukawa - if test "${TCL_THREADS}" = 1; then : + if test "${TCL_THREADS}" = 1 +then : CFLAGS="$CFLAGS -DHAVE_PTHREAD_ATTR_SETSTACKSIZE" CFLAGS="$CFLAGS -DTCL_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64" LIBS=`echo $LIBS | sed s/-lpthreads//` - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : LIBS="$LIBS -lpthread -lmach -lexc" -else +else $as_nop CFLAGS="$CFLAGS -pthread" LDFLAGS="$LDFLAGS -pthread" @@ -8508,12 +9388,13 @@ LD_SEARCH_FLAGS="" ;; SCO_SV-3.2*) - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : SHLIB_CFLAGS="-fPIC -melf" LDFLAGS="$LDFLAGS -melf -Wl,-Bexport" -else +else $as_nop SHLIB_CFLAGS="-Kpic -belf" LDFLAGS="$LDFLAGS -belf -Wl,-Bexport" @@ -8532,21 +9413,22 @@ # won't define thread-safe library routines. -$as_echo "#define _REENTRANT 1" >>confdefs.h +printf "%s\n" "#define _REENTRANT 1" >>confdefs.h -$as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h +printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h SHLIB_CFLAGS="-KPIC" SHLIB_SUFFIX=".so" - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : SHLIB_LD='${CC} -shared' CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} -else +else $as_nop SHLIB_LD="/usr/ccs/bin/ld -G -z text" CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' @@ -8559,28 +9441,32 @@ # won't define thread-safe library routines. -$as_echo "#define _REENTRANT 1" >>confdefs.h +printf "%s\n" "#define _REENTRANT 1" >>confdefs.h -$as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h +printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h SHLIB_CFLAGS="-KPIC" # Check to enable 64-bit flags for compiler/linker - if test "$do64bit" = yes; then : + if test "$do64bit" = yes +then : arch=`isainfo` - if test "$arch" = "sparcv9 sparc"; then : + if test "$arch" = "sparcv9 sparc" +then : - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : - if test "`${CC} -dumpversion | awk -F. '{print $1}'`" -lt 3; then : + if test "`${CC} -dumpversion | awk -F. '{print $1}'`" -lt 3 +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&2;} -else +else $as_nop do64bit_ok=yes CFLAGS="$CFLAGS -m64 -mcpu=v9" @@ -8589,15 +9475,16 @@ fi -else +else $as_nop do64bit_ok=yes - if test "$do64bitVIS" = yes; then : + if test "$do64bitVIS" = yes +then : CFLAGS="$CFLAGS -xarch=v9a" LDFLAGS_ARCH="-xarch=v9a" -else +else $as_nop CFLAGS="$CFLAGS -xarch=v9" LDFLAGS_ARCH="-xarch=v9" @@ -8608,10 +9495,12 @@ fi -else - if test "$arch" = "amd64 i386"; then : +else $as_nop + if test "$arch" = "amd64 i386" +then : - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : case $system in SunOS-5.1[1-9]*|SunOS-5.[2-9][0-9]*) @@ -8619,11 +9508,11 @@ CFLAGS="$CFLAGS -m64" LDFLAGS="$LDFLAGS -m64";; *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;};; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;};; esac -else +else $as_nop do64bit_ok=yes case $system in @@ -8637,23 +9526,26 @@ fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported for $arch" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported for $arch" >&2;} +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported for $arch" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported for $arch" >&2;} fi fi fi SHLIB_SUFFIX=".so" - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : SHLIB_LD='${CC} -shared' CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} - if test "$do64bit_ok" = yes; then : + if test "$do64bit_ok" = yes +then : - if test "$arch" = "sparcv9 sparc"; then : + if test "$arch" = "sparcv9 sparc" +then : # We need to specify -static-libgcc or we need to # add the path to the sparv9 libgcc. @@ -8665,8 +9557,9 @@ #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..." #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir" -else - if test "$arch" = "amd64 i386"; then : +else $as_nop + if test "$arch" = "amd64 i386" +then : # JH: static-libgcc is necessary for core Tcl, but may # not be necessary for extensions. @@ -8677,7 +9570,7 @@ fi -else +else $as_nop case $system in SunOS-5.[1-9][0-9]*) @@ -8698,11 +9591,12 @@ SHLIB_SUFFIX=".so" # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers # that don't grok the -Bexport option. Test that it does. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld accepts -Bexport flag" >&5 -$as_echo_n "checking for ld accepts -Bexport flag... " >&6; } -if ${tcl_cv_ld_Bexport+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld accepts -Bexport flag" >&5 +printf %s "checking for ld accepts -Bexport flag... " >&6; } +if test ${tcl_cv_ld_Bexport+y} +then : + printf %s "(cached) " >&6 +else $as_nop hold_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-Bexport" @@ -8710,25 +9604,27 @@ /* end confdefs.h. */ int -main () +main (void) { int i; ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_ld_Bexport=yes -else +else $as_nop tcl_cv_ld_Bexport=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$hold_ldflags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_Bexport" >&5 -$as_echo "$tcl_cv_ld_Bexport" >&6; } - if test $tcl_cv_ld_Bexport = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_Bexport" >&5 +printf "%s\n" "$tcl_cv_ld_Bexport" >&6; } + if test $tcl_cv_ld_Bexport = yes +then : LDFLAGS="$LDFLAGS -Wl,-Bexport" @@ -8738,10 +9634,11 @@ ;; esac - if test "$do64bit" = yes -a "$do64bit_ok" = no; then : + if test "$do64bit" = yes -a "$do64bit_ok" = no +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit support being disabled -- don't know magic for this platform" >&5 -$as_echo "$as_me: WARNING: 64bit support being disabled -- don't know magic for this platform" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit support being disabled -- don't know magic for this platform" >&5 +printf "%s\n" "$as_me: WARNING: 64bit support being disabled -- don't know magic for this platform" >&2;} fi @@ -8755,7 +9652,8 @@ # libraries to the right flags for gcc, instead of those for the # standard manufacturer compiler. - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : case $system in AIX-*) ;; @@ -8770,34 +9668,39 @@ esac fi - if test "$tcl_cv_cc_visibility_hidden" != yes; then : + if test "$tcl_cv_cc_visibility_hidden" != yes +then : -$as_echo "#define MODULE_SCOPE extern" >>confdefs.h +printf "%s\n" "#define MODULE_SCOPE extern" >>confdefs.h fi - if test "$SHARED_LIB_SUFFIX" = ""; then : + if test "$SHARED_LIB_SUFFIX" = "" +then : # TEA specific: use PACKAGE_VERSION instead of VERSION SHARED_LIB_SUFFIX='${PACKAGE_VERSION}${SHLIB_SUFFIX}' fi - if test "$UNSHARED_LIB_SUFFIX" = ""; then : + if test "$UNSHARED_LIB_SUFFIX" = "" +then : # TEA specific: use PACKAGE_VERSION instead of VERSION UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a' fi if test "${GCC}" = "yes" -a ${SHLIB_SUFFIX} = ".dll"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SEH support in compiler" >&5 -$as_echo_n "checking for SEH support in compiler... " >&6; } -if ${tcl_cv_seh+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SEH support in compiler" >&5 +printf %s "checking for SEH support in compiler... " >&6; } +if test ${tcl_cv_seh+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : tcl_cv_seh=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8817,9 +9720,10 @@ } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : tcl_cv_seh=yes -else +else $as_nop tcl_cv_seh=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -8828,11 +9732,11 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_seh" >&5 -$as_echo "$tcl_cv_seh" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_seh" >&5 +printf "%s\n" "$tcl_cv_seh" >&6; } if test "$tcl_cv_seh" = "no" ; then -$as_echo "#define HAVE_NO_SEH 1" >>confdefs.h +printf "%s\n" "#define HAVE_NO_SEH 1" >>confdefs.h fi @@ -8842,11 +9746,12 @@ # with Cygwin's version as of 2002-04-10, define it to be int, # sufficient for getting the current code to work. # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EXCEPTION_DISPOSITION support in include files" >&5 -$as_echo_n "checking for EXCEPTION_DISPOSITION support in include files... " >&6; } -if ${tcl_cv_eh_disposition+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EXCEPTION_DISPOSITION support in include files" >&5 +printf %s "checking for EXCEPTION_DISPOSITION support in include files... " >&6; } +if test ${tcl_cv_eh_disposition+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8855,7 +9760,7 @@ # undef WIN32_LEAN_AND_MEAN int -main () +main (void) { EXCEPTION_DISPOSITION x; @@ -8864,19 +9769,20 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_eh_disposition=yes -else +else $as_nop tcl_cv_eh_disposition=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_eh_disposition" >&5 -$as_echo "$tcl_cv_eh_disposition" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_eh_disposition" >&5 +printf "%s\n" "$tcl_cv_eh_disposition" >&6; } if test "$tcl_cv_eh_disposition" = "no" ; then -$as_echo "#define EXCEPTION_DISPOSITION int" >>confdefs.h +printf "%s\n" "#define EXCEPTION_DISPOSITION int" >>confdefs.h fi @@ -8884,11 +9790,12 @@ # even if VOID has already been #defined. The win32api # used by mingw and cygwin is known to do this. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winnt.h that ignores VOID define" >&5 -$as_echo_n "checking for winnt.h that ignores VOID define... " >&6; } -if ${tcl_cv_winnt_ignore_void+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for winnt.h that ignores VOID define" >&5 +printf %s "checking for winnt.h that ignores VOID define... " >&6; } +if test ${tcl_cv_winnt_ignore_void+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8898,7 +9805,7 @@ #undef WIN32_LEAN_AND_MEAN int -main () +main (void) { CHAR c; @@ -8909,19 +9816,20 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_winnt_ignore_void=yes -else +else $as_nop tcl_cv_winnt_ignore_void=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_winnt_ignore_void" >&5 -$as_echo "$tcl_cv_winnt_ignore_void" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_winnt_ignore_void" >&5 +printf "%s\n" "$tcl_cv_winnt_ignore_void" >&6; } if test "$tcl_cv_winnt_ignore_void" = "yes" ; then -$as_echo "#define HAVE_WINNT_IGNORE_VOID 1" >>confdefs.h +printf "%s\n" "#define HAVE_WINNT_IGNORE_VOID 1" >>confdefs.h fi fi @@ -8930,16 +9838,17 @@ # This is used to stop gcc from printing a compiler # warning when initializing a union member. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cast to union support" >&5 -$as_echo_n "checking for cast to union support... " >&6; } -if ${tcl_cv_cast_to_union+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cast to union support" >&5 +printf %s "checking for cast to union support... " >&6; } +if test ${tcl_cv_cast_to_union+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { union foo { int i; double d; }; @@ -8949,19 +9858,20 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_cast_to_union=yes -else +else $as_nop tcl_cv_cast_to_union=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cast_to_union" >&5 -$as_echo "$tcl_cv_cast_to_union" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cast_to_union" >&5 +printf "%s\n" "$tcl_cv_cast_to_union" >&6; } if test "$tcl_cv_cast_to_union" = "yes"; then -$as_echo "#define HAVE_CAST_TO_UNION 1" >>confdefs.h +printf "%s\n" "#define HAVE_CAST_TO_UNION 1" >>confdefs.h fi @@ -8980,164 +9890,174 @@ # These must be called after we do the basic CFLAGS checks and # verify any possible 64-bit or similar switches are necessary - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for required early compiler flags" >&5 -$as_echo_n "checking for required early compiler flags... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for required early compiler flags" >&5 +printf %s "checking for required early compiler flags... " >&6; } tcl_flags="" - if ${tcl_cv_flag__isoc99_source+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${tcl_cv_flag__isoc99_source+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { char *p = (char *)strtoll; char *q = (char *)strtoull; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_flag__isoc99_source=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _ISOC99_SOURCE 1 #include int -main () +main (void) { char *p = (char *)strtoll; char *q = (char *)strtoull; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_flag__isoc99_source=yes -else +else $as_nop tcl_cv_flag__isoc99_source=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "x${tcl_cv_flag__isoc99_source}" = "xyes" ; then -$as_echo "#define _ISOC99_SOURCE 1" >>confdefs.h +printf "%s\n" "#define _ISOC99_SOURCE 1" >>confdefs.h tcl_flags="$tcl_flags _ISOC99_SOURCE" fi - if ${tcl_cv_flag__largefile64_source+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${tcl_cv_flag__largefile64_source+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { struct stat64 buf; int i = stat64("/", &buf); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_flag__largefile64_source=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGEFILE64_SOURCE 1 #include int -main () +main (void) { struct stat64 buf; int i = stat64("/", &buf); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_flag__largefile64_source=yes -else +else $as_nop tcl_cv_flag__largefile64_source=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "x${tcl_cv_flag__largefile64_source}" = "xyes" ; then -$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h +printf "%s\n" "#define _LARGEFILE64_SOURCE 1" >>confdefs.h tcl_flags="$tcl_flags _LARGEFILE64_SOURCE" fi - if ${tcl_cv_flag__largefile_source64+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${tcl_cv_flag__largefile_source64+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { char *p = (char *)open64; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_flag__largefile_source64=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGEFILE_SOURCE64 1 #include int -main () +main (void) { char *p = (char *)open64; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_flag__largefile_source64=yes -else +else $as_nop tcl_cv_flag__largefile_source64=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "x${tcl_cv_flag__largefile_source64}" = "xyes" ; then -$as_echo "#define _LARGEFILE_SOURCE64 1" >>confdefs.h +printf "%s\n" "#define _LARGEFILE_SOURCE64 1" >>confdefs.h tcl_flags="$tcl_flags _LARGEFILE_SOURCE64" fi if test "x${tcl_flags}" = "x" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf "%s\n" "none" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${tcl_flags}" >&5 -$as_echo "${tcl_flags}" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${tcl_flags}" >&5 +printf "%s\n" "${tcl_flags}" >&6; } fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit integer type" >&5 -$as_echo_n "checking for 64-bit integer type... " >&6; } - if ${tcl_cv_type_64bit+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit integer type" >&5 +printf %s "checking for 64-bit integer type... " >&6; } + if test ${tcl_cv_type_64bit+y} +then : + printf %s "(cached) " >&6 +else $as_nop tcl_cv_type_64bit=none # See if the compiler knows natively about __int64 @@ -9145,19 +10065,20 @@ /* end confdefs.h. */ int -main () +main (void) { __int64 value = (__int64) 0; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_type_64bit=__int64 -else +else $as_nop tcl_type_64bit="long long" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # See if we should use long anyway Note that we substitute in the # type that is our current guess for a 64-bit type inside this check # program, so it should be modified only carefully... @@ -9165,7 +10086,7 @@ /* end confdefs.h. */ int -main () +main (void) { switch (0) { case 1: case (sizeof(${tcl_type_64bit})==sizeof(long)): ; @@ -9174,78 +10095,80 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_type_64bit=${tcl_type_64bit} fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "${tcl_cv_type_64bit}" = none ; then -$as_echo "#define TCL_WIDE_INT_IS_LONG 1" >>confdefs.h +printf "%s\n" "#define TCL_WIDE_INT_IS_LONG 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: using long" >&5 -$as_echo "using long" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using long" >&5 +printf "%s\n" "using long" >&6; } elif test "${tcl_cv_type_64bit}" = "__int64" \ -a "${TEA_PLATFORM}" = "windows" ; then # TEA specific: We actually want to use the default tcl.h checks in # this case to handle both TCL_WIDE_INT_TYPE and TCL_LL_MODIFIER* - { $as_echo "$as_me:${as_lineno-$LINENO}: result: using Tcl header defaults" >&5 -$as_echo "using Tcl header defaults" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using Tcl header defaults" >&5 +printf "%s\n" "using Tcl header defaults" >&6; } else -cat >>confdefs.h <<_ACEOF -#define TCL_WIDE_INT_TYPE ${tcl_cv_type_64bit} -_ACEOF +printf "%s\n" "#define TCL_WIDE_INT_TYPE ${tcl_cv_type_64bit}" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${tcl_cv_type_64bit}" >&5 -$as_echo "${tcl_cv_type_64bit}" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${tcl_cv_type_64bit}" >&5 +printf "%s\n" "${tcl_cv_type_64bit}" >&6; } # Now check for auxiliary declarations - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct dirent64" >&5 -$as_echo_n "checking for struct dirent64... " >&6; } -if ${tcl_cv_struct_dirent64+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct dirent64" >&5 +printf %s "checking for struct dirent64... " >&6; } +if test ${tcl_cv_struct_dirent64+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int -main () +main (void) { struct dirent64 p; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_struct_dirent64=yes -else +else $as_nop tcl_cv_struct_dirent64=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_struct_dirent64" >&5 -$as_echo "$tcl_cv_struct_dirent64" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_struct_dirent64" >&5 +printf "%s\n" "$tcl_cv_struct_dirent64" >&6; } if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then -$as_echo "#define HAVE_STRUCT_DIRENT64 1" >>confdefs.h +printf "%s\n" "#define HAVE_STRUCT_DIRENT64 1" >>confdefs.h fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct stat64" >&5 -$as_echo_n "checking for struct stat64... " >&6; } -if ${tcl_cv_struct_stat64+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct stat64" >&5 +printf %s "checking for struct stat64... " >&6; } +if test ${tcl_cv_struct_stat64+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { struct stat64 p; @@ -9253,44 +10176,47 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_struct_stat64=yes -else +else $as_nop tcl_cv_struct_stat64=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_struct_stat64" >&5 -$as_echo "$tcl_cv_struct_stat64" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_struct_stat64" >&5 +printf "%s\n" "$tcl_cv_struct_stat64" >&6; } if test "x${tcl_cv_struct_stat64}" = "xyes" ; then -$as_echo "#define HAVE_STRUCT_STAT64 1" >>confdefs.h +printf "%s\n" "#define HAVE_STRUCT_STAT64 1" >>confdefs.h fi - for ac_func in open64 lseek64 -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF + ac_fn_c_check_func "$LINENO" "open64" "ac_cv_func_open64" +if test "x$ac_cv_func_open64" = xyes +then : + printf "%s\n" "#define HAVE_OPEN64 1" >>confdefs.h fi -done +ac_fn_c_check_func "$LINENO" "lseek64" "ac_cv_func_lseek64" +if test "x$ac_cv_func_lseek64" = xyes +then : + printf "%s\n" "#define HAVE_LSEEK64 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for off64_t" >&5 -$as_echo_n "checking for off64_t... " >&6; } - if ${tcl_cv_type_off64_t+:} false; then : - $as_echo_n "(cached) " >&6 -else +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for off64_t" >&5 +printf %s "checking for off64_t... " >&6; } + if test ${tcl_cv_type_off64_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { off64_t offset; @@ -9298,25 +10224,26 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_type_off64_t=yes -else +else $as_nop tcl_cv_type_off64_t=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "x${tcl_cv_type_off64_t}" = "xyes" && \ test "x${ac_cv_func_lseek64}" = "xyes" && \ test "x${ac_cv_func_open64}" = "xyes" ; then -$as_echo "#define HAVE_TYPE_OFF64_T 1" >>confdefs.h +printf "%s\n" "#define HAVE_TYPE_OFF64_T 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi fi @@ -9333,12 +10260,13 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for build with symbols" >&5 -$as_echo_n "checking for build with symbols... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for build with symbols" >&5 +printf %s "checking for build with symbols... " >&6; } # Check whether --enable-symbols was given. -if test "${enable_symbols+set}" = set; then : +if test ${enable_symbols+y} +then : enableval=$enable_symbols; tcl_ok=$enableval -else +else $as_nop tcl_ok=no fi @@ -9346,14 +10274,14 @@ if test "$tcl_ok" = "no"; then CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE} -DNDEBUG" LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } else CFLAGS_DEFAULT="${CFLAGS_DEBUG}" LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}" if test "$tcl_ok" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (standard debugging)" >&5 -$as_echo "yes (standard debugging)" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes (standard debugging)" >&5 +printf "%s\n" "yes (standard debugging)" >&6; } fi fi # TEA specific: @@ -9366,17 +10294,17 @@ if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then -$as_echo "#define TCL_MEM_DEBUG 1" >>confdefs.h +printf "%s\n" "#define TCL_MEM_DEBUG 1" >>confdefs.h fi if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then if test "$tcl_ok" = "all"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabled symbols mem debugging" >&5 -$as_echo "enabled symbols mem debugging" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: enabled symbols mem debugging" >&5 +printf "%s\n" "enabled symbols mem debugging" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabled $tcl_ok debugging" >&5 -$as_echo "enabled $tcl_ok debugging" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: enabled $tcl_ok debugging" >&5 +printf "%s\n" "enabled $tcl_ok debugging" >&6; } fi fi @@ -9387,6 +10315,148 @@ # and TEA_LOAD_TCLCONFIG macros above. #-------------------------------------------------------------------- +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +printf %s "checking for grep that handles long lines and -e... " >&6; } +if test ${ac_cv_path_GREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" '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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +printf "%s\n" "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +printf %s "checking for egrep... " >&6; } +if test ${ac_cv_path_EGREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" '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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +printf "%s\n" "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then MAKE_STATIC_LIB="\${STLIB_LD} -out:\$@ \$(PKG_OBJECTS)" @@ -9400,7 +10470,8 @@ _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "manifest needed" >/dev/null 2>&1; then : + $EGREP "manifest needed" >/dev/null 2>&1 +then : # Could do a CHECK_PROG for mt, but should always be with MSVC8+ VC_MANIFEST_EMBED_DLL="if test -f \$@.manifest ; then mt.exe -nologo -manifest \$@.manifest -outputresource:\$@\;2 ; fi" @@ -9411,7 +10482,7 @@ fi -rm -f conftest* +rm -rf conftest* MAKE_STUB_LIB="\${STLIB_LD} -nodefaultlib -out:\$@ \$(PKG_STUB_OBJECTS)" else @@ -9499,8 +10570,8 @@ #-------------------------------------------------------------------- - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tclsh" >&5 -$as_echo_n "checking for tclsh... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tclsh" >&5 +printf %s "checking for tclsh... " >&6; } if test -f "${TCL_BIN_DIR}/Makefile" ; then # tclConfig.sh is in Tcl build directory if test "${TEA_PLATFORM}" = "windows"; then @@ -9534,13 +10605,13 @@ done TCLSH_PROG="${REAL_TCL_BIN_DIR}${TCLSH_PROG}" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${TCLSH_PROG}" >&5 -$as_echo "${TCLSH_PROG}" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${TCLSH_PROG}" >&5 +printf "%s\n" "${TCLSH_PROG}" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wish" >&5 -$as_echo_n "checking for wish... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wish" >&5 +printf %s "checking for wish... " >&6; } if test -f "${TK_BIN_DIR}/Makefile" ; then # tkConfig.sh is in Tk build directory if test "${TEA_PLATFORM}" = "windows"; then @@ -9574,8 +10645,50 @@ done WISH_PROG="${REAL_TK_BIN_DIR}${WISH_PROG}" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${WISH_PROG}" >&5 -$as_echo "${WISH_PROG}" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${WISH_PROG}" >&5 +printf "%s\n" "${WISH_PROG}" >&6; } + + + +#-------------------------------------------------------------------- +# Load libxml2 configuration +#-------------------------------------------------------------------- + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for xml2-config script" >&5 +printf %s "checking for xml2-config script... " >&6; } + + +# Check whether --with-xml2-config was given. +if test ${with_xml2_config+y} +then : + withval=$with_xml2_config; with_xml2_config=${withval} +fi + + +LIBXML2_CONFIG= +if test "x${with_xml2_config}" = "x" ; then + for c in \ + ${prefix}/bin/xml2-config \ + /usr/bin/xml2-config \ + /usr/local/bin/xml2-config + do + if test -x "$c" ; then + LIBXML2_CONFIG="$c" + break + fi + done +else + LIBXML2_CONFIG="${with_xml2_config}" +fi +if test "x$LIBXML2_CONFIG" = "x" ; then + as_fn_error $? "unable to find xml2-config" "$LINENO" 5 +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${LIBXML2_CONFIG}" >&5 +printf "%s\n" "${LIBXML2_CONFIG}" >&6; } + XML2_CFLAGS=`${LIBXML2_CONFIG} --cflags` + XML2_LIBS="`${LIBXML2_CONFIG} --libs`" +fi + @@ -9660,8 +10773,8 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -9691,15 +10804,15 @@ /^ac_cv_env_/b end t clear :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else @@ -9713,8 +10826,8 @@ fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -9767,7 +10880,7 @@ for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" @@ -9785,8 +10898,8 @@ ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL @@ -9809,14 +10922,16 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else +else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -9826,46 +10941,46 @@ fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || @@ -9874,13 +10989,6 @@ fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( @@ -9889,8 +10997,12 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS @@ -9902,30 +11014,10 @@ as_myself=$0 fi if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] @@ -9938,13 +11030,14 @@ as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error + # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -9971,18 +11064,20 @@ { eval $1=; unset $1;} } as_unset=as_fn_unset + # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : eval 'as_fn_append () { eval $1+=\$2 }' -else +else $as_nop as_fn_append () { eval $1=\$$1\$2 @@ -9994,12 +11089,13 @@ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else +else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` @@ -10030,7 +11126,7 @@ $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -10052,6 +11148,10 @@ as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -10065,6 +11165,12 @@ ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -10106,7 +11212,7 @@ as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -10115,7 +11221,7 @@ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -10178,7 +11284,7 @@ # values after options handling. ac_log=" This file was extended by tksao $as_me 1.0, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -10227,14 +11333,16 @@ Report bugs to the package provider." _ACEOF +ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ tksao config.status 1.0 -configured by $0, generated by GNU Autoconf 2.69, +configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -10271,21 +11379,21 @@ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; + printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; + printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; + printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; @@ -10313,7 +11421,7 @@ if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" @@ -10327,7 +11435,7 @@ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX - $as_echo "$ac_log" + printf "%s\n" "$ac_log" } >&5 _ACEOF @@ -10354,7 +11462,7 @@ # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree @@ -10582,7 +11690,7 @@ esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done @@ -10590,17 +11698,17 @@ # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | + ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac @@ -10617,7 +11725,7 @@ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | +printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -10641,9 +11749,9 @@ case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -10696,8 +11804,8 @@ case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' @@ -10739,9 +11847,9 @@ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" @@ -10788,7 +11896,8 @@ $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi + diff -Nru saods9-8.2+repack/tksao/configure.ac saods9-8.3+repack/tksao/configure.ac --- saods9-8.2+repack/tksao/configure.ac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/configure.ac 2021-11-08 15:46:07.000000000 +0000 @@ -225,18 +225,23 @@ TEA_ADD_HEADERS([]) TEA_ADD_INCLUDES([-I. -I./colorbar -I./frame -I./list -I./magnifier -I./panner -I./tkutil -I./widget -I${prefix}/include]) TEA_ADD_LIBS([]) -TEA_ADD_CFLAGS([]) -TEA_ADD_STUB_SOURCES([]) -TEA_ADD_TCL_SOURCES([]) - -case ${TEA_PLATFORM} in - windows*) - AC_DEFINE(HAVE_MINGW32) +case $system in + Darwin* ) + case `arch` in + arm64) + TEA_ADD_CFLAGS([-DNOSIGBUS]) + ;; + *) + TEA_ADD_CFLAGS([]) + ;; + esac ;; *) - AC_CHECK_HEADERS(sys/shm.h) + TEA_ADD_CFLAGS([]) ;; esac +TEA_ADD_STUB_SOURCES([]) +TEA_ADD_TCL_SOURCES([]) #-------------------------------------------------------------------- # __CHANGE__ @@ -252,32 +257,6 @@ TEA_CONFIG_SYSTEM -case $system in - Darwin* ) - devdir=`xcrun --show-sdk-path` - TEA_ADD_INCLUDES([-I${devdir}/usr/include/libxml2]) - ;; - CYGWIN* ) - TEA_ADD_INCLUDES([-I/usr/include/libxml2]) - ;; - Linux* ) - TEA_ADD_INCLUDES([-I/usr/include/libxml2]) - ;; - FreeBSD* ) - TEA_ADD_INCLUDES([-I/usr/local/include/libxml2]) - ;; - windows*) - TEA_ADD_INCLUDES([-I${prefix}/include/libxml2]) - ;; -esac - -#CLEANFILES="$CLEANFILES pkgIndex.tcl" -#if test "${TEA_PLATFORM}" = "windows" ; then -# TEA_ADD_INCLUDES([-I${prefix}/include/libxml2]) -#else -# TEA_ADD_INCLUDES([-I/usr/include/libxml2]) -#fi - #-------------------------------------------------------------------- # __CHANGE__ # Choose which headers you need. Extension authors should try very @@ -347,6 +326,42 @@ TEA_PROG_WISH #-------------------------------------------------------------------- +# Load libxml2 configuration +#-------------------------------------------------------------------- + +AC_MSG_CHECKING([for xml2-config script]) + +AC_ARG_WITH(xml2-config, + [ --with-xml2-config the xml2-config configuration script], + with_xml2_config=${withval}) + +LIBXML2_CONFIG= +if test "x${with_xml2_config}" = "x" ; then + for c in \ + ${prefix}/bin/xml2-config \ + /usr/bin/xml2-config \ + /usr/local/bin/xml2-config + do + if test -x "$c" ; then + LIBXML2_CONFIG="$c" + break + fi + done +else + LIBXML2_CONFIG="${with_xml2_config}" +fi +if test "x$LIBXML2_CONFIG" = "x" ; then + AC_MSG_ERROR([unable to find xml2-config]) +else + AC_MSG_RESULT([${LIBXML2_CONFIG}]) + XML2_CFLAGS=`${LIBXML2_CONFIG} --cflags` + XML2_LIBS="`${LIBXML2_CONFIG} --libs`" +fi + +AC_SUBST(XML2_CFLAGS) +AC_SUBST(XML2_LIBS) + +#-------------------------------------------------------------------- # Setup a *Config.sh.in configuration file. #-------------------------------------------------------------------- diff -Nru saods9-8.2+repack/tksao/frame/annulus.C saods9-8.3+repack/tksao/frame/annulus.C --- saods9-8.2+repack/tksao/frame/annulus.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/annulus.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/annulus.h saods9-8.3+repack/tksao/frame/annulus.h --- saods9-8.2+repack/tksao/frame/annulus.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/annulus.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/basebox.C saods9-8.3+repack/tksao/frame/basebox.C --- saods9-8.2+repack/tksao/frame/basebox.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/basebox.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -100,32 +100,6 @@ Tcl_AppendResult(parent->interp, str.str().c_str(), NULL); } -#ifdef MAC_OSX_TK -#include - -void BaseBox::renderMACOSX() -{ - /* - renderMACOSXGC(); - - newVertices(); - for (int ii=0; iimapFromRef(vertices_[ii][jj],Coord::CANVAS); - macosxDrawLines(vv, numPoints_); - delete [] vv; - } - deleteVertices(); - */ -} - -void BaseBox::renderMACOSXDraw(Vector* vv) -{ - // macosxDrawLines(vv, numPoints_); -} -#endif - #ifdef __WIN32 #include diff -Nru saods9-8.2+repack/tksao/frame/basebox.h saods9-8.3+repack/tksao/frame/basebox.h --- saods9-8.2+repack/tksao/frame/basebox.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/basebox.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -33,10 +33,6 @@ virtual void renderPSDraw(int); void renderPSFillDraw(int); -#ifdef MAC_OSX_TK - void renderMACOSX(); - virtual void renderMACOSXDraw(Vector*); -#endif #ifdef __WIN32 void renderWIN32(); virtual void renderWIN32Draw(Vector*); diff -Nru saods9-8.2+repack/tksao/frame/base.C saods9-8.3+repack/tksao/frame/base.C --- saods9-8.2+repack/tksao/frame/base.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/base.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -1270,6 +1270,7 @@ if (flag < needsUpdate) needsUpdate = flag; + // schedule redraw only redraw(); } @@ -1282,6 +1283,7 @@ if (flag < needsUpdate) needsUpdate = flag; + // schedule redraw only redraw(bb); } @@ -1623,6 +1625,7 @@ if (flag < needsUpdate) needsUpdate = flag; + // schedule redraw and process idletasks events redrawNow(); } @@ -1634,6 +1637,7 @@ // bb is in canvas coords if (flag < needsUpdate) needsUpdate = flag; + // schedule redraw and process idletasks events redrawNow(bb); } @@ -1666,12 +1670,7 @@ break; } -#ifdef MAC_OSX_TK - // always need to redraw as MacOS can have EXPOSE event (dark mode) - needsUpdate = BASE; -#else needsUpdate = NOUPDATE; -#endif return TCL_OK; } @@ -1682,6 +1681,10 @@ void Base::updatePM(const BBox& bbox) { + // just in case (MacOS) + if (!basePixmap) + return; + // bbox is in Canvas Coords // Gave up on only redrawing bbox, contours, and grid causes problems @@ -1824,125 +1827,6 @@ ximageToPixmap(magnifierPixmap, magnifierXImage, Coord::MAGNIFIER); } -#ifdef MAC_OSX_TK -#include - -void Base::macosx() -{ - /* - // clip rect - XRectangle rectWidget[1]; - XRectangle* rr = rectWidget; - Vector v1 = Vector(rr->x, rr->y) * widgetToCanvas; - Vector v2 = Vector(rr->x+rr->width, rr->y+rr->height) * widgetToCanvas; - macosxClip(v1,v2-v1); - - if (currentContext->fits) { - // scale - double scale = 150 / 72.; - int width = options->width*scale; - int height = options->height*scale; - - // image - macosxImage(scale, width, height, v1, v2-v1); - } - */ -} - -void Base::macosxCrosshair() -{ - /* - if (!useCrosshair) - return; - - Vector rr = mapFromRef(crosshair,Coord::WIDGET); - Vector aa = Vector(rr[0],1) * widgetToCanvas; - Vector bb = Vector(rr[0],options->height) * widgetToCanvas; - Vector cc = Vector(1,rr[1]) * widgetToCanvas; - Vector dd = Vector(options->width,rr[1]) * widgetToCanvas; - - macosxColor(getXColor("green")); - macosxWidth(1); - macosxDrawLine(aa,bb); - macosxDrawLine(cc,dd); - */ -} - -void Base::macosxImage(float scale, int width, int height, - const Vector& v, const Vector& s) -{ - /* - // we need a colorScale before we can render - if (!validColorScale()) - return; - - pushPSMatrices(scale, width, height); - - // source - unsigned char* src = fillImage(width, height, Coord::PS); - if (!src) - return; - - // destination - unsigned char* dst = new unsigned char[width*height*4]; - if (!dst) - return; - - unsigned char* sptr = src; - unsigned char* dptr = dst; - for (int ii=0; iicontourMacOSX(); - - // grid - if (grid) - grid->macosx(); - - // markers over grid - if (showMarkers) { - macosxMarkers(&footprintMarkers); - macosxMarkers(&catalogMarkers); - macosxMarkers(&userMarkers); - } - - macosxCrosshair(); - macosxGraphics(); - - // cleanup - macosxEnd(); - */ -} -#endif - #ifdef __WIN32 #include diff -Nru saods9-8.2+repack/tksao/frame/basecommand.C saods9-8.3+repack/tksao/frame/basecommand.C --- saods9-8.2+repack/tksao/frame/basecommand.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/basecommand.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -632,7 +632,6 @@ Vector rr = crosshair*refToCanvas; rr += vv; crosshair = rr*canvasToRef; - update(PIXMAP); } @@ -1067,12 +1066,11 @@ void Base::getColorMapLevelCmd(int count) { - if (currentContext->cfits) { + if (currentContext->cfits) getColorMapLevelCmd(count, currentContext->cfits->low(), currentContext->cfits->high(), currentContext->colorScaleType(), currentContext->expo()); - } else getColorMapLevelCmd(count, currentContext->low(), currentContext->high(), @@ -1872,6 +1870,17 @@ bltCut(xx, yy, Coord::XX, mapToRef(vv,ref), thick, method); } +void Base::getHorzCutCmd(char* xx, char* yy, const Vector& vv, + Coord::CoordSystem sys, Coord::SkyFrame sky, + int thick, Base::CutMethod method) +{ + FitsImage* ptr = currentContext->fits; + if (!ptr) + return; + + bltCut(xx, yy, Coord::XX, ptr->mapToRef(vv,sys,sky), thick, method); +} + void Base::getInfoCmd(char* var) { if (currentContext->cfits) { @@ -2144,6 +2153,17 @@ bltCut(xx, yy, Coord::YY, mapToRef(vv,ref), thick, method); } +void Base::getVertCutCmd(char* xx, char* yy, const Vector& vv, + Coord::CoordSystem sys, Coord::SkyFrame sky, + int thick, Base::CutMethod method) +{ + FitsImage* ptr = currentContext->fits; + if (!ptr) + return; + + bltCut(xx, yy, Coord::YY, ptr->mapToRef(vv,sys,sky), thick, method); +} + void Base::getWCSCmd() { Tcl_AppendResult(interp, coord.coordSystemStr(wcsSystem_), " ", @@ -2914,10 +2934,12 @@ // for 3d, rebuffer if (now) { syncUpdate =1; + // schedule redraw and process idletasks events updateNow(MATRIX); syncUpdate =0; } else + // schedule redraw only update(MATRIX); } @@ -2947,10 +2969,12 @@ if (now) { syncUpdate =1; + // schedule redraw and process idletasks events updateNow(BASE, rr); syncUpdate =0; } else + // schedule redraw only update(BASE, rr); } } diff -Nru saods9-8.2+repack/tksao/frame/baseellipse.C saods9-8.3+repack/tksao/frame/baseellipse.C --- saods9-8.2+repack/tksao/frame/baseellipse.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/baseellipse.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -570,166 +570,6 @@ } } -#ifdef MAC_OSX_TK -#include - -void BaseEllipse::renderMACOSX() { - Vector r = annuli_[numAnnuli_-1]; - Vector z = parent->zoom(); - - int isOrient = parent->getOrientation() == Coord::NORMAL && - parent->getWCSOrientation() == Coord::NORMAL; - int isRound = r[0] == r[1]; - int isScale = z[0] == z[1]; - - if (isRound && isScale && isOrient & parent->isAzElZero()) - renderMACOSXCircle(); - else - renderMACOSXEllipse(); -} - -void BaseEllipse::renderMACOSXCircle() -{ - /* - renderMACOSXGC(); - - Vector cc = parent->mapFromRef(center,Coord::CANVAS); - double ang = calcAngle(); - - for (int ii=0; ii=b1 && a1b1 && a2<=b2) - s2 =1; - - if ((s1 && !s2) || (s1 && s2)) - renderMACOSXEllipsePrep(a1,a2,b1,b2,r); - - if (s1&&s2) - s1=s2=0; - - renderMACOSXDraw(); - } - } - */ -} - -void BaseEllipse::renderMACOSXEllipsePrep(double a1, double a2, - double b1, double b2, - Vector& rr) -{ - if (!(a1 >= b1 && a1 <= b2)) - a1 = b1; - if (!(a2 >= b1 && a2 <= b2)) - a2 = b2; - - if (a1>a2) { - renderMACOSXEllipseArc(b1,a2,rr); - renderMACOSXEllipseArc(a1,b2,rr); - } - else - renderMACOSXEllipseArc(a1,a2,rr); -} - -void BaseEllipse::renderMACOSXEllipseArc(double a1, double a2, Vector& rr) - -{ - /* - // don't render zero length arcs - if (a1 == a2) - return; - - if (!rr[0] || !rr[1]) - return; - - // bezier curve, valid for arcs of getXColor("red")); - macosxDrawLine(r1,r2); - } - */ -} -#endif - #ifdef __WIN32 #include diff -Nru saods9-8.2+repack/tksao/frame/baseellipse.h saods9-8.3+repack/tksao/frame/baseellipse.h --- saods9-8.2+repack/tksao/frame/baseellipse.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/baseellipse.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -32,14 +32,6 @@ void renderPSEllipseArc(double, double, Vector&); void renderPSInclude(PSColorSpace); -#ifdef MAC_OSX_TK - void renderMACOSXCircle(); - void renderMACOSXEllipse(); - void renderMACOSXEllipsePrep(double, double, double, double, Vector&); - void renderMACOSXEllipseArc(double, double, Vector&); - void renderMACOSXInclude(); -#endif - #ifdef __WIN32 void renderWIN32Circle(); void renderWIN32Ellipse(); @@ -59,10 +51,6 @@ virtual void renderPSDraw(); void renderPSFill(); -#ifdef MAC_OSX_TK - void renderMACOSX(); - virtual void renderMACOSXDraw(); -#endif #ifdef __WIN32 void renderWIN32(); virtual void renderWIN32Draw(); diff -Nru saods9-8.2+repack/tksao/frame/base.h saods9-8.3+repack/tksao/frame/base.h --- saods9-8.2+repack/tksao/frame/base.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/base.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -508,13 +508,6 @@ Vector zoom() {return zoom_;} -#ifdef MAC_OSX_TK - void macosx(); - void macosxCrosshair(); - virtual void macosxGraphics() {} - void macosxImage(float, int, int, const Vector&, const Vector&); - void macosxMarkers(List* ml); -#endif #ifdef __WIN32 void win32(); void win32Crosshair(); @@ -994,8 +987,14 @@ // Graph Commands void getHorzCutCmd(char*, char*, const Vector&, Coord::InternalSystem, int, Base::CutMethod); + void getHorzCutCmd(char*, char*, const Vector&, + Coord::CoordSystem, Coord::SkyFrame, + int, Base::CutMethod); void getVertCutCmd(char*, char*, const Vector&, Coord::InternalSystem, int, Base::CutMethod); + void getVertCutCmd(char*, char*, const Vector&, + Coord::CoordSystem, Coord::SkyFrame, + int, Base::CutMethod); // Grid Commands virtual void gridCmd(Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, @@ -1631,9 +1630,6 @@ void precCmd(int, int, int, int, int, int); // Print Commands -#ifdef MAC_OSX_TK - void macosxPrintCmd(); -#endif #ifdef __WIN32 void win32PrintCmd(); #endif diff -Nru saods9-8.2+repack/tksao/frame/baseline.C saods9-8.3+repack/tksao/frame/baseline.C --- saods9-8.2+repack/tksao/frame/baseline.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/baseline.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/baseline.h saods9-8.3+repack/tksao/frame/baseline.h --- saods9-8.2+repack/tksao/frame/baseline.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/baseline.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -16,10 +16,6 @@ void renderPSInclude(PSColorSpace) {} -#ifdef MAC_OSX_TK - void renderMACOSXInclude() {} -#endif - #ifdef __WIN32 void renderWIN32Include() {} #endif diff -Nru saods9-8.2+repack/tksao/frame/baseload.C saods9-8.3+repack/tksao/frame/baseload.C --- saods9-8.2+repack/tksao/frame/baseload.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/baseload.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/basemarker.C saods9-8.3+repack/tksao/frame/basemarker.C --- saods9-8.2+repack/tksao/frame/basemarker.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/basemarker.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/basemarker.h saods9-8.3+repack/tksao/frame/basemarker.h --- saods9-8.2+repack/tksao/frame/basemarker.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/basemarker.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/basepolygon.C saods9-8.3+repack/tksao/frame/basepolygon.C --- saods9-8.2+repack/tksao/frame/basepolygon.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/basepolygon.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/basepolygon.h saods9-8.3+repack/tksao/frame/basepolygon.h --- saods9-8.2+repack/tksao/frame/basepolygon.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/basepolygon.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -15,9 +15,6 @@ protected: virtual void renderX(Drawable, Coord::InternalSystem, RenderMode) =0; virtual void renderPS(PSColorSpace) =0; -#ifdef MAC_OSX_TK - virtual void renderMACOSX() =0; -#endif #ifdef __WIN32 virtual void renderWIN32() =0; #endif diff -Nru saods9-8.2+repack/tksao/frame/boxannulus.C saods9-8.3+repack/tksao/frame/boxannulus.C --- saods9-8.2+repack/tksao/frame/boxannulus.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/boxannulus.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/boxannulus.h saods9-8.3+repack/tksao/frame/boxannulus.h --- saods9-8.2+repack/tksao/frame/boxannulus.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/boxannulus.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/box.C saods9-8.3+repack/tksao/frame/box.C --- saods9-8.2+repack/tksao/frame/box.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/box.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -61,20 +61,6 @@ BaseBox::renderPSDraw(ii); } -#ifdef MAC_OSX_TK -#include - -void Box::renderMACOSXDraw(Vector* vv) -{ - /* - if (fill_) - macosxFillPolygon(vv, numPoints_); - else - macosxDrawLines(vv, numPoints_); - */ -} -#endif - #ifdef __WIN32 #include diff -Nru saods9-8.2+repack/tksao/frame/box.h saods9-8.3+repack/tksao/frame/box.h --- saods9-8.2+repack/tksao/frame/box.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/box.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -15,10 +15,6 @@ void renderXDraw(Drawable, GC, XPoint*, RenderMode); void renderPSDraw(int); -#ifdef MAC_OSX_TK - void renderMACOSXDraw(Vector*); -#endif - #ifdef __WIN32 void renderWIN32Draw(Vector*); #endif diff -Nru saods9-8.2+repack/tksao/frame/bpanda.C saods9-8.3+repack/tksao/frame/bpanda.C --- saods9-8.2+repack/tksao/frame/bpanda.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/bpanda.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -116,29 +116,6 @@ } } -#ifdef MAC_OSX_TK -#include - -void Bpanda::renderMACOSX() -{ - /* - BaseBox::renderMACOSX(); - - renderMACOSXGC(); - - Vector r0 = annuli_[0]/2; - Vector r1 = annuli_[numAnnuli_-1]/2; - - for (int ii=0; ii diff -Nru saods9-8.2+repack/tksao/frame/bpanda.h saods9-8.3+repack/tksao/frame/bpanda.h --- saods9-8.2+repack/tksao/frame/bpanda.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/bpanda.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -11,9 +11,6 @@ private: void renderX(Drawable, Coord::InternalSystem, RenderMode); void renderPS(PSColorSpace); -#ifdef MAC_OSX_TK - void renderMACOSX(); -#endif #ifdef __WIN32 void renderWIN32(); #endif diff -Nru saods9-8.2+repack/tksao/frame/callback.C saods9-8.3+repack/tksao/frame/callback.C --- saods9-8.2+repack/tksao/frame/callback.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/callback.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/callback.h saods9-8.3+repack/tksao/frame/callback.h --- saods9-8.2+repack/tksao/frame/callback.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/callback.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/ciaolex.C saods9-8.3+repack/tksao/frame/ciaolex.C --- saods9-8.2+repack/tksao/frame/ciaolex.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/ciaolex.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,6 +1,6 @@ -#line 2 "frame/ciaolex.C" +#line 1 "frame/ciaolex.C" -#line 4 "frame/ciaolex.C" +#line 3 "frame/ciaolex.C" #define YY_INT_ALIGNED short int @@ -8,8 +8,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -22,6 +22,24 @@ */ #define yyFlexLexer ciaoFlexLexer +#ifdef yyalloc +#define ciaoalloc_ALREADY_DEFINED +#else +#define yyalloc ciaoalloc +#endif + +#ifdef yyrealloc +#define ciaorealloc_ALREADY_DEFINED +#else +#define yyrealloc ciaorealloc +#endif + +#ifdef yyfree +#define ciaofree_ALREADY_DEFINED +#else +#define yyfree ciaofree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -59,7 +77,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -90,70 +107,67 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ -#include +#include #include #include +#include #include /* end standard C++ headers. */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) - #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -175,8 +189,9 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -191,7 +206,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -199,7 +213,7 @@ struct yy_buffer_state { - std::istream* yy_input_file; + std::streambuf* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ @@ -207,7 +221,7 @@ /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -235,7 +249,7 @@ int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -269,18 +283,16 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -void *ciaoalloc (yy_size_t ); -void *ciaorealloc (void *,yy_size_t ); -void ciaofree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -290,7 +302,6 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -300,13 +311,11 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; #define yytext_ptr yytext @@ -323,7 +332,6 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 51 #define YY_END_OF_BUFFER 52 /* This struct is not used in this scanner, @@ -333,7 +341,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[150] = +static const flex_int16_t yy_accept[150] = { 0, 0, 0, 52, 50, 46, 49, 50, 45, 50, 50, 22, 50, 50, 50, 50, 50, 50, 50, 50, 50, @@ -353,7 +361,7 @@ 42, 1, 7, 15, 0, 21, 0, 17, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, @@ -385,7 +393,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[55] = +static const YY_CHAR yy_meta[55] = { 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -395,7 +403,7 @@ 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[151] = +static const flex_int16_t yy_base[151] = { 0, 0, 0, 306, 307, 303, 307, 301, 0, 46, 293, 52, 35, 36, 44, 49, 45, 49, 53, 53, 59, @@ -415,7 +423,7 @@ 307, 307, 307, 307, 250, 307, 260, 307, 307, 100 } ; -static yyconst flex_int16_t yy_def[151] = +static const flex_int16_t yy_def[151] = { 0, 149, 1, 149, 149, 149, 149, 149, 150, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, @@ -435,7 +443,7 @@ 149, 149, 149, 149, 149, 149, 149, 149, 0, 149 } ; -static yyconst flex_int16_t yy_nxt[362] = +static const flex_int16_t yy_nxt[362] = { 0, 4, 5, 6, 7, 4, 8, 4, 9, 10, 11, 4, 12, 13, 14, 15, 16, 17, 4, 4, 4, @@ -479,7 +487,7 @@ 149 } ; -static yyconst flex_int16_t yy_chk[362] = +static const flex_int16_t yy_chk[362] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -531,7 +539,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "frame/ciaolex.L" -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -544,8 +552,9 @@ #include "ciaoparser.H" extern YYSTYPE* ciaolval; +#line 555 "frame/ciaolex.C" /* rules */ -#line 549 "frame/ciaolex.C" +#line 557 "frame/ciaolex.C" #define INITIAL 0 @@ -562,11 +571,11 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -575,7 +584,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -589,7 +603,7 @@ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif @@ -631,7 +645,7 @@ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -641,15 +655,10 @@ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 27 "frame/ciaolex.L" - - -#line 652 "frame/ciaolex.C" - if ( !(yy_init) ) { (yy_init) = 1; @@ -662,10 +671,10 @@ (yy_start) = 1; /* first start state */ if ( ! yyin ) - yyin = & std::cin; + yyin.rdbuf(std::cin.rdbuf()); if ( ! yyout ) - yyout = & std::cout; + yyout.rdbuf(std::cout.rdbuf()); if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); @@ -676,7 +685,13 @@ yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 27 "frame/ciaolex.L" + + +#line 692 "frame/ciaolex.C" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -692,7 +707,7 @@ yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -702,9 +717,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 150 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 149 ); @@ -995,7 +1010,7 @@ #line 146 "frame/ciaolex.L" ECHO; YY_BREAK -#line 999 "frame/ciaolex.C" +#line 1013 "frame/ciaolex.C" case YY_END_OF_BUFFER: { @@ -1018,7 +1033,7 @@ * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -1125,14 +1140,33 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. */ -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::ctor_common() { - yyin = arg_yyin; - yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; @@ -1149,7 +1183,7 @@ yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -1162,23 +1196,36 @@ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; - ciaofree(yy_start_stack ); + yyfree( yy_start_stack ); yy_delete_buffer( YY_CURRENT_BUFFER ); - ciaofree(yy_buffer_stack ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } + if( ! new_in ) { + new_in = &yyin; + } - if ( new_out ) - yyout = new_out; + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); } #ifdef YY_INTERACTIVE @@ -1187,33 +1234,33 @@ size_t yyFlexLexer::LexerInput( char* buf, size_t max_size ) #endif { - if ( yyin->eof() || yyin->fail() ) + if ( yyin.eof() || yyin.fail() ) return 0; #ifdef YY_INTERACTIVE - yyin->get( buf[0] ); + yyin.get( buf[0] ); - if ( yyin->eof() ) + if ( yyin.eof() ) return 0; - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; return 1; #else - (void) yyin->read( buf, max_size ); + (void) yyin.read( buf, max_size ); - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; else - return yyin->gcount(); + return yyin.gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, size_t size ) { - (void) yyout->write( buf, size ); + (void) yyout.write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer @@ -1225,9 +1272,9 @@ */ int yyFlexLexer::yy_get_next_buffer() { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1256,7 +1303,7 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1276,7 +1323,7 @@ { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); @@ -1292,11 +1339,12 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - ciaorealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1338,12 +1386,15 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) ciaorealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1359,14 +1410,14 @@ yy_state_type yyFlexLexer::yy_get_previous_state() { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1376,9 +1427,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 150 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1391,10 +1442,10 @@ */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1404,17 +1455,18 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 150 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 149); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - void yyFlexLexer::yyunput( int c, register char* yy_bp) +#ifndef YY_NO_UNPUT + void yyFlexLexer::yyunput( int c, char* yy_bp) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -1424,10 +1476,10 @@ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -1436,7 +1488,7 @@ yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -1448,6 +1500,7 @@ (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } +#endif int yyFlexLexer::yyinput() { @@ -1521,7 +1574,7 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void yyFlexLexer::yyrestart( std::istream* input_file ) + void yyFlexLexer::yyrestart( std::istream& input_file ) { if ( ! YY_CURRENT_BUFFER ){ @@ -1534,6 +1587,19 @@ yy_load_buffer_state( ); } +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -1573,7 +1639,7 @@ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); (yy_hold_char) = *(yy_c_buf_p); } @@ -1583,11 +1649,11 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) ciaoalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1596,7 +1662,7 @@ /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) ciaoalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1607,6 +1673,17 @@ return b; } +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -1621,23 +1698,23 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - ciaofree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - ciaofree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) { int oerrno = errno; yy_flush_buffer( b ); - b->yy_input_file = file; + b->yy_input_file = file.rdbuf(); b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -1745,15 +1822,15 @@ * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)ciaoalloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -1762,10 +1839,10 @@ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)ciaorealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -1778,20 +1855,21 @@ } } - void yyFlexLexer::yy_push_state( int new_state ) + void yyFlexLexer::yy_push_state( int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) ciaoalloc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) ciaorealloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -1799,7 +1877,7 @@ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } void yyFlexLexer::yy_pop_state() @@ -1819,7 +1897,7 @@ #define YY_EXIT_FAILURE 2 #endif -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( const char* msg ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); @@ -1832,7 +1910,7 @@ do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -1849,18 +1927,19 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -1868,13 +1947,14 @@ } #endif -void *ciaoalloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *ciaorealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -1882,12 +1962,12 @@ * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void ciaofree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see ciaorealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -1895,4 +1975,3 @@ #line 146 "frame/ciaolex.L" - diff -Nru saods9-8.2+repack/tksao/frame/ciaolex.L saods9-8.3+repack/tksao/frame/ciaolex.L --- saods9-8.2+repack/tksao/frame/ciaolex.L 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/ciaolex.L 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ diff -Nru saods9-8.2+repack/tksao/frame/ciaoparser.C saods9-8.3+repack/tksao/frame/ciaoparser.C --- saods9-8.2+repack/tksao/frame/ciaoparser.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/ciaoparser.C 2021-11-08 15:46:07.000000000 +0000 @@ -518,13 +518,13 @@ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 94, 94, 94, 102, 103, 106, 107, 108, 109, - 112, 113, 114, 117, 118, 119, 120, 121, 122, 123, - 124, 127, 128, 131, 132, 135, 138, 141, 144, 155, - 158, 159, 160, 161, 164, 171, 178, 185, 194, 197, - 200, 203, 210, 217, 224, 233, 238, 243, 244, 249, - 254, 255, 260, 265, 265, 270, 277, 278, 279, 282, - 289, 290, 293 + 0, 94, 94, 94, 99, 100, 103, 104, 105, 106, + 109, 110, 111, 114, 115, 116, 117, 118, 119, 120, + 121, 124, 125, 128, 129, 132, 135, 138, 141, 152, + 155, 156, 157, 158, 161, 168, 175, 182, 191, 194, + 197, 200, 207, 214, 221, 230, 235, 240, 241, 246, + 251, 252, 257, 262, 262, 267, 274, 275, 276, 279, + 286, 287, 290 }; #endif @@ -1529,60 +1529,57 @@ case 2: #line 94 "frame/ciaoparser.Y" { - if (fr->useMarkerColor()) - strcpy(color, fr->markerColor()); - else - strcpy(color, "green"); + strcpy(color, fr->markerColor()); ;} break; case 8: -#line 108 "frame/ciaoparser.Y" +#line 105 "frame/ciaoparser.Y" {cerr << "CIAO Regions File 1.0" << endl;;} break; case 12: -#line 114 "frame/ciaoparser.Y" +#line 111 "frame/ciaoparser.Y" {YYACCEPT;;} break; case 18: -#line 122 "frame/ciaoparser.Y" +#line 119 "frame/ciaoparser.Y" {setProps(&props, Marker::INCLUDE, 0);;} break; case 19: -#line 123 "frame/ciaoparser.Y" +#line 120 "frame/ciaoparser.Y" {setProps(&props, Marker::INCLUDE, 0);;} break; case 20: -#line 124 "frame/ciaoparser.Y" +#line 121 "frame/ciaoparser.Y" {setProps(&props, Marker::INCLUDE, 0);;} break; case 21: -#line 127 "frame/ciaoparser.Y" +#line 124 "frame/ciaoparser.Y" {(yyval.real)=(yyvsp[(1) - (1)].real);;} break; case 22: -#line 128 "frame/ciaoparser.Y" +#line 125 "frame/ciaoparser.Y" {(yyval.real)=(yyvsp[(1) - (1)].integer);;} break; case 23: -#line 131 "frame/ciaoparser.Y" +#line 128 "frame/ciaoparser.Y" {yydebug=1;;} break; case 24: -#line 132 "frame/ciaoparser.Y" +#line 129 "frame/ciaoparser.Y" {yydebug=0;;} break; case 28: -#line 144 "frame/ciaoparser.Y" +#line 141 "frame/ciaoparser.Y" { // reset maperr flag maperr =0; @@ -1595,32 +1592,32 @@ break; case 29: -#line 155 "frame/ciaoparser.Y" +#line 152 "frame/ciaoparser.Y" {(yyval.real) = zeroTWOPI(degToRad((yyvsp[(1) - (1)].real)));;} break; case 30: -#line 158 "frame/ciaoparser.Y" +#line 155 "frame/ciaoparser.Y" {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), Coord::PHYSICAL);;} break; case 31: -#line 159 "frame/ciaoparser.Y" +#line 156 "frame/ciaoparser.Y" {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), Coord::WCS, Coord::DEGREE);;} break; case 32: -#line 160 "frame/ciaoparser.Y" +#line 157 "frame/ciaoparser.Y" {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), Coord::WCS, Coord::ARCMIN);;} break; case 33: -#line 161 "frame/ciaoparser.Y" +#line 158 "frame/ciaoparser.Y" {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), Coord::WCS, Coord::ARCSEC);;} break; case 34: -#line 165 "frame/ciaoparser.Y" +#line 162 "frame/ciaoparser.Y" { Vector rr = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::PHYSICAL); (yyval.vector)[0] = rr[0]; @@ -1630,7 +1627,7 @@ break; case 35: -#line 172 "frame/ciaoparser.Y" +#line 169 "frame/ciaoparser.Y" { Vector rr= FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::WCS,Coord::DEGREE); (yyval.vector)[0] = rr[0]; @@ -1640,7 +1637,7 @@ break; case 36: -#line 179 "frame/ciaoparser.Y" +#line 176 "frame/ciaoparser.Y" { Vector rr = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::WCS, Coord::ARCMIN); (yyval.vector)[0] = rr[0]; @@ -1650,7 +1647,7 @@ break; case 37: -#line 186 "frame/ciaoparser.Y" +#line 183 "frame/ciaoparser.Y" { Vector rr = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::WCS, Coord::ARCSEC); (yyval.vector)[0] = rr[0]; @@ -1660,22 +1657,22 @@ break; case 38: -#line 194 "frame/ciaoparser.Y" +#line 191 "frame/ciaoparser.Y" {(yyval.real) = parseSEXStr((yyvsp[(1) - (1)].str));;} break; case 39: -#line 197 "frame/ciaoparser.Y" +#line 194 "frame/ciaoparser.Y" {(yyval.real) = parseHMSStr((yyvsp[(1) - (1)].str));;} break; case 40: -#line 200 "frame/ciaoparser.Y" +#line 197 "frame/ciaoparser.Y" {(yyval.real) = parseDMSStr((yyvsp[(1) - (1)].str));;} break; case 41: -#line 204 "frame/ciaoparser.Y" +#line 201 "frame/ciaoparser.Y" { Vector rr = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::PHYSICAL); (yyval.vector)[0] = rr[0]; @@ -1685,7 +1682,7 @@ break; case 42: -#line 211 "frame/ciaoparser.Y" +#line 208 "frame/ciaoparser.Y" { Vector rr = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)), Coord::WCS,Coord::FK5); (yyval.vector)[0] = rr[0]; @@ -1695,7 +1692,7 @@ break; case 43: -#line 218 "frame/ciaoparser.Y" +#line 215 "frame/ciaoparser.Y" { Vector rr = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::WCS, Coord::FK5); (yyval.vector)[0] = rr[0]; @@ -1705,7 +1702,7 @@ break; case 44: -#line 225 "frame/ciaoparser.Y" +#line 222 "frame/ciaoparser.Y" { Vector rr = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::WCS, Coord::FK5); (yyval.vector)[0] = rr[0]; @@ -1715,7 +1712,7 @@ break; case 45: -#line 234 "frame/ciaoparser.Y" +#line 231 "frame/ciaoparser.Y" { fr->createAnnulusCmd(Vector((yyvsp[(3) - (7)].vector)), (yyvsp[(5) - (7)].real), (yyvsp[(7) - (7)].real), 1, color,dash,1,font,text,props,NULL,taglist,cblist); @@ -1723,7 +1720,7 @@ break; case 46: -#line 239 "frame/ciaoparser.Y" +#line 236 "frame/ciaoparser.Y" { fr->createBoxCmd(Vector((yyvsp[(3) - (5)].vector)), (yyvsp[(5) - (5)].vector), 0, fill_, color,dash,1,font,text,props,NULL,taglist,cblist); @@ -1731,7 +1728,7 @@ break; case 48: -#line 245 "frame/ciaoparser.Y" +#line 242 "frame/ciaoparser.Y" { fr->createCircleCmd(Vector((yyvsp[(3) - (5)].vector)), (yyvsp[(5) - (5)].real), fill_, color,dash,1,font,text,props,NULL,taglist,cblist); @@ -1739,7 +1736,7 @@ break; case 49: -#line 250 "frame/ciaoparser.Y" +#line 247 "frame/ciaoparser.Y" { fr->createEllipseCmd(Vector((yyvsp[(3) - (7)].vector)), Vector((yyvsp[(5) - (7)].vector)), (yyvsp[(7) - (7)].real), fill_, color,dash,1,font,text,props,NULL,taglist,cblist); @@ -1747,12 +1744,12 @@ break; case 50: -#line 254 "frame/ciaoparser.Y" +#line 251 "frame/ciaoparser.Y" {/* not supported */;} break; case 51: -#line 256 "frame/ciaoparser.Y" +#line 253 "frame/ciaoparser.Y" { fr->createCpandaCmd(Vector((yyvsp[(3) - (11)].vector)), (yyvsp[(9) - (11)].real), (yyvsp[(11) - (11)].real), 1, (yyvsp[(5) - (11)].real), (yyvsp[(7) - (11)].real), 1, color,dash,1,font,text,props,NULL,taglist,cblist); @@ -1760,7 +1757,7 @@ break; case 52: -#line 261 "frame/ciaoparser.Y" +#line 258 "frame/ciaoparser.Y" { fr->createPointCmd(Vector((yyvsp[(3) - (3)].vector)), Point::BOXCIRCLE, POINTSIZE, color,dash,1,font,text,props,NULL,taglist,cblist); @@ -1768,12 +1765,12 @@ break; case 53: -#line 265 "frame/ciaoparser.Y" +#line 262 "frame/ciaoparser.Y" {polylist.deleteAll();;} break; case 54: -#line 266 "frame/ciaoparser.Y" +#line 263 "frame/ciaoparser.Y" { fr->createPolygonCmd(polylist, fill_, color,dash,1,font,text,props,NULL,taglist,cblist); @@ -1781,7 +1778,7 @@ break; case 55: -#line 271 "frame/ciaoparser.Y" +#line 268 "frame/ciaoparser.Y" { Vector cc = (Vector((yyvsp[(5) - (5)].vector))-Vector((yyvsp[(3) - (5)].vector)))/2.+Vector((yyvsp[(3) - (5)].vector)); Vector wh = Vector((yyvsp[(5) - (5)].vector))-Vector((yyvsp[(3) - (5)].vector)); @@ -1791,17 +1788,17 @@ break; case 56: -#line 277 "frame/ciaoparser.Y" +#line 274 "frame/ciaoparser.Y" {/* not supported */;} break; case 58: -#line 279 "frame/ciaoparser.Y" +#line 276 "frame/ciaoparser.Y" {/* not supported */;} break; case 59: -#line 283 "frame/ciaoparser.Y" +#line 280 "frame/ciaoparser.Y" { fr->createBoxCmd(Vector((yyvsp[(2) - (6)].vector)), Vector((yyvsp[(4) - (6)].vector)), (yyvsp[(6) - (6)].real), fill_, color,dash,1,font,text,props,NULL,taglist,cblist); @@ -1809,13 +1806,13 @@ break; case 62: -#line 293 "frame/ciaoparser.Y" +#line 290 "frame/ciaoparser.Y" {polylist.append(new Vertex((yyvsp[(1) - (1)].vector)));;} break; /* Line 1267 of yacc.c. */ -#line 1819 "frame/ciaoparser.C" +#line 1816 "frame/ciaoparser.C" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2029,7 +2026,7 @@ } -#line 296 "frame/ciaoparser.Y" +#line 293 "frame/ciaoparser.Y" static void setProps(unsigned short* props, unsigned short prop, int value) diff -Nru saods9-8.2+repack/tksao/frame/ciaoparser.Y saods9-8.3+repack/tksao/frame/ciaoparser.Y --- saods9-8.2+repack/tksao/frame/ciaoparser.Y 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/ciaoparser.Y 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -92,10 +92,7 @@ %% start : { - if (fr->useMarkerColor()) - strcpy(color, fr->markerColor()); - else - strcpy(color, "green"); + strcpy(color, fr->markerColor()); } commands ; diff -Nru saods9-8.2+repack/tksao/frame/circle.C saods9-8.3+repack/tksao/frame/circle.C --- saods9-8.2+repack/tksao/frame/circle.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/circle.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -84,20 +84,6 @@ BaseEllipse::renderPSDraw(); } -#ifdef MAC_OSX_TK -#include - -void Circle::renderMACOSXDraw() -{ - /* - if (fill_) - macosxFill(); - else - macosxStroke(); - */ -} -#endif - #ifdef __WIN32 #include diff -Nru saods9-8.2+repack/tksao/frame/circle.h saods9-8.3+repack/tksao/frame/circle.h --- saods9-8.2+repack/tksao/frame/circle.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/circle.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -17,10 +17,6 @@ void renderPSDraw(); -#ifdef MAC_OSX_TK - void renderMACOSXDraw(); -#endif - #ifdef __WIN32 void renderWIN32Draw(); #endif diff -Nru saods9-8.2+repack/tksao/frame/colorscale.C saods9-8.3+repack/tksao/frame/colorscale.C --- saods9-8.2+repack/tksao/frame/colorscale.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/colorscale.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/colorscale.h saods9-8.3+repack/tksao/frame/colorscale.h --- saods9-8.2+repack/tksao/frame/colorscale.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/colorscale.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/colorscalergb.C saods9-8.3+repack/tksao/frame/colorscalergb.C --- saods9-8.2+repack/tksao/frame/colorscalergb.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/colorscalergb.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/colorscalergb.h saods9-8.3+repack/tksao/frame/colorscalergb.h --- saods9-8.2+repack/tksao/frame/colorscalergb.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/colorscalergb.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/colorscaletrue16.C saods9-8.3+repack/tksao/frame/colorscaletrue16.C --- saods9-8.2+repack/tksao/frame/colorscaletrue16.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/colorscaletrue16.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/colorscaletrue16.h saods9-8.3+repack/tksao/frame/colorscaletrue16.h --- saods9-8.2+repack/tksao/frame/colorscaletrue16.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/colorscaletrue16.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/colorscaletrue24.C saods9-8.3+repack/tksao/frame/colorscaletrue24.C --- saods9-8.2+repack/tksao/frame/colorscaletrue24.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/colorscaletrue24.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/colorscaletrue24.h saods9-8.3+repack/tksao/frame/colorscaletrue24.h --- saods9-8.2+repack/tksao/frame/colorscaletrue24.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/colorscaletrue24.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/colorscaletrue32.C saods9-8.3+repack/tksao/frame/colorscaletrue32.C --- saods9-8.2+repack/tksao/frame/colorscaletrue32.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/colorscaletrue32.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/colorscaletrue32.h saods9-8.3+repack/tksao/frame/colorscaletrue32.h --- saods9-8.2+repack/tksao/frame/colorscaletrue32.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/colorscaletrue32.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/colorscaletrue8.C saods9-8.3+repack/tksao/frame/colorscaletrue8.C --- saods9-8.2+repack/tksao/frame/colorscaletrue8.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/colorscaletrue8.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/colorscaletrue8.h saods9-8.3+repack/tksao/frame/colorscaletrue8.h --- saods9-8.2+repack/tksao/frame/colorscaletrue8.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/colorscaletrue8.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/compass.C saods9-8.3+repack/tksao/frame/compass.C --- saods9-8.2+repack/tksao/frame/compass.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/compass.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -253,77 +253,6 @@ renderPSLineNoDash(); } -#ifdef MAC_OSX_TK -#include - -void Compass::renderMACOSX() -{ - /* - renderMACOSXGC(); - - Vector aa = parent->mapFromRef(center,Coord::CANVAS); - Vector bb = parent->mapFromRef(p1,Coord::CANVAS); - Vector cc = parent->mapFromRef(p2,Coord::CANVAS); - Vector dd = parent->mapFromRef(pp1,Coord::CANVAS); - Vector ee = parent->mapFromRef(pp2,Coord::CANVAS); - - if (northArrow) { - bb = modifyArrow(center,p1,Coord::CANVAS); - renderMACOSXArrow(center,p1,Coord::CANVAS); - } - - if (eastArrow) { - cc = modifyArrow(center,p2,Coord::CANVAS); - renderMACOSXArrow(center,p2,Coord::CANVAS); - } - - macosxDrawLine(aa,bb); - macosxDrawLine(aa,cc); - - if (psfont_) { - Tcl_DString psdstr; - Tcl_DStringInit(&psdstr); - int psSize = Tk_PostscriptFontName(psfont_, &psdstr); - macosxFont(Tcl_DStringValue(&psdstr), psSize); - Tcl_DStringFree(&psdstr); - - Tk_FontMetrics metrics; - Tk_GetFontMetrics(psfont_, &metrics); - - if (northText) { - float r1 = Tk_TextWidth(psfont_, northText, strlen(northText))/2.; - float r2 = metrics.linespace/2.; - double angle = (bb-aa).angle(); - Vector ddd = dd * - Translate(r1*cos(angle),r2*sin(angle)) * - Translate(-r1,(metrics.ascent-metrics.descent)/2.); - - macosxDrawText(ddd, 0, northText); - } - - if (eastText) { - float r1 = Tk_TextWidth(psfont_, eastText, strlen(eastText))/2.; - float r2 = metrics.linespace/2.; - double angle = (cc-aa).angle(); - Vector eee = ee * - Translate(r1*cos(angle),r2*sin(angle)) * - Translate(-r1,(metrics.ascent-metrics.descent)/2.); - - macosxDrawText(eee, 0, eastText); - } - } - */ -} - -void Compass::renderMACOSXGC() -{ - /* - macosxColor(parent->getXColor(colorName)); - renderMACOSXLineNoDash(); - */ -} -#endif - #ifdef __WIN32 #include diff -Nru saods9-8.2+repack/tksao/frame/compass.h saods9-8.3+repack/tksao/frame/compass.h --- saods9-8.2+repack/tksao/frame/compass.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/compass.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -32,12 +32,6 @@ void renderPSInclude(PSColorSpace) {} void renderPSGC(PSColorSpace); -#ifdef MAC_OSX_TK - void renderMACOSX(); - void renderMACOSXInclude() {} - void renderMACOSXGC(); -#endif - #ifdef __WIN32 void renderWIN32(); void renderWIN32Include() {} diff -Nru saods9-8.2+repack/tksao/frame/composite.C saods9-8.3+repack/tksao/frame/composite.C --- saods9-8.2+repack/tksao/frame/composite.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/composite.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -67,25 +67,6 @@ } } -#ifdef MAC_OSX_TK -void Composite::macosx(int tt) -{ - if (tt) - renderMACOSXText(); - - Marker* mk=members.head(); - while (mk) { - Marker* m = mk->dup(); - m->setComposite(fwdMatrix(), angle); - if (global) - m->setComposite(colorName, lineWidth, highlited); - m->macosx(tt); - delete m; - mk=mk->next(); - } -} -#endif - #ifdef __WIN32 void Composite::win32(int tt) { diff -Nru saods9-8.2+repack/tksao/frame/composite.h saods9-8.3+repack/tksao/frame/composite.h --- saods9-8.2+repack/tksao/frame/composite.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/composite.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -15,9 +15,6 @@ void renderX(Drawable, Coord::InternalSystem, RenderMode) {} void renderPS(PSColorSpace mode) {} -#ifdef MAC_OSX_TK - void renderMACOSX() {} -#endif #ifdef __WIN32 void renderWIN32() {} #endif @@ -38,9 +35,6 @@ void x11(Drawable, Coord::InternalSystem, int, HandleMode); void ps(PSColorSpace,int); -#ifdef MAC_OSX_TK - void macosx(int); -#endif #ifdef __WIN32 void win32(int); #endif diff -Nru saods9-8.2+repack/tksao/frame/context.C saods9-8.3+repack/tksao/frame/context.C --- saods9-8.2+repack/tksao/frame/context.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/context.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -653,31 +653,6 @@ } } -#ifdef MAC_OSX_TK -void Context::contourMacOSX() -{ - if (!cfits) - return; - - // render back to front - // aux contours - if (hasAuxContour_) { - if (auxcontours_.tail()) - do - auxcontours_.current()->macosx(); - while (auxcontours_.previous()); - } - - if (hasContour_) { - List& cc = fvcontour_.lcontourlevel(); - if (cc.head()) - do - cc.current()->macosx(); - while (cc.next()); - } -} -#endif - #ifdef __WIN32 void Context::contourWin32() { diff -Nru saods9-8.2+repack/tksao/frame/context.h saods9-8.3+repack/tksao/frame/context.h --- saods9-8.2+repack/tksao/frame/context.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/context.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -146,9 +146,6 @@ const char*, int, int); void contourPS(PSColorSpace cs); void contourX11(Pixmap, Coord::InternalSystem, const BBox&); -#ifdef MAC_OSX_TK - void contourMacOSX(); -#endif #ifdef __WIN32 void contourWin32(); #endif diff -Nru saods9-8.2+repack/tksao/frame/contour.C saods9-8.3+repack/tksao/frame/contour.C --- saods9-8.2+repack/tksao/frame/contour.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/contour.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -7,10 +7,6 @@ #include "base.h" #include "context.h" -#ifdef MAC_OSX_TK -#include -#endif - #ifdef __WIN32 #include #endif @@ -126,17 +122,6 @@ color_ = parent_->getColor(colorName_); } -#ifdef MAC_OSX_TK -void ContourLevel::macosx() -{ - if (lcontour_.head()) { - do - lcontour_.current()->macosx(); - while (lcontour_.next()); - } -} -#endif - #ifdef __WIN32 void ContourLevel::win32() { @@ -253,37 +238,6 @@ } } -#ifdef MAC_OSX_TK -void Contour::macosx() -{ - /* - if (lvertex_.head()) { - macosxColor(base_->getXColor(parent_->colorName_)); - macosxWidth(parent_->lineWidth_); - if (parent_->dash_) { - float dl[2]; - dl[0] = parent_->dlist_[0]; - dl[1] = parent_->dlist_[1]; - macosxDash(dl,2); - } - else - macosxDash(NULL,0); - - Vector u1 = lvertex_.current()->vector; - while (lvertex_.next()) { - Vector u2 = lvertex_.current()->vector; - - Vector v1 = base_->mapFromRef(u1,Coord::CANVAS); - Vector v2 = base_->mapFromRef(u2,Coord::CANVAS); - macosxDrawLine(v1,v2); - - u1 = u2; - } - } - */ -} -#endif - #ifdef __WIN32 void Contour::win32() { diff -Nru saods9-8.2+repack/tksao/frame/contour.h saods9-8.3+repack/tksao/frame/contour.h --- saods9-8.2+repack/tksao/frame/contour.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/contour.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -45,9 +45,6 @@ void render(Pixmap, Coord::InternalSystem, const BBox&); void ps(PSColorSpace); void updateCoords(const Matrix&); -#ifdef MAC_OSX_TK - void macosx(); -#endif #ifdef __WIN32 void win32(); #endif @@ -86,9 +83,6 @@ void render(Pixmap, Coord::InternalSystem, const BBox&); void ps(PSColorSpace); void updateCoords(const Matrix&); -#ifdef MAC_OSX_TK - void macosx(); -#endif #ifdef __WIN32 void win32(); #endif diff -Nru saods9-8.2+repack/tksao/frame/contourlex.C saods9-8.3+repack/tksao/frame/contourlex.C --- saods9-8.2+repack/tksao/frame/contourlex.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/contourlex.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,6 +1,6 @@ -#line 2 "frame/contourlex.C" +#line 1 "frame/contourlex.C" -#line 4 "frame/contourlex.C" +#line 3 "frame/contourlex.C" #define YY_INT_ALIGNED short int @@ -8,8 +8,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -22,6 +22,24 @@ */ #define yyFlexLexer ctFlexLexer +#ifdef yyalloc +#define ctalloc_ALREADY_DEFINED +#else +#define yyalloc ctalloc +#endif + +#ifdef yyrealloc +#define ctrealloc_ALREADY_DEFINED +#else +#define yyrealloc ctrealloc +#endif + +#ifdef yyfree +#define ctfree_ALREADY_DEFINED +#else +#define yyfree ctfree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -59,7 +77,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -90,70 +107,67 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ -#include +#include #include #include +#include #include /* end standard C++ headers. */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) - #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -175,8 +189,9 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -191,7 +206,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -199,7 +213,7 @@ struct yy_buffer_state { - std::istream* yy_input_file; + std::streambuf* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ @@ -207,7 +221,7 @@ /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -235,7 +249,7 @@ int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -269,18 +283,16 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -void *ctalloc (yy_size_t ); -void *ctrealloc (void *,yy_size_t ); -void ctfree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -290,7 +302,6 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -300,13 +311,11 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; #define yytext_ptr yytext @@ -323,7 +332,6 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 87 #define YY_END_OF_BUFFER 88 /* This struct is not used in this scanner, @@ -333,7 +341,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[254] = +static const flex_int16_t yy_accept[254] = { 0, 0, 0, 2, 2, 88, 86, 82, 85, 86, 86, 86, 86, 86, 86, 60, 81, 81, 81, 81, 81, @@ -365,7 +373,7 @@ 0, 77, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, @@ -397,7 +405,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[73] = +static const YY_CHAR yy_meta[73] = { 0, 1, 1, 2, 1, 1, 1, 1, 1, 3, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, @@ -409,7 +417,7 @@ 1, 1 } ; -static yyconst flex_int16_t yy_base[272] = +static const flex_int16_t yy_base[272] = { 0, 0, 0, 220, 218, 212, 1277, 204, 1277, 202, 195, 0, 187, 64, 71, 79, 89, 98, 93, 99, 94, @@ -443,7 +451,7 @@ 95 } ; -static yyconst flex_int16_t yy_def[272] = +static const flex_int16_t yy_def[272] = { 0, 253, 1, 254, 254, 253, 253, 253, 253, 253, 255, 256, 257, 253, 253, 258, 258, 258, 258, 258, 258, @@ -477,7 +485,7 @@ 253 } ; -static yyconst flex_int16_t yy_nxt[1350] = +static const flex_int16_t yy_nxt[1350] = { 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 6, 16, 17, 18, @@ -629,7 +637,7 @@ 253, 253, 253, 253, 253, 253, 253, 253, 253 } ; -static yyconst flex_int16_t yy_chk[1350] = +static const flex_int16_t yy_chk[1350] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -789,7 +797,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "frame/contourlex.L" -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -803,9 +811,10 @@ extern YYSTYPE* ctlval; extern ctFlexLexer* ctlexx; +#line 814 "frame/contourlex.C" /* rules */ -#line 809 "frame/contourlex.C" +#line 817 "frame/contourlex.C" #define INITIAL 0 #define DISCARD 1 @@ -823,11 +832,11 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -836,7 +845,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -850,7 +864,7 @@ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif @@ -892,7 +906,7 @@ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -902,15 +916,10 @@ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 31 "frame/contourlex.L" - - -#line 913 "frame/contourlex.C" - if ( !(yy_init) ) { (yy_init) = 1; @@ -923,10 +932,10 @@ (yy_start) = 1; /* first start state */ if ( ! yyin ) - yyin = & std::cin; + yyin.rdbuf(std::cin.rdbuf()); if ( ! yyout ) - yyout = & std::cout; + yyout.rdbuf(std::cout.rdbuf()); if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); @@ -937,7 +946,13 @@ yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 31 "frame/contourlex.L" + + +#line 953 "frame/contourlex.C" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -953,7 +968,7 @@ yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -963,9 +978,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 254 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 253 ); @@ -1492,7 +1507,7 @@ #line 229 "frame/contourlex.L" ECHO; YY_BREAK -#line 1496 "frame/contourlex.C" +#line 1510 "frame/contourlex.C" case YY_END_OF_BUFFER: { @@ -1515,7 +1530,7 @@ * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -1622,14 +1637,33 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. */ -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::ctor_common() { - yyin = arg_yyin; - yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; @@ -1646,7 +1680,7 @@ yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -1659,23 +1693,36 @@ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; - ctfree(yy_start_stack ); + yyfree( yy_start_stack ); yy_delete_buffer( YY_CURRENT_BUFFER ); - ctfree(yy_buffer_stack ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } + if( ! new_in ) { + new_in = &yyin; + } - if ( new_out ) - yyout = new_out; + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); } #ifdef YY_INTERACTIVE @@ -1684,33 +1731,33 @@ size_t yyFlexLexer::LexerInput( char* buf, size_t max_size ) #endif { - if ( yyin->eof() || yyin->fail() ) + if ( yyin.eof() || yyin.fail() ) return 0; #ifdef YY_INTERACTIVE - yyin->get( buf[0] ); + yyin.get( buf[0] ); - if ( yyin->eof() ) + if ( yyin.eof() ) return 0; - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; return 1; #else - (void) yyin->read( buf, max_size ); + (void) yyin.read( buf, max_size ); - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; else - return yyin->gcount(); + return yyin.gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, size_t size ) { - (void) yyout->write( buf, size ); + (void) yyout.write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer @@ -1722,9 +1769,9 @@ */ int yyFlexLexer::yy_get_next_buffer() { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1753,7 +1800,7 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1773,7 +1820,7 @@ { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); @@ -1789,11 +1836,12 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - ctrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1835,12 +1883,15 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) ctrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1856,14 +1907,14 @@ yy_state_type yyFlexLexer::yy_get_previous_state() { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1873,9 +1924,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 254 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1888,10 +1939,10 @@ */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1901,17 +1952,18 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 254 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 253); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - void yyFlexLexer::yyunput( int c, register char* yy_bp) +#ifndef YY_NO_UNPUT + void yyFlexLexer::yyunput( int c, char* yy_bp) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -1921,10 +1973,10 @@ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -1933,7 +1985,7 @@ yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -1945,6 +1997,7 @@ (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } +#endif int yyFlexLexer::yyinput() { @@ -2018,7 +2071,7 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void yyFlexLexer::yyrestart( std::istream* input_file ) + void yyFlexLexer::yyrestart( std::istream& input_file ) { if ( ! YY_CURRENT_BUFFER ){ @@ -2031,6 +2084,19 @@ yy_load_buffer_state( ); } +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -2070,7 +2136,7 @@ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); (yy_hold_char) = *(yy_c_buf_p); } @@ -2080,11 +2146,11 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) ctalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -2093,7 +2159,7 @@ /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) ctalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -2104,6 +2170,17 @@ return b; } +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -2118,23 +2195,23 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - ctfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - ctfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) { int oerrno = errno; yy_flush_buffer( b ); - b->yy_input_file = file; + b->yy_input_file = file.rdbuf(); b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -2242,15 +2319,15 @@ * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)ctalloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -2259,10 +2336,10 @@ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)ctrealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -2275,20 +2352,21 @@ } } - void yyFlexLexer::yy_push_state( int new_state ) + void yyFlexLexer::yy_push_state( int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) ctalloc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) ctrealloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -2296,7 +2374,7 @@ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } void yyFlexLexer::yy_pop_state() @@ -2316,7 +2394,7 @@ #define YY_EXIT_FAILURE 2 #endif -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( const char* msg ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); @@ -2329,7 +2407,7 @@ do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -2346,18 +2424,19 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -2365,13 +2444,14 @@ } #endif -void *ctalloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *ctrealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -2379,12 +2459,12 @@ * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void ctfree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see ctrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -2392,7 +2472,6 @@ #line 229 "frame/contourlex.L" - void ctDiscard(int doit) { if (ctlexx) diff -Nru saods9-8.2+repack/tksao/frame/contourlex.L saods9-8.3+repack/tksao/frame/contourlex.L --- saods9-8.2+repack/tksao/frame/contourlex.L 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/contourlex.L 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ diff -Nru saods9-8.2+repack/tksao/frame/contourparser.Y saods9-8.3+repack/tksao/frame/contourparser.Y --- saods9-8.2+repack/tksao/frame/contourparser.Y 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/contourparser.Y 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/coord.C saods9-8.3+repack/tksao/frame/coord.C --- saods9-8.2+repack/tksao/frame/coord.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/coord.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/coord.h saods9-8.3+repack/tksao/frame/coord.h --- saods9-8.2+repack/tksao/frame/coord.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/coord.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/cpanda.C saods9-8.3+repack/tksao/frame/cpanda.C --- saods9-8.2+repack/tksao/frame/cpanda.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/cpanda.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -118,29 +118,6 @@ } } -#ifdef MAC_OSX_TK -#include - -void Cpanda::renderMACOSX() -{ - /* - BaseEllipse::renderMACOSX(); - - Vector r0 = annuli_[0]; - Vector r1 = annuli_[numAnnuli_-1]; - - for (int ii=0; ii diff -Nru saods9-8.2+repack/tksao/frame/cpanda.h saods9-8.3+repack/tksao/frame/cpanda.h --- saods9-8.2+repack/tksao/frame/cpanda.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/cpanda.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -11,9 +11,6 @@ private: void renderX(Drawable, Coord::InternalSystem, RenderMode); void renderPS(PSColorSpace); -#ifdef MAC_OSX_TK - void renderMACOSX(); -#endif #ifdef __WIN32 void renderWIN32(); #endif diff -Nru saods9-8.2+repack/tksao/frame/ds9lex.C saods9-8.3+repack/tksao/frame/ds9lex.C --- saods9-8.2+repack/tksao/frame/ds9lex.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/ds9lex.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,6 +1,6 @@ -#line 2 "frame/ds9lex.C" +#line 1 "frame/ds9lex.C" -#line 4 "frame/ds9lex.C" +#line 3 "frame/ds9lex.C" #define YY_INT_ALIGNED short int @@ -8,8 +8,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -22,6 +22,24 @@ */ #define yyFlexLexer mkFlexLexer +#ifdef yyalloc +#define mkalloc_ALREADY_DEFINED +#else +#define yyalloc mkalloc +#endif + +#ifdef yyrealloc +#define mkrealloc_ALREADY_DEFINED +#else +#define yyrealloc mkrealloc +#endif + +#ifdef yyfree +#define mkfree_ALREADY_DEFINED +#else +#define yyfree mkfree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -59,7 +77,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -90,70 +107,67 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ -#include +#include #include #include +#include #include /* end standard C++ headers. */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) - #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -175,8 +189,9 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -191,7 +206,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -199,7 +213,7 @@ struct yy_buffer_state { - std::istream* yy_input_file; + std::streambuf* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ @@ -207,7 +221,7 @@ /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -235,7 +249,7 @@ int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -269,18 +283,16 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -void *mkalloc (yy_size_t ); -void *mkrealloc (void *,yy_size_t ); -void mkfree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -290,7 +302,6 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -300,13 +311,11 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; #define yytext_ptr yytext @@ -323,7 +332,6 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 153 #define YY_END_OF_BUFFER 154 /* This struct is not used in this scanner, @@ -333,7 +341,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[519] = +static const flex_int16_t yy_accept[519] = { 0, 0, 0, 2, 2, 154, 152, 148, 151, 152, 152, 152, 152, 152, 152, 116, 147, 147, 147, 147, 147, @@ -394,7 +402,7 @@ 9, 65, 76, 82, 0, 0, 143, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, @@ -426,7 +434,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[74] = +static const YY_CHAR yy_meta[74] = { 0, 1, 1, 2, 1, 3, 1, 3, 1, 4, 5, 5, 5, 5, 5, 5, 5, 5, 3, 6, 6, @@ -438,7 +446,7 @@ 3, 1, 1 } ; -static yyconst flex_int16_t yy_base[539] = +static const flex_int16_t yy_base[539] = { 0, 0, 0, 142, 128, 129, 4181, 124, 4181, 122, 119, 0, 116, 65, 73, 86, 110, 169, 220, 125, 279, @@ -501,7 +509,7 @@ 4161, 4163, 4164, 4166, 4168, 4170, 4172, 4174 } ; -static yyconst flex_int16_t yy_def[539] = +static const flex_int16_t yy_def[539] = { 0, 518, 1, 519, 519, 518, 518, 518, 518, 518, 520, 521, 522, 518, 518, 523, 523, 523, 17, 523, 523, @@ -564,7 +572,7 @@ 518, 518, 518, 518, 518, 518, 518, 518 } ; -static yyconst flex_int16_t yy_nxt[4255] = +static const flex_int16_t yy_nxt[4255] = { 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 6, 16, 17, @@ -1036,7 +1044,7 @@ 518, 518, 518, 518 } ; -static yyconst flex_int16_t yy_chk[4255] = +static const flex_int16_t yy_chk[4255] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1516,7 +1524,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "frame/ds9lex.L" -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -1530,9 +1538,10 @@ extern YYSTYPE* mklval; extern mkFlexLexer* mklexx; +#line 1541 "frame/ds9lex.C" /* rules */ -#line 1536 "frame/ds9lex.C" +#line 1544 "frame/ds9lex.C" #define INITIAL 0 #define DISCARD 1 @@ -1550,11 +1559,11 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -1563,7 +1572,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -1577,7 +1591,7 @@ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif @@ -1619,7 +1633,7 @@ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -1629,15 +1643,10 @@ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 31 "frame/ds9lex.L" - - -#line 1640 "frame/ds9lex.C" - if ( !(yy_init) ) { (yy_init) = 1; @@ -1650,10 +1659,10 @@ (yy_start) = 1; /* first start state */ if ( ! yyin ) - yyin = & std::cin; + yyin.rdbuf(std::cin.rdbuf()); if ( ! yyout ) - yyout = & std::cout; + yyout.rdbuf(std::cout.rdbuf()); if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); @@ -1664,7 +1673,13 @@ yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 31 "frame/ds9lex.L" + + +#line 1680 "frame/ds9lex.C" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -1680,7 +1695,7 @@ yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1690,9 +1705,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 519 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 518 ); @@ -2540,7 +2555,7 @@ #line 310 "frame/ds9lex.L" ECHO; YY_BREAK -#line 2544 "frame/ds9lex.C" +#line 2558 "frame/ds9lex.C" case YY_END_OF_BUFFER: { @@ -2563,7 +2578,7 @@ * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -2670,14 +2685,33 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. */ -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::ctor_common() { - yyin = arg_yyin; - yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; @@ -2694,7 +2728,7 @@ yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -2707,23 +2741,36 @@ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; - mkfree(yy_start_stack ); + yyfree( yy_start_stack ); yy_delete_buffer( YY_CURRENT_BUFFER ); - mkfree(yy_buffer_stack ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } + if( ! new_in ) { + new_in = &yyin; + } - if ( new_out ) - yyout = new_out; + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); } #ifdef YY_INTERACTIVE @@ -2732,33 +2779,33 @@ size_t yyFlexLexer::LexerInput( char* buf, size_t max_size ) #endif { - if ( yyin->eof() || yyin->fail() ) + if ( yyin.eof() || yyin.fail() ) return 0; #ifdef YY_INTERACTIVE - yyin->get( buf[0] ); + yyin.get( buf[0] ); - if ( yyin->eof() ) + if ( yyin.eof() ) return 0; - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; return 1; #else - (void) yyin->read( buf, max_size ); + (void) yyin.read( buf, max_size ); - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; else - return yyin->gcount(); + return yyin.gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, size_t size ) { - (void) yyout->write( buf, size ); + (void) yyout.write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer @@ -2770,9 +2817,9 @@ */ int yyFlexLexer::yy_get_next_buffer() { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -2801,7 +2848,7 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -2821,7 +2868,7 @@ { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); @@ -2837,11 +2884,12 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - mkrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -2883,12 +2931,15 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) mkrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -2904,14 +2955,14 @@ yy_state_type yyFlexLexer::yy_get_previous_state() { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -2921,9 +2972,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 519 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -2936,10 +2987,10 @@ */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -2949,17 +3000,18 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 519 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 518); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - void yyFlexLexer::yyunput( int c, register char* yy_bp) +#ifndef YY_NO_UNPUT + void yyFlexLexer::yyunput( int c, char* yy_bp) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -2969,10 +3021,10 @@ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -2981,7 +3033,7 @@ yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -2993,6 +3045,7 @@ (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } +#endif int yyFlexLexer::yyinput() { @@ -3066,7 +3119,7 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void yyFlexLexer::yyrestart( std::istream* input_file ) + void yyFlexLexer::yyrestart( std::istream& input_file ) { if ( ! YY_CURRENT_BUFFER ){ @@ -3079,6 +3132,19 @@ yy_load_buffer_state( ); } +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -3118,7 +3184,7 @@ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); (yy_hold_char) = *(yy_c_buf_p); } @@ -3128,11 +3194,11 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) mkalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -3141,7 +3207,7 @@ /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) mkalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -3152,6 +3218,17 @@ return b; } +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -3166,23 +3243,23 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - mkfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - mkfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) { int oerrno = errno; yy_flush_buffer( b ); - b->yy_input_file = file; + b->yy_input_file = file.rdbuf(); b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -3290,15 +3367,15 @@ * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)mkalloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -3307,10 +3384,10 @@ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)mkrealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -3323,20 +3400,21 @@ } } - void yyFlexLexer::yy_push_state( int new_state ) + void yyFlexLexer::yy_push_state( int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) mkalloc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) mkrealloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -3344,7 +3422,7 @@ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } void yyFlexLexer::yy_pop_state() @@ -3364,7 +3442,7 @@ #define YY_EXIT_FAILURE 2 #endif -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( const char* msg ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); @@ -3377,7 +3455,7 @@ do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -3394,18 +3472,19 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -3413,13 +3492,14 @@ } #endif -void *mkalloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *mkrealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -3427,12 +3507,12 @@ * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void mkfree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see mkrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -3440,7 +3520,6 @@ #line 310 "frame/ds9lex.L" - void mkDiscard(int doit) { if (mklexx) diff -Nru saods9-8.2+repack/tksao/frame/ds9lex.L saods9-8.3+repack/tksao/frame/ds9lex.L --- saods9-8.2+repack/tksao/frame/ds9lex.L 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/ds9lex.L 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ diff -Nru saods9-8.2+repack/tksao/frame/ds9parser.Y saods9-8.3+repack/tksao/frame/ds9parser.Y --- saods9-8.2+repack/tksao/frame/ds9parser.Y 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/ds9parser.Y 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/ellipseannulus.C saods9-8.3+repack/tksao/frame/ellipseannulus.C --- saods9-8.2+repack/tksao/frame/ellipseannulus.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/ellipseannulus.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/ellipseannulus.h saods9-8.3+repack/tksao/frame/ellipseannulus.h --- saods9-8.2+repack/tksao/frame/ellipseannulus.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/ellipseannulus.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/ellipse.C saods9-8.3+repack/tksao/frame/ellipse.C --- saods9-8.2+repack/tksao/frame/ellipse.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/ellipse.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -72,20 +72,6 @@ BaseEllipse::renderPSDraw(); } -#ifdef MAC_OSX_TK -#include - -void Ellipse::renderMACOSXDraw() -{ - /* - if (fill_) - macosxFill(); - else - macosxStroke(); - */ -} -#endif - #ifdef __WIN32 #include diff -Nru saods9-8.2+repack/tksao/frame/ellipse.h saods9-8.3+repack/tksao/frame/ellipse.h --- saods9-8.2+repack/tksao/frame/ellipse.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/ellipse.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -17,10 +17,6 @@ void renderPSDraw(); -#ifdef MAC_OSX_TK - void renderMACOSXDraw(); -#endif - #ifdef __WIN32 void renderWIN32Draw(); #endif diff -Nru saods9-8.2+repack/tksao/frame/epanda.C saods9-8.3+repack/tksao/frame/epanda.C --- saods9-8.2+repack/tksao/frame/epanda.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/epanda.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -116,29 +116,6 @@ } } -#ifdef MAC_OSX_TK -#include - -void Epanda::renderMACOSX() -{ - /* - BaseEllipse::renderMACOSX(); - - renderMACOSXGC(); - - Vector r0 = annuli_[0]; - Vector r1 = annuli_[numAnnuli_-1]; - - for (int ii=0; ii diff -Nru saods9-8.2+repack/tksao/frame/epanda.h saods9-8.3+repack/tksao/frame/epanda.h --- saods9-8.2+repack/tksao/frame/epanda.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/epanda.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -11,9 +11,6 @@ private: void renderX(Drawable, Coord::InternalSystem, RenderMode); void renderPS(PSColorSpace); -#ifdef MAC_OSX_TK - void renderMACOSX(); -#endif #ifdef __WIN32 void renderWIN32(); #endif diff -Nru saods9-8.2+repack/tksao/frame/fitsanalysis.C saods9-8.3+repack/tksao/frame/fitsanalysis.C --- saods9-8.2+repack/tksao/frame/fitsanalysis.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fitsanalysis.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/fitsbin.C saods9-8.3+repack/tksao/frame/fitsbin.C --- saods9-8.2+repack/tksao/frame/fitsbin.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fitsbin.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/fitsblock.C saods9-8.3+repack/tksao/frame/fitsblock.C --- saods9-8.2+repack/tksao/frame/fitsblock.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fitsblock.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/fitscompress.C saods9-8.3+repack/tksao/frame/fitscompress.C --- saods9-8.2+repack/tksao/frame/fitscompress.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fitscompress.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/fitsdata.C saods9-8.3+repack/tksao/frame/fitsdata.C --- saods9-8.2+repack/tksao/frame/fitsdata.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fitsdata.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/fitsdata.h saods9-8.3+repack/tksao/frame/fitsdata.h --- saods9-8.2+repack/tksao/frame/fitsdata.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fitsdata.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/fitsenvi.C saods9-8.3+repack/tksao/frame/fitsenvi.C --- saods9-8.2+repack/tksao/frame/fitsenvi.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fitsenvi.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/fitshealpix.C saods9-8.3+repack/tksao/frame/fitshealpix.C --- saods9-8.2+repack/tksao/frame/fitshealpix.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fitshealpix.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/fitsimage.C saods9-8.3+repack/tksao/frame/fitsimage.C --- saods9-8.2+repack/tksao/frame/fitsimage.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fitsimage.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -1229,12 +1229,12 @@ // CRPIX Vector cc = mapFromRef(pix, Coord::IMAGE, Coord::FK5); - hd->appendReal("CRPIX1", cc[1], 8, NULL); - hd->appendReal("CRPIX2", cc[0], 8, NULL); + hd->appendReal("CRPIX1", cc[1], 9, NULL); + hd->appendReal("CRPIX2", cc[0], 9, NULL); // CRVAL - hd->appendReal("CRVAL1", 0, 8, NULL); - hd->appendReal("CRVAL2", 0, 8, NULL); + hd->appendReal("CRVAL1", 0, 15, NULL); + hd->appendReal("CRVAL2", 0, 15, NULL); // CD double ss = getWCSSize(Coord::WCS); @@ -1250,14 +1250,14 @@ break; }; Matrix mx = flip*Rotate(ang)*Scale(ss); - hd->appendReal("CD1_1", mx[0][0], 8, NULL); - hd->appendReal("CD1_2", mx[0][1], 8, NULL); - hd->appendReal("CD2_1", mx[1][0], 8, NULL); - hd->appendReal("CD2_2", mx[1][1], 8, NULL); + hd->appendReal("CD1_1", mx[0][0], 15, NULL); + hd->appendReal("CD1_2", mx[0][1], 15, NULL); + hd->appendReal("CD2_1", mx[1][0], 15, NULL); + hd->appendReal("CD2_2", mx[1][1], 15, NULL); // EPOCH, EQUINOX - hd->appendReal("EPOCH", 2000, 8, NULL); - hd->appendReal("EQUINOX", 2000, 8, NULL); + hd->appendReal("EPOCH", 2000, 9, NULL); + hd->appendReal("EQUINOX", 2000, 9, NULL); // RADESYS hd->appendString("RADESYS", "FK5", NULL); @@ -3244,7 +3244,7 @@ case Coord::DEGREES: { ostringstream str; - str << "d." << context_->parent_->precLenDeg_; + str << "d." << context_->parent_->precDeg_; wcsFormat(ast_, wcsCelLon_[id], str.str().c_str()); wcsFormat(ast_, wcsCelLat_[id], str.str().c_str()); @@ -3464,6 +3464,7 @@ // enable -TAB astSetI(chan,"TabOK",1); + astSetI(chan,"SipReplace",0); astPutChannelData(chan, this); astTableSource(chan, fits2TAB); diff -Nru saods9-8.2+repack/tksao/frame/fitsimage.h saods9-8.3+repack/tksao/frame/fitsimage.h --- saods9-8.2+repack/tksao/frame/fitsimage.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fitsimage.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/fitsmap.C saods9-8.3+repack/tksao/frame/fitsmap.C --- saods9-8.2+repack/tksao/frame/fitsmap.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fitsmap.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/fitsmask.C saods9-8.3+repack/tksao/frame/fitsmask.C --- saods9-8.2+repack/tksao/frame/fitsmask.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fitsmask.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/fitsmask.h saods9-8.3+repack/tksao/frame/fitsmask.h --- saods9-8.2+repack/tksao/frame/fitsmask.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fitsmask.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/fitsnrrd.C saods9-8.3+repack/tksao/frame/fitsnrrd.C --- saods9-8.2+repack/tksao/frame/fitsnrrd.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fitsnrrd.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/fr3dcommand.C saods9-8.3+repack/tksao/frame/fr3dcommand.C --- saods9-8.2+repack/tksao/frame/fr3dcommand.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fr3dcommand.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/fr3dmap.C saods9-8.3+repack/tksao/frame/fr3dmap.C --- saods9-8.2+repack/tksao/frame/fr3dmap.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fr3dmap.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frame3dbase.C saods9-8.3+repack/tksao/frame/frame3dbase.C --- saods9-8.2+repack/tksao/frame/frame3dbase.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frame3dbase.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -1252,111 +1252,6 @@ XDestroyImage(srcXImage); } -#ifdef MAC_OSX_TK -#include - -void Frame3dBase::macosxLine(Vector& ss, Vector& tt, int dd) -{ - /* - if (dd) - macosxDash(dlist,2); - else - macosxDash(NULL,0); - macosxDrawLine(ss,tt); - */ -} - -void Frame3dBase::macosxGraphics() -{ - if (!keyContext->fits) - return; - - if (border_) - macosxBorder(); - if (compass_) - macosxCompass(); - if (highlite_) - macosxHighlite(); -} - -void Frame3dBase::macosxBorder() -{ - /* - Vector3d vv[8]; - int dd[12]; - calcBorder(Coord::WIDGET, keyContext->secMode(), vv, dd); - - Vector uu[8]; - for (int ii=0; ii<8; ii++) - uu[ii] = Vector(vv[ii])*widgetToCanvas; - - macosxColor(getXColor(borderColorName_)); - macosxWidth(1); - - // front - macosxLine(uu[0],uu[1],dd[0]); - macosxLine(uu[1],uu[2],dd[1]); - macosxLine(uu[2],uu[3],dd[2]); - macosxLine(uu[3],uu[0],dd[3]); - - // back - macosxLine(uu[4],uu[5],dd[4]); - macosxLine(uu[5],uu[6],dd[5]); - macosxLine(uu[6],uu[7],dd[6]); - macosxLine(uu[7],uu[4],dd[7]); - - // other - macosxLine(uu[0],uu[4],dd[8]); - macosxLine(uu[1],uu[5],dd[9]); - macosxLine(uu[2],uu[6],dd[10]); - macosxLine(uu[3],uu[7],dd[11]); - */ -} - -void Frame3dBase::macosxCompass() -{ - /* - Matrix3d& mm = keyContext->fits->dataToWidget3d; - - double ss = 100./(zoom_[0]+zoom_[1]); - - Vector3d oo = vp_*mm; - Vector3d xx = Vector3d(1,0,0) * Scale3d(ss) * Translate3d(vp_) * mm; - Vector3d yy = Vector3d(0,1,0) * Scale3d(ss) * Translate3d(vp_) * mm; - Vector3d zz = Vector3d(0,0,1) * Scale3d(ss) * Translate3d(vp_) * mm; - - Vector o = Vector(oo)*widgetToCanvas; - Vector x = Vector(xx)*widgetToCanvas; - Vector y = Vector(yy)*widgetToCanvas; - Vector z = Vector(zz)*widgetToCanvas; - - macosxColor(getXColor(compassColorName_)); - macosxWidth(1); - - macosxLine(o,x,0); - macosxLine(o,y,0); - macosxLine(o,z,0); - */ -} - -void Frame3dBase::macosxHighlite() -{ - /* - Vector vv[4]; - int rr[4]; - calcHighlite(Coord::CANVAS,vv,rr); - - macosxColor(getXColor(highliteColorName_)); - macosxWidth(1); - - macosxLine(vv[0],vv[1],rr[0]); - macosxLine(vv[1],vv[2],rr[1]); - macosxLine(vv[2],vv[3],rr[2]); - macosxLine(vv[3],vv[0],rr[3]); - */ -} -#endif - #ifdef __WIN32 #include diff -Nru saods9-8.2+repack/tksao/frame/frame3dbase.h saods9-8.3+repack/tksao/frame/frame3dbase.h --- saods9-8.2+repack/tksao/frame/frame3dbase.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frame3dbase.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -214,13 +214,6 @@ void set3dViewCmd(float, float); void set3dViewPointCmd(const Vector3d&, const Vector&); -#ifdef MAC_OSX_TK - void macosxLine(Vector&, Vector&, int); - void macosxGraphics(); - void macosxBorder(); - void macosxCompass(); - void macosxHighlite(); -#endif #ifdef __WIN32 void win32Line(Vector&, Vector&, int); void win32Graphics(); diff -Nru saods9-8.2+repack/tksao/frame/frame3d.C saods9-8.3+repack/tksao/frame/frame3d.C --- saods9-8.2+repack/tksao/frame/frame3d.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frame3d.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -57,6 +57,10 @@ Frame3d::~Frame3d() { + // be sure the timer is shutdown + if (timer_) + Tcl_DeleteTimerHandler(timer_); + if (context) delete context; @@ -963,9 +967,10 @@ void Frame3d::reset() { - cmapID = 1; - bias = 0.5; - contrast = 1.0; + // don't change cmap + // cmapID = 1; + // bias = 0.5; + // contrast = 1.0; keyContext->resetSecMode(); keyContext->updateClip(); diff -Nru saods9-8.2+repack/tksao/frame/frame3d.h saods9-8.3+repack/tksao/frame/frame3d.h --- saods9-8.2+repack/tksao/frame/frame3d.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frame3d.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frame3dtruecolor16.C saods9-8.3+repack/tksao/frame/frame3dtruecolor16.C --- saods9-8.2+repack/tksao/frame/frame3dtruecolor16.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frame3dtruecolor16.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frame3dtruecolor16.h saods9-8.3+repack/tksao/frame/frame3dtruecolor16.h --- saods9-8.2+repack/tksao/frame/frame3dtruecolor16.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frame3dtruecolor16.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frame3dtruecolor24.C saods9-8.3+repack/tksao/frame/frame3dtruecolor24.C --- saods9-8.2+repack/tksao/frame/frame3dtruecolor24.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frame3dtruecolor24.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frame3dtruecolor24.h saods9-8.3+repack/tksao/frame/frame3dtruecolor24.h --- saods9-8.2+repack/tksao/frame/frame3dtruecolor24.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frame3dtruecolor24.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frame3dtruecolor8.C saods9-8.3+repack/tksao/frame/frame3dtruecolor8.C --- saods9-8.2+repack/tksao/frame/frame3dtruecolor8.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frame3dtruecolor8.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frame3dtruecolor8.h saods9-8.3+repack/tksao/frame/frame3dtruecolor8.h --- saods9-8.2+repack/tksao/frame/frame3dtruecolor8.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frame3dtruecolor8.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/framebase.C saods9-8.3+repack/tksao/frame/framebase.C --- saods9-8.2+repack/tksao/frame/framebase.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/framebase.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/framebase.h saods9-8.3+repack/tksao/frame/framebase.h --- saods9-8.2+repack/tksao/frame/framebase.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/framebase.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frame.C saods9-8.3+repack/tksao/frame/frame.C --- saods9-8.2+repack/tksao/frame/frame.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frame.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -561,9 +561,10 @@ void Frame::reset() { - cmapID = 1; - bias = 0.5; - contrast = 1.0; + // don't change cmap + // cmapID = 1; + // bias = 0.5; + // contrast = 1.0; context->resetSecMode(); context->updateClip(); @@ -1013,10 +1014,7 @@ updatePanner(); } -void Frame::colormapEndCmd() -{ - update(BASE); -} +void Frame::colormapEndCmd() {} #endif diff -Nru saods9-8.2+repack/tksao/frame/frame.h saods9-8.3+repack/tksao/frame/frame.h --- saods9-8.2+repack/tksao/frame/frame.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frame.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frameload.C saods9-8.3+repack/tksao/frame/frameload.C --- saods9-8.2+repack/tksao/frame/frameload.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frameload.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/framergb.C saods9-8.3+repack/tksao/frame/framergb.C --- saods9-8.2+repack/tksao/frame/framergb.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/framergb.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/framergb.h saods9-8.3+repack/tksao/frame/framergb.h --- saods9-8.2+repack/tksao/frame/framergb.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/framergb.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/framergbload.C saods9-8.3+repack/tksao/frame/framergbload.C --- saods9-8.2+repack/tksao/frame/framergbload.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/framergbload.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/framergbtruecolor16.C saods9-8.3+repack/tksao/frame/framergbtruecolor16.C --- saods9-8.2+repack/tksao/frame/framergbtruecolor16.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/framergbtruecolor16.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/framergbtruecolor16.h saods9-8.3+repack/tksao/frame/framergbtruecolor16.h --- saods9-8.2+repack/tksao/frame/framergbtruecolor16.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/framergbtruecolor16.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/framergbtruecolor24.C saods9-8.3+repack/tksao/frame/framergbtruecolor24.C --- saods9-8.2+repack/tksao/frame/framergbtruecolor24.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/framergbtruecolor24.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/framergbtruecolor24.h saods9-8.3+repack/tksao/frame/framergbtruecolor24.h --- saods9-8.2+repack/tksao/frame/framergbtruecolor24.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/framergbtruecolor24.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/framergbtruecolor8.C saods9-8.3+repack/tksao/frame/framergbtruecolor8.C --- saods9-8.2+repack/tksao/frame/framergbtruecolor8.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/framergbtruecolor8.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/framergbtruecolor8.h saods9-8.3+repack/tksao/frame/framergbtruecolor8.h --- saods9-8.2+repack/tksao/frame/framergbtruecolor8.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/framergbtruecolor8.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frametruecolor16.C saods9-8.3+repack/tksao/frame/frametruecolor16.C --- saods9-8.2+repack/tksao/frame/frametruecolor16.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frametruecolor16.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frametruecolor16.h saods9-8.3+repack/tksao/frame/frametruecolor16.h --- saods9-8.2+repack/tksao/frame/frametruecolor16.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frametruecolor16.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frametruecolor24.C saods9-8.3+repack/tksao/frame/frametruecolor24.C --- saods9-8.2+repack/tksao/frame/frametruecolor24.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frametruecolor24.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frametruecolor24.h saods9-8.3+repack/tksao/frame/frametruecolor24.h --- saods9-8.2+repack/tksao/frame/frametruecolor24.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frametruecolor24.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frametruecolor8.C saods9-8.3+repack/tksao/frame/frametruecolor8.C --- saods9-8.2+repack/tksao/frame/frametruecolor8.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frametruecolor8.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frametruecolor8.h saods9-8.3+repack/tksao/frame/frametruecolor8.h --- saods9-8.2+repack/tksao/frame/frametruecolor8.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frametruecolor8.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frblt.C saods9-8.3+repack/tksao/frame/frblt.C --- saods9-8.2+repack/tksao/frame/frblt.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frblt.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frcommand.C saods9-8.3+repack/tksao/frame/frcommand.C --- saods9-8.2+repack/tksao/frame/frcommand.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frcommand.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frmap.C saods9-8.3+repack/tksao/frame/frmap.C --- saods9-8.2+repack/tksao/frame/frmap.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frmap.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frmarker.C saods9-8.3+repack/tksao/frame/frmarker.C --- saods9-8.2+repack/tksao/frame/frmarker.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frmarker.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -4439,7 +4439,7 @@ { useMarkerColor_ = use; if (markerColor_) - delete markerColor_; + delete [] markerColor_; markerColor_ = dupstr(color); xySystem_ = sys; xySky_ = sky; @@ -6247,23 +6247,6 @@ } } -#ifdef MAC_OSX_TK -void Base::macosxMarkers(List* ml) -{ - // render from back to front - // bbox is in canvas coords - const BBox bb = BBox(0, 0, options->width-1, options->height-1) * - widgetToCanvas; - - Marker* mm=ml->tail(); - while (mm) { - if (mm->isVisible(bb)) - mm->macosx(showMarkersText); - mm=mm->previous(); - } -} -#endif - #ifdef __WIN32 void Base::win32Markers(List* ml) { diff -Nru saods9-8.2+repack/tksao/frame/frmarkerxml.C saods9-8.3+repack/tksao/frame/frmarkerxml.C --- saods9-8.2+repack/tksao/frame/frmarkerxml.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frmarkerxml.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,10 +1,11 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" #include #include "fdstream.hpp" #include +#include #include "util.h" #include "context.h" @@ -130,13 +131,13 @@ } for (int ii=0; ii<128; ii++) { if (unit[ii]) - delete unit[ii]; + xmlFree(unit[ii]); if (ref[ii]) - delete ref[ii]; + xmlFree(ref[ii]); if (axis[ii]) - delete axis[ii]; + xmlFree(axis[ii]); if (dir[ii]) - delete dir[ii]; + xmlFree(dir[ii]); } } @@ -245,7 +246,7 @@ (char*)xmlTextReaderGetAttribute(reader,(const xmlChar*)("DIR")); if (colname) - free(colname); + xmlFree(colname); } void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref, diff -Nru saods9-8.2+repack/tksao/frame/frsave.C saods9-8.3+repack/tksao/frame/frsave.C --- saods9-8.2+repack/tksao/frame/frsave.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frsave.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frscale.C saods9-8.3+repack/tksao/frame/frscale.C --- saods9-8.2+repack/tksao/frame/frscale.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frscale.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/frscale.h saods9-8.3+repack/tksao/frame/frscale.h --- saods9-8.2+repack/tksao/frame/frscale.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/frscale.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/fvcontour.C saods9-8.3+repack/tksao/frame/fvcontour.C --- saods9-8.2+repack/tksao/frame/fvcontour.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fvcontour.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/fvcontour.h saods9-8.3+repack/tksao/frame/fvcontour.h --- saods9-8.2+repack/tksao/frame/fvcontour.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/fvcontour.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/grid25d.C saods9-8.3+repack/tksao/frame/grid25d.C --- saods9-8.2+repack/tksao/frame/grid25d.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/grid25d.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/grid25d.h saods9-8.3+repack/tksao/frame/grid25d.h --- saods9-8.2+repack/tksao/frame/grid25d.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/grid25d.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -24,9 +24,6 @@ void x11() {doit(X11);} void ps(PSColorSpace mode) {mode_=mode; doit(PS);} -#ifdef MAC_OSX_TK - void macosx() {doit(MACOSX);} -#endif #ifdef __WIN32 void win32() {doit(GWIN32);} #endif diff -Nru saods9-8.2+repack/tksao/frame/grid2d.C saods9-8.3+repack/tksao/frame/grid2d.C --- saods9-8.2+repack/tksao/frame/grid2d.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/grid2d.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/grid2d.h saods9-8.3+repack/tksao/frame/grid2d.h --- saods9-8.2+repack/tksao/frame/grid2d.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/grid2d.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -24,9 +24,6 @@ void x11() {doit(X11);} void ps(PSColorSpace mode) {mode_=mode; doit(PS);} -#ifdef MAC_OSX_TK - void macosx() {doit(MACOSX);} -#endif #ifdef __WIN32 void win32() {doit(GWIN32);} #endif diff -Nru saods9-8.2+repack/tksao/frame/grid3d.C saods9-8.3+repack/tksao/frame/grid3d.C --- saods9-8.2+repack/tksao/frame/grid3d.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/grid3d.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/grid3d.h saods9-8.3+repack/tksao/frame/grid3d.h --- saods9-8.2+repack/tksao/frame/grid3d.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/grid3d.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -24,9 +24,6 @@ void x11() {doit(X11);} void ps(PSColorSpace mode) {mode_=mode; doit(PS);} -#ifdef MAC_OSX_TK - void macosx() {doit(MACOSX);} -#endif #ifdef __WIN32 void win32() {doit(GWIN32);} #endif diff -Nru saods9-8.2+repack/tksao/frame/grid.C saods9-8.3+repack/tksao/frame/grid.C --- saods9-8.2+repack/tksao/frame/grid.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/grid.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/grid.h saods9-8.3+repack/tksao/frame/grid.h --- saods9-8.2+repack/tksao/frame/grid.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/grid.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -28,9 +28,6 @@ virtual void x11() =0; virtual void ps(PSColorSpace) =0; -#ifdef MAC_OSX_TK - virtual void macosx() =0; -#endif #ifdef __WIN32 virtual void win32() =0; #endif diff -Nru saods9-8.2+repack/tksao/frame/inversescale.C saods9-8.3+repack/tksao/frame/inversescale.C --- saods9-8.2+repack/tksao/frame/inversescale.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/inversescale.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/inversescale.h saods9-8.3+repack/tksao/frame/inversescale.h --- saods9-8.2+repack/tksao/frame/inversescale.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/inversescale.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/lex.C saods9-8.3+repack/tksao/frame/lex.C --- saods9-8.2+repack/tksao/frame/lex.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/lex.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,6 +1,6 @@ -#line 2 "frame/lex.C" +#line 1 "frame/lex.C" -#line 4 "frame/lex.C" +#line 3 "frame/lex.C" #define YY_INT_ALIGNED short int @@ -8,8 +8,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -22,6 +22,24 @@ */ #define yyFlexLexer frFlexLexer +#ifdef yyalloc +#define fralloc_ALREADY_DEFINED +#else +#define yyalloc fralloc +#endif + +#ifdef yyrealloc +#define frrealloc_ALREADY_DEFINED +#else +#define yyrealloc frrealloc +#endif + +#ifdef yyfree +#define frfree_ALREADY_DEFINED +#else +#define yyfree frfree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -59,7 +77,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -90,70 +107,67 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ -#include +#include #include #include +#include #include /* end standard C++ headers. */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) - #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -175,8 +189,9 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -191,7 +206,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -199,7 +213,7 @@ struct yy_buffer_state { - std::istream* yy_input_file; + std::streambuf* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ @@ -207,7 +221,7 @@ /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -235,7 +249,7 @@ int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -269,18 +283,16 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -void *fralloc (yy_size_t ); -void *frrealloc (void *,yy_size_t ); -void frfree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -290,7 +302,6 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -300,13 +311,11 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; #define yytext_ptr yytext @@ -323,7 +332,6 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 369 #define YY_END_OF_BUFFER 370 /* This struct is not used in this scanner, @@ -333,7 +341,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1311] = +static const flex_int16_t yy_accept[1311] = { 0, 0, 0, 370, 368, 367, 369, 368, 368, 368, 368, 368, 349, 349, 349, 368, 368, 368, 368, 368, 368, @@ -481,7 +489,7 @@ 366, 234, 261, 366, 366, 168, 291, 366, 105, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -513,7 +521,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[72] = +static const YY_CHAR yy_meta[72] = { 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -525,7 +533,7 @@ 2 } ; -static yyconst flex_int16_t yy_base[1318] = +static const flex_int16_t yy_base[1318] = { 0, 0, 0, 432, 3026, 427, 3026, 0, 71, 76, 75, 83, 92, 69, 90, 141, 201, 250, 94, 295, 345, @@ -674,7 +682,7 @@ 73, 3013, 3015, 3017, 3019, 3021, 3023 } ; -static yyconst flex_int16_t yy_def[1318] = +static const flex_int16_t yy_def[1318] = { 0, 1310, 1, 1310, 1310, 1310, 1310, 1311, 1312, 1313, 1311, 1311, 1311, 12, 12, 1311, 1311, 1311, 1311, 1311, 1311, @@ -823,7 +831,7 @@ 1310, 1310, 1310, 1310, 1310, 1310, 1310 } ; -static yyconst flex_int16_t yy_nxt[3098] = +static const flex_int16_t yy_nxt[3098] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 13, 14, 13, 13, 13, 13, 7, 15, 16, 17, @@ -1168,7 +1176,7 @@ } ; -static yyconst flex_int16_t yy_chk[3098] = +static const flex_int16_t yy_chk[3098] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1521,7 +1529,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "frame/lex.L" -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -1535,8 +1543,9 @@ #include "parser.H" extern YYSTYPE* frlval; +#line 1546 "frame/lex.C" /* rules */ -#line 1540 "frame/lex.C" +#line 1548 "frame/lex.C" #define INITIAL 0 @@ -1553,11 +1562,11 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -1566,7 +1575,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -1580,7 +1594,7 @@ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif @@ -1622,7 +1636,7 @@ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -1632,15 +1646,10 @@ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 28 "frame/lex.L" - - -#line 1643 "frame/lex.C" - if ( !(yy_init) ) { (yy_init) = 1; @@ -1653,10 +1662,10 @@ (yy_start) = 1; /* first start state */ if ( ! yyin ) - yyin = & std::cin; + yyin.rdbuf(std::cin.rdbuf()); if ( ! yyout ) - yyout = & std::cout; + yyout.rdbuf(std::cout.rdbuf()); if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); @@ -1667,7 +1676,13 @@ yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 28 "frame/lex.L" + + +#line 1683 "frame/lex.C" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -1683,7 +1698,7 @@ yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1693,9 +1708,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 1311 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 1310 ); @@ -3595,7 +3610,7 @@ #line 462 "frame/lex.L" ECHO; YY_BREAK -#line 3599 "frame/lex.C" +#line 3613 "frame/lex.C" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -3620,7 +3635,7 @@ * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -3727,14 +3742,33 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. */ -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::ctor_common() { - yyin = arg_yyin; - yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; @@ -3751,7 +3785,7 @@ yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -3764,23 +3798,36 @@ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; - frfree(yy_start_stack ); + yyfree( yy_start_stack ); yy_delete_buffer( YY_CURRENT_BUFFER ); - frfree(yy_buffer_stack ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } + if( ! new_in ) { + new_in = &yyin; + } - if ( new_out ) - yyout = new_out; + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); } #ifdef YY_INTERACTIVE @@ -3789,33 +3836,33 @@ size_t yyFlexLexer::LexerInput( char* buf, size_t max_size ) #endif { - if ( yyin->eof() || yyin->fail() ) + if ( yyin.eof() || yyin.fail() ) return 0; #ifdef YY_INTERACTIVE - yyin->get( buf[0] ); + yyin.get( buf[0] ); - if ( yyin->eof() ) + if ( yyin.eof() ) return 0; - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; return 1; #else - (void) yyin->read( buf, max_size ); + (void) yyin.read( buf, max_size ); - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; else - return yyin->gcount(); + return yyin.gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, size_t size ) { - (void) yyout->write( buf, size ); + (void) yyout.write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer @@ -3827,9 +3874,9 @@ */ int yyFlexLexer::yy_get_next_buffer() { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -3858,7 +3905,7 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -3878,7 +3925,7 @@ { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); @@ -3894,11 +3941,12 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - frrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -3940,12 +3988,15 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) frrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -3961,14 +4012,14 @@ yy_state_type yyFlexLexer::yy_get_previous_state() { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -3978,9 +4029,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 1311 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -3993,10 +4044,10 @@ */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -4006,17 +4057,18 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 1311 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 1310); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - void yyFlexLexer::yyunput( int c, register char* yy_bp) +#ifndef YY_NO_UNPUT + void yyFlexLexer::yyunput( int c, char* yy_bp) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -4026,10 +4078,10 @@ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -4038,7 +4090,7 @@ yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -4050,6 +4102,7 @@ (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } +#endif int yyFlexLexer::yyinput() { @@ -4123,7 +4176,7 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void yyFlexLexer::yyrestart( std::istream* input_file ) + void yyFlexLexer::yyrestart( std::istream& input_file ) { if ( ! YY_CURRENT_BUFFER ){ @@ -4136,6 +4189,19 @@ yy_load_buffer_state( ); } +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -4175,7 +4241,7 @@ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); (yy_hold_char) = *(yy_c_buf_p); } @@ -4185,11 +4251,11 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) fralloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -4198,7 +4264,7 @@ /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) fralloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -4209,6 +4275,17 @@ return b; } +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -4223,23 +4300,23 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - frfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - frfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) { int oerrno = errno; yy_flush_buffer( b ); - b->yy_input_file = file; + b->yy_input_file = file.rdbuf(); b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -4347,15 +4424,15 @@ * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)fralloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -4364,10 +4441,10 @@ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)frrealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -4380,20 +4457,21 @@ } } - void yyFlexLexer::yy_push_state( int new_state ) + void yyFlexLexer::yy_push_state( int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) fralloc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) frrealloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -4401,7 +4479,7 @@ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } void yyFlexLexer::yy_pop_state() @@ -4421,7 +4499,7 @@ #define YY_EXIT_FAILURE 2 #endif -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( const char* msg ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); @@ -4434,7 +4512,7 @@ do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -4451,18 +4529,19 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -4470,13 +4549,14 @@ } #endif -void *fralloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *frrealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -4484,12 +4564,12 @@ * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void frfree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see frrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -4497,4 +4577,3 @@ #line 462 "frame/lex.L" - diff -Nru saods9-8.2+repack/tksao/frame/lex.L saods9-8.3+repack/tksao/frame/lex.L --- saods9-8.2+repack/tksao/frame/lex.L 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/lex.L 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ diff -Nru saods9-8.2+repack/tksao/frame/line.C saods9-8.3+repack/tksao/frame/line.C --- saods9-8.2+repack/tksao/frame/line.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/line.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -88,32 +88,6 @@ Tcl_AppendResult(parent->interp, str.str().c_str(), NULL); } -#ifdef MAC_OSX_TK -#include - -void Line::renderMACOSX() -{ - /* - renderMACOSXGC(); - - Vector aa = parent->mapFromRef(p1,Coord::CANVAS); - Vector bb = parent->mapFromRef(p2,Coord::CANVAS); - - if (p1Arrow) { - aa = modifyArrow(p2,p1,Coord::CANVAS); - renderMACOSXArrow(p2,p1,Coord::CANVAS); - } - - if (p2Arrow) { - bb = modifyArrow(p1,p2,Coord::CANVAS); - renderMACOSXArrow(p1,p2,Coord::CANVAS); - } - - macosxDrawLine(aa,bb); - */ -} -#endif - #ifdef __WIN32 #include diff -Nru saods9-8.2+repack/tksao/frame/line.h saods9-8.3+repack/tksao/frame/line.h --- saods9-8.2+repack/tksao/frame/line.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/line.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -15,9 +15,6 @@ protected: void renderX(Drawable, Coord::InternalSystem, RenderMode); void renderPS(PSColorSpace); -#ifdef MAC_OSX_TK - void renderMACOSX(); -#endif #ifdef __WIN32 void renderWIN32(); #endif diff -Nru saods9-8.2+repack/tksao/frame/marker.C saods9-8.3+repack/tksao/frame/marker.C --- saods9-8.2+repack/tksao/frame/marker.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/marker.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -472,99 +472,6 @@ Tcl_AppendResult(parent->interp, (char*)str.str().c_str(), NULL); } -#ifdef MAC_OSX_TK -#include - -void Marker::macosx(int tt) -{ - if (tt) - renderMACOSXText(); - - renderMACOSX(); - renderMACOSXInclude(); -} -void Marker::renderMACOSXInclude() -{ - /* - if (!(properties & INCLUDE)) { - macosxColor(parent->getXColor("red")); - - Vector ll = handle[0]; - Vector ur = handle[2]; - macosxDrawLine(ll,ur); - } - */ -} - -void Marker::renderMACOSXText() -{ - /* - if (text && *text && psfont_) { - macosxColor(parent->getXColor(colorName)); - - Tcl_DString psdstr; - Tcl_DStringInit(&psdstr); - int psSize = Tk_PostscriptFontName(psfont_, &psdstr); - macosxFont(Tcl_DStringValue(&psdstr), psSize); - Tcl_DStringFree(&psdstr); - - Tk_FontMetrics metrics; - Tk_GetFontMetrics(psfont_, &metrics); - int width = Tk_TextWidth(psfont_, text, strlen(text)); - - Vector bbc = bbox.center(); - Vector tt = Vector(bbc[0], bbox.ll[1]) * - Translate(-width/2., -metrics.descent); - - macosxDrawText(tt, 0, text); - } - */ -} - -void Marker::renderMACOSXArrow(const Vector& p1, const Vector& p2, - Coord::InternalSystem sys) -{ - /* - Vector* vv = arrow(p1,p2,sys); - Vector dd[6]; - for (int ii=0; ii<6; ii++) - dd[ii] = vv[ii]; - - macosxFillPolygon(dd,6); - delete [] vv; - */ -} - -void Marker::renderMACOSXGC() -{ - /* - // set width, color, dash - macosxColor(parent->getXColor(colorName)); - - if ((properties & SOURCE) && !(properties & DASH)) - renderMACOSXLineNoDash(); - else - renderMACOSXLineDash(); - */ -} - -void Marker::renderMACOSXLineDash() -{ - /* - macosxWidth(lineWidth); - macosxDash(dlist,2); - */ -} - -void Marker::renderMACOSXLineNoDash() -{ - /* - macosxWidth(lineWidth); - macosxDash(NULL,0); - */ -} -#endif - #ifdef __WIN32 #include diff -Nru saods9-8.2+repack/tksao/frame/marker.h saods9-8.3+repack/tksao/frame/marker.h --- saods9-8.2+repack/tksao/frame/marker.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/marker.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -129,16 +129,6 @@ virtual void renderPSLineDash(); void renderPSLineNoDash(); -#ifdef MAC_OSX_TK - virtual void renderMACOSX() =0; - virtual void renderMACOSXInclude(); - virtual void renderMACOSXText(); - void renderMACOSXArrow(const Vector&, const Vector&, Coord::InternalSystem); - virtual void renderMACOSXGC(); - virtual void renderMACOSXLineDash(); - void renderMACOSXLineNoDash(); -#endif - #ifdef __WIN32 virtual void renderWIN32() =0; virtual void renderWIN32Include(); @@ -215,9 +205,6 @@ virtual void x11(Drawable, Coord::InternalSystem, int, HandleMode); virtual void ps(PSColorSpace,int); -#ifdef MAC_OSX_TK - virtual void macosx(int); -#endif #ifdef __WIN32 virtual void win32(int); #endif diff -Nru saods9-8.2+repack/tksao/frame/parser.C saods9-8.3+repack/tksao/frame/parser.C --- saods9-8.2+repack/tksao/frame/parser.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/parser.C 2021-11-08 15:46:07.000000000 +0000 @@ -1088,16 +1088,16 @@ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 359 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 5772 +#define YYLAST 5484 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 358 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 219 +#define YYNNTS 221 /* YYNRULES -- Number of rules. */ -#define YYNRULES 1275 +#define YYNRULES 1279 /* YYNRULES -- Number of states. */ -#define YYNSTATES 2806 +#define YYNSTATES 2816 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -1212,99 +1212,99 @@ 920, 925, 930, 934, 938, 940, 944, 950, 955, 960, 964, 967, 968, 970, 972, 976, 979, 982, 985, 988, 991, 994, 997, 1000, 1003, 1006, 1009, 1012, 1015, 1018, - 1020, 1023, 1026, 1029, 1034, 1044, 1047, 1050, 1053, 1055, - 1059, 1062, 1065, 1067, 1070, 1079, 1082, 1084, 1087, 1089, - 1092, 1094, 1099, 1109, 1112, 1114, 1116, 1118, 1120, 1123, - 1125, 1127, 1130, 1132, 1133, 1136, 1139, 1141, 1142, 1145, - 1148, 1150, 1152, 1155, 1158, 1161, 1163, 1165, 1167, 1169, - 1171, 1173, 1174, 1176, 1179, 1181, 1186, 1192, 1193, 1196, - 1198, 1204, 1207, 1210, 1212, 1214, 1216, 1219, 1221, 1224, - 1226, 1228, 1229, 1231, 1233, 1234, 1236, 1242, 1249, 1253, - 1260, 1264, 1266, 1270, 1272, 1274, 1276, 1280, 1287, 1295, - 1301, 1303, 1305, 1310, 1316, 1318, 1322, 1323, 1325, 1328, - 1330, 1335, 1337, 1340, 1342, 1345, 1349, 1352, 1354, 1357, - 1359, 1364, 1367, 1369, 1371, 1375, 1377, 1380, 1384, 1387, - 1388, 1390, 1392, 1397, 1400, 1401, 1403, 1407, 1412, 1417, - 1418, 1420, 1422, 1424, 1426, 1428, 1430, 1432, 1434, 1436, - 1438, 1440, 1442, 1444, 1446, 1448, 1451, 1453, 1456, 1458, - 1461, 1464, 1467, 1470, 1472, 1474, 1476, 1477, 1479, 1480, - 1482, 1483, 1485, 1486, 1488, 1489, 1492, 1495, 1496, 1498, - 1501, 1503, 1510, 1516, 1518, 1520, 1522, 1525, 1528, 1531, - 1533, 1535, 1537, 1539, 1542, 1544, 1546, 1548, 1551, 1553, - 1555, 1557, 1560, 1563, 1566, 1567, 1569, 1570, 1572, 1574, - 1576, 1578, 1580, 1582, 1584, 1586, 1589, 1592, 1595, 1597, - 1600, 1604, 1606, 1609, 1612, 1617, 1624, 1626, 1637, 1639, - 1642, 1646, 1650, 1653, 1656, 1659, 1662, 1665, 1668, 1671, - 1676, 1681, 1686, 1690, 1694, 1700, 1705, 1710, 1715, 1719, - 1723, 1727, 1731, 1734, 1737, 1742, 1746, 1750, 1754, 1758, - 1763, 1768, 1773, 1778, 1784, 1789, 1796, 1804, 1809, 1814, - 1820, 1823, 1827, 1831, 1835, 1838, 1842, 1846, 1850, 1854, - 1859, 1863, 1869, 1876, 1880, 1884, 1889, 1893, 1897, 1901, - 1905, 1909, 1915, 1919, 1923, 1928, 1932, 1935, 1938, 1940, - 1944, 1949, 1954, 1959, 1964, 1969, 1976, 1981, 1986, 1992, - 1997, 2002, 2007, 2012, 2018, 2023, 2030, 2038, 2043, 2048, - 2054, 2060, 2066, 2072, 2078, 2084, 2092, 2098, 2104, 2111, - 2116, 2121, 2126, 2131, 2136, 2143, 2148, 2153, 2159, 2165, - 2171, 2177, 2183, 2190, 2196, 2204, 2213, 2219, 2225, 2232, - 2236, 2240, 2244, 2248, 2253, 2257, 2263, 2270, 2274, 2278, - 2283, 2287, 2291, 2295, 2299, 2303, 2309, 2313, 2317, 2322, - 2327, 2332, 2336, 2342, 2347, 2352, 2355, 2359, 2366, 2373, - 2375, 2377, 2379, 2382, 2385, 2388, 2392, 2396, 2399, 2412, - 2415, 2418, 2420, 2424, 2429, 2432, 2433, 2437, 2439, 2442, - 2445, 2448, 2451, 2454, 2459, 2464, 2469, 2473, 2478, 2484, - 2493, 2500, 2505, 2515, 2522, 2530, 2541, 2553, 2566, 2576, - 2582, 2587, 2594, 2598, 2604, 2610, 2617, 2623, 2628, 2638, - 2649, 2661, 2671, 2678, 2685, 2692, 2699, 2706, 2713, 2720, - 2727, 2734, 2742, 2750, 2753, 2758, 2763, 2768, 2773, 2779, - 2784, 2789, 2795, 2801, 2805, 2810, 2815, 2820, 2825, 2833, - 2843, 2850, 2861, 2873, 2886, 2896, 2900, 2903, 2907, 2913, - 2921, 2926, 2930, 2934, 2941, 2949, 2957, 2962, 2967, 2972, - 2982, 2987, 2991, 2996, 3004, 3012, 3015, 3019, 3023, 3027, - 3032, 3035, 3038, 3043, 3054, 3058, 3060, 3064, 3067, 3070, - 3073, 3076, 3080, 3086, 3091, 3097, 3100, 3103, 3106, 3109, - 3113, 3116, 3119, 3122, 3126, 3129, 3133, 3138, 3142, 3146, - 3153, 3158, 3161, 3165, 3168, 3171, 3176, 3180, 3184, 3187, - 3191, 3193, 3196, 3198, 3201, 3204, 3207, 3209, 3211, 3213, - 3215, 3218, 3220, 3223, 3226, 3228, 3231, 3234, 3236, 3239, - 3241, 3243, 3245, 3247, 3249, 3251, 3253, 3255, 3256, 3258, - 3261, 3264, 3267, 3271, 3277, 3285, 3293, 3300, 3307, 3314, - 3321, 3327, 3334, 3341, 3348, 3355, 3362, 3369, 3376, 3388, - 3396, 3404, 3412, 3422, 3432, 3443, 3456, 3469, 3472, 3475, - 3479, 3484, 3489, 3494, 3495, 3497, 3499, 3504, 3509, 3511, - 3513, 3515, 3517, 3519, 3521, 3523, 3525, 3528, 3530, 3532, - 3534, 3538, 3542, 3551, 3558, 3569, 3577, 3585, 3591, 3594, - 3597, 3601, 3606, 3612, 3616, 3622, 3628, 3632, 3637, 3643, - 3649, 3655, 3659, 3665, 3668, 3672, 3676, 3682, 3686, 3690, - 3694, 3699, 3705, 3711, 3715, 3721, 3727, 3731, 3736, 3742, - 3748, 3751, 3754, 3758, 3764, 3771, 3778, 3782, 3786, 3790, - 3797, 3803, 3809, 3812, 3816, 3820, 3826, 3833, 3837, 3840, - 3843, 3847, 3850, 3854, 3857, 3861, 3867, 3874, 3877, 3880, - 3883, 3885, 3890, 3895, 3897, 3900, 3903, 3906, 3909, 3912, - 3915, 3918, 3922, 3925, 3929, 3932, 3936, 3938, 3940, 3942, - 3944, 3946, 3947, 3950, 3951, 3954, 3955, 3957, 3958, 3959, - 3961, 3963, 3965, 3967, 3969, 3977, 3986, 3989, 3996, 3999, - 4006, 4009, 4013, 4016, 4018, 4020, 4024, 4028, 4030, 4035, - 4038, 4040, 4044, 4048, 4053, 4057, 4061, 4065, 4067, 4069, - 4071, 4073, 4075, 4077, 4079, 4081, 4083, 4085, 4087, 4089, - 4091, 4093, 4096, 4097, 4098, 4101, 4108, 4116, 4119, 4121, - 4125, 4127, 4131, 4133, 4136, 4139, 4141, 4145, 4146, 4147, - 4150, 4153, 4155, 4159, 4165, 4167, 4170, 4173, 4177, 4180, - 4183, 4186, 4189, 4191, 4193, 4195, 4197, 4202, 4205, 4209, - 4213, 4216, 4220, 4223, 4226, 4229, 4233, 4237, 4241, 4244, - 4248, 4250, 4254, 4258, 4260, 4263, 4266, 4269, 4272, 4282, - 4289, 4291, 4293, 4295, 4297, 4300, 4303, 4307, 4311, 4313, - 4316, 4320, 4324, 4326, 4329, 4331, 4333, 4335, 4337, 4339, - 4342, 4345, 4350, 4352, 4355, 4358, 4361, 4365, 4367, 4369, - 4371, 4374, 4377, 4380, 4383, 4386, 4390, 4394, 4398, 4402, - 4406, 4410, 4414, 4416, 4419, 4422, 4425, 4429, 4432, 4436, - 4440, 4443, 4446, 4449, 4452, 4455, 4458, 4461, 4464, 4467, - 4470, 4473, 4476, 4479, 4482, 4486, 4490, 4494, 4497, 4500, - 4503, 4506, 4509, 4512, 4515, 4518, 4521, 4524, 4527, 4530, - 4534, 4538, 4542, 4547, 4554, 4557, 4559, 4561, 4563, 4565, - 4567, 4568, 4574, 4576, 4583, 4587, 4589, 4592, 4595, 4598, - 4602, 4606, 4609, 4612, 4615, 4618, 4621, 4624, 4628, 4631, - 4634, 4638, 4640, 4644, 4649, 4651, 4654, 4660, 4667, 4674, - 4677, 4679, 4682, 4685, 4691, 4698 + 1020, 1023, 1026, 1029, 1034, 1038, 1041, 1044, 1047, 1049, + 1053, 1056, 1059, 1061, 1064, 1073, 1076, 1078, 1081, 1083, + 1086, 1088, 1093, 1097, 1100, 1102, 1110, 1119, 1127, 1136, + 1138, 1140, 1142, 1145, 1147, 1149, 1152, 1154, 1155, 1158, + 1161, 1163, 1164, 1167, 1170, 1172, 1174, 1177, 1180, 1183, + 1185, 1187, 1189, 1191, 1193, 1195, 1196, 1198, 1201, 1203, + 1208, 1214, 1215, 1218, 1220, 1226, 1229, 1232, 1234, 1236, + 1238, 1241, 1243, 1246, 1248, 1250, 1251, 1253, 1255, 1256, + 1258, 1264, 1271, 1275, 1282, 1286, 1288, 1292, 1294, 1296, + 1298, 1302, 1309, 1317, 1323, 1325, 1327, 1332, 1338, 1340, + 1344, 1345, 1347, 1350, 1352, 1357, 1359, 1362, 1364, 1367, + 1371, 1374, 1376, 1379, 1381, 1386, 1389, 1391, 1393, 1397, + 1399, 1402, 1406, 1409, 1410, 1412, 1414, 1419, 1422, 1423, + 1425, 1429, 1434, 1439, 1440, 1442, 1444, 1446, 1448, 1450, + 1452, 1454, 1456, 1458, 1460, 1462, 1464, 1466, 1468, 1470, + 1473, 1475, 1478, 1480, 1483, 1486, 1489, 1492, 1494, 1496, + 1498, 1499, 1501, 1502, 1504, 1505, 1507, 1508, 1510, 1511, + 1514, 1517, 1518, 1520, 1523, 1525, 1532, 1538, 1540, 1542, + 1544, 1547, 1550, 1553, 1555, 1557, 1559, 1561, 1564, 1566, + 1568, 1570, 1573, 1575, 1577, 1579, 1582, 1585, 1588, 1589, + 1591, 1592, 1594, 1596, 1598, 1600, 1602, 1604, 1606, 1608, + 1611, 1614, 1617, 1619, 1622, 1626, 1628, 1631, 1634, 1639, + 1646, 1648, 1659, 1661, 1664, 1668, 1672, 1675, 1678, 1681, + 1684, 1687, 1690, 1693, 1698, 1703, 1708, 1712, 1716, 1722, + 1727, 1732, 1737, 1741, 1745, 1749, 1753, 1756, 1759, 1764, + 1768, 1772, 1776, 1780, 1785, 1790, 1795, 1800, 1806, 1811, + 1818, 1826, 1831, 1836, 1842, 1845, 1849, 1853, 1857, 1860, + 1864, 1868, 1872, 1876, 1881, 1885, 1891, 1898, 1902, 1906, + 1911, 1915, 1919, 1923, 1927, 1931, 1937, 1941, 1945, 1950, + 1954, 1957, 1960, 1962, 1966, 1971, 1976, 1981, 1986, 1991, + 1998, 2003, 2008, 2014, 2019, 2024, 2029, 2034, 2040, 2045, + 2052, 2060, 2065, 2070, 2076, 2082, 2088, 2094, 2100, 2106, + 2114, 2120, 2126, 2133, 2138, 2143, 2148, 2153, 2158, 2165, + 2170, 2175, 2181, 2187, 2193, 2199, 2205, 2212, 2218, 2226, + 2235, 2241, 2247, 2254, 2258, 2262, 2266, 2270, 2275, 2279, + 2285, 2292, 2296, 2300, 2305, 2309, 2313, 2317, 2321, 2325, + 2331, 2335, 2339, 2344, 2349, 2354, 2358, 2364, 2369, 2374, + 2377, 2381, 2388, 2395, 2397, 2399, 2401, 2404, 2407, 2410, + 2414, 2418, 2421, 2434, 2437, 2440, 2442, 2446, 2451, 2454, + 2455, 2459, 2461, 2464, 2467, 2470, 2473, 2476, 2481, 2486, + 2491, 2495, 2500, 2506, 2515, 2522, 2527, 2537, 2544, 2552, + 2563, 2575, 2588, 2598, 2604, 2609, 2616, 2620, 2626, 2632, + 2639, 2645, 2650, 2660, 2671, 2683, 2693, 2700, 2707, 2714, + 2721, 2728, 2735, 2742, 2749, 2756, 2764, 2772, 2775, 2780, + 2785, 2790, 2795, 2801, 2806, 2811, 2817, 2823, 2827, 2832, + 2837, 2842, 2847, 2855, 2865, 2872, 2883, 2895, 2908, 2918, + 2922, 2925, 2929, 2935, 2943, 2948, 2952, 2956, 2963, 2971, + 2979, 2984, 2989, 2994, 3004, 3009, 3013, 3018, 3026, 3034, + 3037, 3041, 3045, 3049, 3054, 3057, 3060, 3065, 3076, 3080, + 3082, 3086, 3089, 3092, 3095, 3098, 3102, 3108, 3113, 3119, + 3122, 3125, 3128, 3131, 3135, 3138, 3141, 3144, 3148, 3151, + 3155, 3160, 3164, 3168, 3175, 3180, 3183, 3187, 3190, 3193, + 3198, 3202, 3206, 3209, 3213, 3215, 3218, 3220, 3223, 3226, + 3229, 3231, 3233, 3235, 3237, 3240, 3242, 3245, 3248, 3250, + 3253, 3256, 3258, 3261, 3263, 3265, 3267, 3269, 3271, 3273, + 3275, 3277, 3278, 3280, 3283, 3286, 3289, 3293, 3299, 3307, + 3315, 3322, 3329, 3336, 3343, 3349, 3356, 3363, 3370, 3377, + 3384, 3391, 3398, 3410, 3418, 3426, 3434, 3444, 3454, 3465, + 3478, 3491, 3494, 3497, 3501, 3506, 3511, 3516, 3517, 3519, + 3521, 3526, 3531, 3533, 3535, 3537, 3539, 3541, 3543, 3545, + 3547, 3550, 3552, 3554, 3556, 3560, 3564, 3573, 3580, 3591, + 3599, 3607, 3613, 3616, 3619, 3623, 3628, 3634, 3638, 3644, + 3650, 3654, 3659, 3665, 3671, 3677, 3681, 3687, 3690, 3694, + 3698, 3704, 3708, 3712, 3716, 3721, 3727, 3733, 3737, 3743, + 3749, 3753, 3758, 3764, 3770, 3773, 3776, 3780, 3786, 3793, + 3800, 3804, 3808, 3812, 3819, 3825, 3831, 3834, 3838, 3842, + 3848, 3855, 3859, 3862, 3865, 3869, 3872, 3876, 3879, 3883, + 3889, 3896, 3899, 3902, 3905, 3907, 3912, 3917, 3919, 3922, + 3925, 3928, 3931, 3934, 3937, 3940, 3944, 3947, 3951, 3954, + 3958, 3960, 3962, 3964, 3966, 3968, 3969, 3972, 3973, 3976, + 3977, 3979, 3980, 3981, 3983, 3985, 3987, 3989, 3991, 3999, + 4008, 4011, 4018, 4021, 4028, 4031, 4035, 4038, 4040, 4042, + 4046, 4050, 4052, 4057, 4060, 4062, 4066, 4070, 4075, 4079, + 4083, 4087, 4089, 4091, 4093, 4095, 4097, 4099, 4101, 4103, + 4105, 4107, 4109, 4111, 4113, 4115, 4118, 4119, 4120, 4123, + 4130, 4138, 4141, 4143, 4147, 4149, 4153, 4155, 4158, 4161, + 4163, 4167, 4168, 4169, 4172, 4175, 4177, 4181, 4187, 4189, + 4192, 4195, 4199, 4202, 4205, 4208, 4211, 4213, 4215, 4217, + 4219, 4224, 4227, 4231, 4235, 4238, 4242, 4245, 4248, 4251, + 4255, 4259, 4263, 4266, 4270, 4272, 4276, 4280, 4282, 4285, + 4288, 4291, 4294, 4304, 4311, 4313, 4315, 4317, 4319, 4322, + 4325, 4329, 4333, 4335, 4338, 4342, 4346, 4348, 4351, 4353, + 4355, 4357, 4359, 4361, 4364, 4367, 4372, 4374, 4377, 4380, + 4383, 4387, 4389, 4391, 4393, 4396, 4399, 4402, 4405, 4408, + 4412, 4416, 4420, 4424, 4428, 4432, 4436, 4438, 4441, 4444, + 4447, 4451, 4454, 4458, 4462, 4465, 4468, 4471, 4474, 4477, + 4480, 4483, 4486, 4489, 4492, 4495, 4498, 4501, 4504, 4508, + 4512, 4516, 4519, 4522, 4525, 4528, 4531, 4534, 4537, 4540, + 4543, 4546, 4549, 4552, 4556, 4560, 4564, 4569, 4576, 4579, + 4581, 4583, 4585, 4587, 4589, 4590, 4596, 4598, 4605, 4609, + 4611, 4614, 4617, 4620, 4624, 4628, 4631, 4634, 4637, 4640, + 4643, 4646, 4650, 4653, 4656, 4660, 4662, 4666, 4671, 4673, + 4676, 4682, 4689, 4696, 4699, 4701, 4704, 4707, 4713, 4720 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -1316,17 +1316,17 @@ -1, 68, 289, 5, -1, 69, 405, -1, 70, 407, -1, 78, 408, -1, 85, 417, -1, 87, 419, -1, 88, 420, -1, 97, 362, -1, 127, 422, -1, 140, - 423, -1, 144, 465, -1, 147, 468, -1, 151, -1, - 152, 362, -1, 152, 67, 5, -1, 158, 474, -1, - 164, 16, 4, -1, 178, 477, -1, 181, 495, -1, - 182, 496, -1, 183, 497, -1, 186, 513, 498, -1, - 187, 533, -1, 200, 67, 5, -1, 217, 534, -1, - 218, 535, -1, 219, 538, -1, 240, 89, -1, 233, - 540, -1, 231, 539, -1, 248, -1, 244, 513, 542, - -1, 250, 547, -1, 252, 548, -1, 257, 550, -1, - 271, -1, 277, 565, -1, 292, 4, -1, 293, 388, - -1, 304, -1, 306, 567, -1, 312, -1, 315, 569, - -1, 316, 570, -1, 346, 574, -1, 353, 575, -1, + 423, -1, 144, 467, -1, 147, 470, -1, 151, -1, + 152, 362, -1, 152, 67, 5, -1, 158, 476, -1, + 164, 16, 4, -1, 178, 479, -1, 181, 497, -1, + 182, 498, -1, 183, 499, -1, 186, 515, 500, -1, + 187, 535, -1, 200, 67, 5, -1, 217, 536, -1, + 218, 537, -1, 219, 540, -1, 240, 89, -1, 233, + 542, -1, 231, 541, -1, 248, -1, 244, 515, 544, + -1, 250, 549, -1, 252, 550, -1, 257, 552, -1, + 271, -1, 277, 567, -1, 292, 4, -1, 293, 388, + -1, 304, -1, 306, 569, -1, 312, -1, 315, 571, + -1, 316, 572, -1, 346, 576, -1, 353, 577, -1, 3, -1, 4, -1, 214, -1, 213, -1, 195, 362, -1, 220, 362, -1, 222, 362, -1, 316, 362, -1, 44, 362, -1, 47, 362, -1, 77, 362, -1, 85, @@ -1358,7 +1358,7 @@ 284, -1, -1, 32, -1, 286, -1, -1, 201, -1, 42, -1, 43, -1, 173, -1, 174, -1, 310, 392, -1, 48, 389, -1, 75, 390, -1, 152, 391, -1, - 189, 545, -1, 37, 546, -1, 258, 360, -1, 294, + 189, 547, -1, 37, 548, -1, 258, 360, -1, 294, 360, -1, 362, -1, 67, 5, -1, 362, -1, 67, 5, -1, 362, -1, 67, 5, -1, 360, 360, -1, 228, 360, 360, 360, 360, 360, -1, 12, 394, -1, @@ -1408,379 +1408,381 @@ 197, 372, 360, 360, -1, 40, 197, 370, 369, -1, 197, 370, 369, -1, 33, 4, -1, -1, 32, -1, 286, -1, 147, 119, 5, -1, 41, 67, -1, 44, - 424, -1, 47, 426, -1, 66, 427, -1, 69, 431, - -1, 68, 430, -1, 70, 433, -1, 78, 435, -1, - 80, 438, -1, 85, 439, -1, 87, 440, -1, 89, - 442, -1, 88, 441, -1, 95, 443, -1, 97, -1, - 126, 447, -1, 144, 453, -1, 152, 67, -1, 154, - 5, 5, 4, -1, 155, 90, 5, 5, 360, 360, - 372, 4, 421, -1, 158, 445, -1, 162, 444, -1, - 164, 16, -1, 190, -1, 186, 513, 507, -1, 187, - 454, -1, 200, 67, -1, 217, -1, 218, 455, -1, - 225, 288, 372, 360, 360, 4, 4, 5, -1, 250, - 456, -1, 252, -1, 277, 457, -1, 292, -1, 293, - 458, -1, 301, -1, 308, 372, 360, 360, -1, 314, - 90, 5, 5, 360, 360, 372, 4, 421, -1, 316, - 463, -1, 353, -1, 102, -1, 120, -1, 137, -1, - 54, 274, -1, 89, -1, 124, -1, 72, 425, -1, - 177, -1, -1, 190, 5, -1, 105, 5, -1, 120, - -1, -1, 412, 413, -1, 360, 413, -1, 261, -1, - 196, -1, 190, 428, -1, 307, 171, -1, 352, 429, - -1, 235, -1, 196, -1, 254, -1, 79, -1, 254, - -1, 175, -1, -1, 289, -1, 171, 432, -1, 4, - -1, 4, 372, 360, 360, -1, 4, 360, 360, 375, - 360, -1, -1, 171, 434, -1, 180, -1, 4, 360, - 360, 375, 360, -1, 370, 377, -1, 66, 436, -1, - 67, -1, 93, -1, 171, -1, 211, 171, -1, 189, - -1, 70, 437, -1, 277, -1, 345, -1, -1, 196, - -1, 261, -1, -1, 180, -1, 360, 360, 370, 377, - 378, -1, 372, 360, 360, 370, 377, 378, -1, 370, - 377, 378, -1, 60, 370, 377, 378, 370, 379, -1, - 293, 370, 377, -1, 372, -1, 370, 377, 378, -1, - 285, -1, 33, -1, 372, -1, 370, 377, 378, -1, - 370, 377, 369, 360, 360, 5, -1, 4, 370, 377, - 369, 360, 360, 5, -1, 372, 360, 360, 4, 4, - -1, 5, -1, 66, -1, 372, 360, 360, 5, -1, - 6, 4, 4, 4, 4, -1, 89, -1, 122, 199, - 446, -1, -1, 4, -1, 360, 360, -1, 202, -1, - 60, 370, 377, 378, -1, 82, -1, 102, 450, -1, - 45, -1, 119, 448, -1, 122, 199, 451, -1, 149, - 449, -1, 150, -1, 212, 199, -1, 274, -1, 274, - 370, 377, 379, -1, 275, 452, -1, 345, -1, 4, - -1, 372, 360, 360, -1, 4, -1, 168, 5, -1, - 4, 168, 5, -1, 316, 4, -1, -1, 4, -1, - 363, -1, 363, 372, 360, 360, -1, 363, 4, -1, - -1, 4, -1, 134, 159, 370, -1, 134, 159, 4, - 370, -1, 297, 159, 360, 370, -1, -1, 216, -1, - 309, -1, 67, -1, 185, -1, 243, -1, 287, -1, - 296, -1, 82, -1, 46, -1, 235, -1, 62, -1, - 287, -1, 310, -1, 137, -1, 242, -1, 242, 191, - -1, 272, -1, 272, 191, -1, 21, -1, 310, 462, - -1, 48, 459, -1, 75, 460, -1, 152, 461, -1, - 189, -1, 37, -1, 258, -1, -1, 67, -1, -1, - 67, -1, -1, 67, -1, -1, 228, -1, -1, 16, - 464, -1, 199, 371, -1, -1, 229, -1, 84, 466, - -1, 101, -1, 370, 377, 378, 467, 5, 5, -1, - 370, 377, 378, 467, 5, -1, 20, -1, 238, -1, - 19, -1, 41, 67, -1, 44, 469, -1, 78, 470, - -1, 85, -1, 96, -1, 97, -1, 103, -1, 126, - 471, -1, 144, -1, 158, -1, 165, -1, 186, 472, - -1, 224, -1, 159, -1, 277, -1, 287, 370, -1, - 316, 473, -1, 73, 5, -1, -1, 31, -1, -1, - 44, -1, 88, -1, 195, -1, 152, -1, 264, -1, - 221, -1, 302, -1, 370, -1, 59, 370, -1, 117, - 370, -1, 176, 370, -1, 18, -1, 293, 370, -1, - 203, 4, 4, -1, 118, -1, 188, 5, -1, 89, - 476, -1, 265, 122, 199, 475, -1, 265, 6, 4, - 4, 4, 4, -1, 306, -1, 316, 360, 360, 360, - 360, 360, 360, 360, 360, 4, -1, 5, -1, 5, - 4, -1, 4, 4, 57, -1, 4, 4, 370, -1, - 196, 362, -1, 26, 478, -1, 114, 480, -1, 126, - 481, -1, 161, 494, -1, 210, 492, -1, 223, 493, - -1, 5, 14, 5, 382, -1, 5, 15, 5, 382, - -1, 5, 62, 5, 382, -1, 5, 193, 382, -1, - 5, 194, 382, -1, 5, 268, 380, 4, 382, -1, - 5, 278, 4, 382, -1, 5, 279, 4, 382, -1, - 5, 309, 5, 382, -1, 250, 88, 479, -1, 5, - 14, 5, -1, 5, 15, 5, -1, 5, 62, 5, - -1, 5, 193, -1, 5, 194, -1, 5, 268, 380, - 4, -1, 5, 278, 4, -1, 5, 279, 4, -1, - 5, 309, 5, -1, 5, 5, 276, -1, 5, 14, - 5, 382, -1, 5, 15, 5, 382, -1, 5, 62, - 5, 382, -1, 5, 193, 381, 382, -1, 5, 5, - 276, 381, 382, -1, 5, 194, 381, 382, -1, 5, - 268, 380, 4, 381, 382, -1, 5, 283, 380, 4, - 4, 381, 382, -1, 5, 278, 4, 382, -1, 5, - 279, 4, 382, -1, 5, 309, 5, 381, 382, -1, - 275, 482, -1, 119, 88, 483, -1, 250, 159, 491, - -1, 250, 88, 490, -1, 195, 484, -1, 5, 14, - 5, -1, 5, 15, 5, -1, 5, 62, 5, -1, - 5, 193, 381, -1, 5, 5, 276, 381, -1, 5, - 194, 381, -1, 5, 268, 380, 4, 381, -1, 5, - 283, 380, 4, 4, 381, -1, 5, 278, 4, -1, - 5, 279, 4, -1, 5, 309, 5, 381, -1, 5, - 14, 5, -1, 5, 15, 5, -1, 5, 62, 5, - -1, 5, 193, 381, -1, 5, 194, 381, -1, 5, - 268, 380, 4, 381, -1, 5, 278, 4, -1, 5, - 279, 4, -1, 5, 309, 5, 381, -1, 159, 164, - 485, -1, 164, 486, -1, 159, 487, -1, 489, -1, - 159, 344, 488, -1, 5, 14, 5, 382, -1, 5, - 15, 5, 382, -1, 5, 62, 5, 382, -1, 5, - 193, 381, 382, -1, 5, 194, 381, 382, -1, 5, - 268, 380, 4, 381, 382, -1, 5, 278, 4, 382, + 426, -1, 47, 428, -1, 66, 429, -1, 69, 433, + -1, 68, 432, -1, 70, 435, -1, 78, 437, -1, + 80, 440, -1, 85, 441, -1, 87, 442, -1, 89, + 444, -1, 88, 443, -1, 95, 445, -1, 97, -1, + 126, 449, -1, 144, 455, -1, 152, 67, -1, 154, + 5, 5, 4, -1, 155, 90, 424, -1, 158, 447, + -1, 162, 446, -1, 164, 16, -1, 190, -1, 186, + 515, 509, -1, 187, 456, -1, 200, 67, -1, 217, + -1, 218, 457, -1, 225, 288, 372, 360, 360, 4, + 4, 5, -1, 250, 458, -1, 252, -1, 277, 459, + -1, 292, -1, 293, 460, -1, 301, -1, 308, 372, + 360, 360, -1, 314, 90, 425, -1, 316, 465, -1, + 353, -1, 5, 5, 360, 360, 372, 4, 421, -1, + 5, 5, 360, 360, 370, 377, 4, 421, -1, 5, + 5, 360, 360, 372, 4, 421, -1, 5, 5, 360, + 360, 370, 377, 4, 421, -1, 102, -1, 120, -1, + 137, -1, 54, 274, -1, 89, -1, 124, -1, 72, + 427, -1, 177, -1, -1, 190, 5, -1, 105, 5, + -1, 120, -1, -1, 412, 413, -1, 360, 413, -1, + 261, -1, 196, -1, 190, 430, -1, 307, 171, -1, + 352, 431, -1, 235, -1, 196, -1, 254, -1, 79, + -1, 254, -1, 175, -1, -1, 289, -1, 171, 434, + -1, 4, -1, 4, 372, 360, 360, -1, 4, 360, + 360, 375, 360, -1, -1, 171, 436, -1, 180, -1, + 4, 360, 360, 375, 360, -1, 370, 377, -1, 66, + 438, -1, 67, -1, 93, -1, 171, -1, 211, 171, + -1, 189, -1, 70, 439, -1, 277, -1, 345, -1, + -1, 196, -1, 261, -1, -1, 180, -1, 360, 360, + 370, 377, 378, -1, 372, 360, 360, 370, 377, 378, + -1, 370, 377, 378, -1, 60, 370, 377, 378, 370, + 379, -1, 293, 370, 377, -1, 372, -1, 370, 377, + 378, -1, 285, -1, 33, -1, 372, -1, 370, 377, + 378, -1, 370, 377, 369, 360, 360, 5, -1, 4, + 370, 377, 369, 360, 360, 5, -1, 372, 360, 360, + 4, 4, -1, 5, -1, 66, -1, 372, 360, 360, + 5, -1, 6, 4, 4, 4, 4, -1, 89, -1, + 122, 199, 448, -1, -1, 4, -1, 360, 360, -1, + 202, -1, 60, 370, 377, 378, -1, 82, -1, 102, + 452, -1, 45, -1, 119, 450, -1, 122, 199, 453, + -1, 149, 451, -1, 150, -1, 212, 199, -1, 274, + -1, 274, 370, 377, 379, -1, 275, 454, -1, 345, + -1, 4, -1, 372, 360, 360, -1, 4, -1, 168, + 5, -1, 4, 168, 5, -1, 316, 4, -1, -1, + 4, -1, 363, -1, 363, 372, 360, 360, -1, 363, + 4, -1, -1, 4, -1, 134, 159, 370, -1, 134, + 159, 4, 370, -1, 297, 159, 360, 370, -1, -1, + 216, -1, 309, -1, 67, -1, 185, -1, 243, -1, + 287, -1, 296, -1, 82, -1, 46, -1, 235, -1, + 62, -1, 287, -1, 310, -1, 137, -1, 242, -1, + 242, 191, -1, 272, -1, 272, 191, -1, 21, -1, + 310, 464, -1, 48, 461, -1, 75, 462, -1, 152, + 463, -1, 189, -1, 37, -1, 258, -1, -1, 67, + -1, -1, 67, -1, -1, 67, -1, -1, 228, -1, + -1, 16, 466, -1, 199, 371, -1, -1, 229, -1, + 84, 468, -1, 101, -1, 370, 377, 378, 469, 5, + 5, -1, 370, 377, 378, 469, 5, -1, 20, -1, + 238, -1, 19, -1, 41, 67, -1, 44, 471, -1, + 78, 472, -1, 85, -1, 96, -1, 97, -1, 103, + -1, 126, 473, -1, 144, -1, 158, -1, 165, -1, + 186, 474, -1, 224, -1, 159, -1, 277, -1, 287, + 370, -1, 316, 475, -1, 73, 5, -1, -1, 31, + -1, -1, 44, -1, 88, -1, 195, -1, 152, -1, + 264, -1, 221, -1, 302, -1, 370, -1, 59, 370, + -1, 117, 370, -1, 176, 370, -1, 18, -1, 293, + 370, -1, 203, 4, 4, -1, 118, -1, 188, 5, + -1, 89, 478, -1, 265, 122, 199, 477, -1, 265, + 6, 4, 4, 4, 4, -1, 306, -1, 316, 360, + 360, 360, 360, 360, 360, 360, 360, 4, -1, 5, + -1, 5, 4, -1, 4, 4, 57, -1, 4, 4, + 370, -1, 196, 362, -1, 26, 480, -1, 114, 482, + -1, 126, 483, -1, 161, 496, -1, 210, 494, -1, + 223, 495, -1, 5, 14, 5, 382, -1, 5, 15, + 5, 382, -1, 5, 62, 5, 382, -1, 5, 193, + 382, -1, 5, 194, 382, -1, 5, 268, 380, 4, + 382, -1, 5, 278, 4, 382, -1, 5, 279, 4, + 382, -1, 5, 309, 5, 382, -1, 250, 88, 481, + -1, 5, 14, 5, -1, 5, 15, 5, -1, 5, + 62, 5, -1, 5, 193, -1, 5, 194, -1, 5, + 268, 380, 4, -1, 5, 278, 4, -1, 5, 279, + 4, -1, 5, 309, 5, -1, 5, 5, 276, -1, + 5, 14, 5, 382, -1, 5, 15, 5, 382, -1, + 5, 62, 5, 382, -1, 5, 193, 381, 382, -1, + 5, 5, 276, 381, 382, -1, 5, 194, 381, 382, + -1, 5, 268, 380, 4, 381, 382, -1, 5, 283, + 380, 4, 4, 381, 382, -1, 5, 278, 4, 382, -1, 5, 279, 4, 382, -1, 5, 309, 5, 381, - 382, -1, 5, 14, 5, 382, -1, 5, 15, 5, - 382, -1, 5, 62, 5, 382, -1, 5, 193, 381, - 382, -1, 5, 5, 276, 381, 382, -1, 5, 194, - 381, 382, -1, 5, 268, 380, 4, 381, 382, -1, - 5, 283, 380, 4, 4, 381, 382, -1, 5, 278, + 382, -1, 275, 484, -1, 119, 88, 485, -1, 250, + 159, 493, -1, 250, 88, 492, -1, 195, 486, -1, + 5, 14, 5, -1, 5, 15, 5, -1, 5, 62, + 5, -1, 5, 193, 381, -1, 5, 5, 276, 381, + -1, 5, 194, 381, -1, 5, 268, 380, 4, 381, + -1, 5, 283, 380, 4, 4, 381, -1, 5, 278, + 4, -1, 5, 279, 4, -1, 5, 309, 5, 381, + -1, 5, 14, 5, -1, 5, 15, 5, -1, 5, + 62, 5, -1, 5, 193, 381, -1, 5, 194, 381, + -1, 5, 268, 380, 4, 381, -1, 5, 278, 4, + -1, 5, 279, 4, -1, 5, 309, 5, 381, -1, + 159, 164, 487, -1, 164, 488, -1, 159, 489, -1, + 491, -1, 159, 344, 490, -1, 5, 14, 5, 382, + -1, 5, 15, 5, 382, -1, 5, 62, 5, 382, + -1, 5, 193, 381, 382, -1, 5, 194, 381, 382, + -1, 5, 268, 380, 4, 381, 382, -1, 5, 278, 4, 382, -1, 5, 279, 4, 382, -1, 5, 309, - 5, 381, 382, -1, 371, 5, 14, 5, 382, -1, - 371, 5, 15, 5, 382, -1, 371, 5, 62, 5, - 382, -1, 371, 5, 193, 381, 382, -1, 371, 5, - 194, 381, 382, -1, 371, 5, 268, 380, 4, 381, - 382, -1, 371, 5, 278, 4, 382, -1, 371, 5, - 279, 4, 382, -1, 371, 5, 309, 5, 381, 382, - -1, 5, 14, 5, 382, -1, 5, 15, 5, 382, - -1, 5, 62, 5, 382, -1, 5, 193, 381, 382, - -1, 5, 194, 381, 382, -1, 5, 268, 380, 4, - 381, 382, -1, 5, 278, 4, 382, -1, 5, 279, - 4, 382, -1, 5, 309, 5, 381, 382, -1, 371, - 5, 14, 5, 382, -1, 371, 5, 15, 5, 382, - -1, 371, 5, 62, 5, 382, -1, 371, 5, 193, - 381, 382, -1, 371, 5, 5, 276, 381, 382, -1, + 5, 381, 382, -1, 5, 14, 5, 382, -1, 5, + 15, 5, 382, -1, 5, 62, 5, 382, -1, 5, + 193, 381, 382, -1, 5, 5, 276, 381, 382, -1, + 5, 194, 381, 382, -1, 5, 268, 380, 4, 381, + 382, -1, 5, 283, 380, 4, 4, 381, 382, -1, + 5, 278, 4, 382, -1, 5, 279, 4, 382, -1, + 5, 309, 5, 381, 382, -1, 371, 5, 14, 5, + 382, -1, 371, 5, 15, 5, 382, -1, 371, 5, + 62, 5, 382, -1, 371, 5, 193, 381, 382, -1, 371, 5, 194, 381, 382, -1, 371, 5, 268, 380, - 4, 381, 382, -1, 371, 5, 283, 380, 4, 4, - 381, 382, -1, 371, 5, 278, 4, 382, -1, 371, - 5, 279, 4, 382, -1, 371, 5, 309, 5, 381, - 382, -1, 5, 14, 5, -1, 5, 15, 5, -1, - 5, 62, 5, -1, 5, 193, 381, -1, 5, 5, - 276, 381, -1, 5, 194, 381, -1, 5, 268, 380, - 4, 381, -1, 5, 283, 380, 4, 4, 381, -1, - 5, 278, 4, -1, 5, 279, 4, -1, 5, 309, - 5, 381, -1, 5, 14, 5, -1, 5, 15, 5, - -1, 5, 62, 5, -1, 5, 193, 381, -1, 5, - 194, 381, -1, 5, 268, 380, 4, 381, -1, 5, - 278, 4, -1, 5, 279, 4, -1, 5, 309, 5, - 381, -1, 5, 14, 5, 382, -1, 5, 62, 5, - 382, -1, 5, 193, 382, -1, 5, 268, 380, 4, - 382, -1, 5, 278, 4, 382, -1, 5, 309, 5, - 382, -1, 5, 5, -1, 275, 5, 5, -1, 95, - 4, 4, 4, 4, 4, -1, 190, 4, 4, 4, - 4, 4, -1, 113, -1, 234, -1, 362, -1, 142, - 362, -1, 89, 362, -1, 67, 5, -1, 5, 4, - 4, -1, 306, 360, 360, -1, 353, 360, -1, 5, - 5, 371, 377, 5, 5, 371, 377, 360, 371, 379, - 5, -1, 61, 501, -1, 67, 5, -1, 81, -1, - 74, 506, 5, -1, 74, 506, 309, 5, -1, 76, - 101, -1, -1, 84, 499, 502, -1, 90, -1, 101, - 504, -1, 107, 505, -1, 116, 4, -1, 131, 5, - -1, 152, 17, -1, 152, 215, 360, 360, -1, 152, - 298, 360, 360, -1, 4, 20, 385, 362, -1, 4, - 21, 365, -1, 4, 21, 365, 372, -1, 4, 21, - 365, 370, 377, -1, 4, 22, 242, 360, 360, 4, - 370, 379, -1, 4, 22, 242, 5, 370, 379, -1, - 4, 49, 123, 362, -1, 4, 50, 242, 360, 360, - 360, 4, 370, 379, -1, 4, 50, 242, 5, 370, - 379, -1, 4, 49, 242, 360, 360, 370, 379, -1, - 4, 53, 107, 365, 365, 4, 360, 360, 360, 4, - -1, 4, 53, 107, 365, 365, 4, 360, 360, 360, - 4, 372, -1, 4, 53, 107, 365, 365, 4, 360, - 360, 360, 4, 370, 377, -1, 4, 53, 107, 5, - 5, 370, 377, 370, 379, -1, 4, 56, 500, 5, - 5, -1, 4, 63, 123, 362, -1, 4, 63, 242, - 360, 370, 379, -1, 4, 67, 5, -1, 4, 75, - 27, 362, 362, -1, 4, 75, 169, 5, 5, -1, - 4, 75, 242, 360, 370, 379, -1, 4, 75, 287, - 370, 377, -1, 4, 76, 141, 362, -1, 4, 83, - 107, 365, 365, 4, 360, 360, 4, -1, 4, 83, - 107, 365, 365, 4, 360, 360, 4, 372, -1, 4, - 83, 107, 365, 365, 4, 360, 360, 4, 370, 377, - -1, 4, 83, 107, 5, 5, 370, 377, 370, 379, - -1, 4, 84, 22, 242, 360, 360, -1, 4, 84, - 50, 242, 360, 360, -1, 4, 84, 53, 21, 360, - 360, -1, 4, 84, 53, 242, 360, 360, -1, 4, - 84, 112, 242, 360, 360, -1, 4, 84, 115, 21, - 360, 360, -1, 4, 84, 115, 242, 360, 360, -1, - 4, 84, 83, 21, 360, 360, -1, 4, 84, 83, - 242, 360, 360, -1, 4, 84, 230, 313, 4, 360, - 360, -1, 4, 84, 263, 313, 4, 360, 360, -1, - 4, 101, -1, 4, 101, 22, 4, -1, 4, 101, - 50, 4, -1, 4, 101, 53, 4, -1, 4, 101, - 112, 4, -1, 4, 101, 56, 500, 5, -1, 4, - 101, 115, 4, -1, 4, 101, 83, 4, -1, 4, - 101, 230, 313, 4, -1, 4, 101, 263, 313, 4, - -1, 4, 101, 289, -1, 4, 101, 289, 5, -1, - 4, 101, 289, 4, -1, 4, 107, 40, 4, -1, - 4, 111, 123, 362, -1, 4, 111, 242, 360, 360, - 370, 379, -1, 4, 112, 242, 360, 360, 360, 4, - 370, 379, -1, 4, 112, 242, 5, 370, 379, -1, - 4, 115, 107, 365, 365, 4, 360, 360, 360, 4, - -1, 4, 115, 107, 365, 365, 4, 360, 360, 360, - 4, 372, -1, 4, 115, 107, 365, 365, 4, 360, - 360, 360, 4, 370, 377, -1, 4, 115, 107, 5, - 5, 370, 377, 370, 379, -1, 4, 131, 5, -1, - 4, 152, -1, 4, 152, 215, -1, 4, 175, 27, - 362, 362, -1, 4, 175, 228, 370, 377, 369, 369, - -1, 4, 198, 360, 360, -1, 4, 198, 135, -1, - 4, 198, 36, -1, 4, 198, 297, 370, 377, 369, - -1, 4, 230, 248, 360, 360, 370, 379, -1, 4, - 263, 248, 360, 360, 370, 379, -1, 4, 228, 267, - 383, -1, 4, 228, 274, 4, -1, 4, 230, 123, - 362, -1, 4, 236, 370, 377, 369, 369, 360, 370, - 379, -1, 4, 237, 519, 362, -1, 4, 252, 40, - -1, 4, 253, 132, 5, -1, 4, 253, 228, 370, - 377, 369, 369, -1, 4, 253, 287, 370, 377, 370, - 379, -1, 4, 264, -1, 4, 264, 215, -1, 4, - 289, 5, -1, 4, 291, 5, -1, 4, 291, 252, - 362, -1, 4, 303, -1, 4, 305, -1, 4, 311, - 27, 362, -1, 4, 311, 228, 370, 377, 369, 370, - 379, 360, 365, -1, 4, 345, 4, -1, 167, -1, - 167, 360, 360, -1, 177, 514, -1, 178, 515, -1, - 198, 516, -1, 235, 362, -1, 237, 519, 362, -1, - 237, 519, 362, 360, 360, -1, 252, 40, 360, 360, - -1, 252, 197, 360, 360, 4, -1, 252, 113, -1, - 257, 523, -1, 264, 524, -1, 271, 525, -1, 5, - 67, 5, -1, 5, 81, -1, 5, 101, -1, 5, - 90, -1, 5, 131, 5, -1, 5, 152, -1, 5, - 152, 215, -1, 5, 198, 360, 360, -1, 5, 198, - 135, -1, 5, 198, 36, -1, 5, 198, 297, 370, - 377, 369, -1, 5, 237, 519, 362, -1, 5, 264, - -1, 5, 264, 215, -1, 5, 303, -1, 5, 305, - -1, 289, 107, 5, 5, -1, 289, 101, 5, -1, - 289, 101, 17, -1, 289, 5, -1, 289, 306, 5, - -1, 221, -1, 221, 370, -1, 302, -1, 303, 17, - -1, 305, 17, -1, 345, 4, -1, 264, -1, 305, - -1, 152, -1, 303, -1, 40, 198, -1, 198, -1, - 113, 198, -1, 40, 107, -1, 107, -1, 113, 107, - -1, 40, 252, -1, 252, -1, 113, 252, -1, 101, - -1, 291, -1, 67, -1, 345, -1, 237, -1, 131, - -1, 167, -1, 306, -1, -1, 4, -1, 30, 362, - -1, 242, 360, -1, 163, 4, -1, 216, 4, 360, - -1, 63, 360, 360, 360, 520, -1, 111, 360, 360, - 360, 360, 364, 520, -1, 49, 360, 360, 360, 360, - 364, 520, -1, 230, 360, 360, 360, 360, 520, -1, - 263, 360, 360, 360, 360, 520, -1, 175, 360, 360, - 360, 360, 520, -1, 311, 360, 360, 360, 360, 520, - -1, 291, 360, 360, 364, 520, -1, 63, 228, 360, - 360, 384, 520, -1, 49, 228, 360, 360, 384, 520, - -1, 104, 228, 360, 360, 384, 520, -1, 86, 228, - 360, 360, 384, 520, -1, 356, 228, 360, 360, 384, - 520, -1, 27, 228, 360, 360, 384, 520, -1, 52, - 228, 360, 360, 384, 520, -1, 253, 360, 360, 360, - 360, 370, 377, 370, 379, 5, 520, -1, 75, 360, - 360, 360, 370, 377, 520, -1, 236, 360, 360, 360, - 360, 360, 520, -1, 22, 360, 360, 360, 360, 4, - 520, -1, 112, 360, 360, 360, 360, 360, 4, 364, - 520, -1, 50, 360, 360, 360, 360, 360, 4, 364, - 520, -1, 83, 360, 360, 365, 365, 4, 360, 360, - 4, 520, -1, 115, 360, 360, 365, 365, 4, 360, - 360, 360, 4, 364, 520, -1, 53, 360, 360, 365, - 365, 4, 360, 360, 360, 4, 364, 520, -1, 76, - 520, -1, 290, 503, -1, 5, 360, 360, -1, 309, - 5, 360, 360, -1, 360, 360, 309, 5, -1, 5, - 370, 377, 369, -1, -1, 264, -1, 17, -1, 40, - 360, 360, 4, -1, 197, 360, 360, 4, -1, 113, - -1, 106, -1, 347, -1, 64, -1, 256, -1, 255, - -1, 239, -1, 348, -1, 61, 508, -1, 67, -1, - 131, -1, 116, -1, 146, 360, 360, -1, 157, 360, - 360, -1, 4, 20, 83, 5, 5, 5, 370, 4, - -1, 4, 20, 154, 5, 5, 4, -1, 4, 20, - 226, 5, 5, 5, 5, 370, 377, 386, -1, 4, - 20, 227, 5, 5, 370, 386, -1, 4, 20, 241, - 5, 5, 5, 370, -1, 4, 20, 284, 370, 377, - -1, 157, 17, -1, 4, 21, -1, 4, 21, 372, - -1, 4, 21, 370, 377, -1, 4, 22, 242, 370, - 379, -1, 4, 49, 123, -1, 4, 50, 242, 370, - 379, -1, 4, 49, 242, 370, 379, -1, 4, 53, - 21, -1, 4, 53, 21, 372, -1, 4, 53, 21, - 370, 377, -1, 4, 53, 242, 370, 379, -1, 4, - 60, 370, 377, 378, -1, 4, 63, 123, -1, 4, - 63, 242, 370, 379, -1, 4, 67, -1, 4, 75, - 27, -1, 4, 75, 169, -1, 4, 75, 242, 370, - 379, -1, 4, 75, 287, -1, 4, 76, 141, -1, - 4, 83, 21, -1, 4, 83, 21, 372, -1, 4, - 83, 21, 370, 377, -1, 4, 83, 242, 370, 379, - -1, 4, 111, 123, -1, 4, 111, 242, 370, 379, - -1, 4, 112, 242, 370, 379, -1, 4, 115, 21, - -1, 4, 115, 21, 372, -1, 4, 115, 21, 370, - 377, -1, 4, 115, 242, 370, 379, -1, 4, 131, - -1, 4, 152, -1, 4, 175, 27, -1, 4, 175, - 170, 370, 379, -1, 4, 175, 228, 370, 377, 378, - -1, 4, 184, 170, 360, 370, 379, -1, 4, 230, - 123, -1, 4, 228, 267, -1, 4, 228, 274, -1, - 4, 236, 228, 370, 377, 378, -1, 4, 236, 170, - 370, 379, -1, 4, 236, 295, 370, 379, -1, 4, - 237, -1, 4, 237, 519, -1, 4, 253, 132, -1, - 4, 253, 170, 370, 379, -1, 4, 253, 228, 370, - 377, 378, -1, 4, 253, 287, -1, 4, 264, -1, - 4, 289, -1, 4, 289, 4, -1, 4, 291, -1, - 4, 291, 252, -1, 4, 301, -1, 4, 311, 27, - -1, 4, 311, 170, 370, 379, -1, 4, 311, 228, - 370, 377, 378, -1, 4, 345, -1, 152, 509, -1, - 152, 211, -1, 211, -1, 230, 263, 360, 360, -1, - 263, 263, 360, 360, -1, 235, -1, 237, 519, -1, - 264, 510, -1, 264, 211, -1, 271, 511, -1, 5, - 67, -1, 5, 131, -1, 5, 157, -1, 5, 237, - 519, -1, 5, 289, -1, 5, 289, 211, -1, 289, - 17, -1, 289, 100, 199, -1, 345, -1, 30, -1, - 242, -1, 163, -1, 216, -1, -1, 360, 360, -1, - -1, 360, 360, -1, -1, 291, -1, -1, -1, 229, - -1, 244, -1, 307, -1, 58, -1, 133, -1, 506, - 370, 377, 378, 362, 521, 528, -1, 264, 506, 370, - 377, 378, 362, 521, 528, -1, 506, 5, -1, 506, - 5, 4, 5, 370, 377, -1, 506, 4, -1, 506, - 4, 4, 5, 370, 377, -1, 126, 5, -1, 126, - 5, 5, -1, 360, 360, -1, 135, -1, 36, -1, - 40, 360, 360, -1, 197, 360, 360, -1, 113, -1, - 297, 370, 377, 369, -1, 517, 518, -1, 518, -1, - 519, 357, 362, -1, 67, 357, 5, -1, 94, 357, - 4, 4, -1, 345, 357, 4, -1, 131, 357, 5, - -1, 291, 357, 5, -1, 531, -1, 532, -1, 206, - -1, 264, -1, 152, -1, 93, -1, 128, -1, 107, - -1, 198, -1, 252, -1, 101, -1, 160, -1, 280, - -1, 512, -1, 512, 517, -1, -1, -1, 522, 526, - -1, 5, 506, 370, 377, 378, 362, -1, 264, 5, - 506, 370, 377, 378, 362, -1, 290, 5, -1, 17, - -1, 215, 360, 360, -1, 298, -1, 298, 360, 360, - -1, 362, -1, 291, 362, -1, 526, 527, -1, 527, - -1, 519, 357, 362, -1, -1, -1, 529, 530, -1, - 530, 531, -1, 531, -1, 289, 357, 5, -1, 56, - 357, 500, 5, 5, -1, 65, -1, 67, 5, -1, - 185, 373, -1, 243, 360, 360, -1, 287, 370, -1, - 296, 360, -1, 46, 374, -1, 185, 4, -1, 356, - -1, 354, -1, 348, -1, 206, -1, 360, 360, 360, - 360, -1, 360, 360, -1, 372, 360, 360, -1, 370, - 377, 369, -1, 297, 536, -1, 39, 360, 360, -1, - 197, 537, -1, 235, 362, -1, 360, 360, -1, 372, - 360, 360, -1, 370, 377, 369, -1, 40, 360, 360, - -1, 360, 360, -1, 113, 360, 360, -1, 362, -1, - 316, 371, 377, -1, 5, 4, 4, -1, 306, -1, - 71, 541, -1, 171, 4, -1, 249, 4, -1, 258, - 360, -1, 4, 4, 4, 4, 4, 4, 4, 4, - 4, -1, 4, 4, 4, 4, 4, 4, -1, 55, - -1, 143, -1, 250, -1, 91, -1, 152, 543, -1, - 264, 544, -1, 40, 360, 360, -1, 197, 360, 360, - -1, 113, -1, 269, 113, -1, 40, 360, 360, -1, - 197, 360, 360, -1, 113, -1, 269, 113, -1, 192, - -1, 13, -1, 206, -1, 34, -1, 109, -1, 62, - 5, -1, 287, 370, -1, 310, 4, 4, 4, -1, - 360, -1, 360, 99, -1, 197, 549, -1, 297, 360, - -1, 297, 360, 99, -1, 40, -1, 360, -1, 113, - -1, 26, 551, -1, 126, 553, -1, 210, 563, -1, - 114, 564, -1, 223, 5, -1, 122, 5, 387, -1, - 62, 5, 387, -1, 278, 4, 387, -1, 250, 88, - 552, -1, 122, 5, 387, -1, 62, 5, 387, -1, - 278, 4, 387, -1, 554, -1, 159, 554, -1, 288, - 555, -1, 275, 556, -1, 119, 88, 557, -1, 195, - 558, -1, 250, 159, 560, -1, 250, 88, 561, -1, - 246, 562, -1, 122, 5, -1, 62, 5, -1, 278, - 4, -1, 122, 5, -1, 62, 5, -1, 278, 4, - -1, 122, 5, -1, 62, 5, -1, 278, 4, -1, - 122, 5, -1, 62, 5, -1, 278, 4, -1, 159, - 559, -1, 122, 5, 4, -1, 62, 5, 4, -1, - 278, 4, 4, -1, 122, 5, -1, 62, 5, -1, + 4, 381, 382, -1, 371, 5, 278, 4, 382, -1, + 371, 5, 279, 4, 382, -1, 371, 5, 309, 5, + 381, 382, -1, 5, 14, 5, 382, -1, 5, 15, + 5, 382, -1, 5, 62, 5, 382, -1, 5, 193, + 381, 382, -1, 5, 194, 381, 382, -1, 5, 268, + 380, 4, 381, 382, -1, 5, 278, 4, 382, -1, + 5, 279, 4, 382, -1, 5, 309, 5, 381, 382, + -1, 371, 5, 14, 5, 382, -1, 371, 5, 15, + 5, 382, -1, 371, 5, 62, 5, 382, -1, 371, + 5, 193, 381, 382, -1, 371, 5, 5, 276, 381, + 382, -1, 371, 5, 194, 381, 382, -1, 371, 5, + 268, 380, 4, 381, 382, -1, 371, 5, 283, 380, + 4, 4, 381, 382, -1, 371, 5, 278, 4, 382, + -1, 371, 5, 279, 4, 382, -1, 371, 5, 309, + 5, 381, 382, -1, 5, 14, 5, -1, 5, 15, + 5, -1, 5, 62, 5, -1, 5, 193, 381, -1, + 5, 5, 276, 381, -1, 5, 194, 381, -1, 5, + 268, 380, 4, 381, -1, 5, 283, 380, 4, 4, + 381, -1, 5, 278, 4, -1, 5, 279, 4, -1, + 5, 309, 5, 381, -1, 5, 14, 5, -1, 5, + 15, 5, -1, 5, 62, 5, -1, 5, 193, 381, + -1, 5, 194, 381, -1, 5, 268, 380, 4, 381, + -1, 5, 278, 4, -1, 5, 279, 4, -1, 5, + 309, 5, 381, -1, 5, 14, 5, 382, -1, 5, + 62, 5, 382, -1, 5, 193, 382, -1, 5, 268, + 380, 4, 382, -1, 5, 278, 4, 382, -1, 5, + 309, 5, 382, -1, 5, 5, -1, 275, 5, 5, + -1, 95, 4, 4, 4, 4, 4, -1, 190, 4, + 4, 4, 4, 4, -1, 113, -1, 234, -1, 362, + -1, 142, 362, -1, 89, 362, -1, 67, 5, -1, + 5, 4, 4, -1, 306, 360, 360, -1, 353, 360, + -1, 5, 5, 371, 377, 5, 5, 371, 377, 360, + 371, 379, 5, -1, 61, 503, -1, 67, 5, -1, + 81, -1, 74, 508, 5, -1, 74, 508, 309, 5, + -1, 76, 101, -1, -1, 84, 501, 504, -1, 90, + -1, 101, 506, -1, 107, 507, -1, 116, 4, -1, + 131, 5, -1, 152, 17, -1, 152, 215, 360, 360, + -1, 152, 298, 360, 360, -1, 4, 20, 385, 362, + -1, 4, 21, 365, -1, 4, 21, 365, 372, -1, + 4, 21, 365, 370, 377, -1, 4, 22, 242, 360, + 360, 4, 370, 379, -1, 4, 22, 242, 5, 370, + 379, -1, 4, 49, 123, 362, -1, 4, 50, 242, + 360, 360, 360, 4, 370, 379, -1, 4, 50, 242, + 5, 370, 379, -1, 4, 49, 242, 360, 360, 370, + 379, -1, 4, 53, 107, 365, 365, 4, 360, 360, + 360, 4, -1, 4, 53, 107, 365, 365, 4, 360, + 360, 360, 4, 372, -1, 4, 53, 107, 365, 365, + 4, 360, 360, 360, 4, 370, 377, -1, 4, 53, + 107, 5, 5, 370, 377, 370, 379, -1, 4, 56, + 502, 5, 5, -1, 4, 63, 123, 362, -1, 4, + 63, 242, 360, 370, 379, -1, 4, 67, 5, -1, + 4, 75, 27, 362, 362, -1, 4, 75, 169, 5, + 5, -1, 4, 75, 242, 360, 370, 379, -1, 4, + 75, 287, 370, 377, -1, 4, 76, 141, 362, -1, + 4, 83, 107, 365, 365, 4, 360, 360, 4, -1, + 4, 83, 107, 365, 365, 4, 360, 360, 4, 372, + -1, 4, 83, 107, 365, 365, 4, 360, 360, 4, + 370, 377, -1, 4, 83, 107, 5, 5, 370, 377, + 370, 379, -1, 4, 84, 22, 242, 360, 360, -1, + 4, 84, 50, 242, 360, 360, -1, 4, 84, 53, + 21, 360, 360, -1, 4, 84, 53, 242, 360, 360, + -1, 4, 84, 112, 242, 360, 360, -1, 4, 84, + 115, 21, 360, 360, -1, 4, 84, 115, 242, 360, + 360, -1, 4, 84, 83, 21, 360, 360, -1, 4, + 84, 83, 242, 360, 360, -1, 4, 84, 230, 313, + 4, 360, 360, -1, 4, 84, 263, 313, 4, 360, + 360, -1, 4, 101, -1, 4, 101, 22, 4, -1, + 4, 101, 50, 4, -1, 4, 101, 53, 4, -1, + 4, 101, 112, 4, -1, 4, 101, 56, 502, 5, + -1, 4, 101, 115, 4, -1, 4, 101, 83, 4, + -1, 4, 101, 230, 313, 4, -1, 4, 101, 263, + 313, 4, -1, 4, 101, 289, -1, 4, 101, 289, + 5, -1, 4, 101, 289, 4, -1, 4, 107, 40, + 4, -1, 4, 111, 123, 362, -1, 4, 111, 242, + 360, 360, 370, 379, -1, 4, 112, 242, 360, 360, + 360, 4, 370, 379, -1, 4, 112, 242, 5, 370, + 379, -1, 4, 115, 107, 365, 365, 4, 360, 360, + 360, 4, -1, 4, 115, 107, 365, 365, 4, 360, + 360, 360, 4, 372, -1, 4, 115, 107, 365, 365, + 4, 360, 360, 360, 4, 370, 377, -1, 4, 115, + 107, 5, 5, 370, 377, 370, 379, -1, 4, 131, + 5, -1, 4, 152, -1, 4, 152, 215, -1, 4, + 175, 27, 362, 362, -1, 4, 175, 228, 370, 377, + 369, 369, -1, 4, 198, 360, 360, -1, 4, 198, + 135, -1, 4, 198, 36, -1, 4, 198, 297, 370, + 377, 369, -1, 4, 230, 248, 360, 360, 370, 379, + -1, 4, 263, 248, 360, 360, 370, 379, -1, 4, + 228, 267, 383, -1, 4, 228, 274, 4, -1, 4, + 230, 123, 362, -1, 4, 236, 370, 377, 369, 369, + 360, 370, 379, -1, 4, 237, 521, 362, -1, 4, + 252, 40, -1, 4, 253, 132, 5, -1, 4, 253, + 228, 370, 377, 369, 369, -1, 4, 253, 287, 370, + 377, 370, 379, -1, 4, 264, -1, 4, 264, 215, + -1, 4, 289, 5, -1, 4, 291, 5, -1, 4, + 291, 252, 362, -1, 4, 303, -1, 4, 305, -1, + 4, 311, 27, 362, -1, 4, 311, 228, 370, 377, + 369, 370, 379, 360, 365, -1, 4, 345, 4, -1, + 167, -1, 167, 360, 360, -1, 177, 516, -1, 178, + 517, -1, 198, 518, -1, 235, 362, -1, 237, 521, + 362, -1, 237, 521, 362, 360, 360, -1, 252, 40, + 360, 360, -1, 252, 197, 360, 360, 4, -1, 252, + 113, -1, 257, 525, -1, 264, 526, -1, 271, 527, + -1, 5, 67, 5, -1, 5, 81, -1, 5, 101, + -1, 5, 90, -1, 5, 131, 5, -1, 5, 152, + -1, 5, 152, 215, -1, 5, 198, 360, 360, -1, + 5, 198, 135, -1, 5, 198, 36, -1, 5, 198, + 297, 370, 377, 369, -1, 5, 237, 521, 362, -1, + 5, 264, -1, 5, 264, 215, -1, 5, 303, -1, + 5, 305, -1, 289, 107, 5, 5, -1, 289, 101, + 5, -1, 289, 101, 17, -1, 289, 5, -1, 289, + 306, 5, -1, 221, -1, 221, 370, -1, 302, -1, + 303, 17, -1, 305, 17, -1, 345, 4, -1, 264, + -1, 305, -1, 152, -1, 303, -1, 40, 198, -1, + 198, -1, 113, 198, -1, 40, 107, -1, 107, -1, + 113, 107, -1, 40, 252, -1, 252, -1, 113, 252, + -1, 101, -1, 291, -1, 67, -1, 345, -1, 237, + -1, 131, -1, 167, -1, 306, -1, -1, 4, -1, + 30, 362, -1, 242, 360, -1, 163, 4, -1, 216, + 4, 360, -1, 63, 360, 360, 360, 522, -1, 111, + 360, 360, 360, 360, 364, 522, -1, 49, 360, 360, + 360, 360, 364, 522, -1, 230, 360, 360, 360, 360, + 522, -1, 263, 360, 360, 360, 360, 522, -1, 175, + 360, 360, 360, 360, 522, -1, 311, 360, 360, 360, + 360, 522, -1, 291, 360, 360, 364, 522, -1, 63, + 228, 360, 360, 384, 522, -1, 49, 228, 360, 360, + 384, 522, -1, 104, 228, 360, 360, 384, 522, -1, + 86, 228, 360, 360, 384, 522, -1, 356, 228, 360, + 360, 384, 522, -1, 27, 228, 360, 360, 384, 522, + -1, 52, 228, 360, 360, 384, 522, -1, 253, 360, + 360, 360, 360, 370, 377, 370, 379, 5, 522, -1, + 75, 360, 360, 360, 370, 377, 522, -1, 236, 360, + 360, 360, 360, 360, 522, -1, 22, 360, 360, 360, + 360, 4, 522, -1, 112, 360, 360, 360, 360, 360, + 4, 364, 522, -1, 50, 360, 360, 360, 360, 360, + 4, 364, 522, -1, 83, 360, 360, 365, 365, 4, + 360, 360, 4, 522, -1, 115, 360, 360, 365, 365, + 4, 360, 360, 360, 4, 364, 522, -1, 53, 360, + 360, 365, 365, 4, 360, 360, 360, 4, 364, 522, + -1, 76, 522, -1, 290, 505, -1, 5, 360, 360, + -1, 309, 5, 360, 360, -1, 360, 360, 309, 5, + -1, 5, 370, 377, 369, -1, -1, 264, -1, 17, + -1, 40, 360, 360, 4, -1, 197, 360, 360, 4, + -1, 113, -1, 106, -1, 347, -1, 64, -1, 256, + -1, 255, -1, 239, -1, 348, -1, 61, 510, -1, + 67, -1, 131, -1, 116, -1, 146, 360, 360, -1, + 157, 360, 360, -1, 4, 20, 83, 5, 5, 5, + 370, 4, -1, 4, 20, 154, 5, 5, 4, -1, + 4, 20, 226, 5, 5, 5, 5, 370, 377, 386, + -1, 4, 20, 227, 5, 5, 370, 386, -1, 4, + 20, 241, 5, 5, 5, 370, -1, 4, 20, 284, + 370, 377, -1, 157, 17, -1, 4, 21, -1, 4, + 21, 372, -1, 4, 21, 370, 377, -1, 4, 22, + 242, 370, 379, -1, 4, 49, 123, -1, 4, 50, + 242, 370, 379, -1, 4, 49, 242, 370, 379, -1, + 4, 53, 21, -1, 4, 53, 21, 372, -1, 4, + 53, 21, 370, 377, -1, 4, 53, 242, 370, 379, + -1, 4, 60, 370, 377, 378, -1, 4, 63, 123, + -1, 4, 63, 242, 370, 379, -1, 4, 67, -1, + 4, 75, 27, -1, 4, 75, 169, -1, 4, 75, + 242, 370, 379, -1, 4, 75, 287, -1, 4, 76, + 141, -1, 4, 83, 21, -1, 4, 83, 21, 372, + -1, 4, 83, 21, 370, 377, -1, 4, 83, 242, + 370, 379, -1, 4, 111, 123, -1, 4, 111, 242, + 370, 379, -1, 4, 112, 242, 370, 379, -1, 4, + 115, 21, -1, 4, 115, 21, 372, -1, 4, 115, + 21, 370, 377, -1, 4, 115, 242, 370, 379, -1, + 4, 131, -1, 4, 152, -1, 4, 175, 27, -1, + 4, 175, 170, 370, 379, -1, 4, 175, 228, 370, + 377, 378, -1, 4, 184, 170, 360, 370, 379, -1, + 4, 230, 123, -1, 4, 228, 267, -1, 4, 228, + 274, -1, 4, 236, 228, 370, 377, 378, -1, 4, + 236, 170, 370, 379, -1, 4, 236, 295, 370, 379, + -1, 4, 237, -1, 4, 237, 521, -1, 4, 253, + 132, -1, 4, 253, 170, 370, 379, -1, 4, 253, + 228, 370, 377, 378, -1, 4, 253, 287, -1, 4, + 264, -1, 4, 289, -1, 4, 289, 4, -1, 4, + 291, -1, 4, 291, 252, -1, 4, 301, -1, 4, + 311, 27, -1, 4, 311, 170, 370, 379, -1, 4, + 311, 228, 370, 377, 378, -1, 4, 345, -1, 152, + 511, -1, 152, 211, -1, 211, -1, 230, 263, 360, + 360, -1, 263, 263, 360, 360, -1, 235, -1, 237, + 521, -1, 264, 512, -1, 264, 211, -1, 271, 513, + -1, 5, 67, -1, 5, 131, -1, 5, 157, -1, + 5, 237, 521, -1, 5, 289, -1, 5, 289, 211, + -1, 289, 17, -1, 289, 100, 199, -1, 345, -1, + 30, -1, 242, -1, 163, -1, 216, -1, -1, 360, + 360, -1, -1, 360, 360, -1, -1, 291, -1, -1, + -1, 229, -1, 244, -1, 307, -1, 58, -1, 133, + -1, 508, 370, 377, 378, 362, 523, 530, -1, 264, + 508, 370, 377, 378, 362, 523, 530, -1, 508, 5, + -1, 508, 5, 4, 5, 370, 377, -1, 508, 4, + -1, 508, 4, 4, 5, 370, 377, -1, 126, 5, + -1, 126, 5, 5, -1, 360, 360, -1, 135, -1, + 36, -1, 40, 360, 360, -1, 197, 360, 360, -1, + 113, -1, 297, 370, 377, 369, -1, 519, 520, -1, + 520, -1, 521, 357, 362, -1, 67, 357, 5, -1, + 94, 357, 4, 4, -1, 345, 357, 4, -1, 131, + 357, 5, -1, 291, 357, 5, -1, 533, -1, 534, + -1, 206, -1, 264, -1, 152, -1, 93, -1, 128, + -1, 107, -1, 198, -1, 252, -1, 101, -1, 160, + -1, 280, -1, 514, -1, 514, 519, -1, -1, -1, + 524, 528, -1, 5, 508, 370, 377, 378, 362, -1, + 264, 5, 508, 370, 377, 378, 362, -1, 290, 5, + -1, 17, -1, 215, 360, 360, -1, 298, -1, 298, + 360, 360, -1, 362, -1, 291, 362, -1, 528, 529, + -1, 529, -1, 521, 357, 362, -1, -1, -1, 531, + 532, -1, 532, 533, -1, 533, -1, 289, 357, 5, + -1, 56, 357, 502, 5, 5, -1, 65, -1, 67, + 5, -1, 185, 373, -1, 243, 360, 360, -1, 287, + 370, -1, 296, 360, -1, 46, 374, -1, 185, 4, + -1, 356, -1, 354, -1, 348, -1, 206, -1, 360, + 360, 360, 360, -1, 360, 360, -1, 372, 360, 360, + -1, 370, 377, 369, -1, 297, 538, -1, 39, 360, + 360, -1, 197, 539, -1, 235, 362, -1, 360, 360, + -1, 372, 360, 360, -1, 370, 377, 369, -1, 40, + 360, 360, -1, 360, 360, -1, 113, 360, 360, -1, + 362, -1, 316, 371, 377, -1, 5, 4, 4, -1, + 306, -1, 71, 543, -1, 171, 4, -1, 249, 4, + -1, 258, 360, -1, 4, 4, 4, 4, 4, 4, + 4, 4, 4, -1, 4, 4, 4, 4, 4, 4, + -1, 55, -1, 143, -1, 250, -1, 91, -1, 152, + 545, -1, 264, 546, -1, 40, 360, 360, -1, 197, + 360, 360, -1, 113, -1, 269, 113, -1, 40, 360, + 360, -1, 197, 360, 360, -1, 113, -1, 269, 113, + -1, 192, -1, 13, -1, 206, -1, 34, -1, 109, + -1, 62, 5, -1, 287, 370, -1, 310, 4, 4, + 4, -1, 360, -1, 360, 99, -1, 197, 551, -1, + 297, 360, -1, 297, 360, 99, -1, 40, -1, 360, + -1, 113, -1, 26, 553, -1, 126, 555, -1, 210, + 565, -1, 114, 566, -1, 223, 5, -1, 122, 5, + 387, -1, 62, 5, 387, -1, 278, 4, 387, -1, + 250, 88, 554, -1, 122, 5, 387, -1, 62, 5, + 387, -1, 278, 4, 387, -1, 556, -1, 159, 556, + -1, 288, 557, -1, 275, 558, -1, 119, 88, 559, + -1, 195, 560, -1, 250, 159, 562, -1, 250, 88, + 563, -1, 246, 564, -1, 122, 5, -1, 62, 5, + -1, 278, 4, -1, 122, 5, -1, 62, 5, -1, 278, 4, -1, 122, 5, -1, 62, 5, -1, 278, 4, -1, 122, 5, -1, 62, 5, -1, 278, 4, - -1, 122, 5, -1, 62, 5, -1, 278, 4, -1, - 122, 5, 387, -1, 62, 5, 387, -1, 278, 4, - 387, -1, 122, 5, 5, 387, -1, 566, 4, 4, - 360, 360, 365, -1, 566, 4, -1, 101, -1, 51, - -1, 299, -1, 139, -1, 110, -1, -1, 4, 360, - 360, 360, 360, -1, 209, -1, 209, 4, 360, 360, - 360, 360, -1, 126, 275, 568, -1, 4, -1, 4, - 4, -1, 360, 370, -1, 360, 360, -1, 297, 360, - 360, -1, 371, 377, 378, -1, 16, 573, -1, 248, - 4, -1, 245, 572, -1, 23, 571, -1, 4, 4, - -1, 4, 5, -1, 291, 4, 5, -1, 4, 4, - -1, 4, 5, -1, 291, 4, 5, -1, 4, -1, - 4, 371, 377, -1, 4, 6, 371, 377, -1, 234, - -1, 360, 360, -1, 360, 360, 12, 360, 360, -1, - 360, 360, 12, 372, 360, 360, -1, 360, 360, 12, - 370, 377, 369, -1, 297, 576, -1, 125, -1, 125, - 360, -1, 360, 360, -1, 360, 360, 12, 360, 360, - -1, 360, 360, 12, 372, 360, 360, -1, 360, 360, - 12, 370, 377, 369, -1 + -1, 159, 561, -1, 122, 5, 4, -1, 62, 5, + 4, -1, 278, 4, 4, -1, 122, 5, -1, 62, + 5, -1, 278, 4, -1, 122, 5, -1, 62, 5, + -1, 278, 4, -1, 122, 5, -1, 62, 5, -1, + 278, 4, -1, 122, 5, -1, 62, 5, -1, 278, + 4, -1, 122, 5, 387, -1, 62, 5, 387, -1, + 278, 4, 387, -1, 122, 5, 5, 387, -1, 568, + 4, 4, 360, 360, 365, -1, 568, 4, -1, 101, + -1, 51, -1, 299, -1, 139, -1, 110, -1, -1, + 4, 360, 360, 360, 360, -1, 209, -1, 209, 4, + 360, 360, 360, 360, -1, 126, 275, 570, -1, 4, + -1, 4, 4, -1, 360, 370, -1, 360, 360, -1, + 297, 360, 360, -1, 371, 377, 378, -1, 16, 575, + -1, 248, 4, -1, 245, 574, -1, 23, 573, -1, + 4, 4, -1, 4, 5, -1, 291, 4, 5, -1, + 4, 4, -1, 4, 5, -1, 291, 4, 5, -1, + 4, -1, 4, 371, 377, -1, 4, 6, 371, 377, + -1, 234, -1, 360, 360, -1, 360, 360, 12, 360, + 360, -1, 360, 360, 12, 372, 360, 360, -1, 360, + 360, 12, 370, 377, 369, -1, 297, 578, -1, 125, + -1, 125, 360, -1, 360, 360, -1, 360, 360, 12, + 360, 360, -1, 360, 360, 12, 372, 360, 360, -1, + 360, 360, 12, 370, 377, 369, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -1821,99 +1823,99 @@ 980, 981, 984, 986, 988, 989, 991, 993, 995, 997, 1001, 1004, 1005, 1006, 1009, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, - 1027, 1028, 1029, 1030, 1031, 1033, 1034, 1035, 1036, 1037, - 1038, 1039, 1040, 1041, 1042, 1044, 1045, 1046, 1047, 1048, - 1049, 1050, 1052, 1054, 1055, 1058, 1059, 1060, 1061, 1062, - 1063, 1064, 1065, 1068, 1069, 1070, 1073, 1076, 1077, 1079, - 1081, 1082, 1083, 1084, 1085, 1086, 1093, 1094, 1097, 1098, - 1099, 1102, 1103, 1106, 1109, 1110, 1112, 1116, 1117, 1118, - 1121, 1125, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, - 1135, 1138, 1139, 1140, 1143, 1144, 1147, 1149, 1157, 1159, - 1161, 1165, 1166, 1168, 1171, 1174, 1175, 1179, 1181, 1184, - 1189, 1190, 1191, 1195, 1196, 1197, 1200, 1201, 1202, 1205, - 1206, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, - 1217, 1219, 1220, 1223, 1224, 1227, 1228, 1229, 1230, 1233, - 1234, 1237, 1239, 1242, 1246, 1247, 1248, 1250, 1252, 1256, - 1257, 1258, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1270, - 1273, 1274, 1275, 1278, 1279, 1280, 1281, 1282, 1283, 1286, - 1287, 1288, 1289, 1290, 1291, 1292, 1295, 1296, 1299, 1300, - 1303, 1304, 1307, 1308, 1311, 1312, 1313, 1316, 1317, 1320, - 1321, 1324, 1327, 1335, 1336, 1339, 1340, 1341, 1342, 1343, - 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, - 1354, 1355, 1356, 1359, 1362, 1363, 1366, 1367, 1368, 1369, - 1372, 1373, 1374, 1375, 1378, 1379, 1380, 1381, 1382, 1383, - 1386, 1387, 1388, 1389, 1390, 1391, 1393, 1394, 1399, 1400, - 1403, 1405, 1407, 1410, 1411, 1412, 1413, 1414, 1415, 1418, - 1420, 1422, 1424, 1425, 1427, 1429, 1431, 1433, 1435, 1438, - 1439, 1440, 1441, 1442, 1443, 1445, 1446, 1447, 1450, 1453, - 1455, 1457, 1459, 1461, 1463, 1465, 1467, 1470, 1472, 1474, - 1476, 1477, 1478, 1479, 1480, 1483, 1484, 1485, 1486, 1487, - 1488, 1489, 1491, 1493, 1494, 1495, 1498, 1499, 1500, 1501, - 1502, 1503, 1505, 1506, 1507, 1510, 1511, 1512, 1513, 1514, - 1517, 1520, 1523, 1526, 1529, 1532, 1535, 1538, 1541, 1546, - 1549, 1552, 1555, 1558, 1561, 1564, 1567, 1570, 1573, 1576, - 1581, 1584, 1587, 1590, 1593, 1596, 1599, 1602, 1605, 1610, - 1612, 1614, 1616, 1618, 1620, 1625, 1627, 1629, 1633, 1636, - 1639, 1642, 1645, 1648, 1651, 1654, 1657, 1660, 1663, 1668, - 1669, 1670, 1671, 1672, 1673, 1674, 1676, 1678, 1679, 1680, - 1683, 1684, 1685, 1686, 1687, 1688, 1690, 1691, 1692, 1695, - 1697, 1699, 1700, 1702, 1704, 1708, 1709, 1712, 1713, 1714, - 1717, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1733, 1741, - 1742, 1743, 1744, 1746, 1748, 1749, 1749, 1750, 1751, 1752, - 1753, 1754, 1756, 1757, 1759, 1762, 1765, 1766, 1767, 1770, - 1773, 1776, 1777, 1781, 1784, 1787, 1790, 1794, 1799, 1804, - 1806, 1807, 1809, 1810, 1812, 1814, 1816, 1818, 1819, 1821, - 1823, 1827, 1832, 1834, 1836, 1838, 1840, 1842, 1844, 1846, - 1848, 1850, 1852, 1855, 1856, 1858, 1860, 1861, 1863, 1865, - 1866, 1867, 1869, 1871, 1872, 1873, 1875, 1876, 1877, 1880, - 1884, 1887, 1890, 1894, 1899, 1905, 1906, 1907, 1909, 1910, - 1914, 1916, 1917, 1918, 1921, 1924, 1927, 1929, 1931, 1932, - 1937, 1940, 1941, 1942, 1945, 1949, 1950, 1952, 1953, 1954, - 1956, 1957, 1959, 1960, 1965, 1967, 1968, 1970, 1971, 1972, - 1973, 1974, 1975, 1977, 1979, 1981, 1982, 1983, 1985, 1987, - 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, - 1999, 2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2010, - 2012, 2013, 2014, 2015, 2016, 2017, 2020, 2021, 2022, 2023, - 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, - 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2043, 2044, 2045, - 2046, 2047, 2048, 2056, 2063, 2072, 2081, 2088, 2095, 2103, - 2111, 2118, 2123, 2128, 2133, 2138, 2143, 2148, 2154, 2164, - 2174, 2184, 2191, 2201, 2211, 2220, 2232, 2245, 2250, 2253, - 2255, 2257, 2262, 2266, 2267, 2268, 2274, 2276, 2278, 2281, - 2282, 2283, 2284, 2285, 2286, 2287, 2290, 2291, 2292, 2293, - 2294, 2295, 2297, 2299, 2301, 2303, 2305, 2307, 2310, 2311, - 2312, 2313, 2315, 2318, 2319, 2321, 2323, 2324, 2325, 2327, - 2330, 2333, 2334, 2336, 2337, 2338, 2339, 2341, 2342, 2343, - 2344, 2345, 2347, 2349, 2350, 2352, 2355, 2356, 2357, 2359, - 2361, 2362, 2363, 2364, 2366, 2369, 2373, 2374, 2375, 2376, - 2379, 2382, 2384, 2385, 2386, 2387, 2389, 2392, 2393, 2395, - 2396, 2397, 2398, 2399, 2401, 2402, 2404, 2407, 2408, 2409, - 2410, 2411, 2413, 2415, 2416, 2417, 2418, 2420, 2422, 2423, - 2424, 2425, 2426, 2427, 2429, 2430, 2432, 2435, 2436, 2437, - 2438, 2441, 2442, 2445, 2446, 2449, 2450, 2453, 2466, 2467, - 2471, 2472, 2476, 2477, 2480, 2484, 2490, 2492, 2495, 2497, - 2500, 2502, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2516, - 2517, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2530, - 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, - 2543, 2544, 2547, 2548, 2548, 2551, 2553, 2555, 2558, 2559, - 2560, 2561, 2564, 2565, 2568, 2569, 2572, 2576, 2577, 2577, - 2580, 2581, 2584, 2587, 2591, 2592, 2593, 2594, 2595, 2596, - 2597, 2598, 2604, 2605, 2606, 2607, 2610, 2612, 2613, 2618, - 2620, 2621, 2622, 2623, 2626, 2627, 2632, 2636, 2637, 2638, - 2641, 2642, 2647, 2648, 2651, 2653, 2654, 2655, 2660, 2662, - 2668, 2669, 2670, 2671, 2674, 2675, 2678, 2680, 2682, 2683, - 2686, 2688, 2689, 2690, 2693, 2694, 2697, 2698, 2699, 2702, - 2703, 2704, 2707, 2708, 2709, 2710, 2711, 2714, 2715, 2716, - 2719, 2720, 2721, 2722, 2723, 2726, 2728, 2730, 2732, 2735, - 2737, 2739, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, - 2750, 2753, 2754, 2755, 2758, 2759, 2760, 2763, 2764, 2765, - 2768, 2769, 2770, 2773, 2774, 2775, 2776, 2779, 2780, 2781, - 2784, 2785, 2786, 2789, 2790, 2791, 2794, 2795, 2796, 2799, - 2801, 2803, 2807, 2811, 2813, 2818, 2821, 2822, 2823, 2824, - 2827, 2828, 2830, 2831, 2833, 2836, 2837, 2838, 2841, 2842, - 2845, 2847, 2848, 2849, 2850, 2853, 2854, 2855, 2858, 2859, - 2860, 2863, 2864, 2869, 2873, 2880, 2881, 2883, 2888, 2890, - 2893, 2894, 2895, 2896, 2898, 2903 + 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, + 1037, 1038, 1039, 1040, 1041, 1043, 1044, 1045, 1046, 1047, + 1048, 1049, 1051, 1052, 1053, 1056, 1058, 1062, 1064, 1068, + 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1078, 1079, 1080, + 1083, 1086, 1087, 1089, 1091, 1092, 1093, 1094, 1095, 1096, + 1103, 1104, 1107, 1108, 1109, 1112, 1113, 1116, 1119, 1120, + 1122, 1126, 1127, 1128, 1131, 1135, 1137, 1138, 1139, 1140, + 1141, 1142, 1143, 1144, 1145, 1148, 1149, 1150, 1153, 1154, + 1157, 1159, 1167, 1169, 1171, 1175, 1176, 1178, 1181, 1184, + 1185, 1189, 1191, 1194, 1199, 1200, 1201, 1205, 1206, 1207, + 1210, 1211, 1212, 1215, 1216, 1218, 1219, 1220, 1221, 1222, + 1223, 1224, 1225, 1226, 1227, 1229, 1230, 1233, 1234, 1237, + 1238, 1239, 1240, 1243, 1244, 1247, 1249, 1252, 1256, 1257, + 1258, 1260, 1262, 1266, 1267, 1268, 1271, 1272, 1273, 1274, + 1275, 1276, 1277, 1280, 1283, 1284, 1285, 1288, 1289, 1290, + 1291, 1292, 1293, 1296, 1297, 1298, 1299, 1300, 1301, 1302, + 1305, 1306, 1309, 1310, 1313, 1314, 1317, 1318, 1321, 1322, + 1323, 1326, 1327, 1330, 1331, 1334, 1337, 1345, 1346, 1349, + 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, + 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1369, 1372, 1373, + 1376, 1377, 1378, 1379, 1382, 1383, 1384, 1385, 1388, 1389, + 1390, 1391, 1392, 1393, 1396, 1397, 1398, 1399, 1400, 1401, + 1403, 1404, 1409, 1410, 1413, 1415, 1417, 1420, 1421, 1422, + 1423, 1424, 1425, 1428, 1430, 1432, 1434, 1435, 1437, 1439, + 1441, 1443, 1445, 1448, 1449, 1450, 1451, 1452, 1453, 1455, + 1456, 1457, 1460, 1463, 1465, 1467, 1469, 1471, 1473, 1475, + 1477, 1480, 1482, 1484, 1486, 1487, 1488, 1489, 1490, 1493, + 1494, 1495, 1496, 1497, 1498, 1499, 1501, 1503, 1504, 1505, + 1508, 1509, 1510, 1511, 1512, 1513, 1515, 1516, 1517, 1520, + 1521, 1522, 1523, 1524, 1527, 1530, 1533, 1536, 1539, 1542, + 1545, 1548, 1551, 1556, 1559, 1562, 1565, 1568, 1571, 1574, + 1577, 1580, 1583, 1586, 1591, 1594, 1597, 1600, 1603, 1606, + 1609, 1612, 1615, 1620, 1622, 1624, 1626, 1628, 1630, 1635, + 1637, 1639, 1643, 1646, 1649, 1652, 1655, 1658, 1661, 1664, + 1667, 1670, 1673, 1678, 1679, 1680, 1681, 1682, 1683, 1684, + 1686, 1688, 1689, 1690, 1693, 1694, 1695, 1696, 1697, 1698, + 1700, 1701, 1702, 1705, 1707, 1709, 1710, 1712, 1714, 1718, + 1719, 1722, 1723, 1724, 1727, 1730, 1731, 1732, 1733, 1734, + 1735, 1736, 1739, 1747, 1748, 1749, 1750, 1752, 1754, 1755, + 1755, 1756, 1757, 1758, 1759, 1760, 1762, 1763, 1765, 1768, + 1771, 1772, 1773, 1776, 1779, 1782, 1783, 1787, 1790, 1793, + 1796, 1800, 1805, 1810, 1812, 1813, 1815, 1816, 1818, 1820, + 1822, 1824, 1825, 1827, 1829, 1833, 1838, 1840, 1842, 1844, + 1846, 1848, 1850, 1852, 1854, 1856, 1858, 1861, 1862, 1864, + 1866, 1867, 1869, 1871, 1872, 1873, 1875, 1877, 1878, 1879, + 1881, 1882, 1883, 1886, 1890, 1893, 1896, 1900, 1905, 1911, + 1912, 1913, 1915, 1916, 1920, 1922, 1923, 1924, 1927, 1930, + 1933, 1935, 1937, 1938, 1943, 1946, 1947, 1948, 1951, 1955, + 1956, 1958, 1959, 1960, 1962, 1963, 1965, 1966, 1971, 1973, + 1974, 1976, 1977, 1978, 1979, 1980, 1981, 1983, 1985, 1987, + 1988, 1989, 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, + 2000, 2001, 2002, 2003, 2005, 2007, 2008, 2009, 2010, 2012, + 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021, 2022, 2023, + 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, + 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, + 2046, 2049, 2050, 2051, 2052, 2053, 2054, 2062, 2069, 2078, + 2087, 2094, 2101, 2109, 2117, 2124, 2129, 2134, 2139, 2144, + 2149, 2154, 2160, 2170, 2180, 2190, 2197, 2207, 2217, 2226, + 2238, 2251, 2256, 2259, 2261, 2263, 2268, 2272, 2273, 2274, + 2280, 2282, 2284, 2287, 2288, 2289, 2290, 2291, 2292, 2293, + 2296, 2297, 2298, 2299, 2300, 2301, 2303, 2305, 2307, 2309, + 2311, 2313, 2316, 2317, 2318, 2319, 2321, 2324, 2325, 2327, + 2329, 2330, 2331, 2333, 2336, 2339, 2340, 2342, 2343, 2344, + 2345, 2347, 2348, 2349, 2350, 2351, 2353, 2355, 2356, 2358, + 2361, 2362, 2363, 2365, 2367, 2368, 2369, 2370, 2372, 2375, + 2379, 2380, 2381, 2382, 2385, 2388, 2390, 2391, 2392, 2393, + 2395, 2398, 2399, 2401, 2402, 2403, 2404, 2405, 2407, 2408, + 2410, 2413, 2414, 2415, 2416, 2417, 2419, 2421, 2422, 2423, + 2424, 2426, 2428, 2429, 2430, 2431, 2432, 2433, 2435, 2436, + 2438, 2441, 2442, 2443, 2444, 2447, 2448, 2451, 2452, 2455, + 2456, 2459, 2472, 2473, 2477, 2478, 2482, 2483, 2486, 2490, + 2496, 2498, 2501, 2503, 2506, 2508, 2512, 2513, 2514, 2515, + 2516, 2517, 2518, 2522, 2523, 2526, 2527, 2528, 2529, 2530, + 2531, 2532, 2533, 2536, 2537, 2538, 2539, 2540, 2541, 2542, + 2543, 2544, 2545, 2546, 2549, 2550, 2553, 2554, 2554, 2557, + 2559, 2561, 2564, 2565, 2566, 2567, 2570, 2571, 2574, 2575, + 2578, 2582, 2583, 2583, 2586, 2587, 2590, 2593, 2597, 2598, + 2599, 2600, 2601, 2602, 2603, 2604, 2610, 2611, 2612, 2613, + 2616, 2618, 2619, 2624, 2626, 2627, 2628, 2629, 2632, 2633, + 2638, 2642, 2643, 2644, 2647, 2648, 2653, 2654, 2657, 2659, + 2660, 2661, 2666, 2668, 2674, 2675, 2676, 2677, 2680, 2681, + 2684, 2686, 2688, 2689, 2692, 2694, 2695, 2696, 2699, 2700, + 2703, 2704, 2705, 2708, 2709, 2710, 2713, 2714, 2715, 2716, + 2717, 2720, 2721, 2722, 2725, 2726, 2727, 2728, 2729, 2732, + 2734, 2736, 2738, 2741, 2743, 2745, 2748, 2749, 2750, 2751, + 2752, 2753, 2754, 2755, 2756, 2759, 2760, 2761, 2764, 2765, + 2766, 2769, 2770, 2771, 2774, 2775, 2776, 2779, 2780, 2781, + 2782, 2785, 2786, 2787, 2790, 2791, 2792, 2795, 2796, 2797, + 2800, 2801, 2802, 2805, 2807, 2809, 2813, 2817, 2819, 2824, + 2827, 2828, 2829, 2830, 2833, 2834, 2836, 2837, 2839, 2842, + 2843, 2844, 2847, 2848, 2851, 2853, 2854, 2855, 2856, 2859, + 2860, 2861, 2864, 2865, 2866, 2869, 2870, 2875, 2879, 2886, + 2887, 2889, 2894, 2896, 2899, 2900, 2901, 2902, 2904, 2909 }; #endif @@ -1988,12 +1990,12 @@ "colorscale", "contour", "contourCreate", "contourDelete", "contourLoad", "contourClipMode", "contourClipScope", "contourMethod", "contourPaste", "contourSave", "crop", "crop3d", "crosshair", "cube", "cutMethod", - "fitsy", "get", "getBin", "getBinCols", "getBlock", "getClip", - "getClipMinMax", "getClipZScale", "getColorbar", "getColorMap", - "getColorMapLevel", "getColorScale", "getColorScaleLevel", "getContour", - "getContourClip", "getContourColorScale", "getCoord", "getCrop", - "getCrosshair", "getCube", "getCursor", "getData", "getInfo", "getiis", - "getIISFileName", "getFits", "getFitsExt", "getFitsHeader", + "fitsy", "get", "getHorzCut", "getVertCut", "getBin", "getBinCols", + "getBlock", "getClip", "getClipMinMax", "getClipZScale", "getColorbar", + "getColorMap", "getColorMapLevel", "getColorScale", "getColorScaleLevel", + "getContour", "getContourClip", "getContourColorScale", "getCoord", + "getCrop", "getCrosshair", "getCube", "getCursor", "getData", "getInfo", + "getiis", "getIISFileName", "getFits", "getFitsExt", "getFitsHeader", "getFitsDepth", "getFitsFileName", "getFitsSlice", "getGrid", "getMask", "getPan", "getRGB", "getSmooth", "getThreed", "getThreedBorder", "getThreedCompass", "getThreedHighlite", "getThreedView", "getWCS", @@ -2109,97 +2111,97 @@ 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, - 423, 423, 423, 423, 423, 424, 424, 424, 424, 424, - 424, 424, 424, 425, 425, 425, 426, 427, 427, 427, - 427, 427, 427, 427, 427, 427, 428, 428, 429, 429, - 429, 430, 430, 431, 432, 432, 432, 433, 433, 433, - 434, 435, 435, 435, 435, 435, 435, 435, 435, 435, - 435, 436, 436, 436, 437, 437, 438, 438, 439, 439, - 439, 440, 440, 440, 441, 442, 442, 443, 443, 443, - 444, 444, 444, 445, 445, 445, 446, 446, 446, 447, - 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, - 447, 447, 447, 448, 448, 449, 449, 449, 449, 450, - 450, 451, 451, 451, 452, 452, 452, 452, 452, 453, - 453, 453, 454, 454, 454, 454, 454, 454, 454, 455, - 456, 456, 456, 457, 457, 457, 457, 457, 457, 458, - 458, 458, 458, 458, 458, 458, 459, 459, 460, 460, - 461, 461, 462, 462, 463, 463, 463, 464, 464, 465, - 465, 466, 466, 467, 467, 468, 468, 468, 468, 468, - 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, - 468, 468, 468, 469, 470, 470, 471, 471, 471, 471, - 472, 472, 472, 472, 473, 473, 473, 473, 473, 473, - 474, 474, 474, 474, 474, 474, 474, 474, 475, 475, - 476, 476, 476, 477, 477, 477, 477, 477, 477, 478, - 478, 478, 478, 478, 478, 478, 478, 478, 478, 479, - 479, 479, 479, 479, 479, 479, 479, 479, 480, 481, - 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, - 481, 481, 481, 481, 481, 482, 482, 482, 482, 482, - 482, 482, 482, 482, 482, 482, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 484, 484, 484, 484, 484, + 423, 423, 423, 423, 423, 424, 424, 425, 425, 426, + 426, 426, 426, 426, 426, 426, 426, 427, 427, 427, + 428, 429, 429, 429, 429, 429, 429, 429, 429, 429, + 430, 430, 431, 431, 431, 432, 432, 433, 434, 434, + 434, 435, 435, 435, 436, 437, 437, 437, 437, 437, + 437, 437, 437, 437, 437, 438, 438, 438, 439, 439, + 440, 440, 441, 441, 441, 442, 442, 442, 443, 444, + 444, 445, 445, 445, 446, 446, 446, 447, 447, 447, + 448, 448, 448, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 450, 450, 451, + 451, 451, 451, 452, 452, 453, 453, 453, 454, 454, + 454, 454, 454, 455, 455, 455, 456, 456, 456, 456, + 456, 456, 456, 457, 458, 458, 458, 459, 459, 459, + 459, 459, 459, 460, 460, 460, 460, 460, 460, 460, + 461, 461, 462, 462, 463, 463, 464, 464, 465, 465, + 465, 466, 466, 467, 467, 468, 468, 469, 469, 470, + 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 471, 472, 472, + 473, 473, 473, 473, 474, 474, 474, 474, 475, 475, + 475, 475, 475, 475, 476, 476, 476, 476, 476, 476, + 476, 476, 477, 477, 478, 478, 478, 479, 479, 479, + 479, 479, 479, 480, 480, 480, 480, 480, 480, 480, + 480, 480, 480, 481, 481, 481, 481, 481, 481, 481, + 481, 481, 482, 483, 483, 483, 483, 483, 483, 483, + 483, 483, 483, 483, 483, 483, 483, 483, 483, 484, + 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 485, 485, 485, 485, 485, 485, 485, 485, 485, 486, - 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, - 487, 487, 487, 487, 487, 487, 487, 487, 487, 488, - 488, 488, 488, 488, 488, 488, 488, 488, 489, 489, - 489, 489, 489, 489, 489, 489, 489, 489, 489, 490, - 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, - 491, 491, 491, 491, 491, 491, 491, 491, 491, 492, - 492, 492, 492, 492, 492, 493, 493, 494, 494, 494, - 495, 496, 496, 496, 496, 496, 496, 496, 497, 498, - 498, 498, 498, 498, 498, 499, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 500, 500, 500, 500, + 486, 486, 486, 486, 487, 487, 487, 487, 487, 487, + 487, 487, 487, 488, 488, 488, 488, 488, 488, 488, + 488, 488, 488, 488, 489, 489, 489, 489, 489, 489, + 489, 489, 489, 490, 490, 490, 490, 490, 490, 490, + 490, 490, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 492, 492, 492, 492, 492, 492, 492, + 492, 492, 492, 492, 493, 493, 493, 493, 493, 493, + 493, 493, 493, 494, 494, 494, 494, 494, 494, 495, + 495, 496, 496, 496, 497, 498, 498, 498, 498, 498, + 498, 498, 499, 500, 500, 500, 500, 500, 500, 501, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, - 500, 500, 500, 500, 500, 500, 500, 501, 501, 501, - 501, 501, 501, 502, 502, 502, 502, 502, 502, 502, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, - 502, 502, 502, 502, 502, 502, 502, 502, 502, 503, - 503, 503, 503, 504, 504, 504, 505, 505, 505, 506, - 506, 506, 506, 506, 506, 506, 507, 507, 507, 507, - 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, - 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, - 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, - 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, - 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, - 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, - 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, - 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, - 507, 507, 507, 507, 507, 507, 507, 508, 508, 508, - 508, 509, 509, 510, 510, 511, 511, 512, 513, 513, - 513, 513, 513, 513, 514, 514, 515, 515, 515, 515, - 515, 515, 516, 516, 516, 516, 516, 516, 516, 517, - 517, 518, 518, 518, 518, 518, 518, 518, 518, 519, - 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, - 520, 520, 521, 522, 521, 523, 523, 523, 524, 524, - 524, 524, 525, 525, 526, 526, 527, 528, 529, 528, - 530, 530, 531, 532, 533, 533, 533, 533, 533, 533, - 533, 533, 534, 534, 534, 534, 535, 535, 535, 535, - 535, 535, 535, 535, 536, 536, 536, 537, 537, 537, - 538, 538, 538, 538, 539, 539, 539, 539, 540, 540, - 541, 541, 541, 541, 542, 542, 543, 543, 543, 543, - 544, 544, 544, 544, 545, 545, 546, 546, 546, 547, - 547, 547, 548, 548, 548, 548, 548, 549, 549, 549, - 550, 550, 550, 550, 550, 551, 551, 551, 551, 552, - 552, 552, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 554, 554, 554, 555, 555, 555, 556, 556, 556, - 557, 557, 557, 558, 558, 558, 558, 559, 559, 559, - 560, 560, 560, 561, 561, 561, 562, 562, 562, 563, - 563, 563, 564, 565, 565, 565, 566, 566, 566, 566, - 567, 567, 567, 567, 567, 568, 568, 568, 569, 569, - 570, 570, 570, 570, 570, 571, 571, 571, 572, 572, - 572, 573, 573, 573, 574, 575, 575, 575, 575, 575, - 576, 576, 576, 576, 576, 576 + 502, 503, 503, 503, 503, 503, 503, 504, 504, 504, + 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, + 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, + 504, 504, 504, 505, 505, 505, 505, 506, 506, 506, + 507, 507, 507, 508, 508, 508, 508, 508, 508, 508, + 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, + 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, + 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, + 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, + 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, + 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, + 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, + 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, + 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, + 509, 510, 510, 510, 510, 511, 511, 512, 512, 513, + 513, 514, 515, 515, 515, 515, 515, 515, 516, 516, + 517, 517, 517, 517, 517, 517, 518, 518, 518, 518, + 518, 518, 518, 519, 519, 520, 520, 520, 520, 520, + 520, 520, 520, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 522, 522, 523, 524, 523, 525, + 525, 525, 526, 526, 526, 526, 527, 527, 528, 528, + 529, 530, 531, 530, 532, 532, 533, 534, 535, 535, + 535, 535, 535, 535, 535, 535, 536, 536, 536, 536, + 537, 537, 537, 537, 537, 537, 537, 537, 538, 538, + 538, 539, 539, 539, 540, 540, 540, 540, 541, 541, + 541, 541, 542, 542, 543, 543, 543, 543, 544, 544, + 545, 545, 545, 545, 546, 546, 546, 546, 547, 547, + 548, 548, 548, 549, 549, 549, 550, 550, 550, 550, + 550, 551, 551, 551, 552, 552, 552, 552, 552, 553, + 553, 553, 553, 554, 554, 554, 555, 555, 555, 555, + 555, 555, 555, 555, 555, 556, 556, 556, 557, 557, + 557, 558, 558, 558, 559, 559, 559, 560, 560, 560, + 560, 561, 561, 561, 562, 562, 562, 563, 563, 563, + 564, 564, 564, 565, 565, 565, 566, 567, 567, 567, + 568, 568, 568, 568, 569, 569, 569, 569, 569, 570, + 570, 570, 571, 571, 572, 572, 572, 572, 572, 573, + 573, 573, 574, 574, 574, 575, 575, 575, 576, 577, + 577, 577, 577, 577, 578, 578, 578, 578, 578, 578 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -2240,99 +2242,99 @@ 4, 4, 3, 3, 1, 3, 5, 4, 4, 3, 2, 0, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 2, 2, 2, 4, 9, 2, 2, 2, 1, 3, + 2, 2, 2, 4, 3, 2, 2, 2, 1, 3, 2, 2, 1, 2, 8, 2, 1, 2, 1, 2, - 1, 4, 9, 2, 1, 1, 1, 1, 2, 1, - 1, 2, 1, 0, 2, 2, 1, 0, 2, 2, - 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, - 1, 0, 1, 2, 1, 4, 5, 0, 2, 1, - 5, 2, 2, 1, 1, 1, 2, 1, 2, 1, - 1, 0, 1, 1, 0, 1, 5, 6, 3, 6, - 3, 1, 3, 1, 1, 1, 3, 6, 7, 5, - 1, 1, 4, 5, 1, 3, 0, 1, 2, 1, - 4, 1, 2, 1, 2, 3, 2, 1, 2, 1, - 4, 2, 1, 1, 3, 1, 2, 3, 2, 0, - 1, 1, 4, 2, 0, 1, 3, 4, 4, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, - 2, 2, 2, 1, 1, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 2, 2, 0, 1, 2, - 1, 6, 5, 1, 1, 1, 2, 2, 2, 1, - 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, - 1, 2, 2, 2, 0, 1, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, - 3, 1, 2, 2, 4, 6, 1, 10, 1, 2, - 3, 3, 2, 2, 2, 2, 2, 2, 2, 4, - 4, 4, 3, 3, 5, 4, 4, 4, 3, 3, - 3, 3, 2, 2, 4, 3, 3, 3, 3, 4, - 4, 4, 4, 5, 4, 6, 7, 4, 4, 5, - 2, 3, 3, 3, 2, 3, 3, 3, 3, 4, - 3, 5, 6, 3, 3, 4, 3, 3, 3, 3, - 3, 5, 3, 3, 4, 3, 2, 2, 1, 3, - 4, 4, 4, 4, 4, 6, 4, 4, 5, 4, - 4, 4, 4, 5, 4, 6, 7, 4, 4, 5, - 5, 5, 5, 5, 5, 7, 5, 5, 6, 4, - 4, 4, 4, 4, 6, 4, 4, 5, 5, 5, - 5, 5, 6, 5, 7, 8, 5, 5, 6, 3, + 1, 4, 3, 2, 1, 7, 8, 7, 8, 1, + 1, 1, 2, 1, 1, 2, 1, 0, 2, 2, + 1, 0, 2, 2, 1, 1, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 0, 1, 2, 1, 4, + 5, 0, 2, 1, 5, 2, 2, 1, 1, 1, + 2, 1, 2, 1, 1, 0, 1, 1, 0, 1, + 5, 6, 3, 6, 3, 1, 3, 1, 1, 1, + 3, 6, 7, 5, 1, 1, 4, 5, 1, 3, + 0, 1, 2, 1, 4, 1, 2, 1, 2, 3, + 2, 1, 2, 1, 4, 2, 1, 1, 3, 1, + 2, 3, 2, 0, 1, 1, 4, 2, 0, 1, + 3, 4, 4, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, + 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, + 2, 0, 1, 2, 1, 6, 5, 1, 1, 1, + 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, + 1, 2, 1, 1, 1, 2, 2, 2, 0, 1, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 1, 2, 3, 1, 2, 2, 4, 6, + 1, 10, 1, 2, 3, 3, 2, 2, 2, 2, + 2, 2, 2, 4, 4, 4, 3, 3, 5, 4, + 4, 4, 3, 3, 3, 3, 2, 2, 4, 3, + 3, 3, 3, 4, 4, 4, 4, 5, 4, 6, + 7, 4, 4, 5, 2, 3, 3, 3, 2, 3, 3, 3, 3, 4, 3, 5, 6, 3, 3, 4, - 3, 3, 3, 3, 3, 5, 3, 3, 4, 4, - 4, 3, 5, 4, 4, 2, 3, 6, 6, 1, - 1, 1, 2, 2, 2, 3, 3, 2, 12, 2, - 2, 1, 3, 4, 2, 0, 3, 1, 2, 2, - 2, 2, 2, 4, 4, 4, 3, 4, 5, 8, - 6, 4, 9, 6, 7, 10, 11, 12, 9, 5, - 4, 6, 3, 5, 5, 6, 5, 4, 9, 10, - 11, 9, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 7, 7, 2, 4, 4, 4, 4, 5, 4, - 4, 5, 5, 3, 4, 4, 4, 4, 7, 9, - 6, 10, 11, 12, 9, 3, 2, 3, 5, 7, - 4, 3, 3, 6, 7, 7, 4, 4, 4, 9, - 4, 3, 4, 7, 7, 2, 3, 3, 3, 4, - 2, 2, 4, 10, 3, 1, 3, 2, 2, 2, - 2, 3, 5, 4, 5, 2, 2, 2, 2, 3, - 2, 2, 2, 3, 2, 3, 4, 3, 3, 6, - 4, 2, 3, 2, 2, 4, 3, 3, 2, 3, - 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, - 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 1, 2, - 2, 2, 3, 5, 7, 7, 6, 6, 6, 6, - 5, 6, 6, 6, 6, 6, 6, 6, 11, 7, - 7, 7, 9, 9, 10, 12, 12, 2, 2, 3, - 4, 4, 4, 0, 1, 1, 4, 4, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, - 3, 3, 8, 6, 10, 7, 7, 5, 2, 2, - 3, 4, 5, 3, 5, 5, 3, 4, 5, 5, - 5, 3, 5, 2, 3, 3, 5, 3, 3, 3, - 4, 5, 5, 3, 5, 5, 3, 4, 5, 5, - 2, 2, 3, 5, 6, 6, 3, 3, 3, 6, - 5, 5, 2, 3, 3, 5, 6, 3, 2, 2, - 3, 2, 3, 2, 3, 5, 6, 2, 2, 2, - 1, 4, 4, 1, 2, 2, 2, 2, 2, 2, - 2, 3, 2, 3, 2, 3, 1, 1, 1, 1, - 1, 0, 2, 0, 2, 0, 1, 0, 0, 1, - 1, 1, 1, 1, 7, 8, 2, 6, 2, 6, - 2, 3, 2, 1, 1, 3, 3, 1, 4, 2, - 1, 3, 3, 4, 3, 3, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 0, 0, 2, 6, 7, 2, 1, 3, - 1, 3, 1, 2, 2, 1, 3, 0, 0, 2, - 2, 1, 3, 5, 1, 2, 2, 3, 2, 2, - 2, 2, 1, 1, 1, 1, 4, 2, 3, 3, - 2, 3, 2, 2, 2, 3, 3, 3, 2, 3, - 1, 3, 3, 1, 2, 2, 2, 2, 9, 6, - 1, 1, 1, 1, 2, 2, 3, 3, 1, 2, - 3, 3, 1, 2, 1, 1, 1, 1, 1, 2, - 2, 4, 1, 2, 2, 2, 3, 1, 1, 1, - 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, - 3, 3, 1, 2, 2, 2, 3, 2, 3, 3, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, - 3, 3, 4, 6, 2, 1, 1, 1, 1, 1, - 0, 5, 1, 6, 3, 1, 2, 2, 2, 3, - 3, 2, 2, 2, 2, 2, 2, 3, 2, 2, - 3, 1, 3, 4, 1, 2, 5, 6, 6, 2, - 1, 2, 2, 5, 6, 6 + 3, 3, 3, 3, 3, 5, 3, 3, 4, 3, + 2, 2, 1, 3, 4, 4, 4, 4, 4, 6, + 4, 4, 5, 4, 4, 4, 4, 5, 4, 6, + 7, 4, 4, 5, 5, 5, 5, 5, 5, 7, + 5, 5, 6, 4, 4, 4, 4, 4, 6, 4, + 4, 5, 5, 5, 5, 5, 6, 5, 7, 8, + 5, 5, 6, 3, 3, 3, 3, 4, 3, 5, + 6, 3, 3, 4, 3, 3, 3, 3, 3, 5, + 3, 3, 4, 4, 4, 3, 5, 4, 4, 2, + 3, 6, 6, 1, 1, 1, 2, 2, 2, 3, + 3, 2, 12, 2, 2, 1, 3, 4, 2, 0, + 3, 1, 2, 2, 2, 2, 2, 4, 4, 4, + 3, 4, 5, 8, 6, 4, 9, 6, 7, 10, + 11, 12, 9, 5, 4, 6, 3, 5, 5, 6, + 5, 4, 9, 10, 11, 9, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 7, 7, 2, 4, 4, + 4, 4, 5, 4, 4, 5, 5, 3, 4, 4, + 4, 4, 7, 9, 6, 10, 11, 12, 9, 3, + 2, 3, 5, 7, 4, 3, 3, 6, 7, 7, + 4, 4, 4, 9, 4, 3, 4, 7, 7, 2, + 3, 3, 3, 4, 2, 2, 4, 10, 3, 1, + 3, 2, 2, 2, 2, 3, 5, 4, 5, 2, + 2, 2, 2, 3, 2, 2, 2, 3, 2, 3, + 4, 3, 3, 6, 4, 2, 3, 2, 2, 4, + 3, 3, 2, 3, 1, 2, 1, 2, 2, 2, + 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, + 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 1, 2, 2, 2, 3, 5, 7, 7, + 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, + 6, 6, 11, 7, 7, 7, 9, 9, 10, 12, + 12, 2, 2, 3, 4, 4, 4, 0, 1, 1, + 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 1, 1, 3, 3, 8, 6, 10, 7, + 7, 5, 2, 2, 3, 4, 5, 3, 5, 5, + 3, 4, 5, 5, 5, 3, 5, 2, 3, 3, + 5, 3, 3, 3, 4, 5, 5, 3, 5, 5, + 3, 4, 5, 5, 2, 2, 3, 5, 6, 6, + 3, 3, 3, 6, 5, 5, 2, 3, 3, 5, + 6, 3, 2, 2, 3, 2, 3, 2, 3, 5, + 6, 2, 2, 2, 1, 4, 4, 1, 2, 2, + 2, 2, 2, 2, 2, 3, 2, 3, 2, 3, + 1, 1, 1, 1, 1, 0, 2, 0, 2, 0, + 1, 0, 0, 1, 1, 1, 1, 1, 7, 8, + 2, 6, 2, 6, 2, 3, 2, 1, 1, 3, + 3, 1, 4, 2, 1, 3, 3, 4, 3, 3, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 0, 0, 2, 6, + 7, 2, 1, 3, 1, 3, 1, 2, 2, 1, + 3, 0, 0, 2, 2, 1, 3, 5, 1, 2, + 2, 3, 2, 2, 2, 2, 1, 1, 1, 1, + 4, 2, 3, 3, 2, 3, 2, 2, 2, 3, + 3, 3, 2, 3, 1, 3, 3, 1, 2, 2, + 2, 2, 9, 6, 1, 1, 1, 1, 2, 2, + 3, 3, 1, 2, 3, 3, 1, 2, 1, 1, + 1, 1, 1, 2, 2, 4, 1, 2, 2, 2, + 3, 1, 1, 1, 2, 2, 2, 2, 2, 3, + 3, 3, 3, 3, 3, 3, 1, 2, 2, 2, + 3, 2, 3, 3, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, + 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 3, 3, 4, 6, 2, 1, + 1, 1, 1, 1, 0, 5, 1, 6, 3, 1, + 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, + 2, 3, 2, 2, 3, 1, 3, 4, 1, 2, + 5, 6, 6, 2, 1, 2, 2, 5, 6, 6 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -2342,9 +2344,9 @@ { 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 0, 0, 0, 0, 1048, 0, - 0, 0, 0, 0, 0, 0, 0, 1048, 41, 0, - 0, 0, 46, 0, 0, 0, 50, 1240, 52, 0, + 23, 0, 0, 0, 0, 0, 0, 0, 1052, 0, + 0, 0, 0, 0, 0, 0, 0, 1052, 41, 0, + 0, 0, 46, 0, 0, 0, 50, 1244, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 57, 58, 0, 246, 7, 0, 0, 0, 0, 0, 0, 10, 0, 0, 276, 278, @@ -2357,25 +2359,25 @@ 121, 122, 123, 124, 125, 126, 127, 128, 129, 72, 73, 77, 324, 156, 101, 0, 16, 0, 17, 18, 0, 0, 0, 0, 0, 0, 60, 59, 0, 0, - 0, 0, 2, 0, 19, 0, 0, 0, 387, 401, - 0, 407, 0, 0, 0, 0, 0, 0, 0, 349, - 0, 479, 0, 0, 0, 0, 0, 0, 1048, 0, + 0, 0, 2, 0, 19, 0, 0, 0, 391, 405, + 0, 411, 0, 0, 0, 0, 0, 0, 0, 349, + 0, 483, 0, 0, 0, 0, 0, 0, 1052, 0, 358, 0, 362, 0, 0, 0, 366, 0, 368, 0, - 370, 0, 0, 514, 374, 20, 0, 520, 21, 525, - 0, 0, 544, 529, 530, 531, 532, 546, 534, 535, - 539, 536, 0, 538, 540, 0, 0, 22, 0, 24, - 0, 561, 0, 0, 0, 566, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 28, 720, 29, 0, 0, - 0, 0, 0, 0, 721, 30, 0, 31, 1052, 1053, - 1049, 1050, 1051, 0, 138, 1114, 0, 132, 0, 0, - 0, 33, 0, 1125, 1124, 1123, 1122, 35, 0, 0, - 0, 0, 0, 156, 0, 36, 0, 1143, 0, 1140, + 370, 0, 0, 518, 374, 20, 0, 524, 21, 529, + 0, 0, 548, 533, 534, 535, 536, 550, 538, 539, + 543, 540, 0, 542, 544, 0, 0, 22, 0, 24, + 0, 565, 0, 0, 0, 570, 0, 26, 0, 0, + 0, 0, 0, 0, 0, 28, 724, 29, 0, 0, + 0, 0, 0, 0, 725, 30, 0, 31, 1056, 1057, + 1053, 1054, 1055, 0, 138, 1118, 0, 132, 0, 0, + 0, 33, 0, 1129, 1128, 1127, 1126, 35, 0, 0, + 0, 0, 0, 156, 0, 36, 0, 1147, 0, 1144, 37, 0, 0, 0, 0, 40, 0, 39, 38, 0, - 0, 0, 0, 43, 0, 0, 1172, 44, 0, 0, - 0, 0, 0, 45, 1236, 1235, 1239, 1238, 1237, 47, + 0, 0, 0, 43, 0, 0, 1176, 44, 0, 0, + 0, 0, 0, 45, 1240, 1239, 1243, 1242, 1241, 47, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 0, 0, 1242, 51, 0, 0, 53, 0, 0, - 0, 0, 156, 54, 1264, 55, 0, 0, 56, 1, + 49, 0, 0, 1246, 51, 0, 0, 53, 0, 0, + 0, 0, 156, 54, 1268, 55, 0, 0, 56, 1, 4, 5, 6, 229, 0, 221, 0, 0, 223, 0, 231, 224, 228, 239, 240, 225, 241, 0, 227, 249, 250, 248, 247, 0, 0, 269, 0, 254, 262, 265, @@ -2386,1752 +2388,1698 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 158, 163, 157, 159, 162, 161, 160, 0, 0, 330, 65, 66, 67, 68, 69, - 61, 62, 63, 70, 64, 0, 335, 0, 383, 379, - 375, 376, 380, 377, 382, 336, 386, 337, 298, 391, - 395, 390, 301, 300, 299, 0, 0, 338, 402, 340, - 0, 339, 0, 409, 341, 421, 413, 424, 414, 415, - 417, 0, 419, 420, 156, 342, 0, 0, 343, 0, - 0, 156, 344, 433, 156, 431, 345, 434, 347, 156, - 435, 346, 0, 156, 0, 348, 453, 0, 451, 469, - 0, 0, 0, 457, 449, 0, 459, 474, 462, 350, - 480, 481, 351, 352, 0, 0, 0, 444, 0, 355, - 440, 441, 0, 356, 357, 0, 488, 482, 487, 483, - 484, 485, 486, 360, 361, 489, 363, 0, 490, 491, - 492, 365, 498, 493, 494, 496, 367, 504, 506, 508, - 510, 503, 505, 512, 369, 0, 0, 517, 0, 373, - 156, 519, 526, 0, 527, 545, 528, 547, 548, 549, - 533, 550, 552, 551, 553, 537, 541, 558, 0, 0, - 0, 0, 554, 542, 25, 0, 0, 563, 562, 0, - 0, 0, 0, 27, 0, 0, 573, 0, 574, 0, - 0, 0, 0, 0, 575, 0, 719, 0, 576, 0, - 577, 0, 0, 578, 0, 724, 723, 722, 0, 727, - 0, 0, 0, 897, 0, 0, 0, 731, 735, 737, - 933, 0, 0, 0, 0, 835, 0, 0, 0, 870, - 0, 0, 0, 0, 0, 0, 0, 872, 0, 0, - 0, 32, 141, 142, 140, 139, 1120, 1115, 1121, 135, - 136, 134, 137, 133, 1116, 0, 1118, 1119, 34, 0, - 0, 0, 0, 1132, 1133, 0, 156, 0, 1130, 1127, - 0, 0, 0, 156, 1150, 1153, 1151, 1152, 1144, 1145, - 1146, 1147, 0, 0, 0, 42, 1169, 1170, 0, 1177, - 1179, 1178, 1174, 1175, 1173, 0, 0, 0, 0, 1180, - 0, 1183, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1181, 1192, 0, 0, 0, 1182, 1184, 1234, - 1167, 1168, 1166, 210, 0, 213, 206, 0, 215, 207, - 0, 217, 208, 1165, 1164, 209, 211, 212, 0, 0, - 205, 0, 0, 0, 0, 1248, 1261, 1251, 0, 0, - 1254, 0, 0, 1253, 1252, 164, 1270, 0, 1269, 1265, + 61, 62, 63, 70, 64, 0, 335, 0, 387, 383, + 379, 380, 384, 381, 386, 336, 390, 337, 298, 395, + 399, 394, 301, 300, 299, 0, 0, 338, 406, 340, + 0, 339, 0, 413, 341, 425, 417, 428, 418, 419, + 421, 0, 423, 424, 156, 342, 0, 0, 343, 0, + 0, 156, 344, 437, 156, 435, 345, 438, 347, 156, + 439, 346, 0, 156, 0, 348, 457, 0, 455, 473, + 0, 0, 0, 461, 453, 0, 463, 478, 466, 350, + 484, 485, 351, 352, 0, 0, 0, 448, 0, 355, + 444, 445, 0, 356, 357, 0, 492, 486, 491, 487, + 488, 489, 490, 360, 361, 493, 363, 0, 494, 495, + 496, 365, 502, 497, 498, 500, 367, 508, 510, 512, + 514, 507, 509, 516, 369, 0, 0, 521, 0, 373, + 156, 523, 530, 0, 531, 549, 532, 551, 552, 553, + 537, 554, 556, 555, 557, 541, 545, 562, 0, 0, + 0, 0, 558, 546, 25, 0, 0, 567, 566, 0, + 0, 0, 0, 27, 0, 0, 577, 0, 578, 0, + 0, 0, 0, 0, 579, 0, 723, 0, 580, 0, + 581, 0, 0, 582, 0, 728, 727, 726, 0, 731, + 0, 0, 0, 901, 0, 0, 0, 735, 739, 741, + 937, 0, 0, 0, 0, 839, 0, 0, 0, 874, + 0, 0, 0, 0, 0, 0, 0, 876, 0, 0, + 0, 32, 141, 142, 140, 139, 1124, 1119, 1125, 135, + 136, 134, 137, 133, 1120, 0, 1122, 1123, 34, 0, + 0, 0, 0, 1136, 1137, 0, 156, 0, 1134, 1131, + 0, 0, 0, 156, 1154, 1157, 1155, 1156, 1148, 1149, + 1150, 1151, 0, 0, 0, 42, 1173, 1174, 0, 1181, + 1183, 1182, 1178, 1179, 1177, 0, 0, 0, 0, 1184, + 0, 1187, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1185, 1196, 0, 0, 0, 1186, 1188, 1238, + 1171, 1172, 1170, 210, 0, 213, 206, 0, 215, 207, + 0, 217, 208, 1169, 1168, 209, 211, 212, 0, 0, + 205, 0, 0, 0, 0, 1252, 1265, 1255, 0, 0, + 1258, 0, 0, 1257, 1256, 164, 1274, 0, 1273, 1269, 230, 226, 0, 235, 0, 232, 0, 251, 151, 154, 155, 153, 152, 266, 267, 268, 256, 255, 271, 273, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, 314, 96, 93, 94, 95, 156, 316, 315, 0, 0, 0, 0, 0, 0, 0, 329, 0, 325, - 323, 322, 334, 378, 0, 0, 381, 396, 397, 392, - 393, 398, 400, 399, 394, 302, 303, 389, 388, 404, - 403, 0, 408, 422, 423, 412, 425, 418, 416, 411, + 323, 322, 334, 382, 0, 0, 385, 400, 401, 396, + 397, 402, 404, 403, 398, 302, 303, 393, 392, 408, + 407, 0, 412, 426, 427, 416, 429, 422, 420, 415, 0, 0, 156, 156, 164, 164, 164, 156, 0, 0, - 156, 470, 452, 463, 0, 454, 80, 465, 0, 0, - 456, 458, 156, 475, 0, 0, 461, 0, 0, 0, - 446, 0, 0, 0, 0, 947, 949, 948, 0, 1041, - 0, 1020, 0, 1023, 0, 0, 1043, 1045, 0, 1036, - 359, 0, 495, 497, 507, 500, 509, 501, 511, 502, - 513, 499, 0, 0, 518, 515, 516, 164, 543, 555, - 556, 557, 559, 0, 572, 560, 0, 0, 0, 0, - 0, 0, 177, 177, 171, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 174, 174, 171, 0, 0, 171, - 0, 0, 0, 0, 0, 614, 638, 0, 0, 0, - 610, 0, 0, 0, 0, 177, 171, 0, 0, 715, - 0, 725, 726, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 783, 0, 0, - 0, 0, 0, 806, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 825, 0, 0, 830, 831, 0, 0, - 0, 850, 852, 851, 0, 854, 0, 0, 861, 863, - 864, 898, 0, 0, 0, 0, 729, 730, 941, 939, - 944, 943, 942, 940, 945, 0, 734, 0, 935, 934, - 738, 0, 938, 0, 739, 740, 741, 742, 0, 0, - 0, 0, 0, 837, 0, 0, 838, 1064, 0, 1067, - 1063, 0, 0, 0, 839, 871, 840, 1082, 1087, 1084, - 1083, 1081, 1088, 1085, 1079, 1086, 1080, 1089, 0, 0, - 845, 0, 0, 0, 0, 846, 1098, 0, 1100, 847, - 0, 1102, 848, 868, 0, 0, 0, 873, 874, 875, - 1117, 1131, 0, 0, 1138, 1134, 0, 0, 0, 1129, - 1128, 1142, 1141, 0, 0, 1158, 0, 0, 1154, 0, - 1162, 0, 0, 1155, 0, 1176, 199, 199, 0, 199, - 0, 1202, 0, 1201, 1193, 0, 0, 0, 0, 1197, - 0, 0, 0, 1200, 0, 0, 0, 0, 0, 1195, - 1203, 0, 0, 0, 1194, 199, 199, 199, 0, 214, - 216, 218, 0, 219, 0, 58, 0, 1244, 0, 1249, - 0, 156, 1255, 1256, 0, 1258, 1259, 0, 165, 166, - 1250, 1271, 1272, 0, 222, 0, 236, 0, 0, 0, - 0, 270, 0, 0, 0, 0, 0, 0, 0, 0, - 308, 156, 0, 0, 0, 0, 156, 0, 328, 0, - 327, 385, 384, 0, 0, 0, 156, 0, 164, 430, - 428, 432, 436, 0, 0, 0, 164, 0, 84, 83, - 471, 455, 0, 466, 468, 167, 0, 0, 353, 0, - 0, 58, 0, 445, 0, 0, 959, 0, 0, 0, - 0, 0, 0, 973, 0, 0, 0, 0, 0, 0, - 990, 991, 0, 0, 0, 0, 0, 1002, 0, 1008, - 1009, 1011, 1013, 0, 1017, 1028, 1029, 1030, 0, 1032, - 1037, 1039, 1040, 1038, 946, 0, 1019, 0, 1018, 958, - 0, 0, 1024, 0, 1026, 0, 1025, 1046, 1027, 1034, - 0, 0, 371, 0, 0, 570, 571, 0, 568, 564, - 0, 177, 177, 177, 178, 179, 582, 583, 173, 172, - 0, 177, 177, 177, 0, 588, 598, 174, 177, 177, - 177, 175, 176, 177, 177, 0, 177, 177, 0, 174, - 0, 611, 0, 0, 0, 637, 0, 636, 0, 0, - 613, 0, 612, 0, 0, 0, 0, 174, 174, 171, - 0, 0, 171, 0, 0, 0, 177, 177, 711, 0, - 177, 177, 716, 0, 190, 191, 192, 193, 194, 195, - 0, 88, 89, 87, 746, 0, 0, 0, 0, 0, - 0, 891, 889, 884, 0, 894, 878, 895, 881, 893, - 887, 876, 890, 879, 877, 896, 892, 0, 0, 0, - 762, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, - 805, 807, 0, 0, 812, 811, 0, 0, 180, 0, - 0, 0, 156, 0, 821, 0, 0, 0, 0, 826, - 827, 828, 0, 0, 0, 834, 849, 853, 855, 858, - 857, 0, 0, 0, 862, 899, 901, 0, 900, 732, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1047, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 736, 0, 0, 0, 0, - 836, 0, 156, 1060, 1058, 1056, 0, 0, 156, 1062, - 841, 0, 0, 0, 0, 1097, 0, 0, 1103, 866, - 867, 0, 869, 1137, 1139, 1136, 1135, 1126, 0, 0, - 0, 1159, 0, 0, 1163, 1171, 201, 202, 203, 204, - 200, 1186, 1185, 0, 0, 0, 1188, 1187, 199, 0, - 0, 0, 1196, 0, 0, 0, 0, 0, 1213, 0, - 1227, 1226, 1228, 0, 0, 0, 1199, 0, 0, 0, - 1198, 1208, 1207, 1209, 1205, 1204, 1206, 1230, 1229, 1231, - 0, 0, 0, 1246, 1247, 0, 156, 1262, 1257, 1260, - 0, 0, 156, 0, 0, 0, 233, 0, 0, 0, - 0, 0, 0, 0, 0, 305, 304, 0, 0, 296, - 307, 309, 0, 319, 321, 320, 318, 156, 326, 0, - 0, 0, 164, 156, 0, 0, 0, 0, 450, 464, - 82, 81, 473, 0, 467, 169, 170, 168, 460, 0, - 476, 0, 0, 0, 448, 442, 0, 0, 0, 0, - 0, 0, 156, 960, 0, 963, 0, 0, 966, 0, - 156, 971, 0, 974, 975, 0, 977, 978, 979, 0, - 983, 0, 0, 986, 0, 992, 0, 0, 0, 997, - 998, 996, 0, 0, 0, 1003, 1004, 0, 0, 1007, - 1010, 1012, 1014, 0, 0, 1031, 1033, 950, 1042, 951, - 0, 0, 1044, 1035, 0, 0, 523, 524, 0, 0, - 569, 0, 579, 580, 581, 177, 585, 586, 587, 0, - 0, 0, 592, 593, 171, 0, 0, 0, 177, 599, - 600, 601, 602, 604, 174, 607, 608, 0, 177, 0, - 0, 0, 174, 174, 171, 0, 0, 0, 0, 635, - 0, 639, 0, 0, 0, 0, 0, 174, 174, 171, - 0, 0, 171, 0, 0, 0, 0, 0, 174, 174, - 171, 0, 0, 171, 0, 0, 0, 0, 0, 174, - 174, 171, 0, 0, 171, 0, 0, 0, 0, 174, - 174, 171, 0, 0, 0, 174, 615, 616, 617, 618, - 620, 0, 623, 624, 0, 174, 0, 0, 709, 710, - 177, 713, 714, 0, 745, 156, 747, 0, 0, 751, - 0, 0, 0, 0, 0, 883, 880, 886, 885, 882, - 888, 0, 760, 0, 0, 0, 0, 156, 767, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 784, 785, 786, 0, 790, 787, 789, 0, - 0, 795, 794, 796, 797, 0, 0, 0, 0, 0, - 0, 156, 156, 810, 186, 182, 187, 181, 184, 183, - 185, 816, 817, 818, 0, 0, 820, 822, 156, 156, - 0, 829, 832, 156, 156, 856, 860, 902, 733, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, - 927, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 928, 0, 0, 0, 0, - 0, 743, 744, 156, 164, 1061, 0, 0, 1065, 1066, - 0, 0, 843, 0, 156, 0, 1099, 1101, 865, 0, - 1156, 1157, 1160, 1161, 199, 199, 199, 1232, 1211, 1210, - 1212, 1215, 1214, 1218, 1217, 1219, 1216, 1224, 1223, 1225, - 1221, 1220, 1222, 0, 0, 1241, 0, 1263, 0, 156, - 0, 1266, 0, 0, 237, 0, 234, 0, 0, 0, - 274, 0, 0, 0, 0, 156, 0, 311, 144, 0, - 405, 0, 426, 164, 167, 0, 0, 439, 0, 477, - 478, 0, 443, 0, 0, 0, 0, 0, 156, 961, - 167, 167, 167, 156, 967, 167, 164, 167, 167, 156, - 980, 167, 167, 167, 156, 987, 167, 167, 156, 0, - 167, 156, 167, 167, 156, 167, 156, 1021, 1022, 0, - 0, 522, 565, 0, 584, 589, 590, 591, 0, 595, - 596, 597, 603, 177, 174, 609, 626, 627, 628, 629, - 630, 0, 632, 633, 174, 0, 0, 0, 174, 174, - 171, 0, 0, 0, 0, 0, 0, 174, 174, 171, + 156, 474, 456, 467, 0, 458, 80, 469, 0, 0, + 460, 462, 156, 479, 0, 0, 465, 0, 0, 354, + 0, 450, 0, 0, 0, 0, 951, 953, 952, 0, + 1045, 0, 1024, 0, 1027, 0, 0, 1047, 1049, 0, + 1040, 359, 0, 499, 501, 511, 504, 513, 505, 515, + 506, 517, 503, 0, 0, 372, 522, 519, 520, 164, + 547, 559, 560, 561, 563, 0, 576, 564, 0, 0, + 0, 0, 0, 0, 177, 177, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 174, 171, 0, - 0, 0, 174, 177, 177, 177, 177, 177, 0, 177, - 177, 0, 174, 174, 177, 177, 177, 177, 177, 0, - 177, 177, 0, 174, 174, 689, 690, 691, 692, 694, - 0, 697, 698, 0, 174, 700, 701, 702, 703, 704, - 0, 706, 707, 174, 619, 174, 0, 625, 0, 0, - 712, 0, 748, 167, 0, 0, 167, 0, 0, 0, - 759, 167, 763, 764, 167, 766, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 788, - 791, 792, 0, 167, 0, 0, 0, 808, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1091, 1070, 0, 1077, 1078, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 0, 0, 85, 0, 0, 936, 937, 164, - 0, 0, 0, 1068, 842, 844, 164, 156, 1149, 1190, - 1189, 1191, 1233, 0, 1243, 1273, 0, 0, 1268, 1267, - 238, 0, 0, 0, 279, 0, 0, 0, 297, 167, - 406, 410, 427, 429, 0, 437, 472, 0, 0, 0, - 0, 0, 0, 957, 962, 965, 964, 968, 969, 970, - 972, 976, 981, 982, 984, 985, 988, 989, 993, 164, - 167, 1000, 164, 1001, 1005, 164, 1015, 164, 0, 0, - 521, 0, 594, 605, 177, 174, 634, 177, 177, 177, - 177, 177, 0, 177, 177, 174, 177, 177, 177, 177, - 177, 0, 177, 177, 174, 177, 177, 177, 177, 177, - 0, 177, 177, 174, 177, 649, 650, 651, 652, 654, - 174, 657, 658, 0, 177, 177, 678, 679, 680, 681, - 683, 174, 686, 687, 0, 177, 693, 174, 0, 699, - 174, 708, 621, 174, 717, 718, 156, 750, 0, 167, - 753, 0, 156, 0, 761, 765, 156, 0, 772, 773, - 774, 775, 779, 780, 776, 777, 778, 0, 0, 167, - 800, 0, 156, 0, 0, 813, 167, 0, 0, 167, - 167, 0, 859, 0, 188, 188, 0, 0, 188, 0, - 188, 1047, 0, 0, 0, 0, 0, 0, 0, 0, - 1069, 0, 0, 188, 188, 0, 0, 0, 0, 0, - 0, 0, 0, 929, 0, 0, 0, 1047, 86, 0, - 188, 0, 1093, 156, 156, 0, 164, 0, 220, 1275, - 1274, 0, 0, 242, 0, 0, 0, 0, 312, 438, - 331, 0, 953, 0, 196, 0, 994, 995, 999, 1006, - 1016, 364, 331, 0, 606, 631, 640, 641, 642, 643, - 644, 174, 646, 647, 177, 669, 670, 671, 672, 673, - 174, 675, 676, 177, 660, 661, 662, 663, 664, 174, - 666, 667, 177, 653, 177, 174, 659, 682, 177, 174, - 688, 695, 174, 705, 622, 0, 167, 754, 0, 0, - 0, 0, 0, 781, 782, 798, 0, 0, 0, 809, - 814, 0, 823, 824, 815, 167, 0, 189, 1047, 1047, - 85, 0, 1047, 0, 1047, 903, 156, 0, 1072, 0, - 1075, 1112, 1076, 1074, 1071, 0, 1047, 1047, 85, 0, - 0, 1047, 1047, 0, 0, 1047, 932, 930, 931, 910, - 1047, 1047, 1093, 1107, 0, 1059, 1057, 1095, 0, 0, - 0, 0, 244, 0, 0, 0, 332, 333, 354, 0, - 0, 197, 198, 955, 956, 372, 0, 177, 648, 177, - 677, 177, 668, 655, 177, 684, 177, 696, 0, 749, - 167, 167, 0, 167, 0, 167, 167, 0, 167, 0, - 1047, 916, 912, 1047, 0, 917, 0, 911, 1047, 0, - 1073, 0, 914, 913, 1047, 0, 0, 908, 906, 1047, - 156, 907, 909, 915, 1107, 1054, 0, 0, 1094, 1105, - 1096, 1148, 0, 0, 0, 275, 298, 301, 299, 0, - 0, 952, 156, 567, 645, 674, 665, 656, 685, 167, - 752, 758, 0, 771, 768, 799, 804, 0, 819, 0, - 921, 905, 85, 0, 919, 1113, 0, 904, 85, 0, - 920, 0, 1055, 1109, 1111, 0, 1104, 0, 0, 280, - 0, 0, 0, 0, 196, 0, 755, 156, 769, 801, - 833, 1047, 0, 0, 1047, 0, 167, 1110, 1106, 243, - 0, 0, 0, 0, 0, 954, 728, 156, 756, 770, - 156, 802, 923, 0, 1047, 922, 0, 0, 245, 291, - 0, 290, 0, 757, 803, 85, 924, 85, 1047, 289, - 288, 1047, 1047, 918, 926, 925 + 0, 171, 0, 0, 0, 0, 0, 618, 642, 0, + 0, 0, 614, 0, 0, 0, 0, 177, 171, 0, + 0, 719, 0, 729, 730, 156, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 787, + 0, 0, 0, 0, 0, 810, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 829, 0, 0, 834, 835, + 0, 0, 0, 854, 856, 855, 0, 858, 0, 0, + 865, 867, 868, 902, 0, 0, 0, 0, 733, 734, + 945, 943, 948, 947, 946, 944, 949, 0, 738, 0, + 939, 938, 742, 0, 942, 0, 743, 744, 745, 746, + 0, 0, 0, 0, 0, 841, 0, 0, 842, 1068, + 0, 1071, 1067, 0, 0, 0, 843, 875, 844, 1086, + 1091, 1088, 1087, 1085, 1092, 1089, 1083, 1090, 1084, 1093, + 0, 0, 849, 0, 0, 0, 0, 850, 1102, 0, + 1104, 851, 0, 1106, 852, 872, 0, 0, 0, 877, + 878, 879, 1121, 1135, 0, 0, 1142, 1138, 0, 0, + 0, 1133, 1132, 1146, 1145, 0, 0, 1162, 0, 0, + 1158, 0, 1166, 0, 0, 1159, 0, 1180, 199, 199, + 0, 199, 0, 1206, 0, 1205, 1197, 0, 0, 0, + 0, 1201, 0, 0, 0, 1204, 0, 0, 0, 0, + 0, 1199, 1207, 0, 0, 0, 1198, 199, 199, 199, + 0, 214, 216, 218, 0, 219, 0, 58, 0, 1248, + 0, 1253, 0, 156, 1259, 1260, 0, 1262, 1263, 0, + 165, 166, 1254, 1275, 1276, 0, 222, 0, 236, 0, + 0, 0, 0, 270, 0, 0, 0, 0, 0, 0, + 0, 0, 308, 156, 0, 0, 0, 0, 156, 0, + 328, 0, 327, 389, 388, 0, 0, 0, 156, 0, + 164, 434, 432, 436, 440, 0, 0, 0, 164, 0, + 84, 83, 475, 459, 0, 470, 472, 167, 0, 0, + 353, 0, 0, 58, 0, 449, 0, 0, 963, 0, + 0, 0, 0, 0, 0, 977, 0, 0, 0, 0, + 0, 0, 994, 995, 0, 0, 0, 0, 0, 1006, + 0, 1012, 1013, 1015, 1017, 0, 1021, 1032, 1033, 1034, + 0, 1036, 1041, 1043, 1044, 1042, 950, 0, 1023, 0, + 1022, 962, 0, 0, 1028, 0, 1030, 0, 1029, 1050, + 1031, 1038, 0, 0, 371, 0, 0, 574, 575, 0, + 572, 568, 0, 177, 177, 177, 178, 179, 586, 587, + 173, 172, 0, 177, 177, 177, 0, 592, 602, 174, + 177, 177, 177, 175, 176, 177, 177, 0, 177, 177, + 0, 174, 0, 615, 0, 0, 0, 641, 0, 640, + 0, 0, 617, 0, 616, 0, 0, 0, 0, 174, + 174, 171, 0, 0, 171, 0, 0, 0, 177, 177, + 715, 0, 177, 177, 720, 0, 190, 191, 192, 193, + 194, 195, 0, 88, 89, 87, 750, 0, 0, 0, + 0, 0, 0, 895, 893, 888, 0, 898, 882, 899, + 885, 897, 891, 880, 894, 883, 881, 900, 896, 0, + 0, 0, 766, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 797, 0, 0, 0, + 0, 0, 809, 811, 0, 0, 816, 815, 0, 0, + 180, 0, 0, 0, 156, 0, 825, 0, 0, 0, + 0, 830, 831, 832, 0, 0, 0, 838, 853, 857, + 859, 862, 861, 0, 0, 0, 866, 903, 905, 0, + 904, 736, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1051, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 740, 0, 0, + 0, 0, 840, 0, 156, 1064, 1062, 1060, 0, 0, + 156, 1066, 845, 0, 0, 0, 0, 1101, 0, 0, + 1107, 870, 871, 0, 873, 1141, 1143, 1140, 1139, 1130, + 0, 0, 0, 1163, 0, 0, 1167, 1175, 201, 202, + 203, 204, 200, 1190, 1189, 0, 0, 0, 1192, 1191, + 199, 0, 0, 0, 1200, 0, 0, 0, 0, 0, + 1217, 0, 1231, 1230, 1232, 0, 0, 0, 1203, 0, + 0, 0, 1202, 1212, 1211, 1213, 1209, 1208, 1210, 1234, + 1233, 1235, 0, 0, 0, 1250, 1251, 0, 156, 1266, + 1261, 1264, 0, 0, 156, 0, 0, 0, 233, 0, + 0, 0, 0, 0, 0, 0, 0, 305, 304, 0, + 0, 296, 307, 309, 0, 319, 321, 320, 318, 156, + 326, 0, 0, 0, 164, 156, 0, 0, 0, 0, + 454, 468, 82, 81, 477, 0, 471, 169, 170, 168, + 464, 0, 480, 0, 0, 0, 452, 446, 0, 0, + 0, 0, 0, 0, 156, 964, 0, 967, 0, 0, + 970, 0, 156, 975, 0, 978, 979, 0, 981, 982, + 983, 0, 987, 0, 0, 990, 0, 996, 0, 0, + 0, 1001, 1002, 1000, 0, 0, 0, 1007, 1008, 0, + 0, 1011, 1014, 1016, 1018, 0, 0, 1035, 1037, 954, + 1046, 955, 0, 0, 1048, 1039, 0, 0, 527, 528, + 0, 0, 573, 0, 583, 584, 585, 177, 589, 590, + 591, 0, 0, 0, 596, 597, 171, 0, 0, 0, + 177, 603, 604, 605, 606, 608, 174, 611, 612, 0, + 177, 0, 0, 0, 174, 174, 171, 0, 0, 0, + 0, 639, 0, 643, 0, 0, 0, 0, 0, 174, + 174, 171, 0, 0, 171, 0, 0, 0, 0, 0, + 174, 174, 171, 0, 0, 171, 0, 0, 0, 0, + 0, 174, 174, 171, 0, 0, 171, 0, 0, 0, + 0, 174, 174, 171, 0, 0, 0, 174, 619, 620, + 621, 622, 624, 0, 627, 628, 0, 174, 0, 0, + 713, 714, 177, 717, 718, 0, 749, 156, 751, 0, + 0, 755, 0, 0, 0, 0, 0, 887, 884, 890, + 889, 886, 892, 0, 764, 0, 0, 0, 0, 156, + 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 788, 789, 790, 0, 794, 791, + 793, 0, 0, 799, 798, 800, 801, 0, 0, 0, + 0, 0, 0, 156, 156, 814, 186, 182, 187, 181, + 184, 183, 185, 820, 821, 822, 0, 0, 824, 826, + 156, 156, 0, 833, 836, 156, 156, 860, 864, 906, + 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1094, 931, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 932, 0, 0, + 0, 0, 0, 747, 748, 156, 164, 1065, 0, 0, + 1069, 1070, 0, 0, 847, 0, 156, 0, 1103, 1105, + 869, 0, 1160, 1161, 1164, 1165, 199, 199, 199, 1236, + 1215, 1214, 1216, 1219, 1218, 1222, 1221, 1223, 1220, 1228, + 1227, 1229, 1225, 1224, 1226, 0, 0, 1245, 0, 1267, + 0, 156, 0, 1270, 0, 0, 237, 0, 234, 0, + 0, 0, 274, 0, 0, 0, 0, 156, 0, 311, + 144, 0, 409, 0, 430, 164, 167, 0, 0, 443, + 0, 481, 482, 0, 447, 0, 0, 0, 0, 0, + 156, 965, 167, 167, 167, 156, 971, 167, 164, 167, + 167, 156, 984, 167, 167, 167, 156, 991, 167, 167, + 156, 0, 167, 156, 167, 167, 156, 167, 156, 1025, + 1026, 0, 0, 526, 569, 0, 588, 593, 594, 595, + 0, 599, 600, 601, 607, 177, 174, 613, 630, 631, + 632, 633, 634, 0, 636, 637, 174, 0, 0, 0, + 174, 174, 171, 0, 0, 0, 0, 0, 0, 174, + 174, 171, 0, 0, 0, 0, 0, 0, 174, 174, + 171, 0, 0, 0, 174, 177, 177, 177, 177, 177, + 0, 177, 177, 0, 174, 174, 177, 177, 177, 177, + 177, 0, 177, 177, 0, 174, 174, 693, 694, 695, + 696, 698, 0, 701, 702, 0, 174, 704, 705, 706, + 707, 708, 0, 710, 711, 174, 623, 174, 0, 629, + 0, 0, 716, 0, 752, 167, 0, 0, 167, 0, + 0, 0, 763, 167, 767, 768, 167, 770, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 792, 795, 796, 0, 167, 0, 0, 0, 812, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1095, 1074, 0, 1081, + 1082, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 156, 0, 0, 85, 0, 0, 940, + 941, 164, 0, 0, 0, 1072, 846, 848, 164, 156, + 1153, 1194, 1193, 1195, 1237, 0, 1247, 1277, 0, 0, + 1272, 1271, 238, 0, 0, 0, 279, 0, 0, 0, + 297, 167, 410, 414, 431, 433, 0, 441, 476, 156, + 0, 0, 0, 0, 0, 0, 961, 966, 969, 968, + 972, 973, 974, 976, 980, 985, 986, 988, 989, 992, + 993, 997, 164, 167, 1004, 164, 1005, 1009, 164, 1019, + 164, 0, 156, 0, 525, 0, 598, 609, 177, 174, + 638, 177, 177, 177, 177, 177, 0, 177, 177, 174, + 177, 177, 177, 177, 177, 0, 177, 177, 174, 177, + 177, 177, 177, 177, 0, 177, 177, 174, 177, 653, + 654, 655, 656, 658, 174, 661, 662, 0, 177, 177, + 682, 683, 684, 685, 687, 174, 690, 691, 0, 177, + 697, 174, 0, 703, 174, 712, 625, 174, 721, 722, + 156, 754, 0, 167, 757, 0, 156, 0, 765, 769, + 156, 0, 776, 777, 778, 779, 783, 784, 780, 781, + 782, 0, 0, 167, 804, 0, 156, 0, 0, 817, + 167, 0, 0, 167, 167, 0, 863, 0, 188, 188, + 0, 0, 188, 0, 188, 1051, 0, 0, 0, 0, + 0, 0, 0, 0, 1073, 0, 0, 188, 188, 0, + 0, 0, 0, 0, 0, 0, 0, 933, 0, 0, + 0, 1051, 86, 0, 188, 0, 1097, 156, 156, 0, + 164, 0, 220, 1279, 1278, 0, 0, 242, 0, 0, + 0, 0, 312, 442, 0, 331, 0, 957, 0, 196, + 0, 998, 999, 1003, 1010, 1020, 364, 0, 331, 0, + 610, 635, 644, 645, 646, 647, 648, 174, 650, 651, + 177, 673, 674, 675, 676, 677, 174, 679, 680, 177, + 664, 665, 666, 667, 668, 174, 670, 671, 177, 657, + 177, 174, 663, 686, 177, 174, 692, 699, 174, 709, + 626, 0, 167, 758, 0, 0, 0, 0, 0, 785, + 786, 802, 0, 0, 0, 813, 818, 0, 827, 828, + 819, 167, 0, 189, 1051, 1051, 85, 0, 1051, 0, + 1051, 907, 156, 0, 1076, 0, 1079, 1116, 1080, 1078, + 1075, 0, 1051, 1051, 85, 0, 0, 1051, 1051, 0, + 0, 1051, 936, 934, 935, 914, 1051, 1051, 1097, 1111, + 0, 1063, 1061, 1099, 0, 0, 0, 0, 244, 0, + 0, 0, 331, 332, 333, 375, 0, 0, 197, 198, + 959, 960, 331, 377, 0, 177, 652, 177, 681, 177, + 672, 659, 177, 688, 177, 700, 0, 753, 167, 167, + 0, 167, 0, 167, 167, 0, 167, 0, 1051, 920, + 916, 1051, 0, 921, 0, 915, 1051, 0, 1077, 0, + 918, 917, 1051, 0, 0, 912, 910, 1051, 156, 911, + 913, 919, 1111, 1058, 0, 0, 1098, 1109, 1100, 1152, + 0, 0, 0, 275, 298, 301, 299, 0, 0, 376, + 956, 156, 378, 571, 649, 678, 669, 660, 689, 167, + 756, 762, 0, 775, 772, 803, 808, 0, 823, 0, + 925, 909, 85, 0, 923, 1117, 0, 908, 85, 0, + 924, 0, 1059, 1113, 1115, 0, 1108, 0, 0, 280, + 0, 0, 0, 0, 196, 0, 759, 156, 773, 805, + 837, 1051, 0, 0, 1051, 0, 167, 1114, 1110, 243, + 0, 0, 0, 0, 0, 958, 732, 156, 760, 774, + 156, 806, 927, 0, 1051, 926, 0, 0, 245, 291, + 0, 290, 0, 761, 807, 85, 928, 85, 1051, 289, + 288, 1051, 1051, 922, 930, 929 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 53, 1413, 172, 152, 1260, 2487, 2488, 429, 430, + -1, 53, 1415, 172, 152, 1262, 2491, 2492, 429, 430, 431, 432, 153, 154, 155, 694, 686, 91, 813, 452, - 1210, 1678, 1350, 1363, 1346, 1921, 2588, 1410, 2643, 1581, + 1212, 1680, 1352, 1365, 1348, 1923, 2594, 1412, 2650, 1583, 340, 766, 769, 772, 780, 63, 365, 371, 375, 378, 68, 381, 75, 397, 393, 387, 404, 82, 409, 92, - 98, 414, 416, 418, 486, 867, 1647, 420, 423, 105, - 439, 156, 158, 2638, 174, 215, 475, 856, 477, 487, - 859, 864, 489, 491, 870, 494, 872, 505, 875, 877, - 508, 512, 516, 518, 521, 525, 553, 549, 1273, 539, - 895, 900, 892, 1261, 906, 542, 563, 566, 571, 576, - 584, 935, 937, 939, 941, 589, 945, 218, 591, 1748, - 237, 594, 596, 600, 605, 613, 247, 1339, 617, 255, - 626, 1355, 628, 634, 990, 1371, 985, 1789, 1377, 1375, - 1791, 986, 1380, 1382, 640, 643, 638, 257, 265, 267, - 681, 1067, 1437, 1056, 1535, 1965, 1070, 1074, 1065, 930, - 1314, 1318, 1326, 1328, 1949, 273, 1083, 1086, 1094, 2254, - 2255, 2256, 1950, 2623, 2624, 1115, 1119, 1122, 2698, 2699, - 2695, 2696, 2743, 2257, 2258, 281, 287, 295, 708, 703, - 300, 305, 307, 718, 725, 1148, 1153, 775, 763, 313, - 317, 732, 323, 739, 1586, 752, 753, 1184, 1179, 1592, - 1169, 1598, 1610, 1606, 1173, 757, 741, 329, 330, 344, - 1197, 347, 353, 790, 793, 787, 355, 358, 798 + 98, 414, 416, 418, 486, 867, 1649, 420, 423, 105, + 439, 156, 158, 2645, 174, 215, 909, 945, 475, 856, + 477, 487, 859, 864, 489, 491, 870, 494, 872, 505, + 875, 877, 508, 512, 516, 518, 521, 525, 553, 549, + 1275, 539, 895, 900, 892, 1263, 906, 542, 563, 566, + 571, 576, 584, 936, 938, 940, 942, 589, 947, 218, + 591, 1750, 237, 594, 596, 600, 605, 613, 247, 1341, + 617, 255, 626, 1357, 628, 634, 992, 1373, 987, 1791, + 1379, 1377, 1793, 988, 1382, 1384, 640, 643, 638, 257, + 265, 267, 681, 1069, 1439, 1058, 1537, 1967, 1072, 1076, + 1067, 931, 1316, 1320, 1328, 1330, 1951, 273, 1085, 1088, + 1096, 2256, 2257, 2258, 1952, 2629, 2630, 1117, 1121, 1124, + 2706, 2707, 2703, 2704, 2753, 2259, 2260, 281, 287, 295, + 708, 703, 300, 305, 307, 718, 725, 1150, 1155, 775, + 763, 313, 317, 732, 323, 739, 1588, 752, 753, 1186, + 1181, 1594, 1171, 1600, 1612, 1608, 1175, 757, 741, 329, + 330, 344, 1199, 347, 353, 790, 793, 787, 355, 358, + 798 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -2563 +#define YYPACT_NINF -2556 static const yytype_int16 yypact[] = { - 5234, 68, 459, 82, -2563, -2563, 806, -139, 566, 525, - 747, 99, 3371, 120, 263, 1364, 62, 5419, 71, 2305, - -2563, 8, 743, 168, 1025, 219, 15, 495, 279, 501, - 182, 808, 1052, 39, 731, 474, 148, 279, -2563, 108, - 35, 967, -2563, 497, 513, 1144, -2563, 565, -2563, 86, - 3909, 311, 88, 554, 26, 128, 282, 571, 581, 104, - 637, 30, 175, -2563, -2563, -2563, 686, 619, -2563, 152, - 65, 263, 379, 84, 190, -2563, 639, 619, -2563, -2563, - 110, 619, -2563, -2563, -2563, -2563, 619, -2563, -2563, -2563, - -2563, -2563, -2563, 275, 640, 677, 705, 603, -2563, 619, - 1337, 619, 619, 973, 619, -2563, -2563, -2563, 551, -2563, - -2563, -2563, -2563, 4809, -2563, -2563, -2563, -2563, -2563, -2563, - 619, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, 1290, -2563, 619, -2563, 751, -2563, -2563, - 263, 263, 263, 263, 263, 263, -2563, -2563, 263, 263, - 263, 263, -2563, 670, -2563, 767, 1553, 729, 258, 529, - 694, -29, 4195, 523, 4860, 4658, 824, 4809, 4110, -2563, - 1018, -90, 813, 878, 816, 119, 847, 882, 279, 416, - -2563, 836, -2563, 679, 636, 192, -2563, 203, -2563, 922, - -2563, 105, 839, 18, -2563, -2563, 4931, -2563, -2563, -2563, - 869, 881, 920, -2563, -2563, -2563, -2563, 649, -2563, -2563, - -2563, -2563, 701, -2563, -2563, 4931, 4450, -2563, 959, -2563, - 37, -2563, 978, 974, 385, -2563, 619, -2563, 982, 42, - 990, 289, 868, 994, 23, -2563, -2563, -2563, 1002, 1007, - 263, 263, 619, 619, -2563, -2563, 1035, -2563, -2563, -2563, - -2563, -2563, -2563, 3808, 720, -2563, 1037, 144, 619, 4931, - 619, -2563, 1043, -2563, -2563, -2563, -2563, -2563, 619, 1114, - 263, 2611, 619, 1290, 619, -2563, 1011, -2563, 5017, -2563, - -2563, 744, 1049, 1058, 619, -2563, 1061, -2563, -2563, -37, - 1074, 4931, 1085, -2563, 1291, 619, 1000, -2563, 473, 981, - 1438, 453, 1100, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - 1103, -2563, 750, 109, 136, 197, 125, 619, 619, 170, - -2563, 619, 837, 1117, -2563, 619, 619, -2563, 1120, 29, - 38, 1132, 1290, -2563, -2563, -2563, 970, 619, -2563, -2563, - -2563, -2563, -2563, -2563, 619, -2563, 1134, 1137, -2563, 619, - 183, -2563, -2563, -2563, -2563, -2563, -2563, 619, -2563, -2563, - 619, -2563, -2563, 160, 160, -2563, 1143, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, 950, 619, - 619, 1148, 1159, 1162, -2563, -2563, 619, 619, 619, -2563, - 619, -2563, 1165, -2563, -2563, -2563, -2563, 683, -2563, 1179, - -2563, 4931, 1204, -2563, 619, -2563, -2563, -2563, 619, 1209, - 1217, 1217, 4931, 619, 619, 619, 619, 619, 619, -2563, - 619, 4809, 1337, 619, 619, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, 1337, 619, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, 1226, -2563, 963, 25, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -91, -2563, - -2563, -2563, 1062, -2563, 698, 381, 381, -2563, -2563, -2563, - 1243, -2563, 1257, -2563, -2563, -38, -2563, 1095, -2563, -2563, - -2563, 1094, -2563, -2563, 1290, -2563, 619, 619, -2563, 4931, - 4931, 1290, -2563, -2563, 1290, -2563, -2563, -2563, -2563, 1290, - -2563, -2563, 4931, 1290, 619, -2563, -2563, 4931, -2563, 1275, - 476, 1086, 3, -2563, -2563, 1091, 4931, 7, -2563, -2563, - -2563, -2563, -2563, -2563, 1294, 1298, 1297, -2563, 1106, -2563, - -2563, -2563, 619, -2563, -2563, 483, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, 105, -2563, -2563, - -2563, -2563, -2563, -2563, 1115, 1122, -2563, -2563, 1254, 1256, - 1259, -2563, -2563, 1096, -2563, 619, 1302, 1098, 5017, -2563, - 1290, -2563, -2563, 1324, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, 4931, 4931, - 4931, 4931, -2563, -2563, -2563, 1330, 263, -2563, -2563, 1331, - 1334, 1145, 619, -2563, 755, 1262, -2563, 1340, -2563, 233, - 1264, 4775, 33, 1348, -2563, 1350, -2563, 1352, -2563, 4, - -2563, 1356, 1357, -2563, 1360, -2563, -2563, -2563, 619, -2563, - 5017, 4774, 1571, 598, 1392, 461, 1300, -2563, -2563, -2563, - 94, 93, 1395, 1398, 48, 619, 393, 527, 76, 4931, - 263, 1666, 449, 43, 78, 238, 21, -2563, 1388, 1389, - 1406, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, 619, -2563, -2563, -2563, 619, - 619, 619, 619, -2563, -2563, 619, 1290, 619, -2563, 619, - 1337, 619, 1409, 1290, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, 1413, 484, 517, -2563, -2563, -2563, 1414, -2563, - -2563, -2563, -2563, 1325, -2563, 1422, 1427, 1347, 1433, -2563, - 1434, -2563, 1437, 1355, 1439, 472, 32, 493, 122, 509, - 1441, 558, -2563, -2563, 1442, 1443, 1446, -2563, -2563, 1447, - -2563, -2563, -2563, -2563, 1448, -2563, -2563, 1452, -2563, -2563, - 1453, -2563, -2563, -2563, -2563, -2563, -2563, -2563, 619, 619, - -2563, 619, 1128, 619, 619, -2563, 2691, -2563, 1140, 1455, - -2563, 1189, 1456, -2563, -2563, -48, 619, 619, -2563, 1440, - -2563, -2563, 1457, 1057, 619, 1451, 133, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, 1462, 1463, 619, 619, 619, 1466, 263, 1467, 1472, - 1290, 4931, -2563, -2563, -2563, -2563, -2563, 1290, -2563, -2563, - 619, 619, 619, 4931, 619, 1337, 619, -2563, 619, -2563, - -2563, -2563, -2563, -2563, 1474, 1475, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, 523, - -2563, 619, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - 4931, 619, 1290, 1290, -48, -48, -48, 1290, 1337, 619, - 1290, -2563, -2563, -2563, 619, -2563, -55, 1313, 1477, 1482, - -2563, -2563, 1290, -2563, 1328, 1332, -2563, 1488, 1489, 1491, - 1202, 619, 4572, 447, 695, -2563, -2563, -2563, 619, 54, - 1079, -2563, 1230, -2563, 1666, 1233, 179, 1206, 511, -2563, - -2563, 619, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, 619, 1493, -2563, -2563, -2563, -48, -2563, -2563, - -2563, -2563, -2563, 4900, -2563, -2563, 1497, 1498, 619, 1501, - 1502, 1507, -10, -10, -106, 1512, 1515, 1526, 1527, 1265, - 1270, 1540, 1545, 1546, 55, 55, -106, 1548, 1551, -106, - 1556, 1557, 5420, 1558, 1560, -2563, -2563, 1563, 1566, 481, - -2563, 1552, 1554, 1567, 1574, -10, -106, 1572, 1575, -2563, - 1577, -2563, -2563, 1290, 669, 1255, 1260, 467, 1343, 1480, - 1543, 490, 1583, 187, 1450, 1485, 1004, 712, 1555, 549, - 1351, 1492, 1591, 1383, 241, 162, 307, -63, 4931, 1666, - 1561, -82, 1354, 1385, 1598, 31, -2563, -2563, 244, 1600, - 1601, -2563, -2563, -2563, 1603, 1394, 164, 1666, 1396, -2563, - -2563, -2563, 263, 1608, 1612, 619, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, 0, -2563, 935, -2563, -2563, - -2563, 619, -2563, 619, -2563, -2563, -2563, -2563, 619, 619, - 619, 461, 4931, -2563, 1615, 1248, -2563, -2563, 619, -2563, - -2563, 619, 4931, 619, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, 263, 619, - -2563, 619, 461, 1616, 1624, -2563, -2563, 619, 619, -2563, - 263, -2563, -2563, -2563, 572, 1631, 1634, -2563, -2563, -2563, - -2563, -2563, 619, 619, -2563, -2563, 1337, 619, 619, -2563, - -2563, -2563, -2563, 1639, 619, -2563, 619, 1532, -2563, 619, - -2563, 619, 1533, -2563, 1643, -2563, 1083, 1083, 589, 1083, - 1646, -2563, 604, -2563, -2563, 1648, 1653, 606, 1644, -2563, - 1654, 1655, 1660, -2563, 621, 623, 1661, 1662, 1664, -2563, - -2563, 1671, 1673, 1665, -2563, 1083, 1083, 1083, 619, -2563, - -2563, -2563, 619, -2563, 619, 1080, 4931, -2563, 619, -2563, - 5017, 1290, -2563, -2563, 1676, -2563, -2563, 1677, -2563, -2563, - -2563, -2563, 1659, 2611, -2563, 619, 1674, 619, 619, 619, - 866, -2563, 1679, 1683, 619, 619, -7, 1678, 263, 263, - -2563, 1290, 619, 1685, 1687, 1688, 1290, 4931, -2563, 619, - -2563, -2563, -2563, 619, 619, 619, 1290, 4931, -48, -2563, - -2563, -2563, -2563, 1337, 619, 1689, -48, 619, 1627, 1658, - 502, -2563, 1692, -2563, -2563, 995, 4165, 619, -2563, 619, - 1694, 1699, 619, -2563, 1695, 1116, 4809, 1459, 612, 1461, - 89, 4931, 635, -2563, 231, 1564, 178, 692, 1464, 181, - -2563, -2563, 545, 1534, 552, 1584, 435, 1666, 360, -2563, - 1704, 1460, -2563, 597, -2563, -2563, -2563, -2563, 1666, 1500, - -2563, -2563, -2563, -2563, -2563, 619, -2563, 619, -2563, -2563, - 619, 619, -2563, 619, -2563, 619, -2563, -2563, -2563, -2563, - 1510, 619, -2563, 619, 12, -2563, -2563, 1710, 1713, -2563, - 619, -10, -10, -10, -2563, -2563, -2563, -2563, -2563, -2563, - 1714, -10, -10, -10, 929, -2563, -2563, 55, -10, -10, - -10, -2563, -2563, -10, -10, 1715, -10, -10, 1716, 55, - 1010, -2563, 1719, 1722, 1723, -2563, 611, -2563, 662, 904, - -2563, 1030, -2563, 1458, 1724, 1726, 1727, 55, 55, -106, - 1729, 1731, -106, 1734, 1732, 1736, -10, -10, -2563, 1739, - -10, -10, -2563, 1740, -2563, -2563, -2563, -2563, -2563, -2563, - 263, -2563, -2563, -2563, 4809, 1156, 263, 619, 1240, 1171, - 375, -2563, -2563, -2563, 402, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, 1746, 263, 619, - -2563, 263, 1747, 619, 4931, 263, 1418, 1511, 1513, 186, - 204, 1514, 205, 1444, 1445, 1756, 1757, 1758, 1543, 1759, - 1761, 1762, 1468, 1469, 1278, 1764, 263, 619, 1269, 1426, - -2563, -2563, 263, 4931, -2563, -2563, 4931, 619, 57, 1766, - 263, 619, 1290, 263, -2563, 1767, 4931, 4931, 619, -2563, - -2563, -2563, 263, 263, 4931, -2563, -2563, -2563, -2563, -2563, - -2563, 4931, 619, 263, -2563, -2563, -2563, 619, -2563, -2563, - 1769, 619, 1549, 232, 619, 1559, 619, 242, 619, -2563, - 619, 1565, 1568, 619, 619, 619, 619, 619, 619, 619, - 619, 19, 619, 619, 1578, -2563, 619, 619, 619, 619, - -2563, 4931, 1290, 1771, 1775, 1779, 619, 619, 1290, -2563, - 619, 619, 619, 4931, 461, -2563, 619, 619, -2563, -2563, - -2563, 1780, -2563, -2563, -2563, -2563, -2563, -2563, 1782, 619, - 619, -2563, 619, 619, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, 1783, 1785, 1787, -2563, -2563, 1083, 1795, - 1798, 1788, -2563, 1801, 1806, 1807, 1808, 1810, -2563, 1812, - -2563, -2563, -2563, 1814, 1815, 1813, -2563, 1818, 1822, 1826, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - 619, 619, 619, -2563, -2563, 619, 1290, -2563, -2563, -2563, - 2611, 619, 1290, 619, 619, 619, -2563, 619, 619, 1827, - 619, 1829, 1765, 619, 619, -2563, -2563, 1833, 4931, -2563, - -2563, -2563, 619, -2563, -2563, -2563, -2563, 1290, -2563, 1308, - 619, 1308, -48, 1290, 4931, 619, 619, 1834, -2563, -2563, - -2563, -2563, -2563, 619, -2563, -2563, -2563, -2563, -2563, 4931, - -2563, 4931, 619, 1836, -2563, -2563, 1837, 1838, 1839, 1840, - 1842, 4931, 1290, -2563, 4931, -2563, 4931, 4931, 4809, 4931, - 1290, -2563, 4931, -2563, -2563, 4931, -2563, -2563, 4809, 4931, - -2563, 4931, 4931, 4809, 4931, -2563, 4931, 4931, 619, -2563, - -2563, -2563, 4931, 4931, 4931, -2563, -2563, 4931, 4931, -2563, - -2563, -2563, -2563, 4931, 4931, -2563, -2563, -2563, -2563, -2563, - 619, 619, -2563, -2563, 1846, 619, -2563, -2563, 1847, 1850, - -2563, 619, -2563, -2563, -2563, -10, -2563, -2563, -2563, 1851, - 1853, 1856, -2563, -2563, -106, 1858, 1859, 1860, -10, -2563, - -2563, -2563, -2563, -2563, 55, -2563, -2563, 1862, -10, 1864, - 1865, 1866, 55, 55, -106, 1863, 1871, 1872, 1087, -2563, - 1296, -2563, 1345, 1508, 1882, 1885, 1886, 55, 55, -106, - 1888, 1889, -106, 1890, 1535, 1891, 1892, 1893, 55, 55, - -106, 1895, 1896, -106, 1898, 1618, 1900, 1902, 1903, 55, - 55, -106, 1897, 1905, -106, 1906, 1907, 1908, 1910, 55, - 55, -106, 1912, 1913, 1915, 55, -2563, -2563, -2563, -2563, - -2563, 1919, -2563, -2563, 1920, 55, 1921, 1922, -2563, -2563, - -10, -2563, -2563, 1923, -2563, 1290, -2563, 4931, 619, -2563, - 619, 4931, 619, 1924, 1255, -2563, -2563, -2563, -2563, -2563, - -2563, 1926, -2563, 4931, 263, 1927, 4931, 1290, -2563, 1928, - 1255, 619, 619, 619, 619, 619, 619, 619, 619, 619, - 1930, 1931, -2563, -2563, -2563, 1942, -2563, -2563, -2563, 1958, - 1963, -2563, -2563, -2563, -2563, 619, 4931, 619, 1964, 1255, - 263, 1290, 1290, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, 619, 1337, -2563, -2563, 1290, 1290, - 619, -2563, -2563, 1290, 1290, -2563, -2563, -2563, -2563, 619, - 619, 619, 619, 619, 619, 619, 619, 619, 619, 1708, - -2563, 619, 619, 619, 619, 619, 619, 619, 619, 619, - 619, 619, 3413, 1965, 619, -2563, 619, 619, 619, 1967, - 1969, -2563, -2563, 1290, -48, -2563, 1971, 1974, -2563, -2563, - 1337, 619, -2563, 1970, 1290, 4931, -2563, -2563, -2563, 1976, - -2563, -2563, -2563, -2563, 1083, 1083, 1083, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, 1255, 619, -2563, 619, -2563, 619, 1290, - 619, -2563, 1337, 619, -2563, 619, -2563, 1819, 1977, 1979, - -2563, 1981, 619, 619, 1982, 1290, 4931, -2563, -2563, 619, - -2563, 619, -2563, -48, 995, 619, 1984, -2563, 619, -2563, - -2563, 105, -2563, 1985, 1986, 1987, 1988, 1990, 1290, -2563, - 995, 995, 995, 1290, -2563, 995, -48, 995, 995, 1290, - -2563, 995, 995, 995, 1290, -2563, 995, 995, 1290, 4931, - 995, 1290, 995, 995, 1290, 995, 1290, -2563, -2563, 1992, - 105, 1993, -2563, 619, -2563, -2563, -2563, -2563, 1996, -2563, - -2563, -2563, -2563, -10, 55, -2563, -2563, -2563, -2563, -2563, - -2563, 1997, -2563, -2563, 55, 1999, 2000, 2001, 55, 55, - -106, 1998, 2003, 2004, 2005, 2007, 2009, 55, 55, -106, - 2012, 2014, 2016, 2018, 2019, 2020, 55, 55, -106, 2022, - 2023, 2026, 55, -10, -10, -10, -10, -10, 2024, -10, - -10, 2028, 55, 55, -10, -10, -10, -10, -10, 2029, - -10, -10, 2030, 55, 55, -2563, -2563, -2563, -2563, -2563, - 2031, -2563, -2563, 2035, 55, -2563, -2563, -2563, -2563, -2563, - 2039, -2563, -2563, 55, -2563, 55, 2040, -2563, 2042, 2043, - -2563, 5017, -2563, 995, 2044, 4931, 995, 619, 4931, 2045, - -2563, 995, -2563, -2563, 995, -2563, 4931, 2046, 619, 619, - 619, 619, 619, 619, 619, 619, 619, 619, 619, -2563, - -2563, -2563, 4931, 995, 619, 4931, 2047, -2563, 1337, 1337, - 4931, 1337, 1337, 4931, 4931, 1337, 1337, 619, 619, 619, - 619, 619, 619, 1255, 619, 619, 619, 1494, 1611, 1651, - 1697, 1698, 1700, 1701, 1708, -2563, 1702, -2563, -2563, 1255, - 619, 619, 619, 619, 1255, 619, 619, 619, 619, 619, - 619, 1290, 619, 1672, 1255, 619, 619, -2563, -2563, -48, - 263, 4931, 4931, -2563, -2563, -2563, -48, 1290, 2048, -2563, - -2563, -2563, -2563, 619, -2563, -2563, 1337, 619, -2563, -2563, - -2563, 1013, 2051, 2055, -2563, 619, 2057, 1308, -2563, 995, - -2563, -2563, -2563, -2563, 2058, -2563, -2563, 2060, 2061, 2063, - 2064, 4931, 2065, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -48, - 995, -2563, -48, -2563, -2563, -48, -2563, -48, 2068, 2070, - -2563, 619, -2563, -2563, -10, 55, -2563, -10, -10, -10, - -10, -10, 2071, -10, -10, 55, -10, -10, -10, -10, - -10, 2072, -10, -10, 55, -10, -10, -10, -10, -10, - 2074, -10, -10, 55, -10, -2563, -2563, -2563, -2563, -2563, - 55, -2563, -2563, 2075, -10, -10, -2563, -2563, -2563, -2563, - -2563, 55, -2563, -2563, 2076, -10, -2563, 55, 2077, -2563, - 55, -2563, -2563, 55, -2563, -2563, 1290, -2563, 4931, 995, - -2563, 2078, 1290, 619, -2563, -2563, 1290, 619, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, 619, 619, 995, - -2563, 2079, 1290, 619, 1337, -2563, 995, 619, 1337, 995, - 995, 4931, -2563, 619, 2081, 2081, 619, 619, 2081, 1255, - 2081, -2563, 4931, 1543, 2082, 2084, 2086, 2087, 2088, 2090, - -2563, 263, 1255, 2081, 2081, 619, 619, 1255, 619, 619, - 619, 619, 619, -2563, 1337, 619, 2092, -2563, -2563, 619, - 2081, 263, 17, 1290, 1290, 263, -48, 2095, -2563, -2563, - -2563, 2098, 619, -2563, 2099, 2101, 1904, 619, -2563, -2563, - 44, 4931, -2563, 2102, 61, 4931, -2563, -2563, -2563, -2563, - -2563, -2563, 44, 619, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, 55, -2563, -2563, -10, -2563, -2563, -2563, -2563, -2563, - 55, -2563, -2563, -10, -2563, -2563, -2563, -2563, -2563, 55, - -2563, -2563, -10, -2563, -10, 55, -2563, -2563, -10, 55, - -2563, -2563, 55, -2563, -2563, 619, 995, -2563, 4931, 4931, - 619, 4931, 619, -2563, -2563, -2563, 4931, 4931, 619, -2563, - -2563, 4931, -2563, -2563, -2563, 995, 2104, -2563, -2563, -2563, - 1255, 619, -2563, 2105, -2563, -2563, 1290, 2108, -2563, 2110, - -2563, -2563, -2563, -2563, -2563, 2111, -2563, -2563, 1255, 619, - 2112, -2563, -2563, 619, 4931, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, 17, 1773, 1666, -2563, -2563, -2563, 263, 2116, - 2119, 2122, -2563, 2059, 2117, 115, -2563, -2563, -2563, 2124, - 4931, -2563, -2563, -2563, -2563, -2563, 2125, -10, -2563, -10, - -2563, -10, -2563, -2563, -10, -2563, -10, -2563, 5017, -2563, - 995, 995, 619, 995, 2126, 995, 995, 619, 995, 619, - -2563, -2563, -2563, -2563, 2127, -2563, 619, -2563, -2563, 2128, - -2563, 619, -2563, -2563, -2563, 2130, 619, -2563, -2563, -2563, - 1290, -2563, -2563, -2563, 1773, -2563, 1797, 1711, 1666, -2563, - -2563, -2563, 2131, 2132, 2134, -2563, -2563, -2563, -2563, 826, - 826, -2563, 1290, -2563, -2563, -2563, -2563, -2563, -2563, 995, - -2563, -2563, 2135, -2563, 4809, -2563, -2563, 2136, -2563, 1255, - -2563, -2563, 1255, 619, -2563, -2563, 619, -2563, 1255, 619, - -2563, 4931, -2563, 1797, -2563, 263, -2563, 2138, 2140, -2563, - 619, 619, 619, 619, 61, 2141, 4809, 1290, -2563, 4809, - -2563, -2563, 619, 2137, -2563, 619, 995, -2563, -2563, -2563, - 2142, 2143, 619, 2144, 619, -2563, -2563, 1290, -2563, -2563, - 1290, -2563, -2563, 2146, -2563, -2563, 2147, 2148, -2563, -2563, - 2149, -2563, 2152, -2563, -2563, 1255, -2563, 1255, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563 + 4946, 104, 662, 35, -2556, -2556, 1103, -123, 617, 1025, + 1020, 90, 2990, 193, 158, 1268, 333, 5131, 93, 923, + -2556, 40, 886, 466, 836, 289, 15, 541, 293, 565, + 124, 651, 1061, 111, 799, 601, 470, 293, -2556, 175, + 81, 942, -2556, 404, 614, 917, -2556, 73, -2556, 58, + 3711, 401, 62, 646, 26, 524, 386, 674, 681, 85, + 736, -5, 99, -2556, -2556, -2556, 568, 491, -2556, 416, + 105, 158, 18, 679, 515, -2556, 739, 491, -2556, -2556, + 136, 491, -2556, -2556, -2556, -2556, 491, -2556, -2556, -2556, + -2556, -2556, -2556, 76, 715, 779, 785, 742, -2556, 491, + 1299, 491, 491, 843, 491, -2556, -2556, -2556, 562, -2556, + -2556, -2556, -2556, 4486, -2556, -2556, -2556, -2556, -2556, -2556, + 491, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, 1550, -2556, 491, -2556, 809, -2556, -2556, + 158, 158, 158, 158, 158, 158, -2556, -2556, 158, 158, + 158, 158, -2556, 705, -2556, 796, 1621, 753, 72, 580, + 709, 829, 4036, 472, 4538, 4458, 855, 4486, 3472, -2556, + 531, -88, 845, 891, 835, 119, 854, 903, 293, 471, + -2556, 868, -2556, 687, 663, 257, -2556, 30, -2556, 572, + -2556, 57, 863, 432, -2556, -2556, 4729, -2556, -2556, -2556, + 888, 885, 947, -2556, -2556, -2556, -2556, 899, -2556, -2556, + -2556, -2556, 794, -2556, -2556, 4729, 4095, -2556, 993, -2556, + 109, -2556, 997, 1002, 598, -2556, 491, -2556, 1010, 150, + 1011, 266, 110, 1018, 23, -2556, -2556, -2556, 1035, 1045, + 158, 158, 491, 491, -2556, -2556, 1055, -2556, -2556, -2556, + -2556, -2556, -2556, 3333, 840, -2556, 1066, 56, 491, 4729, + 491, -2556, 1070, -2556, -2556, -2556, -2556, -2556, 491, 1058, + 158, 2747, 491, 1550, 491, -2556, 1059, -2556, 4638, -2556, + -2556, 634, 1079, 1081, 491, -2556, 1087, -2556, -2556, 2, + 1088, 4729, 1091, -2556, 1137, 491, 1000, -2556, 444, 983, + 1440, 112, 1096, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + 1115, -2556, 539, 44, 115, 144, 260, 491, 491, 118, + -2556, 491, 871, 1134, -2556, 491, 491, -2556, 1145, 19, + 22, 1149, 1550, -2556, -2556, -2556, 733, 491, -2556, -2556, + -2556, -2556, -2556, -2556, 491, -2556, 1156, 1164, -2556, 491, + 1182, -2556, -2556, -2556, -2556, -2556, -2556, 491, -2556, -2556, + 491, -2556, -2556, 639, 639, -2556, 1169, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, 981, 491, + 491, 1180, 1195, 1217, -2556, -2556, 491, 491, 491, -2556, + 491, -2556, 1228, -2556, -2556, -2556, -2556, 185, -2556, 1174, + -2556, 4729, 1230, -2556, 491, -2556, -2556, -2556, 491, 1227, + 1229, 1229, 4729, 491, 491, 491, 491, 491, 491, -2556, + 491, 4486, 1299, 491, 491, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, 1299, 491, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, 1246, -2556, 980, 29, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -78, -2556, + -2556, -2556, 1084, -2556, 389, 587, 587, -2556, -2556, -2556, + 1255, -2556, 1258, -2556, -2556, -43, -2556, 1083, -2556, -2556, + -2556, 1094, -2556, -2556, 1550, -2556, 491, 491, -2556, 4729, + 4729, 1550, -2556, -2556, 1550, -2556, -2556, -2556, -2556, 1550, + -2556, -2556, 4729, 1550, 491, -2556, -2556, 4729, -2556, 1269, + 621, 1073, 11, -2556, -2556, 1076, 4729, 17, -2556, -2556, + -2556, -2556, -2556, -2556, 1284, 1287, 1291, -2556, 1098, -2556, + -2556, -2556, 491, -2556, -2556, 758, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, 57, -2556, -2556, + -2556, -2556, -2556, -2556, 1109, 1113, -2556, -2556, 1238, 1244, + 1250, -2556, -2556, 1085, -2556, 491, 1313, 1099, 4638, -2556, + 1550, -2556, -2556, 1320, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, 4729, 4729, + 4729, 4729, -2556, -2556, -2556, 1323, 158, -2556, -2556, 1325, + 1327, 1144, 491, -2556, 517, 1245, -2556, 1331, -2556, 279, + 1256, 4573, 47, 1341, -2556, 1344, -2556, 1345, -2556, 199, + -2556, 1347, 1349, -2556, 1359, -2556, -2556, -2556, 491, -2556, + 4638, 4420, 1515, 479, 1361, 163, 1266, -2556, -2556, -2556, + 88, 83, 1367, 1368, 33, 491, 462, 484, 7, 4729, + 158, 1570, 490, 75, 161, 196, 31, -2556, 1355, 1357, + 1401, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, 491, -2556, -2556, -2556, 491, + 491, 491, 491, -2556, -2556, 491, 1550, 491, -2556, 491, + 1299, 491, 1414, 1550, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, 1417, 28, 402, -2556, -2556, -2556, 1419, -2556, + -2556, -2556, -2556, 1334, -2556, 1425, 1429, 1336, 1431, -2556, + 1432, -2556, 1434, 1356, 1435, 493, 492, 494, 366, 566, + 1441, 578, -2556, -2556, 1443, 1444, 1447, -2556, -2556, 1448, + -2556, -2556, -2556, -2556, 1452, -2556, -2556, 1453, -2556, -2556, + 1454, -2556, -2556, -2556, -2556, -2556, -2556, -2556, 491, 491, + -2556, 491, 583, 491, 491, -2556, 1797, -2556, 619, 1456, + -2556, 979, 1457, -2556, -2556, 398, 491, 491, -2556, 1450, + -2556, -2556, 1459, 1222, 491, 1458, 156, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, 1461, 1465, 491, 491, 491, 1467, 158, 1468, 1469, + 1550, 4729, -2556, -2556, -2556, -2556, -2556, 1550, -2556, -2556, + 491, 491, 491, 4729, 491, 1299, 491, -2556, 491, -2556, + -2556, -2556, -2556, -2556, 1474, 1478, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, 472, + -2556, 491, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + 4729, 491, 1550, 1550, 398, 398, 398, 1550, 1299, 491, + 1550, -2556, -2556, -2556, 491, -2556, 425, 1317, 1481, 1488, + -2556, -2556, 1550, -2556, 1335, 1338, -2556, 1491, 1493, -2556, + 1495, 1111, 491, 4425, 518, 697, -2556, -2556, -2556, 491, + 498, 986, -2556, 1240, -2556, 1570, 1241, 592, 1214, 122, + -2556, -2556, 491, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, 491, 1502, -2556, -2556, -2556, -2556, 398, + -2556, -2556, -2556, -2556, -2556, 4609, -2556, -2556, 1504, 1506, + 491, 1509, 1516, 1528, 14, 14, -55, 1505, 1530, 1535, + 1536, 1271, 1276, 1537, 1539, 1548, 461, 461, -55, 1553, + 1554, -55, 1555, 1556, 5132, 1558, 1562, -2556, -2556, 1565, + 1568, 474, -2556, 1572, 1573, 1569, 1574, 14, -55, 1582, + 1583, -2556, 1584, -2556, -2556, 1550, 1339, 1404, 1312, 323, + 1351, 1471, 3349, 412, 1586, 187, 1446, 1487, 1542, 1211, + 1557, 706, 1358, 1494, 1593, 1387, 5, 21, -65, 4, + 4729, 1570, 1563, 445, 1360, 1389, 1601, 132, -2556, -2556, + 256, 1603, 1604, -2556, -2556, -2556, 1605, 1398, 50, 1570, + 1399, -2556, -2556, -2556, 158, 1611, 1614, 491, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -1, -2556, 2465, + -2556, -2556, -2556, 491, -2556, 491, -2556, -2556, -2556, -2556, + 491, 491, 491, 163, 4729, -2556, 1617, 1124, -2556, -2556, + 491, -2556, -2556, 491, 4729, 491, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + 158, 491, -2556, 491, 163, 1622, 1623, -2556, -2556, 491, + 491, -2556, 158, -2556, -2556, -2556, 153, 1626, 1633, -2556, + -2556, -2556, -2556, -2556, 491, 491, -2556, -2556, 1299, 491, + 491, -2556, -2556, -2556, -2556, 1636, 491, -2556, 491, 1532, + -2556, 491, -2556, 491, 1540, -2556, 1637, -2556, 812, 812, + 597, 812, 1643, -2556, 643, -2556, -2556, 1644, 1650, 667, + 1652, -2556, 1655, 1656, 1662, -2556, 749, 750, 1663, 1665, + 1669, -2556, -2556, 1671, 1673, 1670, -2556, 812, 812, 812, + 491, -2556, -2556, -2556, 491, -2556, 491, 756, 4729, -2556, + 491, -2556, 4638, 1550, -2556, -2556, 1677, -2556, -2556, 1678, + -2556, -2556, -2556, -2556, 1672, 2747, -2556, 491, 1675, 491, + 491, 491, 934, -2556, 1679, 1685, 491, 491, 32, 1687, + 158, 158, -2556, 1550, 491, 1690, 1691, 1692, 1550, 4729, + -2556, 491, -2556, -2556, -2556, 491, 491, 491, 1550, 4729, + 398, -2556, -2556, -2556, -2556, 1299, 491, 1693, 398, 491, + 1661, 1664, 711, -2556, 1696, -2556, -2556, 952, 3529, 491, + -2556, 491, 1699, 1704, 491, -2556, 1700, 1385, 4486, 1466, + 730, 1470, 103, 4729, 754, -2556, 321, 1566, 171, 824, + 1472, 172, -2556, -2556, 46, 1541, -57, 1596, -83, 1570, + 695, -2556, 1705, 1473, -2556, 68, -2556, -2556, -2556, -2556, + 1570, 1510, -2556, -2556, -2556, -2556, -2556, 491, -2556, 491, + -2556, -2556, 491, 491, -2556, 491, -2556, 491, -2556, -2556, + -2556, -2556, 1521, 491, -2556, 491, 52, -2556, -2556, 1720, + 1722, -2556, 491, 14, 14, 14, -2556, -2556, -2556, -2556, + -2556, -2556, 1723, 14, 14, 14, 555, -2556, -2556, 461, + 14, 14, 14, -2556, -2556, 14, 14, 1725, 14, 14, + 1728, 461, 1097, -2556, 1730, 1733, 1737, -2556, 519, -2556, + 622, 624, -2556, 1141, -2556, 1475, 1738, 1741, 1742, 461, + 461, -55, 1744, 1745, -55, 1748, 1751, 1752, 14, 14, + -2556, 1753, 14, 14, -2556, 1755, -2556, -2556, -2556, -2556, + -2556, -2556, 158, -2556, -2556, -2556, 4486, 1122, 158, 491, + 1163, 1279, -17, -2556, -2556, -2556, 834, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, 1756, + 158, 491, -2556, 158, 1757, 491, 4729, 158, 1352, 1522, + 1525, 174, 186, 1529, 209, 1460, 1462, 1759, 1762, 1766, + 3349, 1773, 1774, 1776, 1476, 1477, 1191, 1777, 158, 491, + 1243, 1424, -2556, -2556, 158, 4729, -2556, -2556, 4729, 491, + 6, 1778, 158, 491, 1550, 158, -2556, 1781, 4729, 4729, + 491, -2556, -2556, -2556, 158, 158, 4729, -2556, -2556, -2556, + -2556, -2556, -2556, 4729, 491, 158, -2556, -2556, -2556, 491, + -2556, -2556, 1782, 491, 1560, 160, 491, 1564, 491, 180, + 491, -2556, 491, 1567, 1571, 491, 491, 491, 491, 491, + 491, 491, 491, 13, 491, 491, 1576, -2556, 491, 491, + 491, 491, -2556, 4729, 1550, 1788, 1779, 1790, 491, 491, + 1550, -2556, 491, 491, 491, 4729, 163, -2556, 491, 491, + -2556, -2556, -2556, 1791, -2556, -2556, -2556, -2556, -2556, -2556, + 1793, 491, 491, -2556, 491, 491, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, 1795, 1796, 1802, -2556, -2556, + 812, 1803, 1804, 1806, -2556, 1807, 1808, 1809, 1810, 1812, + -2556, 1813, -2556, -2556, -2556, 1814, 1816, 1821, -2556, 1824, + 1827, 1829, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, 491, 491, 491, -2556, -2556, 491, 1550, -2556, + -2556, -2556, 2747, 491, 1550, 491, 491, 491, -2556, 491, + 491, 1830, 491, 1832, 1801, 491, 491, -2556, -2556, 1833, + 4729, -2556, -2556, -2556, 491, -2556, -2556, -2556, -2556, 1550, + -2556, 1069, 491, 1069, 398, 1550, 4729, 491, 491, 1834, + -2556, -2556, -2556, -2556, -2556, 491, -2556, -2556, -2556, -2556, + -2556, 4729, -2556, 4729, 491, 1835, -2556, -2556, 1836, 1837, + 1838, 1839, 1840, 4729, 1550, -2556, 4729, -2556, 4729, 4729, + 4486, 4729, 1550, -2556, 4729, -2556, -2556, 4729, -2556, -2556, + 4486, 4729, -2556, 4729, 4729, 4486, 4729, -2556, 4729, 4729, + 491, -2556, -2556, -2556, 4729, 4729, 4729, -2556, -2556, 4729, + 4729, -2556, -2556, -2556, -2556, 4729, 4729, -2556, -2556, -2556, + -2556, -2556, 491, 491, -2556, -2556, 1842, 491, -2556, -2556, + 1843, 1845, -2556, 491, -2556, -2556, -2556, 14, -2556, -2556, + -2556, 1846, 1847, 1848, -2556, -2556, -55, 1850, 1851, 1853, + 14, -2556, -2556, -2556, -2556, -2556, 461, -2556, -2556, 1852, + 14, 1857, 1858, 1859, 461, 461, -55, 1861, 1862, 1863, + 1147, -2556, 1168, -2556, 1175, 1591, 1864, 1865, 1866, 461, + 461, -55, 1868, 1869, -55, 1870, 1598, 1871, 1872, 1873, + 461, 461, -55, 1875, 1885, -55, 1887, 1618, 1888, 1890, + 1891, 461, 461, -55, 1886, 1893, -55, 1894, 1895, 1896, + 1897, 461, 461, -55, 1899, 1901, 1902, 461, -2556, -2556, + -2556, -2556, -2556, 1905, -2556, -2556, 1906, 461, 1907, 1908, + -2556, -2556, 14, -2556, -2556, 1903, -2556, 1550, -2556, 4729, + 491, -2556, 491, 4729, 491, 1909, 1404, -2556, -2556, -2556, + -2556, -2556, -2556, 1910, -2556, 4729, 158, 1911, 4729, 1550, + -2556, 1912, 1404, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 1914, 1915, -2556, -2556, -2556, 1916, -2556, -2556, + -2556, 1918, 1921, -2556, -2556, -2556, -2556, 491, 4729, 491, + 1923, 1404, 158, 1550, 1550, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, 491, 1299, -2556, -2556, + 1550, 1550, 491, -2556, -2556, 1550, 1550, -2556, -2556, -2556, + -2556, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 924, -2556, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 3383, 1925, 491, -2556, 491, 491, + 491, 1922, 1927, -2556, -2556, 1550, 398, -2556, 1928, 1929, + -2556, -2556, 1299, 491, -2556, 1931, 1550, 4729, -2556, -2556, + -2556, 1932, -2556, -2556, -2556, -2556, 812, 812, 812, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, 1404, 491, -2556, 491, -2556, + 491, 1550, 491, -2556, 1299, 491, -2556, 491, -2556, 1920, + 1943, 1944, -2556, 1933, 491, 491, 1958, 1550, 4729, -2556, + -2556, 491, -2556, 491, -2556, 398, 952, 491, 1959, -2556, + 491, -2556, -2556, 4486, -2556, 1963, 1964, 1966, 1968, 1969, + 1550, -2556, 952, 952, 952, 1550, -2556, 952, 398, 952, + 952, 1550, -2556, 952, 952, 952, 1550, -2556, 952, 952, + 1550, 4729, 952, 1550, 952, 952, 1550, 952, 1550, -2556, + -2556, 1971, 4486, 1972, -2556, 491, -2556, -2556, -2556, -2556, + 1974, -2556, -2556, -2556, -2556, 14, 461, -2556, -2556, -2556, + -2556, -2556, -2556, 1978, -2556, -2556, 461, 1979, 1980, 1981, + 461, 461, -55, 1983, 1984, 1986, 1987, 1988, 1989, 461, + 461, -55, 1985, 1992, 1993, 1994, 1995, 1996, 461, 461, + -55, 1998, 1999, 2000, 461, 14, 14, 14, 14, 14, + 2002, 14, 14, 2003, 461, 461, 14, 14, 14, 14, + 14, 2004, 14, 14, 2005, 461, 461, -2556, -2556, -2556, + -2556, -2556, 2006, -2556, -2556, 2007, 461, -2556, -2556, -2556, + -2556, -2556, 2008, -2556, -2556, 461, -2556, 461, 2010, -2556, + 2012, 2014, -2556, 4638, -2556, 952, 2016, 4729, 952, 491, + 4729, 2019, -2556, 952, -2556, -2556, 952, -2556, 4729, 2021, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, -2556, -2556, -2556, 4729, 952, 491, 4729, 2022, -2556, + 1299, 1299, 4729, 1299, 1299, 4729, 4729, 1299, 1299, 491, + 491, 491, 491, 491, 491, 1404, 491, 491, 491, 1490, + 1619, 1640, 1647, 1676, 1680, 1682, 924, -2556, 1686, -2556, + -2556, 1404, 491, 491, 491, 491, 1404, 491, 491, 491, + 491, 491, 491, 1550, 491, 1589, 1404, 491, 491, -2556, + -2556, 398, 158, 4729, 4729, -2556, -2556, -2556, 398, 1550, + 2023, -2556, -2556, -2556, -2556, 491, -2556, -2556, 1299, 491, + -2556, -2556, -2556, 1120, 2024, 2025, -2556, 491, 2030, 1069, + -2556, 952, -2556, -2556, -2556, -2556, 2031, -2556, -2556, 1550, + 2038, 2041, 2045, 2046, 4729, 2047, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, 398, 952, -2556, 398, -2556, -2556, 398, -2556, + 398, 2048, 1550, 2050, -2556, 491, -2556, -2556, 14, 461, + -2556, 14, 14, 14, 14, 14, 2051, 14, 14, 461, + 14, 14, 14, 14, 14, 2052, 14, 14, 461, 14, + 14, 14, 14, 14, 2053, 14, 14, 461, 14, -2556, + -2556, -2556, -2556, -2556, 461, -2556, -2556, 2056, 14, 14, + -2556, -2556, -2556, -2556, -2556, 461, -2556, -2556, 2057, 14, + -2556, 461, 2058, -2556, 461, -2556, -2556, 461, -2556, -2556, + 1550, -2556, 4729, 952, -2556, 2059, 1550, 491, -2556, -2556, + 1550, 491, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, 491, 491, 952, -2556, 2060, 1550, 491, 1299, -2556, + 952, 491, 1299, 952, 952, 4729, -2556, 491, 2061, 2061, + 491, 491, 2061, 1404, 2061, -2556, 4729, 3349, 2062, 2064, + 2065, 2067, 2068, 2070, -2556, 158, 1404, 2061, 2061, 491, + 491, 1404, 491, 491, 491, 491, 491, -2556, 1299, 491, + 2072, -2556, -2556, 491, 2061, 158, 34, 1550, 1550, 158, + 398, 2071, -2556, -2556, -2556, 2073, 491, -2556, 2074, 2076, + 2029, 491, -2556, -2556, 2078, 74, 4729, -2556, 2079, 101, + 4729, -2556, -2556, -2556, -2556, -2556, -2556, 2082, 74, 491, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, 461, -2556, -2556, + 14, -2556, -2556, -2556, -2556, -2556, 461, -2556, -2556, 14, + -2556, -2556, -2556, -2556, -2556, 461, -2556, -2556, 14, -2556, + 14, 461, -2556, -2556, 14, 461, -2556, -2556, 461, -2556, + -2556, 491, 952, -2556, 4729, 4729, 491, 4729, 491, -2556, + -2556, -2556, 4729, 4729, 491, -2556, -2556, 4729, -2556, -2556, + -2556, 952, 2083, -2556, -2556, -2556, 1404, 491, -2556, 2084, + -2556, -2556, 1550, 2085, -2556, 2087, -2556, -2556, -2556, -2556, + -2556, 2089, -2556, -2556, 1404, 491, 2090, -2556, -2556, 491, + 4729, -2556, -2556, -2556, -2556, -2556, -2556, -2556, 34, 1624, + 1570, -2556, -2556, -2556, 158, 2091, 2092, 2093, -2556, 2044, + 2095, 140, 74, -2556, -2556, -2556, 2096, 4729, -2556, -2556, + -2556, -2556, 74, -2556, 2097, 14, -2556, 14, -2556, 14, + -2556, -2556, 14, -2556, 14, -2556, 4638, -2556, 952, 952, + 491, 952, 2098, 952, 952, 491, 952, 491, -2556, -2556, + -2556, -2556, 2101, -2556, 491, -2556, -2556, 2102, -2556, 491, + -2556, -2556, -2556, 2104, 491, -2556, -2556, -2556, 1550, -2556, + -2556, -2556, 1624, -2556, 1631, 1709, 1570, -2556, -2556, -2556, + 2105, 2106, 2137, -2556, -2556, -2556, -2556, 832, 832, -2556, + -2556, 1550, -2556, -2556, -2556, -2556, -2556, -2556, -2556, 952, + -2556, -2556, 2138, -2556, 4486, -2556, -2556, 2139, -2556, 1404, + -2556, -2556, 1404, 491, -2556, -2556, 491, -2556, 1404, 491, + -2556, 4729, -2556, 1631, -2556, 158, -2556, 2141, 2142, -2556, + 491, 491, 491, 491, 101, 2143, 4486, 1550, -2556, 4486, + -2556, -2556, 491, 2140, -2556, 491, 952, -2556, -2556, -2556, + 2144, 2145, 491, 2147, 491, -2556, -2556, 1550, -2556, -2556, + 1550, -2556, -2556, 2149, -2556, -2556, 2150, 2151, -2556, -2556, + 2156, -2556, 2157, -2556, -2556, 1404, -2556, 1404, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -2563, -2563, -3, -2563, 867, -2563, -1805, -1004, 1703, -2563, - 441, -407, 1562, -47, 91, -2563, -2563, -1655, 1751, 1983, - -870, 655, -852, 1809, 759, -2563, -1158, -2563, -648, -1132, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -483, -465, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -364, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -1456, -2563, -2563, -2563, -2563, -2563, -657, -2563, - -2563, -2563, -2563, -2563, -2563, 36, -2563, -2563, -2563, -2563, - -93, -658, -1951, -460, -2563, -2563, -2563, -2563, -2563, -535, - -530, -2563, -2563, -2562, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, 1420, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, - -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563, -2563 + -2556, -2556, -3, -2556, 873, -2556, -1635, -985, 1384, -2556, + 798, -407, 1549, -48, 59, -2556, -2556, -1654, 1712, 1904, + -698, 460, -852, 814, 1524, -2556, -1320, -2556, -736, -1147, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -572, -485, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2008, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -1457, -2556, -2556, -2556, -2556, -2556, + -661, -2556, -2556, -2556, -2556, -2556, -2556, 94, -2556, -2556, + -2556, -2556, -173, -658, -2020, -539, -2556, -2556, -2556, -2556, + -2556, -600, -593, -2556, -2556, -2555, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, 1410, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, -2556, + -2556 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -1246 +#define YYTABLE_NINF -1250 static const yytype_int16 yytable[] = { - 67, 1414, 1895, 352, 2039, 1509, 2041, 897, 104, 1082, - 1085, 903, 106, 1108, 1250, 1251, 1252, -1092, 993, 106, - 258, 868, 64, 65, 1962, 1582, 1123, 1587, 641, 292, - 106, 360, 1746, 788, 587, 847, 1491, 316, 64, 65, - 1645, 615, 791, 106, 296, 850, 346, 624, 1112, 357, - 1485, 1208, 364, 1617, 1618, 1619, 370, 64, 65, 377, - 1480, 1348, 373, 380, 382, 1077, 994, 392, 64, 65, - 399, 403, 1361, 309, 406, 238, 2636, 1334, 410, 64, - 65, 1258, 259, 411, 1914, 64, 65, 64, 65, 64, - 65, 64, 65, 2641, 1165, 1116, 424, 428, 433, 434, - 438, 440, 64, 65, 260, 857, 1915, 64, 65, 1916, - 1698, 1068, 1087, 106, 407, 723, 1088, 444, 64, 65, - 1917, 987, 1124, 294, 1365, 546, 540, 1368, 1125, 111, - 854, 64, 65, 1071, 2744, 54, 111, 1219, 773, 99, - 106, 904, 492, 1918, 1399, 1220, 1486, 111, 688, 1344, - 76, 493, 453, 157, 1166, 216, 383, 261, 873, 100, - 111, 1919, 109, 858, 1349, 64, 65, 64, 65, 361, - 310, 898, 217, 64, 65, 485, 764, 1345, 64, 65, - 506, 2767, 64, 65, 248, 1481, 64, 65, 363, 1089, - 808, 1167, 988, 64, 65, 804, 1259, 995, 1474, 1708, - 1499, 106, 1713, 767, 443, 1487, 1072, 1883, 547, 173, - 1174, 1090, 101, 114, 1441, 855, 1362, 588, 1209, 541, - 114, 115, 116, 874, 572, 1885, 1888, 724, 115, 116, - 111, 114, 314, 616, 555, 64, 65, 308, 970, 115, - 116, 548, 106, 622, 114, 64, 65, 971, 972, 282, - 1747, 713, 115, 116, 568, 388, 809, 111, 1703, 648, - 649, 64, 65, 1078, 770, 1316, 1322, 106, 1472, 400, - 1646, 1493, 996, 1091, 507, 695, 515, 697, 520, 524, - 412, 1175, 997, 1492, 398, 699, 702, 552, 705, 709, - 1073, 711, 625, 1117, 629, 973, 102, 1475, 642, 1500, - 376, 721, 585, 1139, 905, 2706, -1092, 1113, 119, 1510, - 1168, 731, 733, 998, 114, 119, 374, 774, 111, 899, - 789, 262, 115, 116, 117, 810, 119, 1126, 1963, 792, - 2637, 1699, 315, 1114, 776, 777, 779, 268, 781, 119, - 573, 114, 784, 785, 689, 297, 1079, 2642, 384, 115, - 116, 690, 691, 797, 799, 298, 1442, 149, 1069, 111, - 408, 800, 150, 151, 149, 401, 803, 805, 263, 150, - 151, 1483, 389, 1092, 806, 149, 1118, 807, 1664, 66, - 150, 151, 707, 345, 111, 356, 1668, 692, 149, 1503, - 1324, 620, 103, 150, 151, 311, 817, 818, 778, 385, - 1704, 369, 114, 822, 823, 824, 386, 825, 630, 119, - 115, 116, 269, 1920, 811, 1864, 390, 391, 312, 812, - 1709, 832, 2707, 1714, 1541, 833, 974, 975, 1884, 1443, - 838, 839, 840, 841, 842, 843, 119, 844, 1238, 428, - 848, 849, 1880, 114, 402, 574, 1886, 1889, 478, 428, - 851, 115, 116, 256, 479, 1553, 1997, 1058, 149, 1476, - 1941, 1501, 556, 150, 151, 1909, 483, 2708, 114, 1473, - 1946, 55, 1494, 1705, 1444, 575, 115, 116, 306, 569, - 893, 1254, 1865, 557, 631, 149, 1383, 912, 913, 1109, - 150, 151, 1726, 480, 693, 1384, 1385, 119, 558, 1059, - 266, 976, 570, 880, 881, 413, 1672, 621, 270, 1868, - 2595, 977, 978, 56, 1305, 754, 979, 331, 1706, 481, - 395, 889, 865, 271, 1144, 1058, 64, 65, 1329, 1120, - 1727, 57, 846, 109, 742, 735, 2619, 1841, 119, 632, - 1844, 946, 980, 1386, 914, 354, 149, 274, 324, 911, - 915, 150, 151, 83, 359, 1170, 366, 1149, 396, 109, - 866, 58, 1110, 119, 633, 482, 275, 1059, 276, 341, - 77, 1176, 1715, 1866, 1478, 755, 367, 1559, 1306, 59, - 109, 1479, 942, 60, 984, 368, 272, 149, 1728, 1560, - 1416, 1058, 150, 151, 744, 736, 61, 1145, 325, 916, - 1869, 559, 1051, 1003, 1307, 1722, 78, 326, 421, 483, - 484, 1330, 149, 1438, 917, 1171, 1793, 150, 151, 958, - 1181, 894, 64, 65, 1732, 1794, 1795, 1867, 1052, 918, - 1150, 1177, 1060, 1059, 422, 919, 327, 2671, 2672, 1725, - 920, 2675, 372, 2677, 405, 1002, 1111, 1729, 1061, 1062, - 1735, 1583, 2507, 1084, 1870, 2682, 2683, 1081, 931, 560, - 2687, 2688, 1080, 1723, 2691, 1093, 1589, 1804, 1595, 2692, - 2693, 415, 1466, 1796, 1387, 1388, 1805, 1806, 84, 79, - 1182, 1146, 417, 1603, 1308, 1607, 277, 827, 828, 64, - 65, 342, 1130, 597, 921, 117, 1131, 1132, 1133, 1134, - 1060, 85, 1135, 561, 1137, 86, 1138, 428, 1140, 1417, - 419, 1584, 562, 922, 1151, 1716, 1061, 1062, 923, 2730, - 924, 117, 2731, 737, 1807, 1310, 1590, 2734, 1596, 1565, - 1724, 756, 1439, 2737, 1455, 1695, 1309, 598, 2740, 1201, - 1063, 1064, 117, 1604, 278, 1608, 925, 926, 441, 1389, - 750, 738, 1404, 1147, 927, 454, 62, 87, 1701, 1390, - 1391, 1053, 1456, 80, 1392, 1457, 1060, 1733, 1458, 959, - 960, 1172, 928, 1717, 343, 1192, 1193, 861, 1194, 1196, - 1198, 1199, 1061, 1062, 760, 2673, 1152, 1178, 279, 465, - 1393, 1467, 2042, 1211, 1212, 1459, 328, 280, 88, 714, - 1216, 1217, 301, 2684, 1797, 1798, 89, 90, 1063, 1064, - 2782, 379, 682, 2785, 1054, 1710, 81, 961, 488, 1719, - 1223, 1224, 1225, 1405, 1460, 1734, 1720, 1461, 929, 64, - 65, 93, 240, 2796, 466, 715, 1183, 1233, 1234, 1235, - 1055, 1237, 428, 1239, 599, 1240, 1665, 2803, 94, 476, - 2804, 2805, 550, 601, 1696, 1808, 1809, 517, 1311, 761, - 2199, 241, 2289, 2290, 2291, 490, 1243, 1585, 1245, 64, - 65, 835, 836, 862, 1063, 1064, 2207, 1702, 1247, 1799, - 543, 159, 1591, 544, 1597, 428, 1255, 716, 239, 1800, - 1801, 1257, 683, 264, 1802, 1406, 1407, 1985, 554, 1605, - 299, 1609, 302, 564, 109, 2226, 545, 1272, 1274, 1815, - 1408, 1312, 2098, 551, 565, 1315, 1317, 1320, 1816, 1817, - 1803, 362, 602, 1325, 567, 95, 1639, 2761, 1331, 586, - 1810, 242, 2111, 2764, 1711, 1374, 592, 1313, 394, 1332, - 1811, 1812, 1462, 1759, 1760, 1813, 243, 2148, 962, 963, - 2151, 595, 863, 1409, 593, 1340, 762, 1511, 2159, 577, - 1244, 2162, 1512, 635, 614, 603, 1818, 865, 96, 2170, - 578, 1814, 2173, 64, 65, 1463, 64, 65, 619, 2180, - 303, 636, 684, 618, 1513, 1514, 623, 1515, 1516, 304, - 2801, 1761, 2802, 318, 717, 627, 69, 579, 1517, 639, - 685, 1464, 70, 604, 97, 866, 644, 2597, 244, 2292, - 1518, 1519, 645, 435, 283, 712, 64, 65, 1520, 1675, - 1676, 1521, 1477, 964, 1779, 1780, 1447, 455, 456, 457, - 458, 459, 460, 965, 966, 461, 462, 463, 464, 1522, - 650, 71, 687, 1502, 1826, 1827, 1523, 1524, 698, 245, - 1525, 249, 1508, 719, 1448, 64, 65, 1449, 637, 246, - 64, 65, 720, 526, 967, 722, 117, 72, 1536, 1215, - 1537, 107, 1781, 2501, 580, 1538, 1539, 1540, 527, 726, - -1245, 319, 64, 65, 1623, 1546, 436, 1450, 1547, 728, - 1549, 288, 1828, 320, 1677, 796, 1319, 1819, 1820, 734, - 528, 2115, 2116, 740, 2280, 758, 1551, 759, 1552, 109, - 1526, 581, 782, 73, 1556, 1557, 1451, 64, 65, 1452, - 529, 783, 1762, 1763, 786, 1576, 1577, 646, 647, 1563, - 1564, 64, 1195, 428, 1566, 1567, 794, 530, 801, 250, - 531, 1569, 802, 1570, 1202, 1203, 1572, 815, 1573, 2117, - 816, 251, 819, 1626, 700, 110, 284, 704, 74, 64, - 65, 1857, 285, 820, 286, 1527, 821, 532, 533, 826, - 437, 1528, 1821, 2312, 64, 65, 1863, 321, 1411, 1412, - 582, 332, 1822, 1823, 829, 1620, 252, 1824, 1529, 1621, - 322, 1622, 333, 1205, 1206, 1625, 2329, 1764, 1530, 1686, - 765, 768, 771, 1782, 1783, 64, 1271, 1765, 1766, 831, - 1631, 112, 1634, 1825, 1636, 1637, 1638, 1640, 425, 334, - 534, 1643, 1644, 1829, 1830, 1531, 1532, 701, 427, 1652, - 535, 852, 583, 860, 1453, 253, 1658, 853, 1767, 2459, - 1659, 1660, 1661, 64, 65, 1861, 1533, 869, 254, 289, - 428, 1666, 1544, 1545, 1669, 2472, 1578, 1579, 64, 65, - 2477, 871, 1411, 1412, 1681, 878, 1682, 1454, 2362, 1684, - 1687, 117, 64, 65, 1906, 876, 118, 2371, 1784, 891, - 2118, 2119, 1901, 1902, 1580, 896, 2380, 290, 1785, 1786, - 901, 1534, 536, 537, 64, 65, 335, 2589, 1831, 907, - 2592, 909, 2594, 908, 1633, 910, 932, 943, 1832, 1833, - 2124, 2125, 1737, 933, 1738, 2606, 2607, 1739, 1740, 1787, - 1741, 934, 1742, 936, 940, 445, 938, 944, 1744, 948, - 1745, 729, 2621, 336, 953, 955, 83, 1751, 956, 1834, - 64, 65, 1688, 1689, 957, 969, 425, 426, 427, 291, - 968, 1673, 981, 989, 991, 2120, 992, 1690, 2126, 2133, - 2134, 999, 1000, 538, 1001, 2121, 2122, 1693, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 2123, 1057, 446, 1075, - 1691, 1066, 337, 1076, 730, 1127, 1128, 2135, 160, 2491, - 1129, 161, 1858, 1141, 1860, 1862, 2495, 1143, 1154, 447, - 448, 64, 65, 1879, 1155, 1411, 1412, 1156, 449, 64, - 65, 1908, 1157, 1411, 1412, 1158, 1873, 1159, 338, 1160, - 1876, 162, 1161, 1162, 1163, 1180, 450, 1185, 1186, 163, - 1187, 1188, 1213, 1189, 339, 2593, 451, 1190, 1191, 1204, - 1207, 84, 1214, 1218, 1905, 1907, 1221, 1222, 2605, 2516, - 1226, 1228, 2518, 2610, 1913, 2519, 1229, 2520, 1924, 1241, - 1242, 1262, 1263, 954, 85, 1930, 1264, 1266, 2038, 2127, - 2128, 1267, 1268, 1321, 1269, 1270, 1323, 1327, 1333, 1935, - 742, 1337, 1415, 1338, 1937, 1856, 1341, 1342, 1939, 164, - 1942, 1943, 1343, 1945, 1947, 1948, 1351, 1951, 2231, 1352, - 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1964, 1966, - 1967, 1353, 1354, 1969, 1970, 1971, 1972, 1096, 2136, 2137, - 87, 1356, 1121, 1978, 1979, 1358, 1357, 1981, 1982, 1983, - 1359, 1360, 1366, 1986, 1987, 1367, 1394, 743, 1395, 165, - 744, 1369, 1370, 1376, 2129, 1378, 1990, 1991, 1379, 1992, - 1993, 1381, 1396, 2283, 2130, 2131, 1400, 166, 167, 1397, - 1401, 88, 1402, 1420, 168, 1418, 169, 1419, 1440, 89, - 90, 1445, 1446, 1468, 293, 1465, 1470, 745, 1471, 1469, - 1489, 1484, 1488, 1490, 1495, 2132, 1496, 467, 1497, 1498, - 1421, 1504, 1506, 2138, 170, 2298, 1507, 2013, 2014, 2015, - 1543, 1554, 2016, 2139, 2140, 468, 2628, 2018, 2021, 1555, - 2023, 2024, 2025, 746, 2026, 2027, 1561, 2029, 1040, 1562, - 2032, 2033, 469, 1568, 1422, 1571, 1574, 1575, 1599, 2036, - 1423, 1588, 1041, 1593, 2141, 470, 1424, 2040, 1594, 1600, - 1601, 1042, 2045, 2046, 1602, 1670, 1611, 1612, 1613, 1616, - 2048, 1630, 1043, 471, 1425, 442, 1614, 472, 1615, 2051, - 171, 1628, 1629, 1648, 747, 1641, 1635, 1642, 748, 1653, - 473, 1654, 1655, 1667, 1227, 1426, 1671, 1674, 1683, -447, - 1685, 1694, 1044, 1697, 1718, 1707, 1712, 1721, 1730, 1743, - 1427, 1736, 1731, 749, 1749, 2079, 750, 1750, 1755, 1774, - 1777, 2020, 1347, 1045, 1788, 2760, 751, 1790, 1792, 1836, - 474, 1837, 1838, 1842, 1835, 1843, 1846, 2087, 2088, 1845, - 1847, 1428, 2090, 1850, 504, 1853, 511, 514, 2093, 519, - 523, 1871, 1875, 1881, 1398, 1882, 1887, 1890, 1891, 1097, - 1892, 1893, 1894, 1896, 2247, 1897, 1898, 1098, 1903, 1046, - 1922, 2031, 1927, 1099, 1938, 2248, 1975, 1940, 590, 1976, - 1429, 1899, 1900, 1977, 2142, 1988, 1989, 1944, 1994, 2064, - 1995, 1996, 2000, 1952, 1100, 1430, 1953, 606, 612, 2070, - 1998, 1097, 2249, 1999, 2075, 2001, 1968, 1431, 1047, 1098, - 2002, 2153, 2003, 2004, 2005, 1099, 2006, 2009, 1101, 2007, - 2008, 2444, 2445, 2010, 2447, 2448, 1102, 2011, 2451, 2452, - 2012, 2301, 2028, 2030, 1432, 1048, 1100, 2034, 2047, 2250, - 2052, 696, 2053, 2054, 2055, 2056, 1433, 2057, 1434, 1435, - 2089, 2463, 2091, 706, 2092, 2194, 2095, 2195, 2096, 2197, - 1101, 2097, 2099, 2100, 1103, 2101, 2104, 2112, 1102, 2106, - 2107, 2108, 1104, 727, 1049, 2113, 1050, 2114, 2208, 2209, - 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2143, 1436, 2499, - 2144, 2145, 2149, 2150, 2164, 2152, 2154, 2155, 2156, 2160, - 2161, 2171, 2222, 2163, 2224, 2165, 1103, 2166, 2167, 2172, - 2634, 2174, 2175, 2176, 1104, 2177, 2181, 2182, 1105, 1505, - 2183, 2230, 428, 2185, 2186, 2188, 2189, 2234, 2191, 2198, - 1106, 2200, 2203, 2206, 2217, 2218, 2237, 2238, 2239, 2240, - 2241, 2242, 2243, 2244, 2245, 2246, 1107, 2219, 2259, 2260, - 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, - 1105, 2273, 2220, 2274, 2275, 2276, 2697, 2221, 2464, 2225, - 2272, 2277, 1106, 2278, 2285, 1550, 2281, 428, 2284, 2282, - 2288, 2486, 2302, 830, 2303, 2304, 2307, 1558, 1107, 2315, - 2318, 2319, 2320, 2321, 837, 2322, 2348, 2251, 2350, 2252, - 2352, 2355, 2363, 845, 2357, 2358, 2359, 2364, 2465, 2365, - 2366, 2293, 2367, 2294, 2368, 2295, 2372, 2297, 2373, 428, - 2299, 2374, 2300, 2375, 2376, 2377, 2381, 2382, 2390, 2305, - 2306, 2383, 2393, 2401, 2404, 2407, 2310, 2579, 2311, 2408, - 2697, 2582, 2314, 2410, 2413, 2316, 2414, 2415, 2418, 2423, - 2427, 2443, 2497, 2253, 2466, 2467, 2503, 2468, 2469, 2471, - 2504, 2506, -1108, 2509, 2510, 2704, 2511, 2512, 2745, 2513, - 2515, 882, 883, 2521, 2522, 2531, 2540, 2616, 2549, 2555, - 2559, 2562, 2568, 2576, 887, 2587, 2251, 2598, 2599, 890, - 2351, 2600, 2601, 2602, 2603, 1649, 1650, 2618, 902, 2629, - 1752, 1753, 1754, 2630, 2632, 2633, 2775, 2640, 2670, 2676, - 1756, 1757, 1758, 2679, 2680, 2681, 2686, 1769, 1770, 1771, - 2701, 2705, 1772, 1773, 2702, 1775, 1776, 2703, 2711, 2713, - 2724, 2732, 834, 2735, 2738, 814, 2747, 2748, 2749, 2756, - 2759, 2784, 2317, 2769, 2416, 2770, 2776, 2788, 2789, 2791, - 2795, 2797, 2710, 2798, 2799, 1848, 1849, 2800, 2645, 1851, - 1852, 2470, 2694, 2746, 2742, 1164, 0, 0, 0, 0, - 949, 950, 951, 952, 0, 0, 0, 0, 0, 0, - 0, 2349, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2421, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2428, 2429, 2430, 2431, 2432, - 2433, 2434, 2435, 2436, 2437, 2438, 0, 0, 0, 0, - 0, 2441, 0, 0, 0, 428, 428, 0, 428, 428, - 0, 1095, 428, 428, 2453, 2454, 2455, 2456, 2457, 2458, - 0, 2460, 2461, 2462, 2751, 2753, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2473, 2474, 2475, - 2476, 0, 2478, 2479, 2480, 2481, 2482, 2483, 0, 2485, - 0, 0, 2489, 2490, 0, 0, 710, 1854, 0, 0, - 0, 0, 0, 1859, 0, 0, 0, 0, 0, 0, - 2498, 0, 0, 428, 2500, 0, 0, 0, 2502, 0, - 0, 0, 2505, 0, 0, 1872, 0, 0, 1874, 0, - 0, 0, 1878, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 219, 0, 0, 0, 0, 0, - 0, 0, 0, 1904, 0, 795, 0, 0, 0, 1910, - 0, 0, 0, 0, 0, 0, 220, 1923, 2523, 221, - 1926, 0, 0, 0, 0, 0, 0, 0, 0, 1931, - 1932, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1936, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 222, 0, 0, 0, 0, 0, 0, - 223, 0, 0, 1231, 0, 0, 0, 0, 0, 0, - 0, 224, 225, 0, 0, 1236, 0, 0, 226, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2570, 0, 0, 0, 2572, 0, 0, 0, 0, 0, - 0, 227, 0, 0, 2573, 2574, 0, 0, 0, 0, - 2578, 428, 1246, 0, 2581, 428, 0, 0, 0, 228, - 2586, 0, 0, 2590, 2591, 0, 0, 0, 0, 0, - 0, 0, 0, 229, 230, 0, 0, 0, 0, 0, - 231, 0, 2608, 2609, 0, 2611, 2612, 2613, 2614, 2615, - 0, 428, 2617, 0, 0, 0, 2620, 879, 0, 0, - 0, 232, 0, 0, 884, 0, 0, 885, 0, 2631, - 0, 0, 886, 0, 2635, 0, 888, 0, 0, 0, - 0, 0, 0, 0, 2094, 1336, 0, 0, 0, 0, - 2646, 0, 0, 0, 0, 0, 0, 2102, 0, 233, - 0, 0, 0, 0, 0, 0, 0, 2105, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2658, 0, 0, 0, 0, 2662, 0, 2664, - 0, 0, 0, 947, 0, 2667, 0, 0, 0, 0, - 0, 0, 234, 0, 0, 0, 0, 0, 2674, 0, - 1482, 0, 235, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2685, 0, 0, 2190, - 2689, 2719, 0, 0, 64, 65, 0, 0, 0, 0, - 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, - 107, 0, 2709, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1542, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1548, 0, 0, 0, 0, 2722, - 0, 0, 0, 0, 2727, 0, 2729, 0, 109, 0, - 0, 0, 0, 2733, 0, 0, 0, 0, 2736, 0, - 0, 0, 0, 2739, 0, 0, 0, 0, 0, 1136, - 0, 0, 0, 0, 0, 0, 1142, 1200, 0, 2313, - 0, 0, 0, 0, 0, 0, 2750, 2752, 0, 0, - 0, 0, 0, 0, 110, 2324, 2325, 2326, 0, 0, - 2328, 0, 2330, 2331, 0, 0, 2333, 2334, 2335, 0, - 2762, 2337, 2338, 2763, 0, 2341, 2765, 2343, 2344, 0, - 2346, 2202, 0, 0, 0, 0, 0, 2771, 2772, 2773, - 2774, 0, 0, 0, 0, 0, 0, 0, 1624, 2783, - 0, 0, 2786, 0, 0, 0, 0, 0, 0, 2790, - 112, 2792, 0, 0, 0, 1632, 0, 2227, 0, 0, - 0, 0, 0, 0, 1364, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1657, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1663, - 0, 0, 0, 1230, 0, 2758, 0, 0, 0, 0, - 1232, 0, 0, 0, 0, 0, 0, 0, 1680, 0, - 117, 0, 0, 0, 0, 118, 0, 0, 1692, 0, - 0, 0, 0, 1700, 0, 0, 0, 2778, 2417, 0, - 2781, 2420, 0, 0, 0, 0, 2424, 0, 0, 2425, - 0, 0, 2353, 0, 0, 1248, 1249, 0, 0, 0, - 1253, 0, 0, 1256, 0, 0, 0, 0, 2440, 0, - 0, 0, 0, 0, 0, 1265, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2385, 2386, 2387, 2388, 2389, 0, 2391, 2392, - 0, 0, 0, 2396, 2397, 2398, 2399, 2400, 0, 2402, - 2403, 0, 0, 0, 0, 0, 0, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2508, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1855, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1403, 0, 0, 0, - 0, 0, 0, 0, 0, 2517, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1877, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 1911, 0, 0, 1912, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1928, 1929, - 0, 0, 0, 0, 0, 0, 1933, 0, 0, 0, - 0, 0, 0, 1934, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2567, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2575, 0, 0, 0, 0, 0, - 0, 2580, 0, 1973, 2583, 2584, 0, 0, 0, 0, - 0, 0, 0, 2524, 0, 1984, 2526, 2527, 2528, 2529, - 2530, 0, 2532, 2533, 0, 2535, 2536, 2537, 2538, 2539, - 0, 2541, 2542, 0, 2544, 2545, 2546, 2547, 2548, 0, - 2550, 2551, 0, 2553, 0, 0, 0, 2492, 0, 0, - 0, 0, 0, 2556, 2557, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2560, 0, 1768, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1778, 0, - 0, 0, 0, 0, 1627, 0, 0, 0, 0, 0, - 0, 0, 2019, 0, 0, 0, 1839, 1840, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2035, 0, 0, 0, 1651, 0, 0, 0, 0, 1656, - 0, 2659, 0, 0, 0, 0, 2044, 0, 0, 1662, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2669, 2049, 0, 2050, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2058, 0, 0, 2060, 0, 2061, 2062, - 2063, 2065, 0, 0, 2067, 0, 0, 2068, 0, 0, - 2069, 2071, 0, 2072, 2073, 2074, 2076, 0, 2077, 2078, - 0, 0, 0, 0, 2080, 2081, 2082, 0, 0, 2083, - 2084, 0, 0, 2648, 0, 2085, 2086, 0, 0, 0, - 0, 0, 2650, 0, 0, 0, 0, 0, 0, 0, - 0, 2652, 0, 2653, 0, 2720, 2721, 2655, 2723, 0, - 2725, 2726, 0, 2728, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2604, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2622, 0, - 0, 0, 2627, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2755, 106, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2714, 0, 2715, 0, - 2716, 108, 0, 2717, 0, 2718, 64, 65, 0, 2193, - 0, 2787, 0, 2196, 0, 0, 0, 0, 109, 0, - 0, 0, 107, 0, 0, 2201, 0, 0, 2204, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1925, 0, 0, 2223, 0, - 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 111, 0, 0, 2700, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, - 0, 0, 0, 0, 2271, 1974, 0, 0, 0, 0, - 112, 1980, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2287, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, - 0, 0, 112, 0, 0, 0, 114, 0, 0, 0, - 0, 0, 0, 2103, 115, 116, 0, 0, 0, 0, - 117, 2109, 2110, 0, 0, 118, 0, 0, 2309, 0, - 0, 0, 0, 0, 0, 0, 2146, 2147, 0, 2017, - 0, 0, 2768, 0, 0, 2022, 0, 2157, 2158, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2168, 2169, - 0, 0, 0, 0, 0, 0, 0, 118, 2178, 2179, - 2037, 2340, 0, 0, 2184, 0, 2043, 0, 0, 0, - 0, 0, 0, 0, 2187, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 119, 0, 0, 0, 2059, 0, 0, 0, 0, - 0, 0, 0, 2066, 0, 0, 120, 121, 122, 123, + 67, 868, 352, 1897, 1511, 1084, 1087, 2041, 104, 2043, + 64, 65, 1584, 1110, 1589, 897, 64, 65, 1964, 106, + 258, 903, 1416, 788, 64, 65, 791, 373, 641, 292, + 106, 360, 1474, 1916, -1096, 847, 1125, 316, 64, 65, + 1619, 1620, 1621, 1089, 106, 850, 346, 1090, 106, 357, + 1079, 572, 364, 64, 65, 1917, 370, 1476, 1918, 377, + 688, 64, 65, 380, 382, 64, 65, 392, 1146, 1919, + 399, 403, 1748, 1717, 406, 64, 65, 341, 410, 1647, + 1114, 412, 259, 411, 64, 65, 1501, 1724, 64, 65, + 1867, 294, 1920, 64, 65, 1734, 424, 428, 433, 434, + 438, 440, 64, 65, 260, 1070, 2643, 238, 64, 65, + 1921, 764, 1350, 615, 109, 106, 296, 444, 857, 106, + 1091, 64, 65, 1073, 1700, 546, 1367, 1482, 540, 1370, + 99, 309, 1126, 2648, 854, 989, 111, 1493, 1127, 1331, + 407, 1147, 1092, 64, 65, 1725, 1401, 111, 106, 2754, + 100, 904, 453, 873, 723, 624, 1477, 261, 1561, 395, + 1221, 111, 106, 64, 65, 111, 76, 573, 1222, 361, + 1562, 54, 443, 1346, 754, 485, 858, 216, 1118, 898, + 506, 1868, 767, 64, 65, 1502, 1252, 1253, 1254, 827, + 828, 282, 1710, 1715, 217, 1885, 1074, 396, 2777, 342, + 106, 1347, 1480, 101, 1093, 635, 990, 1887, 547, 1481, + 1721, 770, 1726, 995, 1443, 1351, 1718, 1722, 874, 855, + 114, 541, 1332, 636, 376, 1148, 157, 1060, 115, 116, + 1890, 114, 111, 1475, 755, 1869, 111, 310, 1735, 115, + 116, 548, 507, 622, 515, 114, 520, 524, 1080, 114, + 713, 1336, 1483, 115, 116, 552, 689, 115, 116, 648, + 649, 996, 478, 690, 691, 111, 724, 1324, 479, 1061, + 585, 629, 574, 773, 1719, 695, 117, 697, 314, 111, + 1075, 374, 343, 1495, 972, 699, 702, 102, 705, 709, + 1749, 711, 555, 973, 974, 388, 1736, 1149, 642, 692, + 637, 721, 575, 1141, 1094, 616, 413, 480, 1512, 1648, + 789, 731, 733, 792, 905, 119, 114, 111, 1478, 568, + 114, 262, 1965, -1096, 115, 116, 119, 899, 115, 116, + 2714, 1081, 66, 481, 776, 777, 779, 1128, 781, 1115, + 119, 975, 784, 785, 119, 1701, 778, 1503, 1705, 114, + 707, 268, 1071, 797, 799, 345, 1444, 115, 116, 356, + 2644, 800, 1922, 114, 149, 1116, 803, 805, 263, 150, + 151, 115, 116, 1485, 806, 149, 1119, 807, 315, 482, + 150, 151, 369, 103, 1494, 630, 408, 2649, 1943, 149, + 756, 1505, 997, 149, 150, 151, 817, 818, 150, 151, + 625, 114, 1062, 822, 823, 824, 693, 825, 1948, 115, + 116, 119, 389, 1711, 1716, 119, 1886, 297, 1063, 1064, + 383, 832, 1543, 483, 484, 833, 269, 298, 1888, 1445, + 838, 839, 840, 841, 842, 843, 1866, 844, 1240, 428, + 848, 849, 1151, 1999, 119, 2601, 1418, 2715, 587, 428, + 851, 1891, 774, 1555, 1176, 324, 390, 391, 119, 1120, + 149, 631, 311, 1882, 149, 150, 151, 998, 861, 150, + 151, 2625, 976, 977, 1446, 64, 65, 999, 1363, 1385, + 173, 1256, 248, 1053, 1496, 312, 1911, 1122, 1386, 1387, + 1706, 483, 2716, 149, 64, 65, 119, 1210, 150, 151, + 846, 64, 65, 880, 881, 325, 735, 149, 1000, 1054, + 1065, 1066, 150, 151, 326, 1152, 632, 556, 64, 65, + 2653, 889, 270, 256, 1795, 1177, 1060, 64, 65, 109, + 1111, 961, 962, 1796, 1797, 1440, 1388, 271, 557, 1843, + 948, 633, 1846, 327, 569, 149, 266, 978, 1060, 912, + 150, 151, 1666, 558, 1167, 742, 1172, 979, 980, 308, + 1670, 1260, 981, 1707, 862, 1419, 736, 570, 1061, 1761, + 1762, 64, 65, 760, 2679, 2680, 526, 1487, 2683, 963, + 2685, 1798, 943, 986, 363, 1307, 64, 1197, 982, 894, + 1061, 527, 2690, 2691, 400, 64, 65, 2695, 2696, 1153, + 272, 2699, 1005, 1112, 620, 306, 2700, 2701, 1708, 577, + 1086, 274, 384, 528, 1168, 744, 1173, 1763, 331, 960, + 578, 77, 1364, 1204, 1205, 893, 932, 1806, 1178, 1817, + 275, 588, 276, 529, 2719, 354, 1807, 1808, 1818, 1819, + 1183, 1727, 1055, 863, 2722, 1004, 359, 579, 761, 1308, + 530, 1169, 1737, 531, 1441, 2511, 559, 78, 2740, 1585, + 366, 2741, 1082, 385, 1211, 1095, 2744, 1389, 1390, 808, + 386, 1154, 2747, 1488, 55, 1309, 1261, 2750, 109, 367, + 532, 533, 64, 65, 1809, 368, 1820, 1113, 1179, 714, + 401, 117, 1132, 379, 737, 1056, 1133, 1134, 1135, 1136, + 1184, 1062, 1137, 328, 1139, 1591, 1140, 428, 1142, 1318, + 964, 965, 1799, 1800, 560, 1674, 56, 1063, 1064, 1586, + 621, 1057, 738, 1062, 580, 715, 1083, 1312, 865, 1597, + 79, 1567, 1489, 534, 57, 809, 64, 65, 1203, 1063, + 1064, 372, 1391, 535, 405, 762, 415, 421, 1764, 1765, + 277, 2792, 1392, 1393, 2795, 1310, -1249, 1394, 561, 441, + 1625, 581, 913, 914, 58, 1592, 866, 562, 109, 402, + 1170, 750, 1174, 422, 2806, 1194, 1195, 716, 1196, 1198, + 1200, 1201, 59, 1395, 417, 966, 60, 1801, 2813, 1598, + 419, 2814, 2815, 1213, 1214, 967, 968, 1802, 1803, 61, + 1218, 1219, 1804, 1326, 810, 536, 537, 1311, 278, 1065, + 1066, 1605, 1609, 454, 80, 1810, 1811, 1821, 1822, 915, + 1225, 1226, 1227, 1766, 465, 916, 969, 1728, 1805, 1468, + 582, 1065, 1066, 1767, 1768, 64, 65, 1235, 1236, 1237, + 117, 1239, 428, 1241, 1180, 1242, 64, 65, 1667, 2291, + 2292, 2293, 279, 1697, 1578, 1579, 1185, 283, 796, 550, + 1313, 280, 249, 466, 1769, 1729, 1245, 81, 1247, 488, + 301, 1606, 1610, 476, 917, 1587, 538, 1703, 1249, 398, + 490, 2201, 583, 435, 717, 428, 1257, 159, 517, 918, + 1812, 1259, 1823, 811, 239, 1987, 544, 2209, 812, 264, + 1813, 1814, 1824, 1825, 919, 1815, 299, 1826, 1274, 1276, + 920, 109, 543, 1314, 2100, 921, 1317, 1319, 1322, 554, + 551, 1593, 565, 1730, 1327, 545, 2228, 362, 1246, 1333, + 117, 1816, 682, 1827, 2113, 564, 1376, 64, 65, 1315, + 1334, 1870, 219, 597, 394, 1599, 601, 1712, 1469, 2150, + 250, 567, 2153, 586, 332, 592, 436, 1342, 593, 62, + 2161, 2681, 251, 2164, 220, 333, 2044, 221, 318, 922, + 302, 2172, 1698, 865, 2175, 240, 1677, 1678, 595, 2692, + 2249, 2182, 1731, 1207, 1208, 1580, 1581, 598, 923, 64, + 65, 2250, 334, 924, 1641, 925, 1704, 252, 614, 284, + 492, 222, 618, 1321, 241, 285, 619, 286, 223, 493, + 2603, 866, 683, 1582, 623, 602, 627, 1099, 2251, 224, + 225, 926, 927, 639, 1479, 1100, 226, 1607, 1611, 928, + 2294, 1101, 1871, 455, 456, 457, 458, 459, 460, 644, + 437, 461, 462, 463, 464, 1504, 253, 929, 303, 227, + 645, 1679, 1102, 83, 1510, 2252, 319, 304, 603, 254, + 650, 64, 65, 712, 64, 65, 1713, 228, 320, 335, + 1538, 687, 1539, 117, 242, 698, 1103, 1540, 1541, 1542, + 107, 229, 230, 719, 1104, 720, 1872, 1548, 231, 243, + 1549, 722, 1551, 726, 599, 728, 604, 83, 700, 734, + 288, 758, 684, 930, 93, 740, 336, 2771, 1553, 232, + 1554, 1781, 1782, 2774, 64, 1273, 1558, 1559, 109, 759, + 685, 94, 1105, 64, 65, 64, 65, 1859, 1546, 1547, + 1106, 1565, 1566, 646, 647, 428, 1568, 1569, 783, 2595, + 64, 65, 2598, 1571, 2600, 1572, 782, 233, 1574, 786, + 1575, 244, 321, 794, 1628, 1828, 1829, 2612, 2613, 1783, + 801, 2117, 2118, 704, 110, 322, 64, 65, 1863, 802, + 2811, 701, 2812, 815, 2627, 337, 1107, 729, 84, 829, + 2505, 816, 2126, 2127, 819, 64, 65, 1622, 1108, 2135, + 2136, 1623, 245, 1624, 804, 1903, 1904, 1627, 95, 820, + 234, 85, 246, 1830, 1109, 86, 765, 768, 771, 2119, + 235, 338, 1633, 2253, 1636, 2254, 1638, 1639, 1640, 1642, + 112, 821, 84, 1645, 1646, 64, 65, 339, 835, 836, + 2128, 1654, 826, 1457, 1217, 831, 425, 2137, 1660, 236, + 427, 96, 1661, 1662, 1663, 85, 64, 65, 1908, 2040, + 730, 852, 428, 1668, 853, 860, 1671, 87, 289, 869, + 2463, 1458, 871, 876, 1459, 878, 1683, 1460, 1684, 2255, + 2366, 1686, 896, 891, 1635, 901, 2476, 97, 2282, 2375, + 117, 2481, 64, 65, 1865, 118, 1413, 1414, 2384, 907, + 1784, 1785, 908, 69, 1461, 910, 290, 911, 88, 70, + 933, 87, 64, 65, 934, 935, 89, 90, 425, 426, + 427, 937, 160, 941, 1739, 161, 1740, 939, 944, 1741, + 1742, 1675, 1743, 1462, 1744, 950, 1463, 955, 946, 957, + 1746, 958, 1747, 970, 1831, 1832, 971, 1695, 71, 1753, + 2120, 2121, 88, 959, 983, 162, 991, 2314, 993, 994, + 89, 90, 1001, 163, 1002, 64, 65, 1881, 291, 1413, + 1414, 2129, 2130, 1003, 72, 1786, 1059, 1068, 2138, 2139, + 2332, 1077, 1129, 1078, 1130, 1787, 1788, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 0, 0, 0, 0, 0, - 149, 0, 0, 0, 0, 150, 151, 0, 0, 121, + 144, 145, 146, 147, 148, 1131, 1789, 64, 65, 1833, + 73, 1413, 1414, 164, 1860, 2122, 1862, 1864, 1143, 1834, + 1835, 1145, 1406, 1156, 1160, 2123, 2124, 64, 65, 1910, + 1158, 1413, 1414, 1157, 1159, 1161, 2131, 1162, 1875, 1163, + 1165, 1464, 1878, 2140, 1164, 1182, 2132, 2133, 1187, 1188, + 1836, 1189, 1190, 2141, 2142, 74, 2125, 1191, 1192, 1193, + 1206, 1209, 1215, 165, 1216, 1223, 1907, 1909, 1688, 1224, + 1220, 1228, 1230, 1231, 1465, 1858, 1915, 2134, 2599, 1243, + 1926, 166, 167, 1244, 2143, 1264, 1265, 1932, 168, 956, + 169, 2611, 1266, 1407, 1268, 1270, 2616, 1269, 1271, 1272, + 1466, 1937, 742, 1323, 1325, 1329, 1939, 1335, 1339, 1353, + 1941, 1340, 1944, 1945, 1343, 1947, 1949, 1950, 170, 1953, + 2233, 1344, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, + 1966, 1968, 1969, 1345, 1354, 1971, 1972, 1973, 1974, 1689, + 1355, 1356, 1360, 1098, 1361, 1980, 1981, 1358, 1123, 1983, + 1984, 1985, 1359, 1362, 1417, 1988, 1989, 1368, 1369, 743, + 1371, 1372, 744, 1378, 1449, 1408, 1409, 1380, 1992, 1993, + 1381, 1994, 1995, 1383, 1398, 2285, 1396, 1397, 1421, 1399, + 1410, 293, 1042, 2495, 171, 445, 1402, 1447, 1403, 1404, + 2499, 1442, 1450, 1420, 1448, 1451, 1043, 1467, 1472, 745, + 1470, 1471, 1473, 1486, 1491, 1044, 1492, 1497, 1490, 1498, + 1499, 1690, 1691, 1500, 1506, 1508, 1045, 2300, 1509, 2015, + 2016, 2017, 1545, 1411, 2018, 1452, 1692, 1556, 1557, 2020, + 2023, 1563, 2025, 2026, 2027, 746, 2028, 2029, 1564, 2031, + 1570, 1577, 2034, 2035, 2521, 1573, 1046, 2523, 1590, 1595, + 2524, 2038, 2525, 1576, 1453, 1596, 1601, 1454, 446, 2042, + 1602, 1603, 442, 1099, 2047, 2048, 1604, 1047, 1613, 1693, + 1614, 1100, 2050, 1615, 1618, 467, 1616, 1101, 1617, 447, + 448, 2053, 1630, 1631, 1632, 1643, 747, 1637, 449, 1644, + 748, 2022, 1650, 468, 1655, 1656, 1657, 1669, 1102, 1672, + 1229, 1676, 1673, 1685, -451, 1687, 450, 1709, 1696, 1732, + 469, 1720, 1699, 1048, 1714, 749, 451, 2081, 750, 1723, + 1745, 1738, 1103, 470, 1751, 1733, 1752, 1757, 751, 1776, + 1104, 504, 1779, 511, 514, 1790, 519, 523, 1792, 2089, + 2090, 471, 1794, 1838, 2092, 472, 1839, 1840, 1844, 1845, + 2095, 1837, 1049, 1847, 2770, 1848, 1849, 1852, 473, 2066, + 1855, 1873, 1877, 1894, 1883, 590, 1895, 1884, 1105, 2072, + 1896, 1889, 1455, 1892, 2077, 1893, 1106, 1898, 1899, 1050, + 1900, 1905, 1924, 1978, 606, 612, 1929, 1940, 1942, 1901, + 1902, 1366, 1946, 1977, 1979, 1954, 1990, 1991, 474, 1955, + 1996, 1997, 2634, 1202, 1970, 1456, 1998, 2033, 2000, 2001, + 2002, 2003, 2004, 834, 2005, 2006, 2007, 2008, 1051, 2009, + 1052, 2010, 1107, 2448, 2449, 2011, 2451, 2452, 696, 2012, + 2455, 2456, 2013, 2014, 1108, 2030, 2032, 2036, 2049, 2054, + 706, 2055, 2056, 2057, 2058, 2059, 2091, 2467, 2093, 2094, + 1109, 2097, 2098, 2099, 2101, 2102, 2106, 2196, 2103, 2197, + 727, 2199, 2108, 2109, 2110, 2114, 2115, 2144, 2116, 2145, + 2146, 2147, 2151, 2152, 2155, 2154, 2156, 2157, 2158, 2162, + 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2163, + 2173, 2503, 2165, 2167, 2166, 2168, 2169, 2174, 2490, 2176, + 2177, 2178, 2179, 2183, 2224, 2184, 2226, 2185, 2193, 2187, + 2188, 2190, 2191, -1112, 2200, 2202, 2205, 2208, 2219, 2220, + 2253, 2221, 2222, 2232, 428, 2223, 2279, 1507, 2227, 2236, + 2274, 2280, 2303, 2283, 2284, 2287, 2290, 2306, 2239, 2240, + 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2304, 2305, + 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, + 2271, 2272, 2309, 2275, 2317, 2276, 2277, 2278, 2321, 2322, + 830, 2323, 2705, 2324, 2325, 2351, 2468, 2354, 2356, 428, + 2286, 837, 2359, 1552, 2361, 2362, 2363, 2367, 2368, 2376, + 845, 2369, 2370, 2371, 2372, 1560, 2377, 2469, 2378, 2379, + 2380, 2381, 2385, 2386, 2470, 2387, 2394, 2397, 2405, 2408, + 2411, 2412, 2414, 2295, 2417, 2296, 2418, 2297, 2419, 2299, + 2422, 428, 2301, 2427, 2302, 2431, 2447, 2501, 2785, 2507, + 2508, 2307, 2308, 2471, 2510, 2640, 2513, 2472, 2312, 2473, + 2313, 2585, 2515, 2475, 2316, 2588, 2516, 2318, 2705, 2517, + 2712, 2518, 2520, 2526, 2528, 2537, 2546, 2555, 882, 883, + 2561, 2565, 2568, 2574, 2582, 2593, 2755, 2604, 2605, 2718, + 2606, 887, 2607, 2608, 2609, 2635, 890, 2624, 2636, 2638, + 2639, 2622, 2642, 2474, 2647, 902, 2652, 2678, 2684, 2702, + 2687, 2688, 2355, 2689, 2694, 2709, 814, 2710, 2711, 2713, + 2720, 2723, 2734, 1651, 1652, 2742, 2756, 2745, 2748, 2752, + 2757, 2758, 2320, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 2759, 2766, 2769, 2794, 2420, 2779, 2780, 2786, 2798, + 2799, 2353, 2801, 2805, 2807, 1166, 2808, 951, 952, 953, + 954, 2809, 2810, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1770, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1780, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2425, 710, 0, 0, + 0, 0, 0, 1841, 1842, 0, 0, 2432, 2433, 2434, + 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 1097, 0, + 0, 0, 0, 2445, 0, 0, 0, 428, 428, 0, + 428, 428, 2761, 2763, 428, 428, 2457, 2458, 2459, 2460, + 2461, 2462, 0, 2464, 2465, 2466, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 795, 0, 0, 2477, + 2478, 2479, 2480, 0, 2482, 2483, 2484, 2485, 2486, 2487, + 0, 2489, 0, 0, 2493, 2494, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1856, 0, 0, 0, 0, + 0, 1861, 2502, 0, 0, 428, 2504, 0, 0, 0, + 2506, 0, 0, 0, 2509, 0, 0, 0, 0, 0, + 0, 0, 0, 1874, 0, 0, 1876, 0, 0, 0, + 1880, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1906, 0, 0, 0, 0, 0, 1912, 0, 0, + 0, 0, 2529, 0, 0, 1925, 0, 0, 1928, 0, + 0, 0, 0, 0, 0, 0, 0, 1933, 1934, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1938, 0, + 1233, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1238, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 879, 0, + 0, 0, 0, 0, 0, 884, 0, 0, 885, 0, + 0, 0, 0, 886, 2576, 0, 0, 888, 2578, 1248, + 0, 0, 0, 0, 0, 0, 0, 0, 2579, 2580, + 0, 0, 0, 0, 2584, 428, 0, 0, 2587, 428, + 0, 0, 0, 0, 2592, 0, 0, 2596, 2597, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2614, 2615, 0, 2617, + 2618, 2619, 2620, 2621, 0, 428, 2623, 1513, 0, 1349, + 2626, 0, 1514, 0, 949, 0, 0, 0, 0, 0, + 0, 0, 0, 2637, 1338, 0, 2315, 0, 2641, 0, + 0, 0, 0, 0, 1515, 1516, 0, 1517, 1518, 0, + 0, 1400, 2327, 2328, 2329, 0, 2654, 2331, 1519, 2333, + 2334, 0, 0, 2336, 2337, 2338, 0, 0, 2340, 2341, + 1520, 1521, 2344, 0, 2346, 2347, 0, 2349, 1522, 0, + 0, 1523, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2666, 1524, + 0, 0, 0, 2670, 0, 2672, 1525, 1526, 0, 1484, + 1527, 2675, 0, 0, 0, 0, 0, 0, 0, 0, + 2105, 0, 0, 0, 2682, 0, 0, 0, 2111, 2112, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1138, 0, 2693, 2148, 2149, 0, 2697, 1144, 2729, 0, + 0, 0, 0, 0, 2159, 2160, 0, 0, 0, 0, + 0, 0, 0, 1544, 0, 2170, 2171, 0, 2717, 0, + 1528, 0, 0, 1550, 0, 2180, 2181, 0, 0, 0, + 0, 2186, 0, 0, 0, 2421, 0, 0, 2424, 0, + 0, 2189, 0, 2428, 0, 0, 2429, 2732, 0, 0, + 0, 0, 2737, 0, 2739, 0, 0, 0, 0, 0, + 0, 2743, 0, 0, 0, 2444, 2746, 0, 0, 0, + 0, 2749, 0, 0, 0, 1529, 0, 0, 0, 0, + 0, 1530, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2760, 2762, 0, 0, 1531, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1532, 0, + 0, 0, 0, 0, 1232, 0, 0, 0, 0, 0, + 2772, 1234, 0, 2773, 0, 0, 2775, 1626, 0, 2204, + 64, 65, 0, 0, 0, 1533, 1534, 2781, 2782, 2783, + 2784, 0, 0, 0, 1634, 0, 107, 0, 0, 2793, + 0, 2512, 2796, 0, 0, 0, 1535, 0, 0, 2800, + 0, 2802, 0, 0, 0, 2229, 1250, 1251, 1659, 0, + 0, 1255, 0, 2768, 1258, 0, 0, 0, 1665, 0, + 0, 0, 0, 2522, 109, 0, 1267, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1682, 0, 0, + 0, 1536, 0, 0, 0, 2788, 0, 1694, 2791, 0, + 0, 0, 1702, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1754, 1755, 1756, + 0, 0, 0, 0, 0, 0, 0, 1758, 1759, 1760, + 0, 0, 0, 2573, 1771, 1772, 1773, 0, 0, 1774, + 1775, 0, 1777, 1778, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2581, 0, 0, 112, 0, 0, 1405, + 2586, 0, 0, 2589, 2590, 0, 0, 0, 0, 0, + 2358, 0, 1850, 1851, 0, 0, 1853, 1854, 0, 0, + 2360, 0, 0, 0, 2364, 2365, 0, 0, 0, 0, + 0, 0, 0, 2373, 2374, 0, 0, 0, 0, 0, + 0, 0, 2382, 2383, 0, 0, 0, 0, 2388, 0, + 0, 0, 0, 0, 0, 1857, 117, 0, 2398, 2399, + 0, 118, 0, 0, 0, 0, 0, 0, 0, 2409, + 2410, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2413, 0, 0, 0, 106, 1879, 0, 0, 0, 2415, + 0, 2416, 0, 0, 0, 0, 0, 0, 0, 107, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1913, 0, 0, 1914, 0, 0, + 108, 0, 2667, 0, 0, 0, 0, 1930, 1931, 0, + 0, 0, 0, 0, 0, 1935, 0, 109, 0, 0, + 0, 2677, 1936, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 0, 1975, 110, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1986, 0, 0, 1629, 0, 0, + 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2730, 2731, + 0, 2733, 0, 2735, 2736, 0, 2738, 1653, 0, 0, + 0, 0, 1658, 0, 0, 0, 0, 0, 0, 112, + 0, 0, 1664, 0, 0, 2496, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2531, 0, 0, 0, 0, 0, 0, + 0, 2021, 0, 2540, 0, 0, 0, 113, 0, 2765, + 0, 0, 2549, 0, 0, 114, 0, 0, 0, 2037, + 0, 2558, 0, 115, 116, 0, 0, 0, 2560, 117, + 0, 0, 0, 0, 118, 2046, 0, 0, 0, 2564, + 0, 0, 0, 0, 0, 2567, 0, 0, 2569, 0, + 2051, 2570, 2052, 0, 0, 0, 2797, 0, 0, 0, + 0, 0, 2060, 0, 0, 2062, 0, 2063, 2064, 2065, + 2067, 0, 0, 2069, 0, 0, 2070, 0, 0, 2071, + 2073, 0, 2074, 2075, 2076, 2078, 0, 2079, 2080, 0, + 0, 0, 0, 2082, 2083, 2084, 0, 0, 2085, 2086, + 0, 2096, 0, 0, 2087, 2088, 0, 0, 0, 0, + 119, 0, 0, 0, 2104, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2107, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 0, 0, 0, 651, 652, 149, + 0, 0, 0, 0, 150, 151, 0, 0, 2610, 0, + 0, 2655, 0, 0, 0, 0, 0, 0, 0, 0, + 2657, 0, 0, 0, 0, 0, 0, 0, 2628, 2659, + 0, 0, 2633, 0, 0, 2662, 2192, 0, 0, 2664, + 0, 0, 2665, 0, 0, 0, 64, 65, 1927, 1422, + 0, 0, 0, 0, 653, 0, 0, 0, 0, 0, + 654, 0, 107, 0, 0, 0, 0, 655, 2195, 656, + 0, 0, 2198, 0, 657, 0, 1423, 658, 0, 0, + 0, 0, 0, 659, 2203, 0, 0, 2206, 0, 0, + 0, 0, 0, 0, 660, 0, 0, 0, 0, 0, + 661, 0, 0, 0, 0, 0, 0, 0, 1976, 662, + 1424, 0, 0, 0, 1982, 0, 1425, 2225, 0, 0, + 0, 0, 1426, 0, 663, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 522, 0, 0, 0, + 1427, 0, 0, 0, 0, 664, 110, 0, 0, 0, + 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, + 665, 1428, 0, 0, 0, 0, 0, 2708, 0, 0, + 666, 667, 0, 2273, 0, 0, 1429, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, + 0, 668, 2019, 1681, 0, 0, 2289, 0, 2024, 0, + 0, 0, 112, 0, 0, 0, 0, 1430, 107, 0, + 0, 0, 0, 0, 669, 0, 0, 0, 0, 0, + 0, 0, 0, 2039, 0, 0, 0, 0, 670, 2045, + 671, 0, 0, 0, 0, 110, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 672, 1431, 2311, 0, 0, + 673, 0, 0, 0, 0, 0, 0, 674, 2061, 0, + 0, 1432, 2319, 0, 675, 0, 2068, 118, 0, 0, + 0, 0, 0, 1433, 0, 0, 0, 0, 0, 0, + 0, 0, 676, 0, 0, 0, 0, 0, 2778, 2357, + 2343, 112, 110, 0, 0, 677, 678, 0, 679, 0, + 1434, 2352, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1435, 0, 1436, 1437, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2389, + 2390, 2391, 2392, 2393, 0, 2395, 2396, 0, 680, 0, + 2400, 2401, 2402, 2403, 2404, 0, 2406, 2407, 112, 0, + 0, 117, 0, 0, 1438, 0, 118, 0, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 2419, 0, 0, - 2422, 0, 0, 0, 0, 0, 0, 0, 2426, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2439, 0, 0, 2442, 0, 0, - 0, 0, 2446, 0, 0, 2449, 2450, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 651, 652, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2192, 0, - 0, 0, 0, 2493, 2494, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2205, 0, 0, 0, 0, 0, 0, 0, 0, 653, - 0, 0, 0, 0, 0, 654, 0, 0, 0, 0, - 0, 0, 655, 2514, 656, 0, 0, 0, 0, 657, - 0, 0, 658, 0, 2228, 2229, 0, 0, 659, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 660, - 0, 2232, 2233, 2354, 0, 661, 2235, 2236, 0, 0, - 0, 0, 0, 2356, 662, 348, 0, 2360, 2361, 0, - 0, 0, 349, 0, 0, 0, 2369, 2370, 0, 663, - 0, 0, 0, 0, 0, 2378, 2379, 0, 0, 0, - 0, 2384, 0, 0, 0, 0, 2279, 0, 0, 0, - 664, 2394, 2395, 0, 0, 0, 0, 2286, 0, 0, - 0, 0, 2405, 2406, 0, 665, 0, 0, 0, 0, - 2566, 0, 0, 2409, 0, 666, 667, 0, 0, 0, - 0, 0, 2411, 0, 2412, 0, 0, 0, 0, 0, - 0, 0, 2296, 0, 0, 0, 668, 0, 0, 0, - 0, 0, 0, 2585, 0, 0, 0, 0, 2308, 0, - 0, 0, 0, 0, 2596, 0, 0, 0, 0, 669, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2323, 0, 670, 0, 671, 2327, 0, 0, 0, - 0, 0, 2332, 0, 0, 0, 0, 2336, 0, 0, - 672, 2339, 0, 0, 2342, 673, 0, 2345, 0, 2347, - 0, 0, 674, 2639, 0, 0, 0, 2644, 0, 675, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 676, 0, 0, + 142, 143, 144, 145, 146, 147, 148, 348, 0, 0, + 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2423, 0, 0, 2426, + 0, 0, 0, 118, 0, 0, 0, 2430, 0, 0, + 0, 2194, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2443, 0, 0, 2446, 0, 0, 0, + 0, 2450, 0, 2207, 2453, 2454, 0, 0, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 0, 2230, 2231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 677, 678, 0, 679, 522, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, - 2660, 2661, 0, 2663, 0, 0, 0, 0, 2665, 2666, - 0, 0, 0, 2668, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 680, 350, 0, 0, 351, 0, 0, - 0, 0, 0, 0, 2525, 0, 0, 109, 0, 1679, - 0, 0, 0, 0, 2534, 0, 2690, 0, 0, 0, - 0, 0, 0, 2543, 107, 0, 0, 0, 0, 0, - 0, 0, 2552, 0, 0, 0, 0, 0, 0, 2554, - 0, 0, 2712, 0, 0, 0, 0, 0, 0, 0, - 2558, 0, 0, 110, 107, 0, 2561, 0, 0, 2563, - 0, 0, 2564, 0, 0, 121, 122, 123, 124, 125, + 0, 0, 2497, 2498, 2234, 2235, 0, 0, 0, 2237, + 2238, 0, 0, 0, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 0, 2484, 0, 0, 0, 0, 0, - 0, 495, 496, 0, 0, 497, 0, 0, 110, 112, - 2496, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2757, 0, 498, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 110, 0, - 0, 0, 0, 2766, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2777, 0, - 0, 2780, 0, 0, 112, 0, 0, 0, 0, 117, - 0, 0, 0, 0, 118, 0, 0, 0, 0, 0, - 2647, 0, 0, 0, 0, 0, 0, 0, 0, 2649, - 0, 0, 0, 0, 112, 0, 0, 0, 2651, 0, - 0, 0, 0, 0, 2654, 0, 499, 0, 2656, 0, - 0, 2657, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 500, 0, 0, 0, 0, 118, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2565, - 0, 0, 0, 0, 0, 2569, 501, 0, 0, 2571, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, - 0, 0, 0, 0, 0, 2577, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 607, 107, - 0, 0, 502, 0, 0, 0, 2625, 2626, 0, 0, - 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 608, + 146, 147, 148, 2519, 0, 0, 0, 0, 0, 2281, + 0, 0, 2530, 0, 0, 2532, 2533, 2534, 2535, 2536, + 2288, 2538, 2539, 0, 2541, 2542, 2543, 2544, 2545, 0, + 2547, 2548, 0, 2550, 2551, 2552, 2553, 2554, 0, 2556, + 2557, 0, 2559, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2562, 2563, 0, 2298, 0, 0, 0, 0, + 0, 0, 0, 2566, 0, 0, 0, 0, 0, 0, + 0, 2310, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 350, 0, 0, 351, + 0, 0, 0, 0, 2326, 0, 0, 0, 0, 2330, + 0, 2572, 0, 0, 0, 2335, 0, 0, 0, 0, + 2339, 0, 0, 0, 2342, 0, 0, 2345, 0, 0, + 2348, 0, 2350, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2591, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2602, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 107, 0, 0, 0, 0, + 0, 0, 0, 0, 2656, 2646, 0, 0, 0, 2651, + 0, 0, 0, 2658, 0, 0, 0, 0, 0, 0, + 0, 0, 2660, 0, 2661, 0, 0, 0, 2663, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 495, 496, 0, 0, 497, 0, 0, 0, + 0, 0, 0, 607, 107, 0, 0, 0, 0, 0, + 0, 0, 0, 2668, 2669, 0, 2671, 0, 0, 498, + 0, 2673, 2674, 0, 0, 0, 2676, 0, 0, 110, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 608, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2698, + 0, 0, 0, 0, 0, 0, 0, 2488, 0, 2724, + 0, 2725, 0, 2726, 0, 0, 2727, 0, 2728, 0, + 0, 0, 0, 2500, 0, 112, 2721, 0, 110, 0, + 0, 0, 0, 0, 0, 0, 0, 499, 0, 0, + 0, 0, 609, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2514, 0, 500, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 501, 0, 0, + 0, 0, 0, 0, 112, 0, 2527, 0, 0, 0, + 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 610, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2767, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2776, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 502, 0, 2787, 0, 0, 2790, 118, + 0, 0, 0, 0, 2571, 0, 0, 0, 0, 0, + 2575, 0, 0, 0, 2577, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2583, 0, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 0, 503, 0, 0, 0, 0, 0, 0, 611, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2631, 2632, 0, 0, 0, 0, 0, 0, 0, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 0, - 503, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 609, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2678, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1275, 1276, 1277, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1278, 1279, 0, 0, 1280, 610, 0, 0, 0, - 0, 0, 1281, 0, 0, 1282, 0, 0, 0, 1283, - 0, 0, 0, 0, 0, 0, 0, 1284, 1285, 0, - 0, 0, 0, 0, 0, 1286, 0, 0, 0, 0, + 1006, 1007, 1008, 0, 0, 1277, 1278, 1279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2741, 118, 0, 0, 107, 0, 0, - 0, 0, 0, 1287, 1288, 0, 0, 1289, 0, 0, - 0, 0, 0, 0, 0, 2754, 0, 0, 0, 0, - 0, 0, 0, 1290, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1009, + 1010, 0, 0, 1011, 1280, 1281, 1012, 107, 1282, 0, + 0, 0, 0, 1013, 0, 1283, 0, 1014, 1284, 0, + 0, 0, 1285, 0, 0, 1015, 1016, 0, 0, 0, + 1286, 1287, 0, 1017, 1018, 107, 2686, 0, 1288, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, - 0, 0, 0, 0, 1291, 0, 0, 0, 0, 0, + 0, 1019, 0, 0, 0, 0, 0, 1020, 0, 0, + 0, 1021, 1022, 0, 0, 1023, 1289, 1290, 0, 0, + 1291, 0, 0, 109, 0, 0, 0, 0, 0, 0, + 0, 1024, 0, 0, 0, 0, 1292, 107, 0, 0, + 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1025, 0, 0, 0, 0, 1293, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, + 0, 0, 0, 0, 0, 1026, 0, 0, 509, 0, + 1294, 0, 2751, 0, 0, 0, 0, 0, 0, 1295, + 0, 0, 0, 0, 0, 0, 0, 112, 1027, 0, + 0, 0, 0, 0, 0, 2764, 0, 0, 107, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 110, 0, 0, 0, 112, 0, 0, 1028, 0, + 1029, 0, 0, 1296, 0, 1297, 1030, 1031, 0, 0, + 0, 1298, 1299, 0, 0, 0, 1337, 0, 0, 0, + 0, 2789, 1032, 1033, 0, 0, 0, 117, 1300, 0, + 0, 0, 118, 1034, 1035, 0, 0, 0, 0, 1301, + 0, 2803, 0, 0, 2804, 0, 0, 112, 0, 0, + 0, 0, 0, 0, 0, 117, 0, 0, 0, 1036, + 118, 1037, 110, 0, 1302, 0, 1303, 0, 0, 0, + 0, 0, 0, 1038, 0, 1039, 1304, 0, 0, 0, + 0, 1040, 984, 0, 0, 0, 1305, 985, 0, 0, + 0, 0, 0, 513, 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2779, 0, 0, 611, 0, 0, 0, 1292, 0, 0, - 0, 0, 0, 0, 0, 0, 1293, 0, 0, 0, - 2793, 110, 0, 2794, 0, 0, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 1004, 1005, 1006, 0, 0, 0, - 1294, 0, 1295, 0, 0, 0, 0, 0, 1296, 1297, - 0, 0, 0, 0, 0, 0, 0, 112, 0, 0, - 0, 0, 0, 1007, 1008, 1298, 0, 1009, 107, 0, - 1010, 0, 0, 0, 0, 0, 1299, 1011, 0, 0, - 0, 1012, 0, 0, 0, 0, 0, 0, 0, 1013, - 1014, 0, 0, 0, 0, 0, 0, 1015, 1016, 0, - 0, 1300, 0, 1301, 0, 0, 109, 0, 0, 0, - 0, 0, 0, 1302, 0, 1017, 0, 117, 0, 107, - 0, 1018, 118, 1303, 0, 1019, 1020, 0, 0, 1021, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1022, 0, 0, 0, 0, - 0, 0, 110, 0, 0, 0, 0, 1304, 0, 107, - 509, 0, 0, 0, 0, 0, 1023, 0, 0, 0, - 0, 0, 0, 0, 982, 0, 0, 0, 0, 983, - 0, 0, 0, 513, 0, 0, 0, 0, 0, 1024, - 107, 0, 0, 0, 0, 0, 0, 1335, 0, 0, - 0, 0, 0, 110, 0, 0, 0, 0, 112, 0, - 0, 0, 1025, 0, 121, 122, 123, 124, 125, 126, + 0, 0, 118, 0, 0, 1041, 0, 0, 112, 0, + 1306, 0, 0, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 1026, 110, 1027, 0, 0, 0, 0, 0, - 1028, 1029, 0, 0, 0, 0, 0, 0, 0, 112, - 0, 0, 0, 0, 0, 0, 1030, 1031, 117, 0, - 0, 0, 0, 118, 110, 0, 0, 1032, 1033, 0, + 147, 148, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 0, 510, 110, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, - 0, 0, 0, 1034, 0, 1035, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1036, 0, 1037, - 0, 0, 0, 0, 118, 1038, 0, 0, 0, 0, - 112, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 1039, - 0, 0, 0, 0, 118, 121, 122, 123, 124, 125, + 0, 0, 0, 0, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 0, 0, 0, 0, 0, 0, 112, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 0, 0, 0, + 0, 0, 0, 0, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 510, 0, 118, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 0, 0, 0, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 1, 0, 0, 2, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 5, - 6, 0, 7, 8, 9, 0, 0, 0, 0, 0, - 0, 0, 10, 0, 0, 0, 0, 0, 0, 11, - 0, 12, 13, 0, 0, 0, 0, 0, 0, 0, - 0, 14, 15, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, - 0, 19, 0, 0, 0, 20, 21, 0, 0, 0, - 0, 0, 22, 0, 0, 0, 0, 0, 23, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 24, 0, 0, 25, 26, 27, 0, 0, - 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, - 175, 0, 0, 176, 0, 34, 177, 35, 0, 0, - 0, 0, 0, 0, 36, 0, 0, 0, 37, 0, - 0, 0, 38, 0, 39, 178, 40, 179, 180, 181, - 0, 41, 0, 0, 0, 0, 0, 182, 0, 183, - 0, 0, 0, 0, 184, 42, 185, 186, 187, 0, - 0, 43, 0, 0, 188, 0, 189, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 44, 45, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, - 47, 0, 0, 0, 0, 190, 48, 0, 0, 49, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, - 0, 192, 0, 193, 194, 0, 0, 195, 0, 0, - 51, 196, 0, 197, 1372, 0, 0, 52, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 198, 199, 0, 0, 200, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 201, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 202, 203, 0, 0, - 0, 0, 0, 0, 204, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, - 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 207, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 208, 209, 0, 0, 0, 0, 0, 0, 0, - 210, 0, 0, 0, 0, 0, 0, 211, 0, 0, - 0, 0, 0, 212, 0, 213, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 1373, 0, 0, 0, 0, 0, - 0, 0, 214 + 146, 147, 148, 118, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 0, 0, 0, 0, 0, 1, 0, 0, + 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 5, 6, 0, 7, 8, 9, 0, 0, 0, + 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, + 0, 11, 0, 12, 13, 0, 0, 0, 0, 0, + 0, 0, 0, 14, 15, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 16, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 19, 0, 0, 0, 20, 21, 0, + 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, + 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 0, 0, 25, 26, 27, + 0, 0, 28, 29, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 31, 32, 33, 0, 0, 0, 0, + 0, 0, 175, 0, 0, 176, 0, 34, 177, 35, + 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, + 37, 0, 0, 0, 38, 0, 39, 178, 40, 179, + 180, 181, 0, 41, 0, 0, 0, 0, 0, 182, + 0, 183, 0, 0, 0, 0, 184, 42, 185, 186, + 187, 0, 0, 43, 0, 0, 188, 0, 189, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 0, 47, 0, 0, 0, 0, 190, 48, 0, + 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 191, 0, 0, 0, 0, + 0, 0, 0, 192, 0, 193, 194, 0, 0, 195, + 0, 0, 51, 196, 0, 197, 1374, 0, 0, 52, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 199, 0, + 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 202, 203, + 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 205, 0, 206, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 207, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 208, 209, 0, 0, 0, 0, 0, + 0, 0, 210, 0, 0, 0, 0, 0, 0, 211, + 0, 0, 0, 0, 0, 212, 0, 213, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 1375, 0, 0, 0, + 0, 0, 0, 0, 214 }; static const yytype_int16 yycheck[] = { - 3, 1005, 1458, 50, 1659, 5, 1661, 4, 11, 666, - 667, 4, 4, 671, 884, 885, 886, 0, 14, 4, - 5, 486, 3, 4, 5, 1157, 5, 1159, 5, 32, - 4, 5, 20, 4, 16, 442, 5, 40, 3, 4, - 47, 4, 4, 4, 5, 452, 49, 5, 5, 52, - 132, 99, 55, 1185, 1186, 1187, 59, 3, 4, 62, - 123, 167, 32, 66, 67, 17, 62, 70, 3, 4, - 73, 74, 17, 37, 77, 67, 32, 947, 81, 3, - 4, 136, 67, 86, 27, 3, 4, 3, 4, 3, - 4, 3, 4, 32, 62, 17, 99, 100, 101, 102, - 103, 104, 3, 4, 89, 196, 49, 3, 4, 52, - 21, 17, 36, 4, 4, 152, 40, 120, 3, 4, - 63, 88, 101, 32, 976, 6, 216, 979, 107, 121, - 105, 3, 4, 40, 2696, 67, 121, 4, 13, 40, - 4, 134, 171, 86, 996, 12, 228, 121, 4, 159, - 289, 180, 155, 33, 122, 84, 4, 142, 196, 60, - 121, 104, 57, 254, 270, 3, 4, 3, 4, 143, - 62, 168, 101, 3, 4, 178, 67, 187, 3, 4, - 183, 2743, 3, 4, 16, 248, 3, 4, 60, 113, - 30, 159, 159, 3, 4, 12, 251, 193, 36, 21, - 36, 4, 21, 67, 113, 287, 113, 21, 89, 147, - 88, 135, 113, 205, 27, 190, 161, 199, 266, 309, - 205, 213, 214, 261, 21, 21, 21, 264, 213, 214, - 121, 205, 197, 196, 198, 3, 4, 89, 5, 213, - 214, 122, 4, 246, 205, 3, 4, 14, 15, 67, - 238, 298, 213, 214, 62, 190, 96, 121, 27, 262, - 263, 3, 4, 215, 67, 211, 924, 4, 27, 79, - 277, 27, 268, 197, 183, 278, 185, 280, 187, 188, - 5, 159, 278, 252, 200, 288, 289, 196, 291, 292, - 197, 294, 250, 215, 5, 62, 197, 135, 275, 135, - 125, 304, 211, 710, 297, 190, 289, 264, 300, 309, - 278, 314, 315, 309, 205, 300, 286, 192, 121, 316, - 291, 306, 213, 214, 219, 165, 300, 306, 309, 291, - 286, 242, 297, 290, 337, 338, 339, 58, 341, 300, - 137, 205, 345, 346, 200, 306, 298, 286, 196, 213, - 214, 207, 208, 356, 357, 316, 169, 349, 264, 121, - 250, 364, 354, 355, 349, 175, 369, 370, 353, 354, - 355, 1029, 307, 297, 377, 349, 298, 380, 1248, 297, - 354, 355, 291, 297, 121, 297, 1256, 243, 349, 1047, - 211, 6, 293, 354, 355, 287, 399, 400, 228, 247, - 169, 297, 205, 406, 407, 408, 254, 410, 119, 300, - 213, 214, 133, 356, 254, 1419, 351, 352, 310, 259, - 242, 424, 307, 242, 1081, 428, 193, 194, 242, 242, - 433, 434, 435, 436, 437, 438, 300, 440, 845, 442, - 443, 444, 1446, 205, 254, 242, 242, 242, 190, 452, - 453, 213, 214, 234, 196, 1112, 1588, 64, 349, 297, - 228, 297, 46, 354, 355, 1469, 351, 352, 205, 228, - 228, 12, 228, 242, 287, 272, 213, 214, 4, 287, - 4, 888, 107, 67, 195, 349, 5, 4, 5, 40, - 354, 355, 132, 235, 350, 14, 15, 300, 82, 106, - 5, 268, 310, 506, 507, 230, 4, 122, 229, 107, - 2461, 278, 279, 54, 67, 62, 283, 4, 287, 261, - 141, 524, 141, 244, 40, 64, 3, 4, 17, 291, - 170, 72, 441, 57, 62, 62, 2487, 1389, 300, 250, - 1392, 588, 309, 62, 61, 234, 349, 46, 51, 552, - 67, 354, 355, 28, 0, 62, 274, 40, 179, 57, - 179, 102, 113, 300, 275, 307, 65, 106, 67, 4, - 4, 62, 27, 198, 267, 122, 5, 5, 131, 120, - 57, 274, 585, 124, 631, 4, 307, 349, 228, 17, - 123, 64, 354, 355, 122, 122, 137, 113, 101, 116, - 198, 185, 4, 650, 157, 170, 40, 110, 5, 351, - 352, 100, 349, 123, 131, 122, 5, 354, 355, 622, - 62, 530, 3, 4, 27, 14, 15, 252, 30, 146, - 113, 122, 239, 106, 31, 152, 139, 2588, 2589, 1297, - 157, 2592, 5, 2594, 5, 648, 197, 287, 255, 256, - 1308, 62, 2307, 126, 252, 2606, 2607, 264, 567, 243, - 2611, 2612, 665, 228, 2615, 668, 62, 5, 62, 2620, - 2621, 31, 123, 62, 193, 194, 14, 15, 153, 113, - 122, 197, 5, 62, 237, 62, 185, 4, 5, 3, - 4, 126, 695, 44, 211, 219, 699, 700, 701, 702, - 239, 176, 705, 287, 707, 180, 709, 710, 711, 242, - 5, 122, 296, 230, 197, 170, 255, 256, 235, 2670, - 237, 219, 2673, 250, 62, 30, 122, 2678, 122, 1136, - 295, 278, 242, 2684, 22, 123, 289, 88, 2689, 786, - 347, 348, 219, 122, 243, 122, 263, 264, 197, 268, - 278, 278, 83, 269, 271, 4, 297, 232, 123, 278, - 279, 163, 50, 197, 283, 53, 239, 170, 56, 14, - 15, 278, 289, 228, 209, 778, 779, 79, 781, 782, - 783, 784, 255, 256, 34, 2590, 269, 278, 287, 119, - 309, 242, 1662, 796, 797, 83, 299, 296, 273, 55, - 803, 804, 71, 2608, 193, 194, 281, 282, 347, 348, - 2761, 125, 92, 2764, 216, 123, 250, 62, 289, 267, - 823, 824, 825, 154, 112, 228, 274, 115, 345, 3, - 4, 84, 89, 2784, 67, 91, 278, 840, 841, 842, - 242, 844, 845, 846, 195, 848, 1253, 2798, 101, 120, - 2801, 2802, 5, 152, 242, 193, 194, 33, 163, 109, - 1864, 118, 1994, 1995, 1996, 171, 869, 278, 871, 3, - 4, 430, 431, 175, 347, 348, 1880, 242, 881, 268, - 67, 14, 278, 5, 278, 888, 889, 143, 21, 278, - 279, 894, 172, 26, 283, 226, 227, 1554, 16, 278, - 33, 278, 171, 67, 57, 1909, 90, 910, 911, 5, - 241, 216, 1764, 66, 235, 918, 919, 920, 14, 15, - 309, 54, 221, 926, 288, 178, 60, 2732, 931, 90, - 268, 188, 1784, 2738, 242, 982, 67, 242, 71, 942, - 278, 279, 230, 14, 15, 283, 203, 1799, 193, 194, - 1802, 31, 254, 284, 73, 958, 206, 22, 1810, 37, - 869, 1813, 27, 95, 5, 264, 62, 141, 221, 1821, - 48, 309, 1824, 3, 4, 263, 3, 4, 4, 1831, - 249, 113, 262, 5, 49, 50, 4, 52, 53, 258, - 2795, 62, 2797, 26, 250, 5, 190, 75, 63, 5, - 280, 289, 196, 302, 257, 179, 4, 2463, 265, 2013, - 75, 76, 5, 40, 206, 4, 3, 4, 83, 24, - 25, 86, 1025, 268, 14, 15, 22, 160, 161, 162, - 163, 164, 165, 278, 279, 168, 169, 170, 171, 104, - 5, 235, 5, 1046, 14, 15, 111, 112, 5, 306, - 115, 26, 1055, 4, 50, 3, 4, 53, 190, 316, - 3, 4, 4, 45, 309, 4, 219, 261, 1071, 12, - 1073, 19, 62, 60, 152, 1078, 1079, 1080, 60, 5, - 0, 114, 3, 4, 4, 1088, 113, 83, 1091, 4, - 1093, 39, 62, 126, 99, 125, 17, 193, 194, 99, - 82, 14, 15, 122, 1974, 5, 1109, 4, 1111, 57, - 175, 189, 275, 307, 1117, 1118, 112, 3, 4, 115, - 102, 4, 193, 194, 4, 42, 43, 260, 261, 1132, - 1133, 3, 4, 1136, 1137, 1138, 4, 119, 4, 114, - 122, 1144, 5, 1146, 4, 5, 1149, 4, 1151, 62, - 200, 126, 4, 1200, 40, 103, 348, 290, 352, 3, - 4, 5, 354, 4, 356, 230, 4, 149, 150, 4, - 197, 236, 268, 2043, 3, 4, 5, 210, 7, 8, - 258, 37, 278, 279, 5, 1188, 161, 283, 253, 1192, - 223, 1194, 48, 4, 5, 1198, 2066, 268, 263, 83, - 333, 334, 335, 193, 194, 3, 4, 278, 279, 5, - 1213, 159, 1215, 309, 1217, 1218, 1219, 1220, 9, 75, - 202, 1224, 1225, 193, 194, 290, 291, 113, 11, 1232, - 212, 5, 310, 171, 230, 210, 1239, 274, 309, 2243, - 1243, 1244, 1245, 3, 4, 5, 311, 4, 223, 197, - 1253, 1254, 4, 5, 1257, 2259, 173, 174, 3, 4, - 2264, 4, 7, 8, 1267, 171, 1269, 263, 2120, 1272, - 154, 219, 3, 4, 5, 180, 224, 2129, 268, 4, - 193, 194, 4, 5, 201, 199, 2138, 235, 278, 279, - 199, 356, 274, 275, 3, 4, 152, 2455, 268, 5, - 2458, 4, 2460, 5, 1213, 199, 191, 5, 278, 279, - 14, 15, 1315, 191, 1317, 2473, 2474, 1320, 1321, 309, - 1323, 67, 1325, 67, 228, 35, 67, 229, 1331, 5, - 1333, 40, 2490, 189, 4, 4, 28, 1340, 4, 309, - 3, 4, 226, 227, 199, 5, 9, 10, 11, 297, - 88, 1260, 88, 5, 4, 268, 4, 241, 62, 14, - 15, 5, 5, 345, 4, 278, 279, 1276, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 309, 5, 108, 4, - 284, 101, 258, 5, 113, 17, 17, 62, 44, 2279, - 4, 47, 1415, 4, 1417, 1418, 2286, 4, 4, 129, - 130, 3, 4, 5, 99, 7, 8, 5, 138, 3, - 4, 5, 5, 7, 8, 88, 1439, 4, 294, 5, - 1443, 77, 5, 88, 5, 4, 156, 5, 5, 85, - 4, 4, 12, 5, 310, 2459, 166, 5, 5, 4, - 4, 153, 5, 12, 1467, 1468, 4, 4, 2472, 2339, - 4, 4, 2342, 2477, 1477, 2345, 4, 2347, 1481, 5, - 5, 168, 5, 616, 176, 1488, 4, 159, 180, 193, - 194, 159, 4, 263, 5, 4, 263, 291, 5, 1502, - 62, 4, 242, 5, 1507, 1414, 5, 5, 1511, 145, - 1513, 1514, 5, 1516, 1517, 1518, 4, 1520, 1925, 4, - 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, - 1533, 5, 5, 1536, 1537, 1538, 1539, 670, 193, 194, - 232, 276, 675, 1546, 1547, 5, 276, 1550, 1551, 1552, - 5, 5, 4, 1556, 1557, 4, 4, 119, 4, 195, - 122, 5, 5, 5, 268, 5, 1569, 1570, 5, 1572, - 1573, 5, 5, 1980, 278, 279, 4, 213, 214, 5, - 5, 273, 5, 40, 220, 242, 222, 107, 5, 281, - 282, 141, 107, 242, 32, 40, 5, 159, 215, 107, - 215, 40, 248, 5, 4, 309, 5, 54, 5, 215, - 67, 215, 4, 268, 250, 2022, 4, 1620, 1621, 1622, - 5, 5, 1625, 278, 279, 72, 2496, 1630, 1631, 5, - 1633, 1634, 1635, 195, 1637, 1638, 5, 1640, 67, 5, - 1643, 1644, 89, 4, 101, 113, 113, 4, 4, 1652, - 107, 5, 81, 5, 309, 102, 113, 1660, 5, 5, - 5, 90, 1665, 1666, 4, 38, 5, 5, 4, 4, - 1673, 12, 101, 120, 131, 113, 5, 124, 5, 1682, - 316, 5, 5, 5, 246, 6, 12, 4, 250, 4, - 137, 4, 4, 4, 827, 152, 38, 5, 4, 0, - 5, 242, 131, 242, 170, 141, 242, 123, 4, 199, - 167, 211, 252, 275, 4, 1718, 278, 4, 4, 4, - 4, 1630, 963, 152, 5, 2729, 288, 5, 5, 5, - 177, 5, 5, 4, 276, 4, 4, 1740, 1741, 5, - 4, 198, 1745, 4, 182, 5, 184, 185, 1751, 187, - 188, 5, 5, 242, 995, 242, 242, 313, 313, 93, - 4, 4, 4, 4, 56, 4, 4, 101, 4, 198, - 4, 6, 5, 107, 5, 67, 5, 228, 216, 4, - 237, 313, 313, 4, 276, 5, 4, 228, 5, 1698, - 5, 4, 4, 228, 128, 252, 228, 235, 236, 1708, - 5, 93, 94, 5, 1713, 4, 228, 264, 237, 101, - 4, 276, 5, 5, 4, 107, 4, 4, 152, 5, - 5, 2228, 2229, 5, 2231, 2232, 160, 5, 2235, 2236, - 4, 12, 5, 4, 291, 264, 128, 4, 4, 131, - 4, 279, 5, 5, 5, 5, 303, 5, 305, 306, - 4, 357, 5, 291, 4, 1858, 5, 1860, 5, 1862, - 152, 5, 4, 4, 198, 5, 4, 4, 160, 5, - 5, 5, 206, 311, 303, 4, 305, 5, 1881, 1882, - 1883, 1884, 1885, 1886, 1887, 1888, 1889, 5, 345, 2296, - 5, 5, 4, 4, 276, 5, 5, 5, 5, 4, - 4, 4, 1905, 5, 1907, 5, 198, 5, 5, 4, - 6, 5, 5, 5, 206, 5, 4, 4, 252, 1052, - 5, 1924, 1925, 4, 4, 4, 4, 1930, 5, 5, - 264, 5, 5, 5, 4, 4, 1939, 1940, 1941, 1942, - 1943, 1944, 1945, 1946, 1947, 1948, 280, 5, 1951, 1952, - 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, - 252, 1964, 4, 1966, 1967, 1968, 2624, 4, 357, 5, - 5, 4, 264, 4, 4, 1108, 5, 1980, 1981, 5, - 4, 309, 5, 421, 5, 4, 4, 1120, 280, 5, - 5, 5, 5, 5, 432, 5, 4, 289, 5, 291, - 4, 4, 4, 441, 5, 5, 5, 4, 357, 5, - 5, 2014, 5, 2016, 5, 2018, 4, 2020, 4, 2022, - 2023, 5, 2025, 5, 5, 5, 4, 4, 4, 2032, - 2033, 5, 4, 4, 4, 4, 2039, 2444, 2041, 4, - 2698, 2448, 2045, 4, 4, 2048, 4, 4, 4, 4, - 4, 4, 4, 345, 357, 357, 5, 357, 357, 357, - 5, 4, 289, 5, 4, 6, 5, 4, 357, 5, - 5, 509, 510, 5, 4, 4, 4, 2484, 4, 4, - 4, 4, 4, 4, 522, 4, 289, 5, 4, 527, - 2093, 5, 5, 5, 4, 1228, 1229, 5, 536, 4, - 1341, 1342, 1343, 5, 5, 4, 2754, 5, 4, 4, - 1351, 1352, 1353, 5, 4, 4, 4, 1358, 1359, 1360, - 4, 4, 1363, 1364, 5, 1366, 1367, 5, 4, 4, - 4, 4, 429, 5, 4, 384, 5, 5, 4, 4, - 4, 4, 2051, 5, 2191, 5, 5, 5, 5, 5, - 4, 4, 2635, 5, 5, 1396, 1397, 5, 2522, 1400, - 1401, 2254, 2622, 2698, 2694, 745, -1, -1, -1, -1, - 608, 609, 610, 611, -1, -1, -1, -1, -1, -1, - -1, 2090, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2197, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2208, 2209, 2210, 2211, 2212, - 2213, 2214, 2215, 2216, 2217, 2218, -1, -1, -1, -1, - -1, 2224, -1, -1, -1, 2228, 2229, -1, 2231, 2232, - -1, 669, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, - -1, 2244, 2245, 2246, 2709, 2710, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2260, 2261, 2262, - 2263, -1, 2265, 2266, 2267, 2268, 2269, 2270, -1, 2272, - -1, -1, 2275, 2276, -1, -1, 293, 1410, -1, -1, - -1, -1, -1, 1416, -1, -1, -1, -1, -1, -1, - 2293, -1, -1, 2296, 2297, -1, -1, -1, 2301, -1, - -1, -1, 2305, -1, -1, 1438, -1, -1, 1441, -1, - -1, -1, 1445, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 19, -1, -1, -1, -1, -1, - -1, -1, -1, 1466, -1, 352, -1, -1, -1, 1472, - -1, -1, -1, -1, -1, -1, 41, 1480, 2351, 44, - 1483, -1, -1, -1, -1, -1, -1, -1, -1, 1492, - 1493, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1503, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 78, -1, -1, -1, -1, -1, -1, - 85, -1, -1, 831, -1, -1, -1, -1, -1, -1, - -1, 96, 97, -1, -1, 843, -1, -1, 103, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2423, -1, -1, -1, 2427, -1, -1, -1, -1, -1, - -1, 126, -1, -1, 2437, 2438, -1, -1, -1, -1, - 2443, 2444, 880, -1, 2447, 2448, -1, -1, -1, 144, - 2453, -1, -1, 2456, 2457, -1, -1, -1, -1, -1, - -1, -1, -1, 158, 159, -1, -1, -1, -1, -1, - 165, -1, 2475, 2476, -1, 2478, 2479, 2480, 2481, 2482, - -1, 2484, 2485, -1, -1, -1, 2489, 504, -1, -1, - -1, 186, -1, -1, 511, -1, -1, 514, -1, 2502, - -1, -1, 519, -1, 2507, -1, 523, -1, -1, -1, - -1, -1, -1, -1, 1755, 953, -1, -1, -1, -1, - 2523, -1, -1, -1, -1, -1, -1, 1768, -1, 224, - -1, -1, -1, -1, -1, -1, -1, 1778, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2565, -1, -1, -1, -1, 2570, -1, 2572, - -1, -1, -1, 590, -1, 2578, -1, -1, -1, -1, - -1, -1, 277, -1, -1, -1, -1, -1, 2591, -1, - 1028, -1, 287, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2609, -1, -1, 1850, - 2613, 2658, -1, -1, 3, 4, -1, -1, -1, -1, - -1, 316, -1, -1, -1, -1, -1, -1, -1, -1, - 19, -1, 2635, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1082, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1092, -1, -1, -1, -1, 2662, - -1, -1, -1, -1, 2667, -1, 2669, -1, 57, -1, - -1, -1, -1, 2676, -1, -1, -1, -1, 2681, -1, - -1, -1, -1, 2686, -1, -1, -1, -1, -1, 706, - -1, -1, -1, -1, -1, -1, 713, 6, -1, 2044, - -1, -1, -1, -1, -1, -1, 2709, 2710, -1, -1, - -1, -1, -1, -1, 103, 2060, 2061, 2062, -1, -1, - 2065, -1, 2067, 2068, -1, -1, 2071, 2072, 2073, -1, - 2733, 2076, 2077, 2736, -1, 2080, 2739, 2082, 2083, -1, - 2085, 1874, -1, -1, -1, -1, -1, 2750, 2751, 2752, - 2753, -1, -1, -1, -1, -1, -1, -1, 1196, 2762, - -1, -1, 2765, -1, -1, -1, -1, -1, -1, 2772, - 159, 2774, -1, -1, -1, 1213, -1, 1910, -1, -1, - -1, -1, -1, -1, 975, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1237, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1247, - -1, -1, -1, 830, -1, 2724, -1, -1, -1, -1, - 837, -1, -1, -1, -1, -1, -1, -1, 1266, -1, - 219, -1, -1, -1, -1, 224, -1, -1, 1276, -1, - -1, -1, -1, 1281, -1, -1, -1, 2756, 2193, -1, - 2759, 2196, -1, -1, -1, -1, 2201, -1, -1, 2204, - -1, -1, 2103, -1, -1, 882, 883, -1, -1, -1, - 887, -1, -1, 890, -1, -1, -1, -1, 2223, -1, - -1, -1, -1, -1, -1, 902, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2143, 2144, 2145, 2146, 2147, -1, 2149, 2150, - -1, -1, -1, 2154, 2155, 2156, 2157, 2158, -1, 2160, - 2161, -1, -1, -1, -1, -1, -1, 316, 317, 318, + 3, 486, 50, 1460, 5, 666, 667, 1661, 11, 1663, + 3, 4, 1159, 671, 1161, 4, 3, 4, 5, 4, + 5, 4, 1007, 4, 3, 4, 4, 32, 5, 32, + 4, 5, 27, 27, 0, 442, 5, 40, 3, 4, + 1187, 1188, 1189, 36, 4, 452, 49, 40, 4, 52, + 17, 21, 55, 3, 4, 49, 59, 36, 52, 62, + 4, 3, 4, 66, 67, 3, 4, 70, 40, 63, + 73, 74, 20, 27, 77, 3, 4, 4, 81, 47, + 5, 5, 67, 86, 3, 4, 36, 170, 3, 4, + 107, 32, 86, 3, 4, 27, 99, 100, 101, 102, + 103, 104, 3, 4, 89, 17, 32, 67, 3, 4, + 104, 67, 167, 4, 57, 4, 5, 120, 196, 4, + 113, 3, 4, 40, 21, 6, 978, 123, 216, 981, + 40, 37, 101, 32, 105, 88, 121, 5, 107, 17, + 4, 113, 135, 3, 4, 228, 998, 121, 4, 2704, + 60, 134, 155, 196, 152, 5, 135, 142, 5, 141, + 4, 121, 4, 3, 4, 121, 289, 137, 12, 143, + 17, 67, 113, 159, 62, 178, 254, 84, 17, 168, + 183, 198, 67, 3, 4, 135, 884, 885, 886, 4, + 5, 67, 21, 21, 101, 21, 113, 179, 2753, 126, + 4, 187, 267, 113, 197, 95, 159, 21, 89, 274, + 267, 67, 295, 14, 27, 270, 170, 274, 261, 190, + 205, 309, 100, 113, 125, 197, 33, 64, 213, 214, + 21, 205, 121, 228, 122, 252, 121, 62, 170, 213, + 214, 122, 183, 246, 185, 205, 187, 188, 215, 205, + 298, 949, 248, 213, 214, 196, 200, 213, 214, 262, + 263, 62, 190, 207, 208, 121, 264, 925, 196, 106, + 211, 5, 242, 13, 228, 278, 219, 280, 197, 121, + 197, 286, 209, 27, 5, 288, 289, 197, 291, 292, + 238, 294, 198, 14, 15, 190, 228, 269, 275, 243, + 190, 304, 272, 710, 297, 196, 230, 235, 309, 277, + 291, 314, 315, 291, 297, 300, 205, 121, 297, 62, + 205, 306, 309, 289, 213, 214, 300, 316, 213, 214, + 190, 298, 297, 261, 337, 338, 339, 306, 341, 264, + 300, 62, 345, 346, 300, 242, 228, 297, 27, 205, + 291, 58, 264, 356, 357, 297, 169, 213, 214, 297, + 286, 364, 356, 205, 349, 290, 369, 370, 353, 354, + 355, 213, 214, 1031, 377, 349, 215, 380, 297, 307, + 354, 355, 297, 293, 252, 119, 250, 286, 228, 349, + 278, 1049, 193, 349, 354, 355, 399, 400, 354, 355, + 250, 205, 239, 406, 407, 408, 350, 410, 228, 213, + 214, 300, 307, 242, 242, 300, 242, 306, 255, 256, + 4, 424, 1083, 351, 352, 428, 133, 316, 242, 242, + 433, 434, 435, 436, 437, 438, 1421, 440, 845, 442, + 443, 444, 40, 1590, 300, 2465, 123, 307, 16, 452, + 453, 242, 192, 1114, 88, 51, 351, 352, 300, 298, + 349, 195, 287, 1448, 349, 354, 355, 268, 79, 354, + 355, 2491, 193, 194, 287, 3, 4, 278, 17, 5, + 147, 888, 16, 4, 228, 310, 1471, 291, 14, 15, + 169, 351, 352, 349, 3, 4, 300, 99, 354, 355, + 441, 3, 4, 506, 507, 101, 62, 349, 309, 30, + 347, 348, 354, 355, 110, 113, 250, 46, 3, 4, + 2528, 524, 229, 234, 5, 159, 64, 3, 4, 57, + 40, 14, 15, 14, 15, 123, 62, 244, 67, 1391, + 588, 275, 1394, 139, 287, 349, 5, 268, 64, 552, + 354, 355, 1250, 82, 62, 62, 62, 278, 279, 89, + 1258, 136, 283, 242, 175, 242, 122, 310, 106, 14, + 15, 3, 4, 34, 2594, 2595, 45, 132, 2598, 62, + 2600, 62, 585, 631, 60, 67, 3, 4, 309, 530, + 106, 60, 2612, 2613, 79, 3, 4, 2617, 2618, 197, + 307, 2621, 650, 113, 6, 4, 2626, 2627, 287, 37, + 126, 46, 196, 82, 122, 122, 122, 62, 4, 622, + 48, 4, 161, 4, 5, 4, 567, 5, 62, 5, + 65, 199, 67, 102, 2642, 234, 14, 15, 14, 15, + 62, 1299, 163, 254, 2652, 648, 0, 75, 109, 131, + 119, 159, 1310, 122, 242, 2309, 185, 40, 2678, 62, + 274, 2681, 665, 247, 266, 668, 2686, 193, 194, 30, + 254, 269, 2692, 228, 12, 157, 251, 2697, 57, 5, + 149, 150, 3, 4, 62, 4, 62, 197, 122, 55, + 175, 219, 695, 125, 250, 216, 699, 700, 701, 702, + 122, 239, 705, 299, 707, 62, 709, 710, 711, 211, + 193, 194, 193, 194, 243, 4, 54, 255, 256, 122, + 122, 242, 278, 239, 152, 91, 264, 30, 141, 62, + 113, 1138, 287, 202, 72, 96, 3, 4, 786, 255, + 256, 5, 268, 212, 5, 206, 31, 5, 193, 194, + 185, 2771, 278, 279, 2774, 237, 0, 283, 287, 197, + 4, 189, 4, 5, 102, 122, 179, 296, 57, 254, + 278, 278, 278, 31, 2794, 778, 779, 143, 781, 782, + 783, 784, 120, 309, 5, 268, 124, 268, 2808, 122, + 5, 2811, 2812, 796, 797, 278, 279, 278, 279, 137, + 803, 804, 283, 211, 165, 274, 275, 289, 243, 347, + 348, 62, 62, 4, 197, 193, 194, 193, 194, 61, + 823, 824, 825, 268, 119, 67, 309, 132, 309, 123, + 258, 347, 348, 278, 279, 3, 4, 840, 841, 842, + 219, 844, 845, 846, 278, 848, 3, 4, 1255, 1996, + 1997, 1998, 287, 123, 42, 43, 278, 206, 125, 5, + 163, 296, 26, 67, 309, 170, 869, 250, 871, 289, + 71, 122, 122, 120, 116, 278, 345, 123, 881, 200, + 171, 1866, 310, 40, 250, 888, 889, 14, 33, 131, + 268, 894, 268, 254, 21, 1556, 5, 1882, 259, 26, + 278, 279, 278, 279, 146, 283, 33, 283, 911, 912, + 152, 57, 67, 216, 1766, 157, 919, 920, 921, 16, + 66, 278, 235, 228, 927, 90, 1911, 54, 869, 932, + 219, 309, 92, 309, 1786, 67, 984, 3, 4, 242, + 943, 107, 19, 44, 71, 278, 152, 123, 242, 1801, + 114, 288, 1804, 90, 37, 67, 113, 960, 73, 297, + 1812, 2596, 126, 1815, 41, 48, 1664, 44, 26, 211, + 171, 1823, 242, 141, 1826, 89, 24, 25, 31, 2614, + 56, 1833, 287, 4, 5, 173, 174, 88, 230, 3, + 4, 67, 75, 235, 60, 237, 242, 161, 5, 348, + 171, 78, 5, 17, 118, 354, 4, 356, 85, 180, + 2467, 179, 172, 201, 4, 221, 5, 93, 94, 96, + 97, 263, 264, 5, 1027, 101, 103, 278, 278, 271, + 2015, 107, 198, 160, 161, 162, 163, 164, 165, 4, + 197, 168, 169, 170, 171, 1048, 210, 289, 249, 126, + 5, 99, 128, 28, 1057, 131, 114, 258, 264, 223, + 5, 3, 4, 4, 3, 4, 242, 144, 126, 152, + 1073, 5, 1075, 219, 188, 5, 152, 1080, 1081, 1082, + 19, 158, 159, 4, 160, 4, 252, 1090, 165, 203, + 1093, 4, 1095, 5, 195, 4, 302, 28, 40, 99, + 39, 5, 262, 345, 84, 122, 189, 2742, 1111, 186, + 1113, 14, 15, 2748, 3, 4, 1119, 1120, 57, 4, + 280, 101, 198, 3, 4, 3, 4, 5, 4, 5, + 206, 1134, 1135, 260, 261, 1138, 1139, 1140, 4, 2459, + 3, 4, 2462, 1146, 2464, 1148, 275, 224, 1151, 4, + 1153, 265, 210, 4, 1202, 14, 15, 2477, 2478, 62, + 4, 14, 15, 290, 103, 223, 3, 4, 5, 5, + 2805, 113, 2807, 4, 2494, 258, 252, 40, 153, 5, + 60, 200, 14, 15, 4, 3, 4, 1190, 264, 14, + 15, 1194, 306, 1196, 12, 4, 5, 1200, 178, 4, + 277, 176, 316, 62, 280, 180, 333, 334, 335, 62, + 287, 294, 1215, 289, 1217, 291, 1219, 1220, 1221, 1222, + 159, 4, 153, 1226, 1227, 3, 4, 310, 430, 431, + 62, 1234, 4, 22, 12, 5, 9, 62, 1241, 316, + 11, 221, 1245, 1246, 1247, 176, 3, 4, 5, 180, + 113, 5, 1255, 1256, 274, 171, 1259, 232, 197, 4, + 2245, 50, 4, 180, 53, 171, 1269, 56, 1271, 345, + 2122, 1274, 199, 4, 1215, 199, 2261, 257, 1976, 2131, + 219, 2266, 3, 4, 5, 224, 7, 8, 2140, 5, + 193, 194, 5, 190, 83, 4, 235, 199, 273, 196, + 191, 232, 3, 4, 191, 67, 281, 282, 9, 10, + 11, 67, 44, 228, 1317, 47, 1319, 67, 5, 1322, + 1323, 1262, 1325, 112, 1327, 5, 115, 4, 229, 4, + 1333, 4, 1335, 88, 193, 194, 5, 1278, 235, 1342, + 193, 194, 273, 199, 88, 77, 5, 2045, 4, 4, + 281, 282, 5, 85, 5, 3, 4, 5, 297, 7, + 8, 193, 194, 4, 261, 268, 5, 101, 193, 194, + 2068, 4, 17, 5, 17, 278, 279, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2309, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1414, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1003, -1, -1, -1, - -1, -1, -1, -1, -1, 2340, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1444, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 1473, -1, -1, 1476, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1486, 1487, - -1, -1, -1, -1, -1, -1, 1494, -1, -1, -1, - -1, -1, -1, 1501, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2419, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2439, -1, -1, -1, -1, -1, - -1, 2446, -1, 1541, 2449, 2450, -1, -1, -1, -1, - -1, -1, -1, 2354, -1, 1553, 2357, 2358, 2359, 2360, - 2361, -1, 2363, 2364, -1, 2366, 2367, 2368, 2369, 2370, - -1, 2372, 2373, -1, 2375, 2376, 2377, 2378, 2379, -1, - 2381, 2382, -1, 2384, -1, -1, -1, 2280, -1, -1, - -1, -1, -1, 2394, 2395, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2405, -1, 1357, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1369, -1, - -1, -1, -1, -1, 1201, -1, -1, -1, -1, -1, - -1, -1, 1630, -1, -1, -1, 1387, 1388, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1648, -1, -1, -1, 1231, -1, -1, -1, -1, 1236, - -1, 2566, -1, -1, -1, -1, 1664, -1, -1, 1246, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2585, 1679, -1, 1681, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1691, -1, -1, 1694, -1, 1696, 1697, - 1698, 1699, -1, -1, 1702, -1, -1, 1705, -1, -1, - 1708, 1709, -1, 1711, 1712, 1713, 1714, -1, 1716, 1717, - -1, -1, -1, -1, 1722, 1723, 1724, -1, -1, 1727, - 1728, -1, -1, 2534, -1, 1733, 1734, -1, -1, -1, - -1, -1, 2543, -1, -1, -1, -1, -1, -1, -1, - -1, 2552, -1, 2554, -1, 2660, 2661, 2558, 2663, -1, - 2665, 2666, -1, 2668, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 2471, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 2491, -1, - -1, -1, 2495, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2719, 4, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2647, -1, 2649, -1, - 2651, 40, -1, 2654, -1, 2656, 3, 4, -1, 1857, - -1, 2766, -1, 1861, -1, -1, -1, -1, 57, -1, - -1, -1, 19, -1, -1, 1873, -1, -1, 1876, -1, + 339, 340, 341, 342, 343, 4, 309, 3, 4, 268, + 307, 7, 8, 145, 1417, 268, 1419, 1420, 4, 278, + 279, 4, 83, 4, 88, 278, 279, 3, 4, 5, + 5, 7, 8, 99, 5, 4, 268, 5, 1441, 5, + 5, 230, 1445, 268, 88, 4, 278, 279, 5, 5, + 309, 4, 4, 278, 279, 352, 309, 5, 5, 5, + 4, 4, 12, 195, 5, 4, 1469, 1470, 83, 4, + 12, 4, 4, 4, 263, 1416, 1479, 309, 2463, 5, + 1483, 213, 214, 5, 309, 168, 5, 1490, 220, 616, + 222, 2476, 4, 154, 159, 4, 2481, 159, 5, 4, + 289, 1504, 62, 263, 263, 291, 1509, 5, 4, 4, + 1513, 5, 1515, 1516, 5, 1518, 1519, 1520, 250, 1522, + 1927, 5, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, + 1533, 1534, 1535, 5, 4, 1538, 1539, 1540, 1541, 154, + 5, 5, 5, 670, 5, 1548, 1549, 276, 675, 1552, + 1553, 1554, 276, 5, 242, 1558, 1559, 4, 4, 119, + 5, 5, 122, 5, 22, 226, 227, 5, 1571, 1572, + 5, 1574, 1575, 5, 5, 1982, 4, 4, 107, 5, + 241, 32, 67, 2281, 316, 35, 4, 141, 5, 5, + 2288, 5, 50, 242, 107, 53, 81, 40, 5, 159, + 242, 107, 215, 40, 215, 90, 5, 4, 248, 5, + 5, 226, 227, 215, 215, 4, 101, 2024, 4, 1622, + 1623, 1624, 5, 284, 1627, 83, 241, 5, 5, 1632, + 1633, 5, 1635, 1636, 1637, 195, 1639, 1640, 5, 1642, + 4, 4, 1645, 1646, 2342, 113, 131, 2345, 5, 5, + 2348, 1654, 2350, 113, 112, 5, 4, 115, 108, 1662, + 5, 5, 113, 93, 1667, 1668, 4, 152, 5, 284, + 5, 101, 1675, 4, 4, 54, 5, 107, 5, 129, + 130, 1684, 5, 5, 12, 6, 246, 12, 138, 4, + 250, 1632, 5, 72, 4, 4, 4, 4, 128, 38, + 827, 5, 38, 4, 0, 5, 156, 141, 242, 4, + 89, 170, 242, 198, 242, 275, 166, 1720, 278, 123, + 199, 211, 152, 102, 4, 252, 4, 4, 288, 4, + 160, 182, 4, 184, 185, 5, 187, 188, 5, 1742, + 1743, 120, 5, 5, 1747, 124, 5, 5, 4, 4, + 1753, 276, 237, 5, 2739, 4, 4, 4, 137, 1700, + 5, 5, 5, 4, 242, 216, 4, 242, 198, 1710, + 4, 242, 230, 313, 1715, 313, 206, 4, 4, 264, + 4, 4, 4, 4, 235, 236, 5, 5, 228, 313, + 313, 977, 228, 5, 4, 228, 5, 4, 177, 228, + 5, 5, 2500, 6, 228, 263, 4, 6, 5, 5, + 4, 4, 4, 429, 5, 5, 4, 4, 303, 5, + 305, 5, 252, 2230, 2231, 4, 2233, 2234, 279, 5, + 2237, 2238, 5, 4, 264, 5, 4, 4, 4, 4, + 291, 5, 5, 5, 5, 5, 4, 357, 5, 4, + 280, 5, 5, 5, 4, 4, 4, 1860, 5, 1862, + 311, 1864, 5, 5, 5, 4, 4, 276, 5, 5, + 5, 5, 4, 4, 276, 5, 5, 5, 5, 4, + 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 4, + 4, 2298, 5, 5, 276, 5, 5, 4, 309, 5, + 5, 5, 5, 4, 1907, 4, 1909, 5, 5, 4, + 4, 4, 4, 289, 5, 5, 5, 5, 4, 4, + 289, 5, 4, 1926, 1927, 4, 4, 1054, 5, 1932, + 5, 4, 12, 5, 5, 4, 4, 4, 1941, 1942, + 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 5, 5, + 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, + 1963, 1964, 4, 1966, 5, 1968, 1969, 1970, 5, 5, + 421, 5, 2630, 5, 5, 4, 357, 5, 4, 1982, + 1983, 432, 4, 1110, 5, 5, 5, 4, 4, 4, + 441, 5, 5, 5, 5, 1122, 4, 357, 5, 5, + 5, 5, 4, 4, 357, 5, 4, 4, 4, 4, + 4, 4, 4, 2016, 4, 2018, 4, 2020, 4, 2022, + 4, 2024, 2025, 4, 2027, 4, 4, 4, 2764, 5, + 5, 2034, 2035, 357, 4, 6, 5, 357, 2041, 357, + 2043, 2448, 4, 357, 2047, 2452, 5, 2050, 2706, 4, + 6, 5, 5, 5, 4, 4, 4, 4, 509, 510, + 4, 4, 4, 4, 4, 4, 357, 5, 4, 2641, + 5, 522, 5, 5, 4, 4, 527, 5, 5, 5, + 4, 2488, 4, 2256, 5, 536, 4, 4, 4, 2628, + 5, 4, 2095, 4, 4, 4, 384, 5, 5, 4, + 4, 4, 4, 1230, 1231, 4, 2706, 5, 4, 2702, + 5, 5, 2053, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 4, 4, 4, 4, 2193, 5, 5, 5, 5, + 5, 2092, 5, 4, 4, 745, 5, 608, 609, 610, + 611, 5, 5, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1359, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1371, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2199, 293, -1, -1, + -1, -1, -1, 1389, 1390, -1, -1, 2210, 2211, 2212, + 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 669, -1, + -1, -1, -1, 2226, -1, -1, -1, 2230, 2231, -1, + 2233, 2234, 2717, 2718, 2237, 2238, 2239, 2240, 2241, 2242, + 2243, 2244, -1, 2246, 2247, 2248, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 352, -1, -1, 2262, + 2263, 2264, 2265, -1, 2267, 2268, 2269, 2270, 2271, 2272, + -1, 2274, -1, -1, 2277, 2278, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1412, -1, -1, -1, -1, + -1, 1418, 2295, -1, -1, 2298, 2299, -1, -1, -1, + 2303, -1, -1, -1, 2307, -1, -1, -1, -1, -1, + -1, -1, -1, 1440, -1, -1, 1443, -1, -1, -1, + 1447, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1468, -1, -1, -1, -1, -1, 1474, -1, -1, + -1, -1, 2355, -1, -1, 1482, -1, -1, 1485, -1, + -1, -1, -1, -1, -1, -1, -1, 1494, 1495, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1505, -1, + 831, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 843, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, + -1, -1, -1, -1, -1, 511, -1, -1, 514, -1, + -1, -1, -1, 519, 2427, -1, -1, 523, 2431, 880, + -1, -1, -1, -1, -1, -1, -1, -1, 2441, 2442, + -1, -1, -1, -1, 2447, 2448, -1, -1, 2451, 2452, + -1, -1, -1, -1, 2457, -1, -1, 2460, 2461, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1482, -1, -1, 1906, -1, - -1, -1, -1, -1, 103, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2479, 2480, -1, 2482, + 2483, 2484, 2485, 2486, -1, 2488, 2489, 22, -1, 965, + 2493, -1, 27, -1, 590, -1, -1, -1, -1, -1, + -1, -1, -1, 2506, 955, -1, 2046, -1, 2511, -1, + -1, -1, -1, -1, 49, 50, -1, 52, 53, -1, + -1, 997, 2062, 2063, 2064, -1, 2529, 2067, 63, 2069, + 2070, -1, -1, 2073, 2074, 2075, -1, -1, 2078, 2079, + 75, 76, 2082, -1, 2084, 2085, -1, 2087, 83, -1, + -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2571, 104, + -1, -1, -1, 2576, -1, 2578, 111, 112, -1, 1030, + 115, 2584, -1, -1, -1, -1, -1, -1, -1, -1, + 1776, -1, -1, -1, 2597, -1, -1, -1, 1784, 1785, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 121, -1, -1, 2628, -1, -1, -1, -1, + 706, -1, 2615, 1799, 1800, -1, 2619, 713, 2666, -1, + -1, -1, -1, -1, 1810, 1811, -1, -1, -1, -1, + -1, -1, -1, 1084, -1, 1821, 1822, -1, 2641, -1, + 175, -1, -1, 1094, -1, 1831, 1832, -1, -1, -1, + -1, 1837, -1, -1, -1, 2195, -1, -1, 2198, -1, + -1, 1847, -1, 2203, -1, -1, 2206, 2670, -1, -1, + -1, -1, 2675, -1, 2677, -1, -1, -1, -1, -1, + -1, 2684, -1, -1, -1, 2225, 2689, -1, -1, -1, + -1, 2694, -1, -1, -1, 230, -1, -1, -1, -1, + -1, 236, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2717, 2718, -1, -1, 253, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, + -1, -1, -1, -1, 830, -1, -1, -1, -1, -1, + 2743, 837, -1, 2746, -1, -1, 2749, 1198, -1, 1876, + 3, 4, -1, -1, -1, 290, 291, 2760, 2761, 2762, + 2763, -1, -1, -1, 1215, -1, 19, -1, -1, 2772, + -1, 2311, 2775, -1, -1, -1, 311, -1, -1, 2782, + -1, 2784, -1, -1, -1, 1912, 882, 883, 1239, -1, + -1, 887, -1, 2734, 890, -1, -1, -1, 1249, -1, + -1, -1, -1, 2343, 57, -1, 902, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1268, -1, -1, + -1, 356, -1, -1, -1, 2766, -1, 1278, 2769, -1, + -1, -1, 1283, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, - -1, -1, -1, -1, 1962, 1542, -1, -1, -1, -1, - 159, 1548, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1985, -1, -1, + 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1343, 1344, 1345, + -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, + -1, -1, -1, 2423, 1360, 1361, 1362, -1, -1, 1365, + 1366, -1, 1368, 1369, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2443, -1, -1, 159, -1, -1, 1005, + 2450, -1, -1, 2453, 2454, -1, -1, -1, -1, -1, + 2106, -1, 1398, 1399, -1, -1, 1402, 1403, -1, -1, + 2116, -1, -1, -1, 2120, 2121, -1, -1, -1, -1, + -1, -1, -1, 2129, 2130, -1, -1, -1, -1, -1, + -1, -1, 2138, 2139, -1, -1, -1, -1, 2144, -1, + -1, -1, -1, -1, -1, 1416, 219, -1, 2154, 2155, + -1, 224, -1, -1, -1, -1, -1, -1, -1, 2165, + 2166, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2176, -1, -1, -1, 4, 1446, -1, -1, -1, 2185, + -1, 2187, -1, -1, -1, -1, -1, -1, -1, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 197, -1, - -1, -1, 159, -1, -1, -1, 205, -1, -1, -1, - -1, -1, -1, 1774, 213, 214, -1, -1, -1, -1, - 219, 1782, 1783, -1, -1, 224, -1, -1, 2036, -1, - -1, -1, -1, -1, -1, -1, 1797, 1798, -1, 1626, - -1, -1, 2745, -1, -1, 1632, -1, 1808, 1809, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1819, 1820, - -1, -1, -1, -1, -1, -1, -1, 224, 1829, 1830, - 1657, 2079, -1, -1, 1835, -1, 1663, -1, -1, -1, - -1, -1, -1, -1, 1845, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1475, -1, -1, 1478, -1, -1, + 40, -1, 2572, -1, -1, -1, -1, 1488, 1489, -1, + -1, -1, -1, -1, -1, 1496, -1, 57, -1, -1, + -1, 2591, 1503, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, -1, 1543, 103, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1555, -1, -1, 1203, -1, -1, + -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2668, 2669, + -1, 2671, -1, 2673, 2674, -1, 2676, 1233, -1, -1, + -1, -1, 1238, -1, -1, -1, -1, -1, -1, 159, + -1, -1, 1248, -1, -1, 2282, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 300, -1, -1, -1, 1692, -1, -1, -1, -1, - -1, -1, -1, 1700, -1, -1, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, -1, -1, -1, -1, -1, - 349, -1, -1, -1, -1, 354, 355, -1, -1, 316, + -1, -1, -1, 2359, -1, -1, -1, -1, -1, -1, + -1, 1632, -1, 2369, -1, -1, -1, 197, -1, 2729, + -1, -1, 2378, -1, -1, 205, -1, -1, -1, 1650, + -1, 2387, -1, 213, 214, -1, -1, -1, 2394, 219, + -1, -1, -1, -1, 224, 1666, -1, -1, -1, 2405, + -1, -1, -1, -1, -1, 2411, -1, -1, 2414, -1, + 1681, 2417, 1683, -1, -1, -1, 2776, -1, -1, -1, + -1, -1, 1693, -1, -1, 1696, -1, 1698, 1699, 1700, + 1701, -1, -1, 1704, -1, -1, 1707, -1, -1, 1710, + 1711, -1, 1713, 1714, 1715, 1716, -1, 1718, 1719, -1, + -1, -1, -1, 1724, 1725, 1726, -1, -1, 1729, 1730, + -1, 1757, -1, -1, 1735, 1736, -1, -1, -1, -1, + 300, -1, -1, -1, 1770, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1780, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, -1, -1, -1, 4, 5, 349, + -1, -1, -1, -1, 354, 355, -1, -1, 2475, -1, + -1, 2537, -1, -1, -1, -1, -1, -1, -1, -1, + 2546, -1, -1, -1, -1, -1, -1, -1, 2495, 2555, + -1, -1, 2499, -1, -1, 2561, 1852, -1, -1, 2565, + -1, -1, 2568, -1, -1, -1, 3, 4, 1484, 40, + -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, + 67, -1, 19, -1, -1, -1, -1, 74, 1859, 76, + -1, -1, 1863, -1, 81, -1, 67, 84, -1, -1, + -1, -1, -1, 90, 1875, -1, -1, 1878, -1, -1, + -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, + 107, -1, -1, -1, -1, -1, -1, -1, 1544, 116, + 101, -1, -1, -1, 1550, -1, 107, 1908, -1, -1, + -1, -1, 113, -1, 131, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, + 131, -1, -1, -1, -1, 152, 103, -1, -1, -1, + -1, 19, -1, -1, -1, -1, -1, -1, -1, -1, + 167, 152, -1, -1, -1, -1, -1, 2634, -1, -1, + 177, 178, -1, 1964, -1, -1, 167, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, + -1, 198, 1628, 4, -1, -1, 1987, -1, 1634, -1, + -1, -1, 159, -1, -1, -1, -1, 198, 19, -1, + -1, -1, -1, -1, 221, -1, -1, -1, -1, -1, + -1, -1, -1, 1659, -1, -1, -1, -1, 235, 1665, + 237, -1, -1, -1, -1, 103, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 252, 237, 2038, -1, -1, + 257, -1, -1, -1, -1, -1, -1, 264, 1694, -1, + -1, 252, 2053, -1, 271, -1, 1702, 224, -1, -1, + -1, -1, -1, 264, -1, -1, -1, -1, -1, -1, + -1, -1, 289, -1, -1, -1, -1, -1, 2755, 2105, + 2081, 159, 103, -1, -1, 302, 303, -1, 305, -1, + 291, 2092, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 303, -1, 305, 306, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2145, + 2146, 2147, 2148, 2149, -1, 2151, 2152, -1, 345, -1, + 2156, 2157, 2158, 2159, 2160, -1, 2162, 2163, 159, -1, + -1, 219, -1, -1, 345, -1, 224, -1, -1, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 2195, -1, -1, - 2198, -1, -1, -1, -1, -1, -1, -1, 2206, -1, + 337, 338, 339, 340, 341, 342, 343, 16, -1, -1, + -1, -1, -1, -1, 23, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2197, -1, -1, 2200, + -1, -1, -1, 224, -1, -1, -1, 2208, -1, -1, + -1, 1857, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2224, -1, -1, 2227, -1, -1, -1, + -1, 2232, -1, 1879, 2235, 2236, -1, -1, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, -1, 1913, 1914, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2222, -1, -1, 2225, -1, -1, - -1, -1, 2230, -1, -1, 2233, 2234, -1, -1, -1, + -1, -1, 2283, 2284, 1930, 1931, -1, -1, -1, 1935, + 1936, -1, -1, -1, -1, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 2324, -1, -1, -1, -1, -1, 1975, + -1, -1, 2358, -1, -1, 2361, 2362, 2363, 2364, 2365, + 1986, 2367, 2368, -1, 2370, 2371, 2372, 2373, 2374, -1, + 2376, 2377, -1, 2379, 2380, 2381, 2382, 2383, -1, 2385, + 2386, -1, 2388, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2398, 2399, -1, 2021, -1, -1, -1, -1, + -1, -1, -1, 2409, -1, -1, -1, -1, -1, -1, + -1, 2037, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 245, -1, -1, 248, + -1, -1, -1, -1, 2060, -1, -1, -1, -1, 2065, + -1, 2422, -1, -1, -1, 2071, -1, -1, -1, -1, + 2076, -1, -1, -1, 2080, -1, -1, 2083, -1, -1, + 2086, -1, 2088, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2455, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2466, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 19, -1, -1, -1, -1, + -1, -1, -1, -1, 2540, 2516, -1, -1, -1, 2520, + -1, -1, -1, 2549, -1, -1, -1, -1, -1, -1, + -1, -1, 2558, -1, 2560, -1, -1, -1, 2564, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4, 5, -1, -1, -1, -1, -1, -1, + -1, -1, 66, 67, -1, -1, 70, -1, -1, -1, + -1, -1, -1, 18, 19, -1, -1, -1, -1, -1, + -1, -1, -1, 2574, 2575, -1, 2577, -1, -1, 93, + -1, 2582, 2583, -1, -1, -1, 2587, -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1855, -1, - -1, -1, -1, 2281, 2282, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2620, + -1, -1, -1, -1, -1, -1, -1, 2273, -1, 2655, + -1, 2657, -1, 2659, -1, -1, 2662, -1, 2664, -1, + -1, -1, -1, 2289, -1, 159, 2647, -1, 103, -1, + -1, -1, -1, -1, -1, -1, -1, 171, -1, -1, + -1, -1, 117, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2319, -1, 189, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1877, -1, -1, -1, -1, -1, -1, -1, -1, 61, - -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, - -1, -1, 74, 2321, 76, -1, -1, -1, -1, 81, - -1, -1, 84, -1, 1911, 1912, -1, -1, 90, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, - -1, 1928, 1929, 2104, -1, 107, 1933, 1934, -1, -1, - -1, -1, -1, 2114, 116, 16, -1, 2118, 2119, -1, - -1, -1, 23, -1, -1, -1, 2127, 2128, -1, 131, - -1, -1, -1, -1, -1, 2136, 2137, -1, -1, -1, - -1, 2142, -1, -1, -1, -1, 1973, -1, -1, -1, - 152, 2152, 2153, -1, -1, -1, -1, 1984, -1, -1, - -1, -1, 2163, 2164, -1, 167, -1, -1, -1, -1, - 2418, -1, -1, 2174, -1, 177, 178, -1, -1, -1, - -1, -1, 2183, -1, 2185, -1, -1, -1, -1, -1, - -1, -1, 2019, -1, -1, -1, 198, -1, -1, -1, - -1, -1, -1, 2451, -1, -1, -1, -1, 2035, -1, - -1, -1, -1, -1, 2462, -1, -1, -1, -1, 221, + -1, -1, -1, -1, -1, -1, -1, 211, -1, -1, + -1, -1, -1, -1, 159, -1, 2352, -1, -1, -1, + 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 176, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2734, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2058, -1, 235, -1, 237, 2063, -1, -1, -1, - -1, -1, 2069, -1, -1, -1, -1, 2074, -1, -1, - 252, 2078, -1, -1, 2081, 257, -1, 2084, -1, 2086, - -1, -1, 264, 2511, -1, -1, -1, 2515, -1, 271, + 2751, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 277, -1, 2766, -1, -1, 2769, 224, + -1, -1, -1, -1, 2420, -1, -1, -1, -1, -1, + 2426, -1, -1, -1, 2430, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, + 2446, -1, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + -1, 345, -1, -1, -1, -1, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 302, 303, -1, 305, 4, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, - 2568, 2569, -1, 2571, -1, -1, -1, -1, 2576, 2577, - -1, -1, -1, 2581, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 345, 245, -1, -1, 248, -1, -1, - -1, -1, -1, -1, 2355, -1, -1, 57, -1, 4, - -1, -1, -1, -1, 2365, -1, 2614, -1, -1, -1, - -1, -1, -1, 2374, 19, -1, -1, -1, -1, -1, - -1, -1, 2383, -1, -1, -1, -1, -1, -1, 2390, - -1, -1, 2640, -1, -1, -1, -1, -1, -1, -1, - 2401, -1, -1, 103, 19, -1, 2407, -1, -1, 2410, - -1, -1, 2413, -1, -1, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, -1, 2271, -1, -1, -1, -1, -1, - -1, 66, 67, -1, -1, 70, -1, -1, 103, 159, - 2287, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2724, -1, 93, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, - -1, -1, -1, 2741, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 2756, -1, - -1, 2759, -1, -1, 159, -1, -1, -1, -1, 219, - -1, -1, -1, -1, 224, -1, -1, -1, -1, -1, - 2531, -1, -1, -1, -1, -1, -1, -1, -1, 2540, - -1, -1, -1, -1, 159, -1, -1, -1, 2549, -1, - -1, -1, -1, -1, 2555, -1, 171, -1, 2559, -1, - -1, 2562, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 189, -1, -1, -1, -1, 224, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 2416, - -1, -1, -1, -1, -1, 2422, 211, -1, -1, 2426, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, - -1, -1, -1, -1, -1, 2442, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, - -1, -1, 277, -1, -1, -1, 2493, 2494, -1, -1, - -1, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 59, + -1, 2497, 2498, -1, -1, -1, -1, -1, -1, -1, -1, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, -1, - 345, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 117, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 2596, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 20, 21, 22, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 159, + 20, 21, 22, -1, -1, 20, 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 49, 50, -1, -1, 53, 176, -1, -1, -1, - -1, -1, 60, -1, -1, 63, -1, -1, -1, 67, - -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, - -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 2690, 224, -1, -1, 19, -1, -1, - -1, -1, -1, 111, 112, -1, -1, 115, -1, -1, - -1, -1, -1, -1, -1, 2712, -1, -1, -1, -1, - -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 49, + 50, -1, -1, 53, 49, 50, 56, 19, 53, -1, + -1, -1, -1, 63, -1, 60, -1, 67, 63, -1, + -1, -1, 67, -1, -1, 75, 76, -1, -1, -1, + 75, 76, -1, 83, 84, 19, 2602, -1, 83, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, - -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, + -1, 101, -1, -1, -1, -1, -1, 107, -1, -1, + -1, 111, 112, -1, -1, 115, 111, 112, -1, -1, + 115, -1, -1, 57, -1, -1, -1, -1, -1, -1, + -1, 131, -1, -1, -1, -1, 131, 19, -1, -1, + -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 152, -1, -1, -1, -1, 152, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, + -1, -1, -1, -1, -1, 175, -1, -1, 60, -1, + 175, -1, 2698, -1, -1, -1, -1, -1, -1, 184, + -1, -1, -1, -1, -1, -1, -1, 159, 198, -1, + -1, -1, -1, -1, -1, 2721, -1, -1, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2757, -1, -1, 293, -1, -1, -1, 175, -1, -1, - -1, -1, -1, -1, -1, -1, 184, -1, -1, -1, - 2777, 103, -1, 2780, -1, -1, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 20, 21, 22, -1, -1, -1, - 228, -1, 230, -1, -1, -1, -1, -1, 236, 237, - -1, -1, -1, -1, -1, -1, -1, 159, -1, -1, - -1, -1, -1, 49, 50, 253, -1, 53, 19, -1, - 56, -1, -1, -1, -1, -1, 264, 63, -1, -1, - -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, - 76, -1, -1, -1, -1, -1, -1, 83, 84, -1, - -1, 289, -1, 291, -1, -1, 57, -1, -1, -1, - -1, -1, -1, 301, -1, 101, -1, 219, -1, 19, - -1, 107, 224, 311, -1, 111, 112, -1, -1, 115, + -1, 103, -1, -1, -1, 159, -1, -1, 228, -1, + 230, -1, -1, 228, -1, 230, 236, 237, -1, -1, + -1, 236, 237, -1, -1, -1, 57, -1, -1, -1, + -1, 2767, 252, 253, -1, -1, -1, 219, 253, -1, + -1, -1, 224, 263, 264, -1, -1, -1, -1, 264, + -1, 2787, -1, -1, 2790, -1, -1, 159, -1, -1, + -1, -1, -1, -1, -1, 219, -1, -1, -1, 289, + 224, 291, 103, -1, 289, -1, 291, -1, -1, -1, + -1, -1, -1, 303, -1, 305, 301, -1, -1, -1, + -1, 311, 159, -1, -1, -1, 311, 164, -1, -1, + -1, -1, -1, 285, -1, -1, -1, -1, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 131, -1, -1, -1, -1, - -1, -1, 103, -1, -1, -1, -1, 345, -1, 19, - 60, -1, -1, -1, -1, -1, 152, -1, -1, -1, - -1, -1, -1, -1, 159, -1, -1, -1, -1, 164, - -1, -1, -1, 285, -1, -1, -1, -1, -1, 175, - 19, -1, -1, -1, -1, -1, -1, 57, -1, -1, - -1, -1, -1, 103, -1, -1, -1, -1, 159, -1, - -1, -1, 198, -1, 316, 317, 318, 319, 320, 321, + -1, -1, 224, -1, -1, 345, -1, -1, 159, -1, + 345, -1, -1, -1, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 228, 103, 230, -1, -1, -1, -1, -1, - 236, 237, -1, -1, -1, -1, -1, -1, -1, 159, - -1, -1, -1, -1, -1, -1, 252, 253, 219, -1, - -1, -1, -1, 224, 103, -1, -1, 263, 264, -1, + 342, 343, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + -1, 293, 103, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 159, - -1, -1, -1, 289, -1, 291, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 303, -1, 305, - -1, -1, -1, -1, 224, 311, -1, -1, -1, -1, - 159, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 345, - -1, -1, -1, -1, 224, 316, 317, 318, 319, 320, + -1, -1, -1, -1, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, -1, -1, -1, -1, -1, -1, 159, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, -1, -1, -1, + -1, -1, -1, -1, -1, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 293, -1, 224, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, -1, -1, -1, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 41, -1, -1, 44, -1, - -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 60, -1, -1, -1, -1, 65, - 66, -1, 68, 69, 70, -1, -1, -1, -1, -1, - -1, -1, 78, -1, -1, -1, -1, -1, -1, 85, - -1, 87, 88, -1, -1, -1, -1, -1, -1, -1, - -1, 97, 98, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 127, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 140, -1, -1, -1, 144, -1, - -1, 147, -1, -1, -1, 151, 152, -1, -1, -1, - -1, -1, 158, -1, -1, -1, -1, -1, 164, -1, + 341, 342, 343, 224, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, -1, -1, -1, -1, -1, 41, -1, -1, + 44, -1, -1, 47, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, + -1, 65, 66, -1, 68, 69, 70, -1, -1, -1, + -1, -1, -1, -1, 78, -1, -1, -1, -1, -1, + -1, 85, -1, 87, 88, -1, -1, -1, -1, -1, + -1, -1, -1, 97, 98, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 127, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 140, -1, -1, -1, + 144, -1, -1, 147, -1, -1, -1, 151, 152, -1, + -1, -1, -1, -1, 158, -1, -1, -1, -1, -1, + 164, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 178, -1, -1, 181, 182, 183, + -1, -1, 186, 187, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 178, -1, -1, 181, 182, 183, -1, -1, - 186, 187, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 200, -1, -1, -1, -1, -1, + -1, -1, -1, 217, 218, 219, -1, -1, -1, -1, + -1, -1, 41, -1, -1, 44, -1, 231, 47, 233, + -1, -1, -1, -1, -1, -1, 240, -1, -1, -1, + 244, -1, -1, -1, 248, -1, 250, 66, 252, 68, + 69, 70, -1, 257, -1, -1, -1, -1, -1, 78, + -1, 80, -1, -1, -1, -1, 85, 271, 87, 88, + 89, -1, -1, 277, -1, -1, 95, -1, 97, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 292, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 217, 218, 219, -1, -1, -1, -1, -1, -1, - 41, -1, -1, 44, -1, 231, 47, 233, -1, -1, - -1, -1, -1, -1, 240, -1, -1, -1, 244, -1, - -1, -1, 248, -1, 250, 66, 252, 68, 69, 70, - -1, 257, -1, -1, -1, -1, -1, 78, -1, 80, - -1, -1, -1, -1, 85, 271, 87, 88, 89, -1, - -1, 277, -1, -1, 95, -1, 97, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 292, 293, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 304, -1, - 306, -1, -1, -1, -1, 126, 312, -1, -1, 315, - 316, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, - -1, 152, -1, 154, 155, -1, -1, 158, -1, -1, - 346, 162, -1, 164, 164, -1, -1, 353, -1, -1, + 304, -1, 306, -1, -1, -1, -1, 126, 312, -1, + -1, 315, 316, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, + -1, -1, -1, 152, -1, 154, 155, -1, -1, 158, + -1, -1, 346, 162, -1, 164, 164, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 186, 187, -1, -1, 190, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 200, + -1, -1, -1, -1, -1, -1, -1, 186, 187, -1, + -1, 190, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 200, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 217, 218, + -1, -1, -1, -1, -1, -1, 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 217, 218, -1, -1, - -1, -1, -1, -1, 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 250, - -1, 252, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 250, -1, 252, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 277, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 277, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 292, 293, -1, -1, -1, -1, -1, -1, -1, - 301, -1, -1, -1, -1, -1, -1, 308, -1, -1, - -1, -1, -1, 314, -1, 316, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, -1, -1, -1, -1, -1, - -1, -1, 353 + -1, -1, -1, 292, 293, -1, -1, -1, -1, -1, + -1, -1, 301, -1, -1, -1, -1, -1, -1, 308, + -1, -1, -1, -1, -1, 314, -1, 316, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, -1, -1, -1, + -1, -1, -1, -1, 353 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -4159,21 +4107,21 @@ 69, 70, 78, 80, 85, 87, 88, 89, 95, 97, 126, 144, 152, 154, 155, 158, 162, 164, 186, 187, 190, 200, 217, 218, 225, 250, 252, 277, 292, 293, - 301, 308, 314, 316, 353, 423, 84, 101, 465, 19, + 301, 308, 314, 316, 353, 423, 84, 101, 467, 19, 41, 44, 78, 85, 96, 97, 103, 126, 144, 158, - 159, 165, 186, 224, 277, 287, 316, 468, 67, 362, - 89, 118, 188, 203, 265, 306, 316, 474, 16, 26, - 114, 126, 161, 210, 223, 477, 234, 495, 5, 67, - 89, 142, 306, 353, 362, 496, 5, 497, 58, 133, - 229, 244, 307, 513, 46, 65, 67, 185, 243, 287, - 296, 533, 67, 206, 348, 354, 356, 534, 39, 197, - 235, 297, 360, 370, 372, 535, 5, 306, 316, 362, - 538, 71, 171, 249, 258, 539, 4, 540, 89, 513, - 62, 287, 310, 547, 197, 297, 360, 548, 26, 114, - 126, 210, 223, 550, 51, 101, 110, 139, 299, 565, - 566, 4, 37, 48, 75, 152, 189, 258, 294, 310, - 388, 4, 126, 209, 567, 297, 360, 569, 16, 23, - 245, 248, 371, 570, 234, 574, 297, 360, 575, 0, + 159, 165, 186, 224, 277, 287, 316, 470, 67, 362, + 89, 118, 188, 203, 265, 306, 316, 476, 16, 26, + 114, 126, 161, 210, 223, 479, 234, 497, 5, 67, + 89, 142, 306, 353, 362, 498, 5, 499, 58, 133, + 229, 244, 307, 515, 46, 65, 67, 185, 243, 287, + 296, 535, 67, 206, 348, 354, 356, 536, 39, 197, + 235, 297, 360, 370, 372, 537, 5, 306, 316, 362, + 540, 71, 171, 249, 258, 541, 4, 542, 89, 515, + 62, 287, 310, 549, 197, 297, 360, 550, 26, 114, + 126, 210, 223, 552, 51, 101, 110, 139, 299, 567, + 568, 4, 37, 48, 75, 152, 189, 258, 294, 310, + 388, 4, 126, 209, 569, 297, 360, 571, 16, 23, + 245, 248, 371, 572, 234, 576, 297, 360, 577, 0, 5, 143, 362, 60, 360, 394, 274, 5, 4, 297, 360, 395, 5, 32, 286, 396, 125, 360, 397, 125, 360, 399, 360, 4, 196, 247, 254, 403, 190, 307, @@ -4185,240 +4133,241 @@ 360, 197, 370, 372, 360, 35, 108, 129, 130, 138, 156, 166, 377, 360, 4, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 119, 67, 54, 72, 89, - 102, 120, 124, 137, 177, 424, 120, 426, 190, 196, - 235, 261, 307, 351, 352, 360, 412, 427, 289, 430, - 171, 431, 171, 180, 433, 66, 67, 70, 93, 171, - 189, 211, 277, 345, 370, 435, 360, 372, 438, 60, - 293, 370, 439, 285, 370, 372, 440, 33, 441, 370, - 372, 442, 4, 370, 372, 443, 45, 60, 82, 102, - 119, 122, 149, 150, 202, 212, 274, 275, 345, 447, - 216, 309, 453, 67, 5, 90, 6, 89, 122, 445, - 5, 66, 372, 444, 16, 513, 46, 67, 82, 185, - 243, 287, 296, 454, 67, 235, 455, 288, 62, 287, - 310, 456, 21, 137, 242, 272, 457, 37, 48, 75, - 152, 189, 258, 310, 458, 372, 90, 16, 199, 463, - 370, 466, 67, 73, 469, 31, 470, 44, 88, 195, - 471, 152, 221, 264, 302, 472, 370, 18, 59, 117, - 176, 293, 370, 473, 5, 4, 196, 476, 5, 4, - 6, 122, 360, 4, 5, 250, 478, 5, 480, 5, - 119, 195, 250, 275, 481, 95, 113, 190, 494, 5, - 492, 5, 275, 493, 4, 5, 362, 362, 360, 360, + 102, 120, 124, 137, 177, 426, 120, 428, 190, 196, + 235, 261, 307, 351, 352, 360, 412, 429, 289, 432, + 171, 433, 171, 180, 435, 66, 67, 70, 93, 171, + 189, 211, 277, 345, 370, 437, 360, 372, 440, 60, + 293, 370, 441, 285, 370, 372, 442, 33, 443, 370, + 372, 444, 4, 370, 372, 445, 45, 60, 82, 102, + 119, 122, 149, 150, 202, 212, 274, 275, 345, 449, + 216, 309, 455, 67, 5, 90, 6, 89, 122, 447, + 5, 66, 372, 446, 16, 515, 46, 67, 82, 185, + 243, 287, 296, 456, 67, 235, 457, 288, 62, 287, + 310, 458, 21, 137, 242, 272, 459, 37, 48, 75, + 152, 189, 258, 310, 460, 372, 90, 16, 199, 465, + 370, 468, 67, 73, 471, 31, 472, 44, 88, 195, + 473, 152, 221, 264, 302, 474, 370, 18, 59, 117, + 176, 293, 370, 475, 5, 4, 196, 478, 5, 4, + 6, 122, 360, 4, 5, 250, 480, 5, 482, 5, + 119, 195, 250, 275, 483, 95, 113, 190, 496, 5, + 494, 5, 275, 495, 4, 5, 362, 362, 360, 360, 5, 4, 5, 61, 67, 74, 76, 81, 84, 90, 101, 107, 116, 131, 152, 167, 177, 178, 198, 221, 235, 237, 252, 257, 264, 271, 289, 302, 303, 305, - 345, 498, 92, 172, 262, 280, 374, 5, 4, 200, + 345, 500, 92, 172, 262, 280, 374, 5, 4, 200, 207, 208, 243, 350, 373, 360, 370, 360, 5, 360, - 40, 113, 360, 537, 362, 360, 370, 372, 536, 360, - 377, 360, 4, 371, 55, 91, 143, 250, 541, 4, - 4, 360, 4, 152, 264, 542, 5, 370, 4, 40, - 113, 360, 549, 360, 99, 62, 122, 250, 278, 551, - 122, 564, 62, 119, 122, 159, 195, 246, 250, 275, - 278, 288, 553, 554, 62, 122, 278, 563, 5, 4, - 34, 109, 206, 546, 67, 362, 389, 67, 362, 390, - 67, 362, 391, 13, 192, 545, 360, 360, 228, 360, - 392, 360, 275, 4, 360, 360, 4, 573, 4, 291, - 571, 4, 291, 572, 4, 377, 125, 360, 576, 360, + 40, 113, 360, 539, 362, 360, 370, 372, 538, 360, + 377, 360, 4, 371, 55, 91, 143, 250, 543, 4, + 4, 360, 4, 152, 264, 544, 5, 370, 4, 40, + 113, 360, 551, 360, 99, 62, 122, 250, 278, 553, + 122, 566, 62, 119, 122, 159, 195, 246, 250, 275, + 278, 288, 555, 556, 62, 122, 278, 565, 5, 4, + 34, 109, 206, 548, 67, 362, 389, 67, 362, 390, + 67, 362, 391, 13, 192, 547, 360, 360, 228, 360, + 392, 360, 275, 4, 360, 360, 4, 575, 4, 291, + 573, 4, 291, 574, 4, 377, 125, 360, 578, 360, 360, 4, 5, 360, 12, 360, 360, 360, 30, 96, 165, 254, 259, 376, 376, 4, 200, 360, 360, 4, 4, 4, 360, 360, 360, 360, 4, 4, 5, 5, 370, 5, 360, 360, 366, 368, 368, 370, 360, 360, 360, 360, 360, 360, 360, 370, 372, 369, 360, 360, - 369, 360, 5, 274, 105, 190, 425, 196, 254, 428, - 171, 79, 175, 254, 429, 141, 179, 413, 413, 4, - 432, 4, 434, 196, 261, 436, 180, 437, 171, 377, + 369, 360, 5, 274, 105, 190, 427, 196, 254, 430, + 171, 79, 175, 254, 431, 141, 179, 413, 413, 4, + 434, 4, 436, 196, 261, 438, 180, 439, 171, 377, 360, 360, 370, 370, 377, 377, 377, 370, 377, 360, - 370, 4, 450, 4, 372, 448, 199, 4, 168, 316, - 449, 199, 370, 4, 134, 297, 452, 5, 5, 4, - 199, 360, 4, 5, 61, 67, 116, 131, 146, 152, - 157, 211, 230, 235, 237, 263, 264, 271, 289, 345, - 507, 372, 191, 191, 67, 459, 67, 460, 67, 461, - 228, 462, 360, 5, 229, 464, 371, 377, 5, 370, - 370, 370, 370, 4, 362, 4, 4, 199, 360, 14, - 15, 62, 193, 194, 268, 278, 279, 309, 88, 5, - 5, 14, 15, 62, 193, 194, 268, 278, 279, 283, - 309, 88, 159, 164, 371, 484, 489, 88, 159, 5, - 482, 4, 4, 14, 62, 193, 268, 278, 309, 5, - 5, 4, 360, 371, 20, 21, 22, 49, 50, 53, - 56, 63, 67, 75, 76, 83, 84, 101, 107, 111, - 112, 115, 131, 152, 175, 198, 228, 230, 236, 237, - 252, 253, 263, 264, 289, 291, 303, 305, 311, 345, - 67, 81, 90, 101, 131, 152, 198, 237, 264, 303, - 305, 4, 30, 163, 216, 242, 501, 5, 64, 106, - 239, 255, 256, 347, 348, 506, 101, 499, 17, 264, - 504, 40, 113, 197, 505, 4, 5, 17, 215, 298, - 360, 264, 506, 514, 126, 506, 515, 36, 40, 113, - 135, 197, 297, 360, 516, 370, 362, 93, 101, 107, - 128, 152, 160, 198, 206, 252, 264, 280, 519, 40, - 113, 197, 5, 264, 290, 523, 17, 215, 298, 524, - 291, 362, 525, 5, 101, 107, 306, 17, 17, 4, - 360, 360, 360, 360, 360, 360, 377, 360, 360, 369, - 360, 4, 377, 4, 40, 113, 197, 269, 543, 40, - 113, 197, 269, 544, 4, 99, 5, 5, 88, 4, - 5, 5, 88, 5, 554, 62, 122, 159, 278, 558, - 62, 122, 278, 562, 88, 159, 62, 122, 278, 556, - 4, 62, 122, 278, 555, 5, 5, 4, 4, 5, - 5, 5, 360, 360, 360, 4, 360, 568, 360, 360, - 6, 371, 4, 5, 4, 4, 5, 4, 99, 266, - 378, 360, 360, 12, 5, 12, 360, 360, 12, 4, - 12, 4, 4, 360, 360, 360, 4, 362, 4, 4, - 377, 370, 377, 360, 360, 360, 370, 360, 369, 360, - 360, 5, 5, 360, 372, 360, 370, 360, 377, 377, - 378, 378, 378, 377, 369, 360, 377, 360, 136, 251, - 363, 451, 168, 5, 4, 377, 159, 159, 4, 5, - 4, 4, 360, 446, 360, 20, 21, 22, 49, 50, - 53, 60, 63, 67, 75, 76, 83, 111, 112, 115, - 131, 152, 175, 184, 228, 230, 236, 237, 253, 264, - 289, 291, 301, 311, 345, 67, 131, 157, 237, 289, - 30, 163, 216, 242, 508, 360, 211, 360, 509, 17, - 360, 263, 519, 263, 211, 360, 510, 291, 511, 17, - 100, 360, 360, 5, 378, 57, 370, 4, 5, 475, - 360, 5, 5, 5, 159, 187, 382, 382, 167, 270, - 380, 4, 4, 5, 5, 479, 276, 276, 5, 5, - 5, 17, 161, 381, 381, 380, 4, 4, 380, 5, - 5, 483, 164, 344, 371, 487, 5, 486, 5, 5, - 490, 5, 491, 5, 14, 15, 62, 193, 194, 268, - 278, 279, 283, 309, 4, 4, 5, 5, 382, 380, - 4, 5, 5, 377, 83, 154, 226, 227, 241, 284, - 385, 7, 8, 360, 365, 242, 123, 242, 242, 107, - 40, 67, 101, 107, 113, 131, 152, 167, 198, 237, - 252, 264, 291, 303, 305, 306, 345, 500, 123, 242, - 5, 27, 169, 242, 287, 141, 107, 22, 50, 53, - 83, 112, 115, 230, 263, 22, 50, 53, 56, 83, - 112, 115, 230, 263, 289, 40, 123, 242, 242, 107, - 5, 215, 27, 228, 36, 135, 297, 360, 267, 274, - 123, 248, 370, 519, 40, 132, 228, 287, 248, 215, - 5, 5, 252, 27, 228, 4, 5, 5, 215, 36, - 135, 297, 360, 519, 215, 362, 4, 4, 360, 5, - 309, 22, 27, 49, 50, 52, 53, 63, 75, 76, - 83, 86, 104, 111, 112, 115, 175, 230, 236, 253, - 263, 290, 291, 311, 356, 502, 360, 360, 360, 360, - 360, 506, 370, 5, 4, 5, 360, 360, 370, 360, - 362, 360, 360, 506, 5, 5, 360, 360, 362, 5, - 17, 5, 5, 360, 360, 369, 360, 360, 4, 360, - 360, 113, 360, 360, 113, 4, 42, 43, 173, 174, - 201, 387, 387, 62, 122, 278, 552, 387, 5, 62, - 122, 278, 557, 5, 5, 62, 122, 278, 559, 4, - 5, 5, 4, 62, 122, 278, 561, 62, 122, 278, - 560, 5, 5, 4, 5, 5, 4, 387, 387, 387, - 360, 360, 360, 4, 370, 360, 371, 377, 5, 5, - 12, 360, 370, 372, 360, 12, 360, 360, 360, 60, - 360, 6, 4, 360, 360, 47, 277, 414, 5, 362, - 362, 377, 360, 4, 4, 4, 377, 370, 360, 360, - 360, 360, 377, 370, 378, 369, 360, 4, 378, 360, - 38, 38, 4, 372, 5, 24, 25, 99, 379, 4, - 370, 360, 360, 4, 360, 5, 83, 154, 226, 227, - 241, 284, 370, 372, 242, 123, 242, 242, 21, 242, - 370, 123, 242, 27, 169, 242, 287, 141, 21, 242, - 123, 242, 242, 21, 242, 27, 170, 228, 170, 267, - 274, 123, 170, 228, 295, 519, 132, 170, 228, 287, - 4, 252, 27, 170, 228, 519, 211, 360, 360, 360, - 360, 360, 360, 199, 360, 360, 20, 238, 467, 4, - 4, 360, 382, 382, 382, 4, 382, 382, 382, 14, - 15, 62, 193, 194, 268, 278, 279, 309, 381, 382, - 382, 382, 382, 382, 4, 382, 382, 4, 381, 14, - 15, 62, 193, 194, 268, 278, 279, 309, 5, 485, - 5, 488, 5, 5, 14, 15, 62, 193, 194, 268, - 278, 279, 283, 309, 5, 14, 15, 62, 193, 194, - 268, 278, 279, 283, 309, 5, 14, 15, 62, 193, - 194, 268, 278, 279, 283, 309, 14, 15, 62, 193, - 194, 268, 278, 279, 309, 276, 5, 5, 5, 381, - 381, 380, 4, 4, 380, 5, 4, 4, 382, 382, - 4, 382, 382, 5, 362, 370, 372, 5, 360, 362, - 360, 5, 360, 5, 365, 107, 198, 252, 107, 198, - 252, 5, 362, 360, 362, 5, 360, 370, 362, 5, - 365, 242, 242, 21, 242, 21, 242, 242, 21, 242, - 313, 313, 4, 4, 4, 500, 4, 4, 4, 313, - 313, 4, 5, 4, 362, 360, 5, 360, 5, 365, - 362, 370, 370, 360, 27, 49, 52, 63, 86, 104, - 356, 383, 4, 362, 360, 377, 362, 5, 370, 370, - 360, 362, 362, 370, 370, 360, 362, 360, 5, 360, - 228, 228, 360, 360, 228, 360, 228, 360, 360, 512, - 520, 360, 228, 228, 360, 360, 360, 360, 360, 360, - 360, 360, 5, 309, 360, 503, 360, 360, 228, 360, - 360, 360, 360, 370, 377, 5, 4, 4, 360, 360, - 377, 360, 360, 360, 370, 506, 360, 360, 5, 4, - 360, 360, 360, 360, 5, 5, 4, 387, 5, 5, - 4, 4, 4, 5, 5, 4, 4, 5, 5, 4, - 5, 5, 4, 360, 360, 360, 360, 377, 360, 370, - 372, 360, 377, 360, 360, 360, 360, 360, 5, 360, - 4, 6, 360, 360, 4, 370, 360, 377, 180, 375, - 360, 375, 378, 377, 370, 360, 360, 4, 360, 370, - 370, 360, 4, 5, 5, 5, 5, 5, 370, 377, - 370, 370, 370, 370, 372, 370, 377, 370, 370, 370, - 372, 370, 370, 370, 370, 372, 370, 370, 370, 360, - 370, 370, 370, 370, 370, 370, 370, 360, 360, 4, - 360, 5, 4, 360, 382, 5, 5, 5, 380, 4, - 4, 5, 382, 381, 4, 382, 5, 5, 5, 381, - 381, 380, 4, 4, 5, 14, 15, 62, 193, 194, - 268, 278, 279, 309, 14, 15, 62, 193, 194, 268, - 278, 279, 309, 14, 15, 62, 193, 194, 268, 278, - 279, 309, 276, 5, 5, 5, 381, 381, 380, 4, - 4, 380, 5, 276, 5, 5, 5, 381, 381, 380, - 4, 4, 380, 5, 276, 5, 5, 5, 381, 381, - 380, 4, 4, 380, 5, 5, 5, 5, 381, 381, - 380, 4, 4, 5, 381, 4, 4, 381, 4, 4, - 382, 5, 377, 370, 360, 360, 370, 360, 5, 365, - 5, 370, 362, 5, 370, 377, 5, 365, 360, 360, - 360, 360, 360, 360, 360, 360, 360, 4, 4, 5, - 4, 4, 360, 370, 360, 5, 365, 362, 377, 377, - 360, 369, 377, 377, 360, 377, 377, 360, 360, 360, - 360, 360, 360, 360, 360, 360, 360, 56, 67, 94, - 131, 289, 291, 345, 517, 518, 519, 531, 532, 360, - 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, - 360, 370, 5, 360, 360, 360, 360, 4, 4, 377, - 378, 5, 5, 369, 360, 4, 377, 370, 4, 387, - 387, 387, 365, 360, 360, 360, 377, 360, 369, 360, - 360, 12, 5, 5, 4, 360, 360, 4, 377, 370, - 360, 360, 378, 379, 360, 5, 360, 372, 5, 5, - 5, 5, 5, 377, 379, 379, 379, 377, 379, 378, - 379, 379, 377, 379, 379, 379, 377, 379, 379, 377, - 370, 379, 377, 379, 379, 377, 379, 377, 4, 372, - 5, 360, 4, 382, 381, 4, 381, 5, 5, 5, - 381, 381, 380, 4, 4, 5, 5, 5, 5, 381, - 381, 380, 4, 4, 5, 5, 5, 5, 381, 381, - 380, 4, 4, 5, 381, 382, 382, 382, 382, 382, - 4, 382, 382, 4, 381, 381, 382, 382, 382, 382, - 382, 4, 382, 382, 4, 381, 381, 4, 4, 381, - 4, 381, 381, 4, 4, 4, 371, 379, 4, 370, - 379, 360, 370, 4, 379, 379, 370, 4, 360, 360, - 360, 360, 360, 360, 360, 360, 360, 360, 360, 370, - 379, 360, 370, 4, 369, 369, 370, 369, 369, 370, - 370, 369, 369, 360, 360, 360, 360, 360, 360, 365, - 360, 360, 360, 357, 357, 357, 357, 357, 357, 357, - 518, 357, 365, 360, 360, 360, 360, 365, 360, 360, - 360, 360, 360, 360, 377, 360, 309, 364, 365, 360, - 360, 378, 362, 370, 370, 378, 377, 4, 360, 369, - 360, 60, 360, 5, 5, 360, 4, 375, 379, 5, - 4, 5, 4, 5, 370, 5, 378, 379, 378, 378, - 378, 5, 4, 360, 382, 381, 382, 382, 382, 382, - 382, 4, 382, 382, 381, 382, 382, 382, 382, 382, - 4, 382, 382, 381, 382, 382, 382, 382, 382, 4, - 382, 382, 381, 382, 381, 4, 382, 382, 381, 4, - 382, 381, 4, 381, 381, 377, 370, 379, 4, 377, - 360, 377, 360, 360, 360, 379, 4, 377, 360, 369, - 379, 360, 369, 379, 379, 370, 360, 4, 384, 384, - 360, 360, 384, 365, 384, 520, 370, 500, 5, 4, - 5, 5, 5, 4, 362, 365, 384, 384, 360, 360, - 365, 360, 360, 360, 360, 360, 369, 360, 5, 520, - 360, 384, 362, 521, 522, 377, 377, 362, 378, 4, - 5, 360, 5, 4, 6, 360, 32, 286, 421, 370, - 5, 32, 286, 386, 370, 421, 360, 381, 382, 381, - 382, 381, 382, 382, 381, 382, 381, 381, 360, 379, - 370, 370, 360, 370, 360, 370, 370, 360, 370, 379, - 4, 520, 520, 364, 360, 520, 4, 520, 377, 5, - 4, 4, 520, 520, 364, 360, 4, 520, 520, 360, - 370, 520, 520, 520, 521, 528, 529, 519, 526, 527, - 362, 4, 5, 5, 6, 4, 190, 307, 352, 360, - 412, 4, 370, 4, 382, 382, 382, 382, 382, 371, + 370, 4, 452, 4, 372, 450, 199, 4, 168, 316, + 451, 199, 370, 4, 134, 297, 454, 5, 5, 424, + 4, 199, 360, 4, 5, 61, 67, 116, 131, 146, + 152, 157, 211, 230, 235, 237, 263, 264, 271, 289, + 345, 509, 372, 191, 191, 67, 461, 67, 462, 67, + 463, 228, 464, 360, 5, 425, 229, 466, 371, 377, + 5, 370, 370, 370, 370, 4, 362, 4, 4, 199, + 360, 14, 15, 62, 193, 194, 268, 278, 279, 309, + 88, 5, 5, 14, 15, 62, 193, 194, 268, 278, + 279, 283, 309, 88, 159, 164, 371, 486, 491, 88, + 159, 5, 484, 4, 4, 14, 62, 193, 268, 278, + 309, 5, 5, 4, 360, 371, 20, 21, 22, 49, + 50, 53, 56, 63, 67, 75, 76, 83, 84, 101, + 107, 111, 112, 115, 131, 152, 175, 198, 228, 230, + 236, 237, 252, 253, 263, 264, 289, 291, 303, 305, + 311, 345, 67, 81, 90, 101, 131, 152, 198, 237, + 264, 303, 305, 4, 30, 163, 216, 242, 503, 5, + 64, 106, 239, 255, 256, 347, 348, 508, 101, 501, + 17, 264, 506, 40, 113, 197, 507, 4, 5, 17, + 215, 298, 360, 264, 508, 516, 126, 508, 517, 36, + 40, 113, 135, 197, 297, 360, 518, 370, 362, 93, + 101, 107, 128, 152, 160, 198, 206, 252, 264, 280, + 521, 40, 113, 197, 5, 264, 290, 525, 17, 215, + 298, 526, 291, 362, 527, 5, 101, 107, 306, 17, + 17, 4, 360, 360, 360, 360, 360, 360, 377, 360, + 360, 369, 360, 4, 377, 4, 40, 113, 197, 269, + 545, 40, 113, 197, 269, 546, 4, 99, 5, 5, + 88, 4, 5, 5, 88, 5, 556, 62, 122, 159, + 278, 560, 62, 122, 278, 564, 88, 159, 62, 122, + 278, 558, 4, 62, 122, 278, 557, 5, 5, 4, + 4, 5, 5, 5, 360, 360, 360, 4, 360, 570, + 360, 360, 6, 371, 4, 5, 4, 4, 5, 4, + 99, 266, 378, 360, 360, 12, 5, 12, 360, 360, + 12, 4, 12, 4, 4, 360, 360, 360, 4, 362, + 4, 4, 377, 370, 377, 360, 360, 360, 370, 360, + 369, 360, 360, 5, 5, 360, 372, 360, 370, 360, + 377, 377, 378, 378, 378, 377, 369, 360, 377, 360, + 136, 251, 363, 453, 168, 5, 4, 377, 159, 159, + 4, 5, 4, 4, 360, 448, 360, 20, 21, 22, + 49, 50, 53, 60, 63, 67, 75, 76, 83, 111, + 112, 115, 131, 152, 175, 184, 228, 230, 236, 237, + 253, 264, 289, 291, 301, 311, 345, 67, 131, 157, + 237, 289, 30, 163, 216, 242, 510, 360, 211, 360, + 511, 17, 360, 263, 521, 263, 211, 360, 512, 291, + 513, 17, 100, 360, 360, 5, 378, 57, 370, 4, + 5, 477, 360, 5, 5, 5, 159, 187, 382, 382, + 167, 270, 380, 4, 4, 5, 5, 481, 276, 276, + 5, 5, 5, 17, 161, 381, 381, 380, 4, 4, + 380, 5, 5, 485, 164, 344, 371, 489, 5, 488, + 5, 5, 492, 5, 493, 5, 14, 15, 62, 193, + 194, 268, 278, 279, 283, 309, 4, 4, 5, 5, + 382, 380, 4, 5, 5, 377, 83, 154, 226, 227, + 241, 284, 385, 7, 8, 360, 365, 242, 123, 242, + 242, 107, 40, 67, 101, 107, 113, 131, 152, 167, + 198, 237, 252, 264, 291, 303, 305, 306, 345, 502, + 123, 242, 5, 27, 169, 242, 287, 141, 107, 22, + 50, 53, 83, 112, 115, 230, 263, 22, 50, 53, + 56, 83, 112, 115, 230, 263, 289, 40, 123, 242, + 242, 107, 5, 215, 27, 228, 36, 135, 297, 360, + 267, 274, 123, 248, 370, 521, 40, 132, 228, 287, + 248, 215, 5, 5, 252, 27, 228, 4, 5, 5, + 215, 36, 135, 297, 360, 521, 215, 362, 4, 4, + 360, 5, 309, 22, 27, 49, 50, 52, 53, 63, + 75, 76, 83, 86, 104, 111, 112, 115, 175, 230, + 236, 253, 263, 290, 291, 311, 356, 504, 360, 360, + 360, 360, 360, 508, 370, 5, 4, 5, 360, 360, + 370, 360, 362, 360, 360, 508, 5, 5, 360, 360, + 362, 5, 17, 5, 5, 360, 360, 369, 360, 360, + 4, 360, 360, 113, 360, 360, 113, 4, 42, 43, + 173, 174, 201, 387, 387, 62, 122, 278, 554, 387, + 5, 62, 122, 278, 559, 5, 5, 62, 122, 278, + 561, 4, 5, 5, 4, 62, 122, 278, 563, 62, + 122, 278, 562, 5, 5, 4, 5, 5, 4, 387, + 387, 387, 360, 360, 360, 4, 370, 360, 371, 377, + 5, 5, 12, 360, 370, 372, 360, 12, 360, 360, + 360, 60, 360, 6, 4, 360, 360, 47, 277, 414, + 5, 362, 362, 377, 360, 4, 4, 4, 377, 370, + 360, 360, 360, 360, 377, 370, 378, 369, 360, 4, + 378, 360, 38, 38, 4, 372, 5, 24, 25, 99, + 379, 4, 370, 360, 360, 4, 360, 5, 83, 154, + 226, 227, 241, 284, 370, 372, 242, 123, 242, 242, + 21, 242, 370, 123, 242, 27, 169, 242, 287, 141, + 21, 242, 123, 242, 242, 21, 242, 27, 170, 228, + 170, 267, 274, 123, 170, 228, 295, 521, 132, 170, + 228, 287, 4, 252, 27, 170, 228, 521, 211, 360, + 360, 360, 360, 360, 360, 199, 360, 360, 20, 238, + 469, 4, 4, 360, 382, 382, 382, 4, 382, 382, + 382, 14, 15, 62, 193, 194, 268, 278, 279, 309, + 381, 382, 382, 382, 382, 382, 4, 382, 382, 4, + 381, 14, 15, 62, 193, 194, 268, 278, 279, 309, + 5, 487, 5, 490, 5, 5, 14, 15, 62, 193, + 194, 268, 278, 279, 283, 309, 5, 14, 15, 62, + 193, 194, 268, 278, 279, 283, 309, 5, 14, 15, + 62, 193, 194, 268, 278, 279, 283, 309, 14, 15, + 62, 193, 194, 268, 278, 279, 309, 276, 5, 5, + 5, 381, 381, 380, 4, 4, 380, 5, 4, 4, + 382, 382, 4, 382, 382, 5, 362, 370, 372, 5, + 360, 362, 360, 5, 360, 5, 365, 107, 198, 252, + 107, 198, 252, 5, 362, 360, 362, 5, 360, 370, + 362, 5, 365, 242, 242, 21, 242, 21, 242, 242, + 21, 242, 313, 313, 4, 4, 4, 502, 4, 4, + 4, 313, 313, 4, 5, 4, 362, 360, 5, 360, + 5, 365, 362, 370, 370, 360, 27, 49, 52, 63, + 86, 104, 356, 383, 4, 362, 360, 377, 362, 5, + 370, 370, 360, 362, 362, 370, 370, 360, 362, 360, + 5, 360, 228, 228, 360, 360, 228, 360, 228, 360, + 360, 514, 522, 360, 228, 228, 360, 360, 360, 360, + 360, 360, 360, 360, 5, 309, 360, 505, 360, 360, + 228, 360, 360, 360, 360, 370, 377, 5, 4, 4, + 360, 360, 377, 360, 360, 360, 370, 508, 360, 360, + 5, 4, 360, 360, 360, 360, 5, 5, 4, 387, + 5, 5, 4, 4, 4, 5, 5, 4, 4, 5, + 5, 4, 5, 5, 4, 360, 360, 360, 360, 377, + 360, 370, 372, 360, 377, 360, 360, 360, 360, 360, + 5, 360, 4, 6, 360, 360, 4, 370, 360, 377, + 180, 375, 360, 375, 378, 377, 370, 360, 360, 4, + 360, 370, 370, 360, 4, 5, 5, 5, 5, 5, + 370, 377, 370, 370, 370, 370, 372, 370, 377, 370, + 370, 370, 372, 370, 370, 370, 370, 372, 370, 370, + 370, 360, 370, 370, 370, 370, 370, 370, 370, 360, + 360, 4, 360, 5, 4, 360, 382, 5, 5, 5, + 380, 4, 4, 5, 382, 381, 4, 382, 5, 5, + 5, 381, 381, 380, 4, 4, 5, 14, 15, 62, + 193, 194, 268, 278, 279, 309, 14, 15, 62, 193, + 194, 268, 278, 279, 309, 14, 15, 62, 193, 194, + 268, 278, 279, 309, 276, 5, 5, 5, 381, 381, + 380, 4, 4, 380, 5, 276, 5, 5, 5, 381, + 381, 380, 4, 4, 380, 5, 276, 5, 5, 5, + 381, 381, 380, 4, 4, 380, 5, 5, 5, 5, + 381, 381, 380, 4, 4, 5, 381, 4, 4, 381, + 4, 4, 382, 5, 377, 370, 360, 360, 370, 360, + 5, 365, 5, 370, 362, 5, 370, 377, 5, 365, + 360, 360, 360, 360, 360, 360, 360, 360, 360, 4, + 4, 5, 4, 4, 360, 370, 360, 5, 365, 362, + 377, 377, 360, 369, 377, 377, 360, 377, 377, 360, + 360, 360, 360, 360, 360, 360, 360, 360, 360, 56, + 67, 94, 131, 289, 291, 345, 519, 520, 521, 533, + 534, 360, 360, 360, 360, 360, 360, 360, 360, 360, + 360, 360, 360, 370, 5, 360, 360, 360, 360, 4, + 4, 377, 378, 5, 5, 369, 360, 4, 377, 370, + 4, 387, 387, 387, 365, 360, 360, 360, 377, 360, + 369, 360, 360, 12, 5, 5, 4, 360, 360, 4, + 377, 370, 360, 360, 378, 379, 360, 5, 360, 370, + 372, 5, 5, 5, 5, 5, 377, 379, 379, 379, + 377, 379, 378, 379, 379, 377, 379, 379, 379, 377, + 379, 379, 377, 370, 379, 377, 379, 379, 377, 379, + 377, 4, 370, 372, 5, 360, 4, 382, 381, 4, + 381, 5, 5, 5, 381, 381, 380, 4, 4, 5, + 5, 5, 5, 381, 381, 380, 4, 4, 5, 5, + 5, 5, 381, 381, 380, 4, 4, 5, 381, 382, + 382, 382, 382, 382, 4, 382, 382, 4, 381, 381, + 382, 382, 382, 382, 382, 4, 382, 382, 4, 381, + 381, 4, 4, 381, 4, 381, 381, 4, 4, 4, + 371, 379, 4, 370, 379, 360, 370, 4, 379, 379, + 370, 4, 360, 360, 360, 360, 360, 360, 360, 360, + 360, 360, 360, 370, 379, 360, 370, 4, 369, 369, + 370, 369, 369, 370, 370, 369, 369, 360, 360, 360, + 360, 360, 360, 365, 360, 360, 360, 357, 357, 357, + 357, 357, 357, 357, 520, 357, 365, 360, 360, 360, + 360, 365, 360, 360, 360, 360, 360, 360, 377, 360, + 309, 364, 365, 360, 360, 378, 362, 370, 370, 378, + 377, 4, 360, 369, 360, 60, 360, 5, 5, 360, + 4, 375, 379, 5, 377, 4, 5, 4, 5, 370, + 5, 378, 379, 378, 378, 378, 5, 377, 4, 360, + 382, 381, 382, 382, 382, 382, 382, 4, 382, 382, + 381, 382, 382, 382, 382, 382, 4, 382, 382, 381, + 382, 382, 382, 382, 382, 4, 382, 382, 381, 382, + 381, 4, 382, 382, 381, 4, 382, 381, 4, 381, + 381, 377, 370, 379, 4, 377, 360, 377, 360, 360, + 360, 379, 4, 377, 360, 369, 379, 360, 369, 379, + 379, 370, 360, 4, 384, 384, 360, 360, 384, 365, + 384, 522, 370, 502, 5, 4, 5, 5, 5, 4, + 362, 365, 384, 384, 360, 360, 365, 360, 360, 360, + 360, 360, 369, 360, 5, 522, 360, 384, 362, 523, + 524, 377, 377, 362, 378, 4, 5, 360, 5, 4, + 6, 360, 4, 32, 286, 421, 370, 5, 32, 286, + 386, 370, 4, 421, 360, 381, 382, 381, 382, 381, + 382, 382, 381, 382, 381, 381, 360, 379, 370, 370, + 360, 370, 360, 370, 370, 360, 370, 379, 4, 522, + 522, 364, 360, 522, 4, 522, 377, 5, 4, 4, + 522, 522, 364, 360, 4, 522, 522, 360, 370, 522, + 522, 522, 523, 530, 531, 521, 528, 529, 362, 4, + 5, 5, 6, 4, 190, 307, 352, 360, 412, 421, + 4, 370, 421, 4, 382, 382, 382, 382, 382, 371, 379, 379, 360, 379, 4, 379, 379, 360, 379, 360, - 520, 520, 4, 360, 520, 5, 360, 520, 4, 360, - 520, 377, 528, 530, 531, 357, 527, 5, 5, 4, + 522, 522, 4, 360, 522, 5, 360, 522, 4, 360, + 522, 377, 530, 532, 533, 357, 529, 5, 5, 4, 360, 413, 360, 413, 377, 379, 4, 370, 372, 4, - 365, 364, 360, 360, 364, 360, 370, 531, 362, 5, + 365, 364, 360, 360, 364, 360, 370, 533, 362, 5, 5, 360, 360, 360, 360, 386, 5, 370, 372, 377, - 370, 372, 520, 360, 4, 520, 360, 379, 5, 5, - 360, 5, 360, 377, 377, 4, 520, 4, 5, 5, - 5, 364, 364, 520, 520, 520 + 370, 372, 522, 360, 4, 522, 360, 379, 5, 5, + 360, 5, 360, 377, 377, 4, 522, 4, 5, 5, + 5, 364, 364, 522, 522, 522 }; #define yyerrok (yyerrstatus = 0) @@ -6691,296 +6640,306 @@ {fr->getHistogramCmd((yyvsp[(2) - (4)].str),(yyvsp[(3) - (4)].str),(yyvsp[(4) - (4)].integer));;} break; - case 354: -#line 1032 "frame/parser.Y" - {fr->getHorzCutCmd((yyvsp[(3) - (9)].str),(yyvsp[(4) - (9)].str),Vector((yyvsp[(5) - (9)].real),(yyvsp[(6) - (9)].real)),(Coord::InternalSystem)(yyvsp[(7) - (9)].integer),(yyvsp[(8) - (9)].integer),(Base::CutMethod)(yyvsp[(9) - (9)].integer));;} - break; - case 357: -#line 1035 "frame/parser.Y" +#line 1034 "frame/parser.Y" {fr->getIRAFAlignCmd();;} break; case 358: -#line 1036 "frame/parser.Y" +#line 1035 "frame/parser.Y" {fr->getMinMaxCmd();;} break; case 361: -#line 1039 "frame/parser.Y" +#line 1038 "frame/parser.Y" {fr->getNANColorCmd();;} break; case 362: -#line 1040 "frame/parser.Y" +#line 1039 "frame/parser.Y" {fr->getOrientCmd();;} break; case 364: -#line 1043 "frame/parser.Y" +#line 1042 "frame/parser.Y" {fr->getPixelTableCmd(Vector((yyvsp[(4) - (8)].real),(yyvsp[(5) - (8)].real)), (Coord::InternalSystem)(yyvsp[(3) - (8)].integer), (yyvsp[(6) - (8)].integer), (yyvsp[(7) - (8)].integer), (yyvsp[(8) - (8)].str));;} break; case 366: -#line 1045 "frame/parser.Y" +#line 1044 "frame/parser.Y" {fr->getRotateCmd();;} break; case 368: -#line 1047 "frame/parser.Y" +#line 1046 "frame/parser.Y" {fr->getThreadsCmd();;} break; case 370: -#line 1049 "frame/parser.Y" +#line 1048 "frame/parser.Y" {fr->getTypeCmd();;} break; case 371: -#line 1051 "frame/parser.Y" +#line 1050 "frame/parser.Y" {fr->getValueCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)),(Coord::InternalSystem)(yyvsp[(2) - (4)].integer));;} break; - case 372: -#line 1053 "frame/parser.Y" - {fr->getVertCutCmd((yyvsp[(3) - (9)].str),(yyvsp[(4) - (9)].str),Vector((yyvsp[(5) - (9)].real),(yyvsp[(6) - (9)].real)),(Coord::InternalSystem)(yyvsp[(7) - (9)].integer),(yyvsp[(8) - (9)].integer),(Base::CutMethod)(yyvsp[(9) - (9)].integer));;} - break; - case 374: -#line 1055 "frame/parser.Y" +#line 1053 "frame/parser.Y" {fr->getZoomCmd();;} break; case 375: -#line 1058 "frame/parser.Y" - {fr->getBinDepthCmd();;} +#line 1057 "frame/parser.Y" + {fr->getHorzCutCmd((yyvsp[(1) - (7)].str),(yyvsp[(2) - (7)].str),Vector((yyvsp[(3) - (7)].real),(yyvsp[(4) - (7)].real)),(Coord::InternalSystem)(yyvsp[(5) - (7)].integer),(yyvsp[(6) - (7)].integer),(Base::CutMethod)(yyvsp[(7) - (7)].integer));;} break; case 376: #line 1059 "frame/parser.Y" - {fr->getBinFactorCmd();;} + {fr->getHorzCutCmd((yyvsp[(1) - (8)].str),(yyvsp[(2) - (8)].str),Vector((yyvsp[(3) - (8)].real),(yyvsp[(4) - (8)].real)),(Coord::CoordSystem)(yyvsp[(5) - (8)].integer),(Coord::SkyFrame)(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].integer),(Base::CutMethod)(yyvsp[(8) - (8)].integer));;} break; case 377: -#line 1060 "frame/parser.Y" - {fr->getBinFunctionCmd();;} +#line 1063 "frame/parser.Y" + {fr->getVertCutCmd((yyvsp[(1) - (7)].str),(yyvsp[(2) - (7)].str),Vector((yyvsp[(3) - (7)].real),(yyvsp[(4) - (7)].real)),(Coord::InternalSystem)(yyvsp[(5) - (7)].integer),(yyvsp[(6) - (7)].integer),(Base::CutMethod)(yyvsp[(7) - (7)].integer));;} break; case 378: -#line 1061 "frame/parser.Y" - {fr->getBinBufferSizeCmd();;} +#line 1065 "frame/parser.Y" + {fr->getVertCutCmd((yyvsp[(1) - (8)].str),(yyvsp[(2) - (8)].str),Vector((yyvsp[(3) - (8)].real),(yyvsp[(4) - (8)].real)),(Coord::CoordSystem)(yyvsp[(5) - (8)].integer),(Coord::SkyFrame)(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].integer),(Base::CutMethod)(yyvsp[(8) - (8)].integer));;} break; case 379: -#line 1062 "frame/parser.Y" - {fr->getBinCursorCmd();;} +#line 1068 "frame/parser.Y" + {fr->getBinDepthCmd();;} break; case 380: -#line 1063 "frame/parser.Y" - {fr->getBinFilterCmd();;} +#line 1069 "frame/parser.Y" + {fr->getBinFactorCmd();;} + break; + + case 381: +#line 1070 "frame/parser.Y" + {fr->getBinFunctionCmd();;} break; case 382: -#line 1065 "frame/parser.Y" - {fr->getBinListCmd();;} +#line 1071 "frame/parser.Y" + {fr->getBinBufferSizeCmd();;} break; case 383: -#line 1068 "frame/parser.Y" - {fr->getBinColsCmd();;} +#line 1072 "frame/parser.Y" + {fr->getBinCursorCmd();;} break; case 384: -#line 1069 "frame/parser.Y" +#line 1073 "frame/parser.Y" + {fr->getBinFilterCmd();;} + break; + + case 386: +#line 1075 "frame/parser.Y" + {fr->getBinListCmd();;} + break; + + case 387: +#line 1078 "frame/parser.Y" + {fr->getBinColsCmd();;} + break; + + case 388: +#line 1079 "frame/parser.Y" {fr->getBinColsMinMaxCmd((yyvsp[(2) - (2)].str));;} break; - case 385: -#line 1070 "frame/parser.Y" + case 389: +#line 1080 "frame/parser.Y" {fr->getBinColsDimCmd((yyvsp[(2) - (2)].str));;} break; - case 386: -#line 1073 "frame/parser.Y" + case 390: +#line 1083 "frame/parser.Y" {fr->getBlockCmd();;} break; - case 387: -#line 1076 "frame/parser.Y" + case 391: +#line 1086 "frame/parser.Y" {fr->getClipCmd();;} break; - case 388: -#line 1078 "frame/parser.Y" + case 392: +#line 1088 "frame/parser.Y" {fr->getClipCmd((FrScale::ClipMode)(yyvsp[(1) - (2)].integer), (FrScale::ClipScope)(yyvsp[(2) - (2)].integer));;} break; - case 389: -#line 1080 "frame/parser.Y" + case 393: +#line 1090 "frame/parser.Y" {fr->getClipCmd((yyvsp[(1) - (2)].real), (FrScale::ClipScope)(yyvsp[(2) - (2)].integer));;} break; - case 390: -#line 1081 "frame/parser.Y" + case 394: +#line 1091 "frame/parser.Y" {fr->getClipScopeCmd();;} break; - case 391: -#line 1082 "frame/parser.Y" + case 395: +#line 1092 "frame/parser.Y" {fr->getClipModeCmd();;} break; - case 393: -#line 1084 "frame/parser.Y" + case 397: +#line 1094 "frame/parser.Y" {fr->getClipUserCmd();;} break; - case 395: -#line 1087 "frame/parser.Y" + case 399: +#line 1097 "frame/parser.Y" { // backward compatibility with backup fr->getClipPreserveCmd(); ;} break; - case 396: -#line 1093 "frame/parser.Y" + case 400: +#line 1103 "frame/parser.Y" {fr->getClipMinMaxModeCmd();;} break; - case 397: -#line 1094 "frame/parser.Y" + case 401: +#line 1104 "frame/parser.Y" {fr->getClipMinMaxSampleCmd();;} break; - case 398: -#line 1097 "frame/parser.Y" + case 402: +#line 1107 "frame/parser.Y" {fr->getClipZScaleContrastCmd();;} break; - case 399: -#line 1098 "frame/parser.Y" + case 403: +#line 1108 "frame/parser.Y" {fr->getClipZScaleSampleCmd();;} break; - case 400: -#line 1099 "frame/parser.Y" + case 404: +#line 1109 "frame/parser.Y" {fr->getClipZScaleLineCmd();;} break; - case 401: -#line 1102 "frame/parser.Y" + case 405: +#line 1112 "frame/parser.Y" {fr->getColorbarCmd();;} break; - case 402: -#line 1103 "frame/parser.Y" + case 406: +#line 1113 "frame/parser.Y" {fr->getColorbarTagCmd();;} break; - case 404: -#line 1109 "frame/parser.Y" + case 408: +#line 1119 "frame/parser.Y" {fr->getColorMapLevelCmd((yyvsp[(1) - (1)].integer));;} break; - case 405: -#line 1111 "frame/parser.Y" + case 409: +#line 1121 "frame/parser.Y" {fr->getColorMapLevelCmd((yyvsp[(1) - (4)].integer),Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)),(Coord::InternalSystem)(yyvsp[(2) - (4)].integer));;} break; - case 406: -#line 1113 "frame/parser.Y" + case 410: +#line 1123 "frame/parser.Y" {fr->getColorMapLevelCmd((yyvsp[(1) - (5)].integer),(yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real),(FrScale::ColorScaleType)(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].real));;} break; - case 407: -#line 1116 "frame/parser.Y" + case 411: +#line 1126 "frame/parser.Y" {fr->getColorScaleCmd();;} break; - case 409: -#line 1118 "frame/parser.Y" + case 413: +#line 1128 "frame/parser.Y" {fr->getColorScaleLogCmd();;} break; - case 410: -#line 1122 "frame/parser.Y" + case 414: +#line 1132 "frame/parser.Y" {fr->getColorScaleLevelCmd((yyvsp[(1) - (5)].integer),(yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real),(FrScale::ColorScaleType)(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].real));;} break; - case 411: -#line 1126 "frame/parser.Y" + case 415: +#line 1136 "frame/parser.Y" {fr->getContourCmd((Coord::CoordSystem)(yyvsp[(1) - (2)].integer),(Coord::SkyFrame)(yyvsp[(2) - (2)].integer));;} break; - case 413: -#line 1128 "frame/parser.Y" + case 417: +#line 1138 "frame/parser.Y" {fr->getContourColorNameCmd();;} break; - case 414: -#line 1129 "frame/parser.Y" + case 418: +#line 1139 "frame/parser.Y" {fr->getContourDashCmd();;} break; - case 415: -#line 1130 "frame/parser.Y" + case 419: +#line 1140 "frame/parser.Y" {fr->getContourLevelCmd();;} break; - case 416: -#line 1131 "frame/parser.Y" + case 420: +#line 1141 "frame/parser.Y" {fr->getContourNumLevelCmd();;} break; - case 417: -#line 1132 "frame/parser.Y" + case 421: +#line 1142 "frame/parser.Y" {fr->getContourMethodCmd();;} break; - case 419: -#line 1134 "frame/parser.Y" + case 423: +#line 1144 "frame/parser.Y" {fr->getContourSmoothCmd();;} break; - case 420: -#line 1135 "frame/parser.Y" + case 424: +#line 1145 "frame/parser.Y" {fr->getContourLineWidthCmd();;} break; - case 421: -#line 1138 "frame/parser.Y" + case 425: +#line 1148 "frame/parser.Y" {fr->getContourClipCmd();;} break; - case 422: -#line 1139 "frame/parser.Y" + case 426: +#line 1149 "frame/parser.Y" {fr->getContourClipModeCmd();;} break; - case 423: -#line 1140 "frame/parser.Y" + case 427: +#line 1150 "frame/parser.Y" {fr->getContourClipScopeCmd();;} break; - case 424: -#line 1143 "frame/parser.Y" + case 428: +#line 1153 "frame/parser.Y" {fr->getContourScaleCmd();;} break; - case 425: -#line 1144 "frame/parser.Y" + case 429: +#line 1154 "frame/parser.Y" {fr->getContourScaleLogCmd();;} break; - case 426: -#line 1148 "frame/parser.Y" + case 430: +#line 1158 "frame/parser.Y" {fr->getCoordCmd(Vector((yyvsp[(1) - (5)].real),(yyvsp[(2) - (5)].real)), (Coord::CoordSystem)(yyvsp[(3) - (5)].integer), (Coord::SkyFrame)(yyvsp[(4) - (5)].integer), (Coord::SkyFormat)(yyvsp[(5) - (5)].integer));;} break; - case 427: -#line 1150 "frame/parser.Y" + case 431: +#line 1160 "frame/parser.Y" { // backward compatibility fr->getCoordCmd(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)), (Coord::CoordSystem)(yyvsp[(4) - (6)].integer), (Coord::SkyFrame)(yyvsp[(5) - (6)].integer), @@ -6988,422 +6947,422 @@ ;} break; - case 428: -#line 1158 "frame/parser.Y" + case 432: +#line 1168 "frame/parser.Y" {fr->getCropCmd((Coord::CoordSystem)(yyvsp[(1) - (3)].integer), (Coord::SkyFrame)(yyvsp[(2) - (3)].integer), (Coord::SkyFormat)(yyvsp[(3) - (3)].integer));;} break; - case 429: -#line 1160 "frame/parser.Y" + case 433: +#line 1170 "frame/parser.Y" {fr->getCropCenterCmd((Coord::CoordSystem)(yyvsp[(2) - (6)].integer), (Coord::SkyFrame)(yyvsp[(3) - (6)].integer), (Coord::SkyFormat)(yyvsp[(4) - (6)].integer), (Coord::CoordSystem)(yyvsp[(5) - (6)].integer), (Coord::DistFormat)(yyvsp[(6) - (6)].integer));;} break; - case 430: -#line 1162 "frame/parser.Y" + case 434: +#line 1172 "frame/parser.Y" {fr->getCrop3dCmd((Coord::CoordSystem)(yyvsp[(2) - (3)].integer), (Coord::SkyFrame)(yyvsp[(3) - (3)].integer));;} break; - case 431: -#line 1165 "frame/parser.Y" + case 435: +#line 1175 "frame/parser.Y" {fr->getCrosshairCmd((Coord::InternalSystem)(yyvsp[(1) - (1)].integer));;} break; - case 432: -#line 1167 "frame/parser.Y" + case 436: +#line 1177 "frame/parser.Y" {fr->getCrosshairCmd((Coord::CoordSystem)(yyvsp[(1) - (3)].integer), (Coord::SkyFrame)(yyvsp[(2) - (3)].integer), (Coord::SkyFormat)(yyvsp[(3) - (3)].integer));;} break; - case 433: -#line 1168 "frame/parser.Y" + case 437: +#line 1178 "frame/parser.Y" {fr->getCrosshairStatusCmd();;} break; - case 434: -#line 1171 "frame/parser.Y" + case 438: +#line 1181 "frame/parser.Y" {fr->getAxesOrderCmd();;} break; - case 435: -#line 1174 "frame/parser.Y" + case 439: +#line 1184 "frame/parser.Y" {fr->getCursorCmd((Coord::InternalSystem)(yyvsp[(1) - (1)].integer));;} break; - case 436: -#line 1176 "frame/parser.Y" + case 440: +#line 1186 "frame/parser.Y" {fr->getCursorCmd((Coord::CoordSystem)(yyvsp[(1) - (3)].integer), (Coord::SkyFrame)(yyvsp[(2) - (3)].integer), (Coord::SkyFormat)(yyvsp[(3) - (3)].integer));;} break; - case 437: -#line 1180 "frame/parser.Y" + case 441: +#line 1190 "frame/parser.Y" {fr->getDataValuesCmd(1, Vector((yyvsp[(3) - (6)].vector)), (Coord::CoordSystem)(yyvsp[(1) - (6)].integer), (Coord::SkyFrame)(yyvsp[(2) - (6)].integer), Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)), (yyvsp[(6) - (6)].str));;} break; - case 438: -#line 1182 "frame/parser.Y" + case 442: +#line 1192 "frame/parser.Y" {fr->getDataValuesCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(4) - (7)].vector)), (Coord::CoordSystem)(yyvsp[(2) - (7)].integer), (Coord::SkyFrame)(yyvsp[(3) - (7)].integer), Vector((yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].real)), (yyvsp[(7) - (7)].str));;} break; - case 439: -#line 1185 "frame/parser.Y" + case 443: +#line 1195 "frame/parser.Y" {fr->getDataValuesCmd(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real)),(Coord::InternalSystem)(yyvsp[(1) - (5)].integer), Vector((yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer)));;} break; - case 440: -#line 1189 "frame/parser.Y" + case 444: +#line 1199 "frame/parser.Y" {fr->getInfoCmd((yyvsp[(1) - (1)].str));;} break; - case 441: -#line 1190 "frame/parser.Y" + case 445: +#line 1200 "frame/parser.Y" {fr->getInfoClipCmd();;} break; - case 442: -#line 1192 "frame/parser.Y" + case 446: +#line 1202 "frame/parser.Y" {fr->getInfoCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)), (Coord::InternalSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].str));;} break; - case 443: -#line 1195 "frame/parser.Y" + case 447: +#line 1205 "frame/parser.Y" {fr->iisGetCmd((char*)(yyvsp[(1) - (5)].ptr),(yyvsp[(2) - (5)].integer),(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer));;} break; - case 444: -#line 1196 "frame/parser.Y" + case 448: +#line 1206 "frame/parser.Y" {fr->iisGetCursorCmd();;} break; - case 446: -#line 1200 "frame/parser.Y" + case 450: +#line 1210 "frame/parser.Y" {fr->iisGetFileNameCmd();;} break; - case 447: -#line 1201 "frame/parser.Y" + case 451: +#line 1211 "frame/parser.Y" {fr->iisGetFileNameCmd((yyvsp[(1) - (1)].integer));;} break; - case 448: -#line 1202 "frame/parser.Y" + case 452: +#line 1212 "frame/parser.Y" {fr->iisGetFileNameCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;} break; - case 449: -#line 1205 "frame/parser.Y" + case 453: +#line 1215 "frame/parser.Y" {fr->getFitsNAxesCmd();;} break; - case 450: -#line 1207 "frame/parser.Y" + case 454: +#line 1217 "frame/parser.Y" {fr->getFitsCenterCmd((Coord::CoordSystem)(yyvsp[(2) - (4)].integer),(Coord::SkyFrame)(yyvsp[(3) - (4)].integer),(Coord::SkyFormat)(yyvsp[(4) - (4)].integer));;} break; - case 451: -#line 1208 "frame/parser.Y" + case 455: +#line 1218 "frame/parser.Y" {fr->getFitsCountCmd();;} break; - case 453: -#line 1210 "frame/parser.Y" + case 457: +#line 1220 "frame/parser.Y" {fr->getBitpixCmd();;} break; - case 457: -#line 1214 "frame/parser.Y" + case 461: +#line 1224 "frame/parser.Y" {fr->getFitsHeightCmd();;} break; - case 458: -#line 1215 "frame/parser.Y" + case 462: +#line 1225 "frame/parser.Y" {fr->getFitsObjectNameCmd();;} break; - case 459: -#line 1216 "frame/parser.Y" + case 463: +#line 1226 "frame/parser.Y" {fr->getFitsSizeCmd();;} break; - case 460: -#line 1218 "frame/parser.Y" + case 464: +#line 1228 "frame/parser.Y" {fr->getFitsSizeCmd((Coord::CoordSystem)(yyvsp[(2) - (4)].integer),(Coord::SkyFrame)(yyvsp[(3) - (4)].integer),(Coord::DistFormat)(yyvsp[(4) - (4)].integer));;} break; - case 462: -#line 1220 "frame/parser.Y" + case 466: +#line 1230 "frame/parser.Y" {fr->getFitsWidthCmd();;} break; - case 463: -#line 1223 "frame/parser.Y" + case 467: +#line 1233 "frame/parser.Y" {fr->getFitsExtCmd((yyvsp[(1) - (1)].integer));;} break; - case 464: -#line 1225 "frame/parser.Y" + case 468: +#line 1235 "frame/parser.Y" {fr->getFitsExtCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)),(Coord::InternalSystem)(yyvsp[(1) - (3)].integer));;} break; - case 465: -#line 1227 "frame/parser.Y" + case 469: +#line 1237 "frame/parser.Y" {fr->getFitsHeaderCmd((yyvsp[(1) - (1)].integer));;} break; - case 466: -#line 1228 "frame/parser.Y" + case 470: +#line 1238 "frame/parser.Y" {fr->getFitsHeaderKeywordCmd(1,(yyvsp[(2) - (2)].str));;} break; - case 467: -#line 1229 "frame/parser.Y" + case 471: +#line 1239 "frame/parser.Y" {fr->getFitsHeaderKeywordCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;} break; - case 468: -#line 1230 "frame/parser.Y" + case 472: +#line 1240 "frame/parser.Y" {fr->getFitsHeaderWCSCmd((yyvsp[(2) - (2)].integer));;} break; - case 469: -#line 1233 "frame/parser.Y" + case 473: +#line 1243 "frame/parser.Y" {fr->getFitsDepthCmd(2);;} break; - case 470: -#line 1234 "frame/parser.Y" + case 474: +#line 1244 "frame/parser.Y" {fr->getFitsDepthCmd((yyvsp[(1) - (1)].integer));;} break; - case 471: -#line 1238 "frame/parser.Y" + case 475: +#line 1248 "frame/parser.Y" {fr->getFitsFileNameCmd((Base::FileNameType)(yyvsp[(1) - (1)].integer));;} break; - case 472: -#line 1240 "frame/parser.Y" + case 476: +#line 1250 "frame/parser.Y" {fr->getFitsFileNameCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)), (Coord::InternalSystem)(yyvsp[(2) - (4)].integer), (Base::FileNameType)(yyvsp[(1) - (4)].integer));;} break; - case 473: -#line 1243 "frame/parser.Y" + case 477: +#line 1253 "frame/parser.Y" {fr->getFitsFileNameCmd((yyvsp[(2) - (2)].integer), (Base::FileNameType)(yyvsp[(1) - (2)].integer));;} break; - case 474: -#line 1246 "frame/parser.Y" + case 478: +#line 1256 "frame/parser.Y" {fr->getFitsSliceCmd(2);;} break; - case 475: -#line 1247 "frame/parser.Y" + case 479: +#line 1257 "frame/parser.Y" {fr->getFitsSliceCmd((yyvsp[(1) - (1)].integer));;} break; - case 476: -#line 1249 "frame/parser.Y" + case 480: +#line 1259 "frame/parser.Y" {fr->getFitsSliceFromImageCmd((Coord::CoordSystem)(yyvsp[(3) - (3)].integer));;} break; - case 477: -#line 1251 "frame/parser.Y" + case 481: +#line 1261 "frame/parser.Y" {fr->getFitsSliceFromImageCmd((yyvsp[(3) - (4)].integer), (Coord::CoordSystem)(yyvsp[(4) - (4)].integer));;} break; - case 478: -#line 1253 "frame/parser.Y" + case 482: +#line 1263 "frame/parser.Y" {fr->getFitsSliceToImageCmd((yyvsp[(3) - (4)].real), (Coord::CoordSystem)(yyvsp[(4) - (4)].integer));;} break; - case 479: -#line 1256 "frame/parser.Y" + case 483: +#line 1266 "frame/parser.Y" {fr->getGridCmd();;} break; - case 480: -#line 1257 "frame/parser.Y" + case 484: +#line 1267 "frame/parser.Y" {fr->getGridOptionCmd();;} break; - case 481: -#line 1258 "frame/parser.Y" + case 485: +#line 1268 "frame/parser.Y" {fr->getGridVarsCmd();;} break; - case 482: -#line 1261 "frame/parser.Y" + case 486: +#line 1271 "frame/parser.Y" {fr->getMaskColorCmd();;} break; - case 483: -#line 1262 "frame/parser.Y" + case 487: +#line 1272 "frame/parser.Y" {fr->getMaskMarkCmd();;} break; - case 484: -#line 1263 "frame/parser.Y" + case 488: +#line 1273 "frame/parser.Y" {fr->getMaskRangeCmd();;} break; - case 485: -#line 1264 "frame/parser.Y" + case 489: +#line 1274 "frame/parser.Y" {fr->getMaskSystemCmd();;} break; - case 486: -#line 1265 "frame/parser.Y" + case 490: +#line 1275 "frame/parser.Y" {fr->getMaskTransparencyCmd();;} break; - case 487: -#line 1266 "frame/parser.Y" + case 491: +#line 1276 "frame/parser.Y" {fr->getMaskCountCmd();;} break; - case 488: -#line 1267 "frame/parser.Y" + case 492: +#line 1277 "frame/parser.Y" {fr->getMaskBlendCmd();;} break; - case 489: -#line 1270 "frame/parser.Y" + case 493: +#line 1280 "frame/parser.Y" {fr->getPanPreserveCmd();;} break; - case 490: -#line 1273 "frame/parser.Y" + case 494: +#line 1283 "frame/parser.Y" {fr->getRGBChannelCmd();;} break; - case 491: -#line 1274 "frame/parser.Y" + case 495: +#line 1284 "frame/parser.Y" {fr->getRGBSystemCmd();;} break; - case 492: -#line 1275 "frame/parser.Y" + case 496: +#line 1285 "frame/parser.Y" {fr->getRGBViewCmd();;} break; - case 493: -#line 1278 "frame/parser.Y" + case 497: +#line 1288 "frame/parser.Y" {fr->getSmoothFunctionCmd();;} break; - case 494: -#line 1279 "frame/parser.Y" + case 498: +#line 1289 "frame/parser.Y" {fr->getSmoothRadiusCmd();;} break; - case 495: -#line 1280 "frame/parser.Y" + case 499: +#line 1290 "frame/parser.Y" {fr->getSmoothRadiusMinorCmd();;} break; - case 496: -#line 1281 "frame/parser.Y" + case 500: +#line 1291 "frame/parser.Y" {fr->getSmoothSigmaCmd();;} break; - case 497: -#line 1282 "frame/parser.Y" + case 501: +#line 1292 "frame/parser.Y" {fr->getSmoothSigmaMinorCmd();;} break; - case 498: -#line 1283 "frame/parser.Y" + case 502: +#line 1293 "frame/parser.Y" {fr->getSmoothAngleCmd();;} break; - case 503: -#line 1290 "frame/parser.Y" + case 507: +#line 1300 "frame/parser.Y" {fr->get3dRenderMethodCmd();;} break; - case 504: -#line 1291 "frame/parser.Y" + case 508: +#line 1301 "frame/parser.Y" {fr->get3dRenderBackgroundCmd();;} break; - case 505: -#line 1292 "frame/parser.Y" + case 509: +#line 1302 "frame/parser.Y" {fr->get3dScaleCmd();;} break; - case 506: -#line 1295 "frame/parser.Y" + case 510: +#line 1305 "frame/parser.Y" {fr->get3dBorderCmd();;} break; - case 507: -#line 1296 "frame/parser.Y" + case 511: +#line 1306 "frame/parser.Y" {fr->get3dBorderColorCmd();;} break; - case 508: -#line 1299 "frame/parser.Y" + case 512: +#line 1309 "frame/parser.Y" {fr->get3dCompassCmd();;} break; - case 509: -#line 1300 "frame/parser.Y" + case 513: +#line 1310 "frame/parser.Y" {fr->get3dCompassColorCmd();;} break; - case 510: -#line 1303 "frame/parser.Y" + case 514: +#line 1313 "frame/parser.Y" {fr->get3dHighliteCmd();;} break; - case 511: -#line 1304 "frame/parser.Y" + case 515: +#line 1314 "frame/parser.Y" {fr->get3dHighliteColorCmd();;} break; - case 512: -#line 1307 "frame/parser.Y" + case 516: +#line 1317 "frame/parser.Y" {fr->get3dViewCmd();;} break; - case 513: -#line 1308 "frame/parser.Y" + case 517: +#line 1318 "frame/parser.Y" {fr->get3dViewPointCmd();;} break; - case 514: -#line 1311 "frame/parser.Y" + case 518: +#line 1321 "frame/parser.Y" {fr->getWCSCmd();;} break; - case 516: -#line 1313 "frame/parser.Y" + case 520: +#line 1323 "frame/parser.Y" {fr->getWCSNameCmd((Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;} break; - case 517: -#line 1316 "frame/parser.Y" + case 521: +#line 1326 "frame/parser.Y" {fr->getWCSAlignCmd();;} break; - case 518: -#line 1317 "frame/parser.Y" + case 522: +#line 1327 "frame/parser.Y" {fr->getWCSAlignPointerCmd();;} break; - case 520: -#line 1321 "frame/parser.Y" + case 524: +#line 1331 "frame/parser.Y" {fr->gridDeleteCmd();;} break; - case 521: -#line 1325 "frame/parser.Y" + case 525: +#line 1335 "frame/parser.Y" {fr->gridCmd((Coord::CoordSystem)(yyvsp[(1) - (6)].integer), (Coord::SkyFrame)(yyvsp[(2) - (6)].integer), (Coord::SkyFormat)(yyvsp[(3) - (6)].integer), (Grid2d::GridType)(yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].str), (yyvsp[(6) - (6)].str));;} break; - case 522: -#line 1328 "frame/parser.Y" + case 526: +#line 1338 "frame/parser.Y" { // backward compatibility with backup fr->gridCmd((Coord::CoordSystem)(yyvsp[(1) - (5)].integer), (Coord::SkyFrame)(yyvsp[(2) - (5)].integer), @@ -7411,961 +7370,957 @@ ;} break; - case 523: -#line 1335 "frame/parser.Y" + case 527: +#line 1345 "frame/parser.Y" {(yyval.integer)=Grid2d::ANALYSIS;;} break; - case 524: -#line 1336 "frame/parser.Y" + case 528: +#line 1346 "frame/parser.Y" {(yyval.integer)=Grid2d::PUBLICATION;;} break; - case 525: -#line 1339 "frame/parser.Y" + case 529: +#line 1349 "frame/parser.Y" {fr->hasAmplifierCmd();;} break; - case 526: -#line 1340 "frame/parser.Y" + case 530: +#line 1350 "frame/parser.Y" {fr->hasBgColorCmd();;} break; - case 529: -#line 1343 "frame/parser.Y" + case 533: +#line 1353 "frame/parser.Y" {fr->hasCropCmd();;} break; - case 530: -#line 1344 "frame/parser.Y" + case 534: +#line 1354 "frame/parser.Y" {fr->hasDATAMINCmd();;} break; - case 531: -#line 1345 "frame/parser.Y" + case 535: +#line 1355 "frame/parser.Y" {fr->hasDATASECCmd();;} break; - case 532: -#line 1346 "frame/parser.Y" + case 536: +#line 1356 "frame/parser.Y" {fr->hasDetectorCmd();;} break; - case 534: -#line 1348 "frame/parser.Y" + case 538: +#line 1358 "frame/parser.Y" {fr->hasGridCmd();;} break; - case 535: -#line 1349 "frame/parser.Y" + case 539: +#line 1359 "frame/parser.Y" {fr->hasIISCmd();;} break; - case 536: -#line 1350 "frame/parser.Y" + case 540: +#line 1360 "frame/parser.Y" {fr->hasIRAFMINCmd();;} break; - case 538: -#line 1352 "frame/parser.Y" + case 542: +#line 1362 "frame/parser.Y" {fr->hasPhysicalCmd();;} break; - case 539: -#line 1353 "frame/parser.Y" + case 543: +#line 1363 "frame/parser.Y" {fr->hasImageCmd();;} break; - case 540: -#line 1354 "frame/parser.Y" + case 544: +#line 1364 "frame/parser.Y" {fr->hasSmoothCmd();;} break; - case 541: -#line 1355 "frame/parser.Y" + case 545: +#line 1365 "frame/parser.Y" {fr->hasSystemCmd((Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;} break; - case 543: -#line 1359 "frame/parser.Y" + case 547: +#line 1369 "frame/parser.Y" {fr->hasBinColCmd((yyvsp[(2) - (2)].str));;} break; - case 544: -#line 1362 "frame/parser.Y" + case 548: +#line 1372 "frame/parser.Y" {fr->hasContourCmd();;} break; - case 545: -#line 1363 "frame/parser.Y" + case 549: +#line 1373 "frame/parser.Y" {fr->hasContourAuxCmd();;} break; - case 546: -#line 1366 "frame/parser.Y" + case 550: +#line 1376 "frame/parser.Y" {fr->hasFitsCmd();;} break; - case 547: -#line 1367 "frame/parser.Y" + case 551: +#line 1377 "frame/parser.Y" {fr->hasFitsBinCmd();;} break; - case 548: -#line 1368 "frame/parser.Y" + case 552: +#line 1378 "frame/parser.Y" {fr->hasFitsCubeCmd();;} break; - case 549: -#line 1369 "frame/parser.Y" + case 553: +#line 1379 "frame/parser.Y" {fr->hasFitsMosaicCmd();;} break; - case 550: -#line 1372 "frame/parser.Y" + case 554: +#line 1382 "frame/parser.Y" {fr->hasMarkerHighlitedCmd();;} break; - case 551: -#line 1373 "frame/parser.Y" + case 555: +#line 1383 "frame/parser.Y" {fr->hasMarkerSelectedCmd();;} break; - case 552: -#line 1374 "frame/parser.Y" + case 556: +#line 1384 "frame/parser.Y" {fr->hasMarkerPasteCmd();;} break; - case 553: -#line 1375 "frame/parser.Y" + case 557: +#line 1385 "frame/parser.Y" {fr->hasMarkerUndoCmd();;} break; - case 554: -#line 1378 "frame/parser.Y" + case 558: +#line 1388 "frame/parser.Y" {fr->hasWCSCmd((Coord::CoordSystem)(yyvsp[(1) - (1)].integer));;} break; - case 555: -#line 1379 "frame/parser.Y" + case 559: +#line 1389 "frame/parser.Y" {fr->hasWCSCelCmd((Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;} break; - case 556: -#line 1380 "frame/parser.Y" + case 560: +#line 1390 "frame/parser.Y" {fr->hasWCSEquCmd((Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;} break; - case 557: -#line 1381 "frame/parser.Y" + case 561: +#line 1391 "frame/parser.Y" {fr->hasWCSLinearCmd((Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;} break; - case 558: -#line 1382 "frame/parser.Y" + case 562: +#line 1392 "frame/parser.Y" {fr->hasWCSAltCmd();;} break; - case 559: -#line 1383 "frame/parser.Y" + case 563: +#line 1393 "frame/parser.Y" {fr->hasWCS3DCmd((Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;} break; - case 560: -#line 1386 "frame/parser.Y" + case 564: +#line 1396 "frame/parser.Y" {fr->iisCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].integer));;} break; - case 561: -#line 1387 "frame/parser.Y" + case 565: +#line 1397 "frame/parser.Y" {fr->iisEraseCmd();;} break; - case 562: -#line 1388 "frame/parser.Y" + case 566: +#line 1398 "frame/parser.Y" {fr->iisMessageCmd((yyvsp[(2) - (2)].str));;} break; - case 565: -#line 1392 "frame/parser.Y" + case 569: +#line 1402 "frame/parser.Y" {fr->iisSetCmd((const char*)(yyvsp[(2) - (6)].ptr),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].integer),(yyvsp[(5) - (6)].integer),(yyvsp[(6) - (6)].integer));;} break; - case 566: -#line 1393 "frame/parser.Y" + case 570: +#line 1403 "frame/parser.Y" {fr->iisUpdateCmd();;} break; - case 567: -#line 1396 "frame/parser.Y" + case 571: +#line 1406 "frame/parser.Y" {fr->iisWCSCmd(Matrix((yyvsp[(2) - (10)].real),(yyvsp[(3) - (10)].real),(yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real),(yyvsp[(6) - (10)].real),(yyvsp[(7) - (10)].real)),Vector((yyvsp[(8) - (10)].real),(yyvsp[(9) - (10)].real)),(yyvsp[(10) - (10)].integer));;} break; - case 568: -#line 1399 "frame/parser.Y" + case 572: +#line 1409 "frame/parser.Y" {fr->iisSetFileNameCmd((yyvsp[(1) - (1)].str));;} break; - case 569: -#line 1400 "frame/parser.Y" + case 573: +#line 1410 "frame/parser.Y" {fr->iisSetFileNameCmd((yyvsp[(1) - (2)].str),(yyvsp[(2) - (2)].integer));;} break; - case 570: -#line 1404 "frame/parser.Y" + case 574: +#line 1414 "frame/parser.Y" {fr->iisSetCursorCmd(Vector((yyvsp[(1) - (3)].integer),(yyvsp[(2) - (3)].integer)),Coord::CANVAS);;} break; - case 571: -#line 1406 "frame/parser.Y" + case 575: +#line 1416 "frame/parser.Y" {fr->iisSetCursorCmd(Vector((yyvsp[(1) - (3)].integer),(yyvsp[(2) - (3)].integer)),(Coord::CoordSystem)(yyvsp[(3) - (3)].integer));;} break; - case 572: -#line 1407 "frame/parser.Y" + case 576: +#line 1417 "frame/parser.Y" {fr->iisCursorModeCmd((yyvsp[(2) - (2)].integer));;} break; - case 579: -#line 1419 "frame/parser.Y" + case 583: +#line 1429 "frame/parser.Y" {fr->loadArrAllocCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 580: -#line 1421 "frame/parser.Y" + case 584: +#line 1431 "frame/parser.Y" {fr->loadArrAllocGZCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 581: -#line 1423 "frame/parser.Y" + case 585: +#line 1433 "frame/parser.Y" {fr->loadArrChannelCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 582: -#line 1424 "frame/parser.Y" + case 586: +#line 1434 "frame/parser.Y" {fr->loadArrMMapCmd((yyvsp[(1) - (3)].str), (Base::LayerType)(yyvsp[(3) - (3)].integer));;} break; - case 583: -#line 1426 "frame/parser.Y" + case 587: +#line 1436 "frame/parser.Y" {fr->loadArrMMapIncrCmd((yyvsp[(1) - (3)].str), (Base::LayerType)(yyvsp[(3) - (3)].integer));;} break; - case 584: -#line 1428 "frame/parser.Y" + case 588: +#line 1438 "frame/parser.Y" {fr->loadArrShareCmd((Base::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 585: -#line 1430 "frame/parser.Y" + case 589: +#line 1440 "frame/parser.Y" {fr->loadArrSocketCmd((yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 586: -#line 1432 "frame/parser.Y" + case 590: +#line 1442 "frame/parser.Y" {fr->loadArrSocketGZCmd((yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 587: -#line 1434 "frame/parser.Y" + case 591: +#line 1444 "frame/parser.Y" {fr->loadArrVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 589: -#line 1438 "frame/parser.Y" + case 593: +#line 1448 "frame/parser.Y" {fr->loadArrayRGBCubeAllocCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;} break; - case 590: -#line 1439 "frame/parser.Y" + case 594: +#line 1449 "frame/parser.Y" {fr->loadArrayRGBCubeAllocGZCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;} break; - case 591: -#line 1440 "frame/parser.Y" + case 595: +#line 1450 "frame/parser.Y" {fr->loadArrayRGBCubeChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;} break; - case 592: -#line 1441 "frame/parser.Y" + case 596: +#line 1451 "frame/parser.Y" {fr->loadArrayRGBCubeMMapCmd((yyvsp[(1) - (2)].str));;} break; - case 593: -#line 1442 "frame/parser.Y" + case 597: +#line 1452 "frame/parser.Y" {fr->loadArrayRGBCubeMMapIncrCmd((yyvsp[(1) - (2)].str));;} break; - case 594: -#line 1444 "frame/parser.Y" + case 598: +#line 1454 "frame/parser.Y" {fr->loadArrayRGBCubeShareCmd((Base::ShmType)(yyvsp[(3) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(1) - (4)].str));;} break; - case 595: -#line 1445 "frame/parser.Y" + case 599: +#line 1455 "frame/parser.Y" {fr->loadArrayRGBCubeSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;} break; - case 596: -#line 1446 "frame/parser.Y" + case 600: +#line 1456 "frame/parser.Y" {fr->loadArrayRGBCubeSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;} break; - case 597: -#line 1447 "frame/parser.Y" + case 601: +#line 1457 "frame/parser.Y" {fr->loadArrayRGBCubeVarCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;} break; - case 598: -#line 1450 "frame/parser.Y" + case 602: +#line 1460 "frame/parser.Y" {fr->loadENVISMMapCmd((yyvsp[(1) - (3)].str),(yyvsp[(2) - (3)].str));;} break; - case 599: -#line 1454 "frame/parser.Y" + case 603: +#line 1464 "frame/parser.Y" {fr->loadFitsAllocCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 600: -#line 1456 "frame/parser.Y" + case 604: +#line 1466 "frame/parser.Y" {fr->loadFitsAllocGZCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 601: -#line 1458 "frame/parser.Y" + case 605: +#line 1468 "frame/parser.Y" {fr->loadFitsChannelCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 602: -#line 1460 "frame/parser.Y" + case 606: +#line 1470 "frame/parser.Y" {fr->loadFitsMMapCmd((yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 603: -#line 1462 "frame/parser.Y" + case 607: +#line 1472 "frame/parser.Y" {fr->loadFitsSMMapCmd((yyvsp[(1) - (5)].str), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 604: -#line 1464 "frame/parser.Y" + case 608: +#line 1474 "frame/parser.Y" {fr->loadFitsMMapIncrCmd((yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 605: -#line 1466 "frame/parser.Y" + case 609: +#line 1476 "frame/parser.Y" {fr->loadFitsShareCmd((Base::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(1) - (6)].str), (Base::LayerType)(yyvsp[(6) - (6)].integer));;} break; - case 606: -#line 1468 "frame/parser.Y" + case 610: +#line 1478 "frame/parser.Y" {fr->loadFitsSShareCmd((Base::ShmType)(yyvsp[(3) - (7)].integer), (yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].integer), (yyvsp[(1) - (7)].str), (Base::LayerType)(yyvsp[(7) - (7)].integer));;} break; - case 607: -#line 1471 "frame/parser.Y" + case 611: +#line 1481 "frame/parser.Y" {fr->loadFitsSocketCmd((yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 608: -#line 1473 "frame/parser.Y" + case 612: +#line 1483 "frame/parser.Y" {fr->loadFitsSocketGZCmd((yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 609: -#line 1475 "frame/parser.Y" + case 613: +#line 1485 "frame/parser.Y" {fr->loadFitsVarCmd((yyvsp[(3) - (5)].str), (yyvsp[(1) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 615: -#line 1483 "frame/parser.Y" + case 619: +#line 1493 "frame/parser.Y" {fr->loadSliceAllocCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;} break; - case 616: -#line 1484 "frame/parser.Y" + case 620: +#line 1494 "frame/parser.Y" {fr->loadSliceAllocGZCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;} break; - case 617: -#line 1485 "frame/parser.Y" + case 621: +#line 1495 "frame/parser.Y" {fr->loadSliceChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;} break; - case 618: -#line 1486 "frame/parser.Y" + case 622: +#line 1496 "frame/parser.Y" {fr->loadSliceMMapCmd((yyvsp[(1) - (3)].str));;} break; - case 619: -#line 1487 "frame/parser.Y" + case 623: +#line 1497 "frame/parser.Y" {fr->loadSliceSMMapCmd((yyvsp[(1) - (4)].str), (yyvsp[(2) - (4)].str));;} break; - case 620: -#line 1488 "frame/parser.Y" + case 624: +#line 1498 "frame/parser.Y" {fr->loadSliceMMapIncrCmd((yyvsp[(1) - (3)].str));;} break; - case 621: -#line 1490 "frame/parser.Y" + case 625: +#line 1500 "frame/parser.Y" {fr->loadSliceShareCmd((Base::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str));;} break; - case 622: -#line 1492 "frame/parser.Y" + case 626: +#line 1502 "frame/parser.Y" {fr->loadSliceSShareCmd((Base::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].integer), (yyvsp[(1) - (6)].str));;} break; - case 623: -#line 1493 "frame/parser.Y" + case 627: +#line 1503 "frame/parser.Y" {fr->loadSliceSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;} break; - case 624: -#line 1494 "frame/parser.Y" + case 628: +#line 1504 "frame/parser.Y" {fr->loadSliceSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;} break; - case 625: -#line 1495 "frame/parser.Y" + case 629: +#line 1505 "frame/parser.Y" {fr->loadSliceVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str));;} break; - case 626: -#line 1498 "frame/parser.Y" + case 630: +#line 1508 "frame/parser.Y" {fr->loadExtCubeAllocCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;} break; - case 627: -#line 1499 "frame/parser.Y" + case 631: +#line 1509 "frame/parser.Y" {fr->loadExtCubeAllocGZCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;} break; - case 628: -#line 1500 "frame/parser.Y" + case 632: +#line 1510 "frame/parser.Y" {fr->loadExtCubeChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;} break; - case 629: -#line 1501 "frame/parser.Y" + case 633: +#line 1511 "frame/parser.Y" {fr->loadExtCubeMMapCmd((yyvsp[(1) - (3)].str));;} break; - case 630: -#line 1502 "frame/parser.Y" + case 634: +#line 1512 "frame/parser.Y" {fr->loadExtCubeMMapIncrCmd((yyvsp[(1) - (3)].str));;} break; - case 631: -#line 1504 "frame/parser.Y" + case 635: +#line 1514 "frame/parser.Y" {fr->loadExtCubeShareCmd((Base::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str));;} break; - case 632: -#line 1505 "frame/parser.Y" + case 636: +#line 1515 "frame/parser.Y" {fr->loadExtCubeSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;} break; - case 633: -#line 1506 "frame/parser.Y" + case 637: +#line 1516 "frame/parser.Y" {fr->loadExtCubeSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;} break; - case 634: -#line 1507 "frame/parser.Y" + case 638: +#line 1517 "frame/parser.Y" {fr->loadExtCubeVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str));;} break; - case 640: -#line 1518 "frame/parser.Y" + case 644: +#line 1528 "frame/parser.Y" {fr->loadMosaicImageAllocCmd(Base::IRAF, Coord::WCS, (yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 641: -#line 1521 "frame/parser.Y" + case 645: +#line 1531 "frame/parser.Y" {fr->loadMosaicImageAllocGZCmd(Base::IRAF, Coord::WCS, (yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str),(Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 642: -#line 1524 "frame/parser.Y" + case 646: +#line 1534 "frame/parser.Y" {fr->loadMosaicImageChannelCmd(Base::IRAF, Coord::WCS, (yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str),(Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 643: -#line 1527 "frame/parser.Y" + case 647: +#line 1537 "frame/parser.Y" {fr->loadMosaicImageMMapCmd(Base::IRAF, Coord::WCS, (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 644: -#line 1530 "frame/parser.Y" + case 648: +#line 1540 "frame/parser.Y" {fr->loadMosaicImageMMapIncrCmd(Base::IRAF, Coord::WCS, (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 645: -#line 1533 "frame/parser.Y" + case 649: +#line 1543 "frame/parser.Y" {fr->loadMosaicImageShareCmd(Base::IRAF, Coord::WCS, (Base::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(1) - (6)].str), (Base::LayerType)(yyvsp[(6) - (6)].integer));;} break; - case 646: -#line 1536 "frame/parser.Y" + case 650: +#line 1546 "frame/parser.Y" {fr->loadMosaicImageSocketCmd(Base::IRAF, Coord::WCS, (yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 647: -#line 1539 "frame/parser.Y" + case 651: +#line 1549 "frame/parser.Y" {fr->loadMosaicImageSocketGZCmd(Base::IRAF, Coord::WCS, (yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 648: -#line 1542 "frame/parser.Y" + case 652: +#line 1552 "frame/parser.Y" {fr->loadMosaicImageVarCmd(Base::IRAF, Coord::WCS, (yyvsp[(3) - (5)].str), (yyvsp[(1) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 649: -#line 1547 "frame/parser.Y" + case 653: +#line 1557 "frame/parser.Y" {fr->loadMosaicAllocCmd(Base::IRAF, Coord::WCS, (yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 650: -#line 1550 "frame/parser.Y" + case 654: +#line 1560 "frame/parser.Y" {fr->loadMosaicAllocGZCmd(Base::IRAF, Coord::WCS, (yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 651: -#line 1553 "frame/parser.Y" + case 655: +#line 1563 "frame/parser.Y" {fr->loadMosaicChannelCmd(Base::IRAF, Coord::WCS, (yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 652: -#line 1556 "frame/parser.Y" + case 656: +#line 1566 "frame/parser.Y" {fr->loadMosaicMMapCmd(Base::IRAF, Coord::WCS, (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 653: -#line 1559 "frame/parser.Y" + case 657: +#line 1569 "frame/parser.Y" {fr->loadMosaicSMMapCmd(Base::IRAF, Coord::WCS, (yyvsp[(1) - (5)].str), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 654: -#line 1562 "frame/parser.Y" + case 658: +#line 1572 "frame/parser.Y" {fr->loadMosaicMMapIncrCmd(Base::IRAF, Coord::WCS, (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 655: -#line 1565 "frame/parser.Y" + case 659: +#line 1575 "frame/parser.Y" {fr->loadMosaicShareCmd(Base::IRAF, Coord::WCS, (Base::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(1) - (6)].str), (Base::LayerType)(yyvsp[(6) - (6)].integer));;} break; - case 656: -#line 1568 "frame/parser.Y" + case 660: +#line 1578 "frame/parser.Y" {fr->loadMosaicSShareCmd(Base::IRAF, Coord::WCS, (Base::ShmType)(yyvsp[(3) - (7)].integer), (yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].integer), (yyvsp[(1) - (7)].str), (Base::LayerType)(yyvsp[(7) - (7)].integer));;} break; - case 657: -#line 1571 "frame/parser.Y" + case 661: +#line 1581 "frame/parser.Y" {fr->loadMosaicSocketCmd(Base::IRAF, Coord::WCS, (yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 658: -#line 1574 "frame/parser.Y" + case 662: +#line 1584 "frame/parser.Y" {fr->loadMosaicSocketGZCmd(Base::IRAF, Coord::WCS, (yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 659: -#line 1577 "frame/parser.Y" + case 663: +#line 1587 "frame/parser.Y" {fr->loadMosaicVarCmd(Base::IRAF, Coord::WCS, (yyvsp[(3) - (5)].str), (yyvsp[(1) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 660: -#line 1582 "frame/parser.Y" + case 664: +#line 1592 "frame/parser.Y" {fr->loadMosaicImageAllocCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 661: -#line 1585 "frame/parser.Y" + case 665: +#line 1595 "frame/parser.Y" {fr->loadMosaicImageAllocGZCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 662: -#line 1588 "frame/parser.Y" + case 666: +#line 1598 "frame/parser.Y" {fr->loadMosaicImageChannelCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 663: -#line 1591 "frame/parser.Y" + case 667: +#line 1601 "frame/parser.Y" {fr->loadMosaicImageMMapCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 664: -#line 1594 "frame/parser.Y" + case 668: +#line 1604 "frame/parser.Y" {fr->loadMosaicImageMMapIncrCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 665: -#line 1597 "frame/parser.Y" + case 669: +#line 1607 "frame/parser.Y" {fr->loadMosaicImageShareCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (7)].integer), (Base::ShmType)(yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].integer), (yyvsp[(2) - (7)].str), (Base::LayerType)(yyvsp[(7) - (7)].integer));;} break; - case 666: -#line 1600 "frame/parser.Y" + case 670: +#line 1610 "frame/parser.Y" {fr->loadMosaicImageSocketCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 667: -#line 1603 "frame/parser.Y" + case 671: +#line 1613 "frame/parser.Y" {fr->loadMosaicImageSocketGZCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 668: -#line 1606 "frame/parser.Y" + case 672: +#line 1616 "frame/parser.Y" {fr->loadMosaicImageVarCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].str), (yyvsp[(2) - (6)].str), (Base::LayerType)(yyvsp[(6) - (6)].integer));;} break; - case 669: -#line 1611 "frame/parser.Y" + case 673: +#line 1621 "frame/parser.Y" {fr->loadMosaicImageWFPC2AllocCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 670: -#line 1613 "frame/parser.Y" + case 674: +#line 1623 "frame/parser.Y" {fr->loadMosaicImageWFPC2AllocGZCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 671: -#line 1615 "frame/parser.Y" + case 675: +#line 1625 "frame/parser.Y" {fr->loadMosaicImageWFPC2ChannelCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 672: -#line 1617 "frame/parser.Y" + case 676: +#line 1627 "frame/parser.Y" {fr->loadMosaicImageWFPC2MMapCmd((yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 673: -#line 1619 "frame/parser.Y" + case 677: +#line 1629 "frame/parser.Y" {fr->loadMosaicImageWFPC2MMapIncrCmd((yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 674: -#line 1621 "frame/parser.Y" + case 678: +#line 1631 "frame/parser.Y" { fr->loadMosaicImageWFPC2ShareCmd((Base::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(1) - (6)].str), (Base::LayerType)(yyvsp[(6) - (6)].integer)); ;} break; - case 675: -#line 1626 "frame/parser.Y" + case 679: +#line 1636 "frame/parser.Y" {fr->loadMosaicImageWFPC2SocketCmd((yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 676: -#line 1628 "frame/parser.Y" + case 680: +#line 1638 "frame/parser.Y" {fr->loadMosaicImageWFPC2SocketGZCmd((yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 677: -#line 1630 "frame/parser.Y" + case 681: +#line 1640 "frame/parser.Y" {fr->loadMosaicImageWFPC2VarCmd((yyvsp[(3) - (5)].str), (yyvsp[(1) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 678: -#line 1634 "frame/parser.Y" + case 682: +#line 1644 "frame/parser.Y" {fr->loadMosaicAllocCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 679: -#line 1637 "frame/parser.Y" + case 683: +#line 1647 "frame/parser.Y" {fr->loadMosaicAllocGZCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 680: -#line 1640 "frame/parser.Y" + case 684: +#line 1650 "frame/parser.Y" {fr->loadMosaicChannelCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 681: -#line 1643 "frame/parser.Y" + case 685: +#line 1653 "frame/parser.Y" {fr->loadMosaicMMapCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 682: -#line 1646 "frame/parser.Y" + case 686: +#line 1656 "frame/parser.Y" {fr->loadMosaicSMMapCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (6)].integer), (yyvsp[(2) - (6)].str), (yyvsp[(3) - (6)].str), (Base::LayerType)(yyvsp[(6) - (6)].integer));;} break; - case 683: -#line 1649 "frame/parser.Y" + case 687: +#line 1659 "frame/parser.Y" {fr->loadMosaicMMapIncrCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 684: -#line 1652 "frame/parser.Y" + case 688: +#line 1662 "frame/parser.Y" {fr->loadMosaicShareCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (7)].integer), (Base::ShmType)(yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].integer), (yyvsp[(2) - (7)].str), (Base::LayerType)(yyvsp[(7) - (7)].integer));;} break; - case 685: -#line 1655 "frame/parser.Y" + case 689: +#line 1665 "frame/parser.Y" {fr->loadMosaicSShareCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (8)].integer), (Base::ShmType)(yyvsp[(4) - (8)].integer), (yyvsp[(5) - (8)].integer), (yyvsp[(6) - (8)].integer), (yyvsp[(2) - (8)].str), (Base::LayerType)(yyvsp[(8) - (8)].integer));;} break; - case 686: -#line 1658 "frame/parser.Y" + case 690: +#line 1668 "frame/parser.Y" {fr->loadMosaicSocketCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 687: -#line 1661 "frame/parser.Y" + case 691: +#line 1671 "frame/parser.Y" {fr->loadMosaicSocketGZCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 688: -#line 1664 "frame/parser.Y" + case 692: +#line 1674 "frame/parser.Y" {fr->loadMosaicVarCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].str), (yyvsp[(2) - (6)].str), (Base::LayerType)(yyvsp[(6) - (6)].integer));;} break; - case 689: -#line 1668 "frame/parser.Y" + case 693: +#line 1678 "frame/parser.Y" {fr->loadRGBCubeAllocCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;} break; - case 690: -#line 1669 "frame/parser.Y" + case 694: +#line 1679 "frame/parser.Y" {fr->loadRGBCubeAllocGZCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;} break; - case 691: -#line 1670 "frame/parser.Y" + case 695: +#line 1680 "frame/parser.Y" {fr->loadRGBCubeChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;} break; - case 692: -#line 1671 "frame/parser.Y" + case 696: +#line 1681 "frame/parser.Y" {fr->loadRGBCubeMMapCmd((yyvsp[(1) - (3)].str));;} break; - case 693: -#line 1672 "frame/parser.Y" + case 697: +#line 1682 "frame/parser.Y" {fr->loadRGBCubeSMMapCmd((yyvsp[(1) - (4)].str), (yyvsp[(2) - (4)].str));;} break; - case 694: -#line 1673 "frame/parser.Y" + case 698: +#line 1683 "frame/parser.Y" {fr->loadRGBCubeMMapIncrCmd((yyvsp[(1) - (3)].str));;} break; - case 695: -#line 1675 "frame/parser.Y" + case 699: +#line 1685 "frame/parser.Y" {fr->loadRGBCubeShareCmd((Base::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str));;} break; - case 696: -#line 1677 "frame/parser.Y" + case 700: +#line 1687 "frame/parser.Y" {fr->loadRGBCubeSShareCmd((Base::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].integer), (yyvsp[(1) - (6)].str));;} break; - case 697: -#line 1678 "frame/parser.Y" + case 701: +#line 1688 "frame/parser.Y" {fr->loadRGBCubeSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;} break; - case 698: -#line 1679 "frame/parser.Y" + case 702: +#line 1689 "frame/parser.Y" {fr->loadRGBCubeSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;} break; - case 699: -#line 1680 "frame/parser.Y" + case 703: +#line 1690 "frame/parser.Y" {fr->loadRGBCubeVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str));;} break; - case 700: -#line 1683 "frame/parser.Y" + case 704: +#line 1693 "frame/parser.Y" {fr->loadRGBImageAllocCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;} break; - case 701: -#line 1684 "frame/parser.Y" + case 705: +#line 1694 "frame/parser.Y" {fr->loadRGBImageAllocGZCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;} break; - case 702: -#line 1685 "frame/parser.Y" + case 706: +#line 1695 "frame/parser.Y" {fr->loadRGBImageChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;} break; - case 703: -#line 1686 "frame/parser.Y" + case 707: +#line 1696 "frame/parser.Y" {fr->loadRGBImageMMapCmd((yyvsp[(1) - (3)].str));;} break; - case 704: -#line 1687 "frame/parser.Y" + case 708: +#line 1697 "frame/parser.Y" {fr->loadRGBImageMMapIncrCmd((yyvsp[(1) - (3)].str));;} break; - case 705: -#line 1689 "frame/parser.Y" + case 709: +#line 1699 "frame/parser.Y" {fr->loadRGBImageShareCmd((Base::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str));;} break; - case 706: -#line 1690 "frame/parser.Y" + case 710: +#line 1700 "frame/parser.Y" {fr->loadRGBImageSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;} break; - case 707: -#line 1691 "frame/parser.Y" + case 711: +#line 1701 "frame/parser.Y" {fr->loadRGBImageSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;} break; - case 708: -#line 1692 "frame/parser.Y" + case 712: +#line 1702 "frame/parser.Y" {fr->loadRGBImageVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str));;} break; - case 709: -#line 1696 "frame/parser.Y" + case 713: +#line 1706 "frame/parser.Y" {fr->loadNRRDAllocCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 710: -#line 1698 "frame/parser.Y" + case 714: +#line 1708 "frame/parser.Y" {fr->loadNRRDChannelCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 711: -#line 1699 "frame/parser.Y" + case 715: +#line 1709 "frame/parser.Y" {fr->loadNRRDMMapCmd((yyvsp[(1) - (3)].str), (Base::LayerType)(yyvsp[(3) - (3)].integer));;} break; - case 712: -#line 1701 "frame/parser.Y" + case 716: +#line 1711 "frame/parser.Y" {fr->loadNRRDShareCmd((Base::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;} break; - case 713: -#line 1703 "frame/parser.Y" + case 717: +#line 1713 "frame/parser.Y" {fr->loadNRRDSocketCmd((yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 714: -#line 1705 "frame/parser.Y" + case 718: +#line 1715 "frame/parser.Y" {fr->loadNRRDVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;} break; - case 715: -#line 1708 "frame/parser.Y" + case 719: +#line 1718 "frame/parser.Y" {fr->loadPhotoCmd((yyvsp[(1) - (2)].str),(yyvsp[(2) - (2)].str));;} break; - case 716: -#line 1709 "frame/parser.Y" + case 720: +#line 1719 "frame/parser.Y" {fr->loadSlicePhotoCmd((yyvsp[(2) - (3)].str),(yyvsp[(3) - (3)].str));;} break; - case 717: -#line 1712 "frame/parser.Y" + case 721: +#line 1722 "frame/parser.Y" {fr->loadIncrDataCmd((yyvsp[(2) - (6)].integer),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].integer),(yyvsp[(5) - (6)].integer),(yyvsp[(6) - (6)].integer));;} break; - case 718: -#line 1713 "frame/parser.Y" + case 722: +#line 1723 "frame/parser.Y" {fr->loadIncrMinMaxCmd((yyvsp[(2) - (6)].integer),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].integer),(yyvsp[(5) - (6)].integer),(yyvsp[(6) - (6)].integer));;} break; - case 719: -#line 1714 "frame/parser.Y" + case 723: +#line 1724 "frame/parser.Y" {fr->loadIncrEndCmd();;} break; - case 720: -#line 1717 "frame/parser.Y" - { -#ifdef MAC_OSX_TK - fr->macosxPrintCmd(); -#endif - ;} + case 724: +#line 1727 "frame/parser.Y" + {;} break; - case 721: -#line 1724 "frame/parser.Y" + case 725: +#line 1730 "frame/parser.Y" {fr->magnifierCmd((yyvsp[(1) - (1)].integer));;} break; - case 722: -#line 1725 "frame/parser.Y" + case 726: +#line 1731 "frame/parser.Y" {fr->magnifierGraphicsCmd((yyvsp[(2) - (2)].integer));;} break; - case 723: -#line 1726 "frame/parser.Y" + case 727: +#line 1732 "frame/parser.Y" {fr->magnifierCursorCmd((yyvsp[(2) - (2)].integer));;} break; - case 724: -#line 1727 "frame/parser.Y" + case 728: +#line 1733 "frame/parser.Y" {fr->magnifierColorCmd((yyvsp[(2) - (2)].str));;} break; - case 725: -#line 1728 "frame/parser.Y" + case 729: +#line 1734 "frame/parser.Y" {fr->magnifierCmd((yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;} break; - case 726: -#line 1729 "frame/parser.Y" + case 730: +#line 1735 "frame/parser.Y" {fr->updateMagnifierCmd(Vector((yyvsp[(2) - (3)].real), (yyvsp[(3) - (3)].real)));;} break; - case 727: -#line 1730 "frame/parser.Y" + case 731: +#line 1736 "frame/parser.Y" {fr->magnifierZoomCmd((yyvsp[(2) - (2)].real));;} break; - case 728: -#line 1734 "frame/parser.Y" + case 732: +#line 1740 "frame/parser.Y" { fr->matchCmd((yyvsp[(1) - (12)].str),(yyvsp[(2) - (12)].str),(Coord::CoordSystem)(yyvsp[(3) - (12)].integer),(Coord::SkyFrame)(yyvsp[(4) - (12)].integer), (yyvsp[(5) - (12)].str),(yyvsp[(6) - (12)].str),(Coord::CoordSystem)(yyvsp[(7) - (12)].integer),(Coord::SkyFrame)(yyvsp[(8) - (12)].integer), @@ -8374,866 +8329,866 @@ ;} break; - case 730: -#line 1742 "frame/parser.Y" + case 734: +#line 1748 "frame/parser.Y" {fr->markerColorCmd((yyvsp[(2) - (2)].str));;} break; - case 731: -#line 1743 "frame/parser.Y" + case 735: +#line 1749 "frame/parser.Y" {fr->markerCopyCmd();;} break; - case 732: -#line 1745 "frame/parser.Y" + case 736: +#line 1751 "frame/parser.Y" {fr->markerCommandCmd((Base::MarkerFormat)(yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].str));;} break; - case 733: -#line 1747 "frame/parser.Y" + case 737: +#line 1753 "frame/parser.Y" {fr->markerCommandVarCmd((Base::MarkerFormat)(yyvsp[(2) - (4)].integer),(yyvsp[(4) - (4)].str));;} break; - case 734: -#line 1748 "frame/parser.Y" + case 738: +#line 1754 "frame/parser.Y" {fr->markerCompositeDeleteCmd();;} break; - case 735: -#line 1749 "frame/parser.Y" + case 739: +#line 1755 "frame/parser.Y" {maperr =0;;} break; - case 737: -#line 1750 "frame/parser.Y" + case 741: +#line 1756 "frame/parser.Y" {fr->markerCutCmd();;} break; - case 740: -#line 1753 "frame/parser.Y" + case 744: +#line 1759 "frame/parser.Y" {fr->markerEpsilonCmd((yyvsp[(2) - (2)].integer));;} break; - case 741: -#line 1754 "frame/parser.Y" + case 745: +#line 1760 "frame/parser.Y" {fr->markerFontCmd((yyvsp[(2) - (2)].str));;} break; - case 742: -#line 1756 "frame/parser.Y" + case 746: +#line 1762 "frame/parser.Y" {fr->markerHighliteAllCmd();;} break; - case 743: -#line 1758 "frame/parser.Y" + case 747: +#line 1764 "frame/parser.Y" {fr->markerHighliteOnlyCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;} break; - case 744: -#line 1760 "frame/parser.Y" + case 748: +#line 1766 "frame/parser.Y" {fr->markerHighliteToggleCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;} break; - case 745: -#line 1763 "frame/parser.Y" + case 749: +#line 1769 "frame/parser.Y" {fr->markerAnalysisCmd((yyvsp[(1) - (4)].integer), (Marker::AnalysisTask)(yyvsp[(3) - (4)].integer), (yyvsp[(4) - (4)].integer));;} break; - case 746: -#line 1765 "frame/parser.Y" + case 750: +#line 1771 "frame/parser.Y" {fr->markerAngleCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].real));;} break; - case 747: -#line 1766 "frame/parser.Y" + case 751: +#line 1772 "frame/parser.Y" {fr->markerAngleCmd((yyvsp[(1) - (4)].integer),(yyvsp[(3) - (4)].real));;} break; - case 748: -#line 1768 "frame/parser.Y" + case 752: +#line 1774 "frame/parser.Y" {fr->markerAngleCmd((yyvsp[(1) - (5)].integer),(yyvsp[(3) - (5)].real),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyFrame)(yyvsp[(5) - (5)].integer));;} break; - case 749: -#line 1771 "frame/parser.Y" + case 753: +#line 1777 "frame/parser.Y" {fr->markerAnnulusRadiusCmd((yyvsp[(1) - (8)].integer), (yyvsp[(4) - (8)].real), (yyvsp[(5) - (8)].real), (yyvsp[(6) - (8)].integer), (Coord::CoordSystem)(yyvsp[(7) - (8)].integer), (Coord::DistFormat)(yyvsp[(8) - (8)].integer));;} break; - case 750: -#line 1774 "frame/parser.Y" + case 754: +#line 1780 "frame/parser.Y" {fr->markerAnnulusRadiusCmd((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].str),(Coord::CoordSystem)(yyvsp[(5) - (6)].integer),(Coord::DistFormat)(yyvsp[(6) - (6)].integer));;} break; - case 751: -#line 1776 "frame/parser.Y" + case 755: +#line 1782 "frame/parser.Y" {fr->markerBoxFillCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 752: -#line 1779 "frame/parser.Y" + case 756: +#line 1785 "frame/parser.Y" {fr->markerBoxAnnulusRadiusCmd((yyvsp[(1) - (9)].integer), Vector((yyvsp[(4) - (9)].real), (yyvsp[(5) - (9)].real)), Vector((yyvsp[(6) - (9)].real), (yyvsp[(6) - (9)].real)*(yyvsp[(5) - (9)].real)/(yyvsp[(4) - (9)].real)), (yyvsp[(7) - (9)].integer), (Coord::CoordSystem)(yyvsp[(8) - (9)].integer), (Coord::DistFormat)(yyvsp[(9) - (9)].integer));;} break; - case 753: -#line 1782 "frame/parser.Y" + case 757: +#line 1788 "frame/parser.Y" {fr->markerBoxAnnulusRadiusCmd((yyvsp[(1) - (6)].integer),(yyvsp[(4) - (6)].str),(Coord::CoordSystem)(yyvsp[(5) - (6)].integer),(Coord::DistFormat)(yyvsp[(6) - (6)].integer));;} break; - case 754: -#line 1785 "frame/parser.Y" + case 758: +#line 1791 "frame/parser.Y" {fr->markerBoxRadiusCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)), (Coord::CoordSystem)(yyvsp[(6) - (7)].integer), (Coord::DistFormat)(yyvsp[(7) - (7)].integer));;} break; - case 755: -#line 1788 "frame/parser.Y" + case 759: +#line 1794 "frame/parser.Y" {fr->markerBpandaEditCmd((yyvsp[(1) - (10)].integer), (yyvsp[(4) - (10)].real), (yyvsp[(5) - (10)].real), (yyvsp[(6) - (10)].integer), Vector((yyvsp[(7) - (10)].real),(yyvsp[(8) - (10)].real)), Vector((yyvsp[(9) - (10)].real),(yyvsp[(9) - (10)].real)*(yyvsp[(8) - (10)].real)/(yyvsp[(7) - (10)].real)), (yyvsp[(10) - (10)].integer));;} break; - case 756: -#line 1792 "frame/parser.Y" + case 760: +#line 1798 "frame/parser.Y" {fr->markerBpandaEditCmd((yyvsp[(1) - (11)].integer), (yyvsp[(4) - (11)].real), (yyvsp[(5) - (11)].real), (yyvsp[(6) - (11)].integer), Vector((yyvsp[(7) - (11)].real),(yyvsp[(8) - (11)].real)), Vector((yyvsp[(9) - (11)].real),(yyvsp[(9) - (11)].real)*(yyvsp[(8) - (11)].real)/(yyvsp[(7) - (11)].real)), (yyvsp[(10) - (11)].integer));;} break; - case 757: -#line 1796 "frame/parser.Y" + case 761: +#line 1802 "frame/parser.Y" {fr->markerBpandaEditCmd((yyvsp[(1) - (12)].integer), (yyvsp[(4) - (12)].real), (yyvsp[(5) - (12)].real), (yyvsp[(6) - (12)].integer), Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)), Vector((yyvsp[(9) - (12)].real),(yyvsp[(9) - (12)].real)*(yyvsp[(8) - (12)].real)/(yyvsp[(7) - (12)].real)), (yyvsp[(10) - (12)].integer), (Coord::CoordSystem)(yyvsp[(11) - (12)].integer), (Coord::SkyFrame)(yyvsp[(12) - (12)].integer));;} break; - case 758: -#line 1801 "frame/parser.Y" + case 762: +#line 1807 "frame/parser.Y" {fr->markerBpandaEditCmd((yyvsp[(1) - (9)].integer), (yyvsp[(4) - (9)].str), (yyvsp[(5) - (9)].str), (Coord::CoordSystem)(yyvsp[(6) - (9)].integer), (Coord::SkyFrame)(yyvsp[(7) - (9)].integer), (Coord::CoordSystem)(yyvsp[(8) - (9)].integer), (Coord::DistFormat)(yyvsp[(9) - (9)].integer));;} break; - case 759: -#line 1805 "frame/parser.Y" + case 763: +#line 1811 "frame/parser.Y" {fr->markerCallBackCmd((yyvsp[(1) - (5)].integer),(CallBack::Type)(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str));;} break; - case 760: -#line 1806 "frame/parser.Y" + case 764: +#line 1812 "frame/parser.Y" {fr->markerCircleFillCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 761: -#line 1808 "frame/parser.Y" + case 765: +#line 1814 "frame/parser.Y" {fr->markerCircleRadiusCmd((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].real), (Coord::CoordSystem)(yyvsp[(5) - (6)].integer), (Coord::DistFormat)(yyvsp[(6) - (6)].integer));;} break; - case 762: -#line 1809 "frame/parser.Y" + case 766: +#line 1815 "frame/parser.Y" {fr->markerColorCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;} break; - case 763: -#line 1811 "frame/parser.Y" + case 767: +#line 1817 "frame/parser.Y" {fr->markerCompassArrowCmd((yyvsp[(1) - (5)].integer),(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer));;} break; - case 764: -#line 1813 "frame/parser.Y" + case 768: +#line 1819 "frame/parser.Y" {fr->markerCompassLabelCmd((yyvsp[(1) - (5)].integer),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str));;} break; - case 765: -#line 1815 "frame/parser.Y" + case 769: +#line 1821 "frame/parser.Y" {fr->markerCompassRadiusCmd((yyvsp[(1) - (6)].integer),(yyvsp[(4) - (6)].real),(Coord::CoordSystem)(yyvsp[(5) - (6)].integer),(Coord::DistFormat)(yyvsp[(6) - (6)].integer));;} break; - case 766: -#line 1817 "frame/parser.Y" + case 770: +#line 1823 "frame/parser.Y" {fr->markerCompassSystemCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyFrame)(yyvsp[(5) - (5)].integer));;} break; - case 767: -#line 1818 "frame/parser.Y" + case 771: +#line 1824 "frame/parser.Y" {fr->markerCompositeCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 768: -#line 1820 "frame/parser.Y" + case 772: +#line 1826 "frame/parser.Y" {fr->markerCpandaEditCmd((yyvsp[(1) - (9)].integer), (yyvsp[(4) - (9)].real), (yyvsp[(5) - (9)].real), (yyvsp[(6) - (9)].integer), (yyvsp[(7) - (9)].real), (yyvsp[(8) - (9)].real), (yyvsp[(9) - (9)].integer));;} break; - case 769: -#line 1822 "frame/parser.Y" + case 773: +#line 1828 "frame/parser.Y" {fr->markerCpandaEditCmd((yyvsp[(1) - (10)].integer), (yyvsp[(4) - (10)].real), (yyvsp[(5) - (10)].real), (yyvsp[(6) - (10)].integer), (yyvsp[(7) - (10)].real), (yyvsp[(8) - (10)].real), (yyvsp[(9) - (10)].integer));;} break; - case 770: -#line 1825 "frame/parser.Y" + case 774: +#line 1831 "frame/parser.Y" {fr->markerCpandaEditCmd((yyvsp[(1) - (11)].integer), (yyvsp[(4) - (11)].real), (yyvsp[(5) - (11)].real), (yyvsp[(6) - (11)].integer), (yyvsp[(7) - (11)].real), (yyvsp[(8) - (11)].real), (yyvsp[(9) - (11)].integer), (Coord::CoordSystem)(yyvsp[(10) - (11)].integer), (Coord::SkyFrame)(yyvsp[(11) - (11)].integer));;} break; - case 771: -#line 1829 "frame/parser.Y" + case 775: +#line 1835 "frame/parser.Y" {fr->markerCpandaEditCmd((yyvsp[(1) - (9)].integer), (yyvsp[(4) - (9)].str), (yyvsp[(5) - (9)].str), (Coord::CoordSystem)(yyvsp[(6) - (9)].integer), (Coord::SkyFrame)(yyvsp[(7) - (9)].integer), (Coord::CoordSystem)(yyvsp[(8) - (9)].integer), (Coord::DistFormat)(yyvsp[(9) - (9)].integer));;} break; - case 772: -#line 1833 "frame/parser.Y" + case 776: +#line 1839 "frame/parser.Y" {fr->markerAnnulusCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;} break; - case 773: -#line 1835 "frame/parser.Y" + case 777: +#line 1841 "frame/parser.Y" {fr->markerBoxAnnulusCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;} break; - case 774: -#line 1837 "frame/parser.Y" + case 778: +#line 1843 "frame/parser.Y" {fr->markerBpandaCreateAnglesCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;} break; - case 775: -#line 1839 "frame/parser.Y" + case 779: +#line 1845 "frame/parser.Y" {fr->markerBpandaCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;} break; - case 776: -#line 1841 "frame/parser.Y" + case 780: +#line 1847 "frame/parser.Y" {fr->markerEllipseAnnulusCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;} break; - case 777: -#line 1843 "frame/parser.Y" + case 781: +#line 1849 "frame/parser.Y" {fr->markerEpandaCreateAnglesCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;} break; - case 778: -#line 1845 "frame/parser.Y" + case 782: +#line 1851 "frame/parser.Y" {fr->markerEpandaCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;} break; - case 779: -#line 1847 "frame/parser.Y" + case 783: +#line 1853 "frame/parser.Y" {fr->markerCpandaCreateAnglesCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;} break; - case 780: -#line 1849 "frame/parser.Y" + case 784: +#line 1855 "frame/parser.Y" {fr->markerCpandaCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;} break; - case 781: -#line 1851 "frame/parser.Y" + case 785: +#line 1857 "frame/parser.Y" {fr->markerPolygonCreateVertexCmd((yyvsp[(1) - (7)].integer),(yyvsp[(5) - (7)].integer),Vector((yyvsp[(6) - (7)].real),(yyvsp[(7) - (7)].real)));;} break; - case 782: -#line 1853 "frame/parser.Y" + case 786: +#line 1859 "frame/parser.Y" {fr->markerSegmentCreateVertexCmd((yyvsp[(1) - (7)].integer),(yyvsp[(5) - (7)].integer),Vector((yyvsp[(6) - (7)].real),(yyvsp[(7) - (7)].real)));;} break; - case 783: -#line 1855 "frame/parser.Y" + case 787: +#line 1861 "frame/parser.Y" {fr->markerDeleteCmd((yyvsp[(1) - (2)].integer));;} break; - case 784: -#line 1857 "frame/parser.Y" + case 788: +#line 1863 "frame/parser.Y" {fr->markerAnnulusDeleteRadiusCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 785: -#line 1859 "frame/parser.Y" + case 789: +#line 1865 "frame/parser.Y" {fr->markerBoxAnnulusDeleteRadiusCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 786: -#line 1860 "frame/parser.Y" + case 790: +#line 1866 "frame/parser.Y" {fr->markerBpandaDeleteCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 787: -#line 1862 "frame/parser.Y" + case 791: +#line 1868 "frame/parser.Y" {fr->markerEllipseAnnulusDeleteRadiusCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 788: -#line 1864 "frame/parser.Y" + case 792: +#line 1870 "frame/parser.Y" {fr->markerDeleteCallBackCmd((yyvsp[(1) - (5)].integer),(CallBack::Type)(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].str));;} break; - case 789: -#line 1865 "frame/parser.Y" + case 793: +#line 1871 "frame/parser.Y" {fr->markerEpandaDeleteCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 790: -#line 1866 "frame/parser.Y" + case 794: +#line 1872 "frame/parser.Y" {fr->markerCpandaDeleteCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 791: -#line 1868 "frame/parser.Y" + case 795: +#line 1874 "frame/parser.Y" {fr->markerPolygonDeleteVertexCmd((yyvsp[(1) - (5)].integer),(yyvsp[(5) - (5)].integer));;} break; - case 792: -#line 1870 "frame/parser.Y" + case 796: +#line 1876 "frame/parser.Y" {fr->markerSegmentDeleteVertexCmd((yyvsp[(1) - (5)].integer),(yyvsp[(5) - (5)].integer));;} break; - case 793: -#line 1871 "frame/parser.Y" + case 797: +#line 1877 "frame/parser.Y" {fr->markerDeleteTagCmd((yyvsp[(1) - (3)].integer));;} break; - case 794: -#line 1872 "frame/parser.Y" + case 798: +#line 1878 "frame/parser.Y" {fr->markerDeleteTagCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].str));;} break; - case 795: -#line 1873 "frame/parser.Y" + case 799: +#line 1879 "frame/parser.Y" {fr->markerDeleteTagCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 796: -#line 1875 "frame/parser.Y" + case 800: +#line 1881 "frame/parser.Y" {fr->markerEditBeginCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 797: -#line 1876 "frame/parser.Y" + case 801: +#line 1882 "frame/parser.Y" {fr->markerEllipseFillCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 798: -#line 1878 "frame/parser.Y" + case 802: +#line 1884 "frame/parser.Y" {fr->markerEllipseRadiusCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(4) - (7)].real), (yyvsp[(5) - (7)].real)), (Coord::CoordSystem)(yyvsp[(6) - (7)].integer), (Coord::DistFormat)(yyvsp[(7) - (7)].integer));;} break; - case 799: -#line 1882 "frame/parser.Y" + case 803: +#line 1888 "frame/parser.Y" {fr->markerEllipseAnnulusRadiusCmd((yyvsp[(1) - (9)].integer), Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real)), Vector((yyvsp[(6) - (9)].real),(yyvsp[(6) - (9)].real)*(yyvsp[(5) - (9)].real)/(yyvsp[(4) - (9)].real)), (yyvsp[(7) - (9)].integer), (Coord::CoordSystem)(yyvsp[(8) - (9)].integer), (Coord::DistFormat)(yyvsp[(9) - (9)].integer));;} break; - case 800: -#line 1885 "frame/parser.Y" + case 804: +#line 1891 "frame/parser.Y" {fr->markerEllipseAnnulusRadiusCmd((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].str), (Coord::CoordSystem)(yyvsp[(5) - (6)].integer), (Coord::DistFormat)(yyvsp[(6) - (6)].integer));;} break; - case 801: -#line 1888 "frame/parser.Y" + case 805: +#line 1894 "frame/parser.Y" {fr->markerEpandaEditCmd((yyvsp[(1) - (10)].integer), (yyvsp[(4) - (10)].real), (yyvsp[(5) - (10)].real), (yyvsp[(6) - (10)].integer), Vector((yyvsp[(7) - (10)].real),(yyvsp[(8) - (10)].real)), Vector((yyvsp[(9) - (10)].real),(yyvsp[(9) - (10)].real)*(yyvsp[(8) - (10)].real)/(yyvsp[(7) - (10)].real)), (yyvsp[(10) - (10)].integer));;} break; - case 802: -#line 1892 "frame/parser.Y" + case 806: +#line 1898 "frame/parser.Y" {fr->markerEpandaEditCmd((yyvsp[(1) - (11)].integer), (yyvsp[(4) - (11)].real), (yyvsp[(5) - (11)].real), (yyvsp[(6) - (11)].integer), Vector((yyvsp[(7) - (11)].real),(yyvsp[(8) - (11)].real)), Vector((yyvsp[(9) - (11)].real),(yyvsp[(9) - (11)].real)*(yyvsp[(8) - (11)].real)/(yyvsp[(7) - (11)].real)), (yyvsp[(10) - (11)].integer));;} break; - case 803: -#line 1896 "frame/parser.Y" + case 807: +#line 1902 "frame/parser.Y" {fr->markerEpandaEditCmd((yyvsp[(1) - (12)].integer), (yyvsp[(4) - (12)].real), (yyvsp[(5) - (12)].real), (yyvsp[(6) - (12)].integer), Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)), Vector((yyvsp[(9) - (12)].real),(yyvsp[(9) - (12)].real)*(yyvsp[(8) - (12)].real)/(yyvsp[(7) - (12)].real)), (yyvsp[(10) - (12)].integer), (Coord::CoordSystem)(yyvsp[(11) - (12)].integer), (Coord::SkyFrame)(yyvsp[(12) - (12)].integer));;} break; - case 804: -#line 1901 "frame/parser.Y" + case 808: +#line 1907 "frame/parser.Y" {fr->markerEpandaEditCmd((yyvsp[(1) - (9)].integer), (yyvsp[(4) - (9)].str), (yyvsp[(5) - (9)].str), (Coord::CoordSystem)(yyvsp[(6) - (9)].integer), (Coord::SkyFrame)(yyvsp[(7) - (9)].integer), (Coord::CoordSystem)(yyvsp[(8) - (9)].integer), (Coord::DistFormat)(yyvsp[(9) - (9)].integer));;} break; - case 805: -#line 1905 "frame/parser.Y" + case 809: +#line 1911 "frame/parser.Y" {fr->markerFontCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;} break; - case 806: -#line 1906 "frame/parser.Y" + case 810: +#line 1912 "frame/parser.Y" {fr->markerHighliteCmd((yyvsp[(1) - (2)].integer));;} break; - case 807: -#line 1907 "frame/parser.Y" + case 811: +#line 1913 "frame/parser.Y" {fr->markerHighliteOnlyCmd((yyvsp[(1) - (3)].integer));;} break; - case 808: -#line 1909 "frame/parser.Y" + case 812: +#line 1915 "frame/parser.Y" {fr->markerLineArrowCmd((yyvsp[(1) - (5)].integer),(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer));;} break; - case 809: -#line 1911 "frame/parser.Y" + case 813: +#line 1917 "frame/parser.Y" {fr->markerLineCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(6) - (7)].vector)), Vector((yyvsp[(7) - (7)].vector)), (Coord::CoordSystem)(yyvsp[(4) - (7)].integer), (Coord::SkyFrame)(yyvsp[(5) - (7)].integer));;} break; - case 810: -#line 1915 "frame/parser.Y" + case 814: +#line 1921 "frame/parser.Y" {fr->markerMoveCmd((yyvsp[(1) - (4)].integer), Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;} break; - case 811: -#line 1916 "frame/parser.Y" + case 815: +#line 1922 "frame/parser.Y" {fr->markerFrontCmd((yyvsp[(1) - (3)].integer));;} break; - case 812: -#line 1917 "frame/parser.Y" + case 816: +#line 1923 "frame/parser.Y" {fr->markerBackCmd((yyvsp[(1) - (3)].integer));;} break; - case 813: -#line 1919 "frame/parser.Y" + case 817: +#line 1925 "frame/parser.Y" {fr->markerMoveToCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(6) - (6)].vector)),(Coord::CoordSystem)(yyvsp[(4) - (6)].integer),(Coord::SkyFrame)(yyvsp[(5) - (6)].integer));;} break; - case 814: -#line 1922 "frame/parser.Y" + case 818: +#line 1928 "frame/parser.Y" {fr->markerPolygonResetCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)), (Coord::CoordSystem)(yyvsp[(6) - (7)].integer), (Coord::DistFormat)(yyvsp[(7) - (7)].integer));;} break; - case 815: -#line 1925 "frame/parser.Y" + case 819: +#line 1931 "frame/parser.Y" {fr->markerSegmentResetCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)), (Coord::CoordSystem)(yyvsp[(6) - (7)].integer), (Coord::DistFormat)(yyvsp[(7) - (7)].integer));;} break; - case 816: -#line 1928 "frame/parser.Y" + case 820: +#line 1934 "frame/parser.Y" {fr->markerPointShapeCmd((yyvsp[(1) - (4)].integer),(Point::PointShape)(yyvsp[(4) - (4)].integer));;} break; - case 817: -#line 1929 "frame/parser.Y" + case 821: +#line 1935 "frame/parser.Y" {fr->markerPointSizeCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 818: -#line 1931 "frame/parser.Y" + case 822: +#line 1937 "frame/parser.Y" {fr->markerPolygonFillCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 819: -#line 1934 "frame/parser.Y" + case 823: +#line 1940 "frame/parser.Y" {fr->markerProjectionCmd((yyvsp[(1) - (9)].integer), Vector((yyvsp[(5) - (9)].vector)), Vector((yyvsp[(6) - (9)].vector)), (Coord::CoordSystem)(yyvsp[(3) - (9)].integer), (Coord::SkyFrame)(yyvsp[(4) - (9)].integer), (yyvsp[(7) - (9)].real), (Coord::CoordSystem)(yyvsp[(8) - (9)].integer), (Coord::DistFormat)(yyvsp[(9) - (9)].integer));;} break; - case 820: -#line 1938 "frame/parser.Y" + case 824: +#line 1944 "frame/parser.Y" {fr->markerPropertyCmd((yyvsp[(1) - (4)].integer),(yyvsp[(3) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 821: -#line 1940 "frame/parser.Y" + case 825: +#line 1946 "frame/parser.Y" {fr->markerRotateBeginCmd((yyvsp[(1) - (3)].integer));;} break; - case 822: -#line 1941 "frame/parser.Y" + case 826: +#line 1947 "frame/parser.Y" {fr->markerRulerDistSpecCmd((yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].str));;} break; - case 823: -#line 1943 "frame/parser.Y" + case 827: +#line 1949 "frame/parser.Y" {fr->markerRulerPointCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(6) - (7)].vector)), Vector((yyvsp[(7) - (7)].vector)), (Coord::CoordSystem)(yyvsp[(4) - (7)].integer), (Coord::SkyFrame)(yyvsp[(5) - (7)].integer));;} break; - case 824: -#line 1946 "frame/parser.Y" + case 828: +#line 1952 "frame/parser.Y" {fr->markerRulerSystemCmd((yyvsp[(1) - (7)].integer), (Coord::CoordSystem)(yyvsp[(4) - (7)].integer), (Coord::SkyFrame)(yyvsp[(5) - (7)].integer), (Coord::CoordSystem)(yyvsp[(6) - (7)].integer), (Coord::DistFormat)(yyvsp[(7) - (7)].integer));;} break; - case 825: -#line 1949 "frame/parser.Y" + case 829: +#line 1955 "frame/parser.Y" {fr->markerSelectCmd((yyvsp[(1) - (2)].integer));;} break; - case 826: -#line 1950 "frame/parser.Y" + case 830: +#line 1956 "frame/parser.Y" {fr->markerSelectOnlyCmd((yyvsp[(1) - (3)].integer));;} break; - case 827: -#line 1952 "frame/parser.Y" + case 831: +#line 1958 "frame/parser.Y" {fr->markerTagCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;} break; - case 828: -#line 1953 "frame/parser.Y" + case 832: +#line 1959 "frame/parser.Y" {fr->markerTextCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;} break; - case 829: -#line 1954 "frame/parser.Y" + case 833: +#line 1960 "frame/parser.Y" {fr->markerTextRotateCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 830: -#line 1956 "frame/parser.Y" + case 834: +#line 1962 "frame/parser.Y" {fr->markerUnhighliteCmd((yyvsp[(1) - (2)].integer));;} break; - case 831: -#line 1957 "frame/parser.Y" + case 835: +#line 1963 "frame/parser.Y" {fr->markerUnselectCmd((yyvsp[(1) - (2)].integer));;} break; - case 832: -#line 1959 "frame/parser.Y" + case 836: +#line 1965 "frame/parser.Y" {fr->markerVectorArrowCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 833: -#line 1962 "frame/parser.Y" + case 837: +#line 1968 "frame/parser.Y" {fr->markerVectorCmd((yyvsp[(1) - (10)].integer), Vector((yyvsp[(6) - (10)].vector)), (Coord::CoordSystem)(yyvsp[(4) - (10)].integer), (Coord::SkyFrame)(yyvsp[(5) - (10)].integer), (yyvsp[(9) - (10)].real), (Coord::CoordSystem)(yyvsp[(7) - (10)].integer), (Coord::DistFormat)(yyvsp[(8) - (10)].integer), (yyvsp[(10) - (10)].real));;} break; - case 834: -#line 1965 "frame/parser.Y" + case 838: +#line 1971 "frame/parser.Y" {fr->markerLineWidthCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;} break; - case 835: -#line 1967 "frame/parser.Y" + case 839: +#line 1973 "frame/parser.Y" {fr->markerKeyCmd();;} break; - case 836: -#line 1968 "frame/parser.Y" + case 840: +#line 1974 "frame/parser.Y" {fr->markerKeyCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} break; - case 840: -#line 1973 "frame/parser.Y" + case 844: +#line 1979 "frame/parser.Y" {fr->markerPreserveCmd((yyvsp[(2) - (2)].integer));;} break; - case 841: -#line 1974 "frame/parser.Y" + case 845: +#line 1980 "frame/parser.Y" {fr->markerPropertyCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].integer));;} break; - case 842: -#line 1976 "frame/parser.Y" + case 846: +#line 1982 "frame/parser.Y" {fr->markerPropertyCmd((yyvsp[(2) - (5)].integer),(yyvsp[(3) - (5)].integer),Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)));;} break; - case 843: -#line 1978 "frame/parser.Y" + case 847: +#line 1984 "frame/parser.Y" {fr->markerRotateBeginCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;} break; - case 844: -#line 1980 "frame/parser.Y" + case 848: +#line 1986 "frame/parser.Y" {fr->markerRotateMotionCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real)),(yyvsp[(5) - (5)].integer));;} break; - case 845: -#line 1981 "frame/parser.Y" - {fr->markerRotateEndCmd();;} - break; - case 849: #line 1987 "frame/parser.Y" - {fr->markerColorCmd((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].str));;} - break; - - case 850: -#line 1988 "frame/parser.Y" - {fr->markerCopyCmd((yyvsp[(1) - (2)].str));;} - break; - - case 851: -#line 1989 "frame/parser.Y" - {fr->markerDeleteCmd((yyvsp[(1) - (2)].str));;} - break; - - case 852: -#line 1990 "frame/parser.Y" - {fr->markerCutCmd((yyvsp[(1) - (2)].str));;} + {fr->markerRotateEndCmd();;} break; case 853: -#line 1991 "frame/parser.Y" - {fr->markerFontCmd((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].str));;} +#line 1993 "frame/parser.Y" + {fr->markerColorCmd((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].str));;} break; case 854: -#line 1992 "frame/parser.Y" - {fr->markerHighliteCmd((yyvsp[(1) - (2)].str));;} +#line 1994 "frame/parser.Y" + {fr->markerCopyCmd((yyvsp[(1) - (2)].str));;} break; case 855: -#line 1993 "frame/parser.Y" - {fr->markerHighliteOnlyCmd((yyvsp[(1) - (3)].str));;} +#line 1995 "frame/parser.Y" + {fr->markerDeleteCmd((yyvsp[(1) - (2)].str));;} break; case 856: -#line 1994 "frame/parser.Y" - {fr->markerMoveCmd((yyvsp[(1) - (4)].str),Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;} +#line 1996 "frame/parser.Y" + {fr->markerCutCmd((yyvsp[(1) - (2)].str));;} break; case 857: -#line 1995 "frame/parser.Y" - {fr->markerFrontCmd((yyvsp[(1) - (3)].str));;} +#line 1997 "frame/parser.Y" + {fr->markerFontCmd((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].str));;} break; case 858: -#line 1996 "frame/parser.Y" - {fr->markerBackCmd((yyvsp[(1) - (3)].str));;} +#line 1998 "frame/parser.Y" + {fr->markerHighliteCmd((yyvsp[(1) - (2)].str));;} break; case 859: -#line 1998 "frame/parser.Y" - {fr->markerMoveToCmd((yyvsp[(1) - (6)].str),Vector((yyvsp[(6) - (6)].vector)),(Coord::CoordSystem)(yyvsp[(4) - (6)].integer),(Coord::SkyFrame)(yyvsp[(5) - (6)].integer));;} +#line 1999 "frame/parser.Y" + {fr->markerHighliteOnlyCmd((yyvsp[(1) - (3)].str));;} break; case 860: #line 2000 "frame/parser.Y" - {fr->markerPropertyCmd((yyvsp[(1) - (4)].str),(yyvsp[(3) - (4)].integer),(yyvsp[(4) - (4)].integer));;} + {fr->markerMoveCmd((yyvsp[(1) - (4)].str),Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;} break; case 861: #line 2001 "frame/parser.Y" - {fr->markerSelectCmd((yyvsp[(1) - (2)].str));;} + {fr->markerFrontCmd((yyvsp[(1) - (3)].str));;} break; case 862: #line 2002 "frame/parser.Y" - {fr->markerSelectOnlyCmd((yyvsp[(1) - (3)].str));;} + {fr->markerBackCmd((yyvsp[(1) - (3)].str));;} break; case 863: -#line 2003 "frame/parser.Y" - {fr->markerUnhighliteCmd((yyvsp[(1) - (2)].str));;} +#line 2004 "frame/parser.Y" + {fr->markerMoveToCmd((yyvsp[(1) - (6)].str),Vector((yyvsp[(6) - (6)].vector)),(Coord::CoordSystem)(yyvsp[(4) - (6)].integer),(Coord::SkyFrame)(yyvsp[(5) - (6)].integer));;} break; case 864: -#line 2004 "frame/parser.Y" - {fr->markerUnselectCmd((yyvsp[(1) - (2)].str));;} +#line 2006 "frame/parser.Y" + {fr->markerPropertyCmd((yyvsp[(1) - (4)].str),(yyvsp[(3) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; case 865: -#line 2006 "frame/parser.Y" - {fr->markerTagEditCmd((yyvsp[(3) - (4)].str),(yyvsp[(4) - (4)].str));;} +#line 2007 "frame/parser.Y" + {fr->markerSelectCmd((yyvsp[(1) - (2)].str));;} break; case 866: -#line 2007 "frame/parser.Y" - {fr->markerTagDeleteCmd((yyvsp[(3) - (3)].str));;} +#line 2008 "frame/parser.Y" + {fr->markerSelectOnlyCmd((yyvsp[(1) - (3)].str));;} break; case 867: -#line 2008 "frame/parser.Y" - {fr->markerTagDeleteAllCmd();;} +#line 2009 "frame/parser.Y" + {fr->markerUnhighliteCmd((yyvsp[(1) - (2)].str));;} break; case 868: -#line 2009 "frame/parser.Y" - {fr->markerTagCmd((yyvsp[(2) - (2)].str));;} +#line 2010 "frame/parser.Y" + {fr->markerUnselectCmd((yyvsp[(1) - (2)].str));;} break; case 869: -#line 2010 "frame/parser.Y" - {fr->markerTagUpdateCmd((yyvsp[(3) - (3)].str));;} +#line 2012 "frame/parser.Y" + {fr->markerTagEditCmd((yyvsp[(3) - (4)].str),(yyvsp[(4) - (4)].str));;} break; case 870: -#line 2012 "frame/parser.Y" - {fr->markerPasteCmd();;} +#line 2013 "frame/parser.Y" + {fr->markerTagDeleteCmd((yyvsp[(3) - (3)].str));;} break; case 871: -#line 2013 "frame/parser.Y" - {fr->markerPasteCmd((Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;} +#line 2014 "frame/parser.Y" + {fr->markerTagDeleteAllCmd();;} break; case 872: -#line 2014 "frame/parser.Y" - {fr->markerUndoCmd();;} +#line 2015 "frame/parser.Y" + {fr->markerTagCmd((yyvsp[(2) - (2)].str));;} break; case 873: -#line 2015 "frame/parser.Y" - {fr->markerUnhighliteAllCmd();;} +#line 2016 "frame/parser.Y" + {fr->markerTagUpdateCmd((yyvsp[(3) - (3)].str));;} break; case 874: -#line 2016 "frame/parser.Y" - {fr->markerUnselectAllCmd();;} +#line 2018 "frame/parser.Y" + {fr->markerPasteCmd();;} break; case 875: -#line 2017 "frame/parser.Y" - {fr->markerLineWidthCmd((yyvsp[(2) - (2)].integer));;} +#line 2019 "frame/parser.Y" + {fr->markerPasteCmd((Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;} break; case 876: #line 2020 "frame/parser.Y" - {(yyval.integer) = CallBack::SELECTCB;;} + {fr->markerUndoCmd();;} break; case 877: #line 2021 "frame/parser.Y" - {(yyval.integer) = CallBack::UNSELECTCB;;} + {fr->markerUnhighliteAllCmd();;} break; case 878: #line 2022 "frame/parser.Y" - {(yyval.integer) = CallBack::HIGHLITECB;;} + {fr->markerUnselectAllCmd();;} break; case 879: #line 2023 "frame/parser.Y" - {(yyval.integer) = CallBack::UNHIGHLITECB;;} + {fr->markerLineWidthCmd((yyvsp[(2) - (2)].integer));;} break; case 880: -#line 2024 "frame/parser.Y" - {(yyval.integer) = CallBack::MOVEBEGINCB;;} +#line 2026 "frame/parser.Y" + {(yyval.integer) = CallBack::SELECTCB;;} break; case 881: -#line 2025 "frame/parser.Y" - {(yyval.integer) = CallBack::MOVECB;;} +#line 2027 "frame/parser.Y" + {(yyval.integer) = CallBack::UNSELECTCB;;} break; case 882: -#line 2026 "frame/parser.Y" - {(yyval.integer) = CallBack::MOVEENDCB;;} +#line 2028 "frame/parser.Y" + {(yyval.integer) = CallBack::HIGHLITECB;;} break; case 883: -#line 2027 "frame/parser.Y" - {(yyval.integer) = CallBack::EDITBEGINCB;;} +#line 2029 "frame/parser.Y" + {(yyval.integer) = CallBack::UNHIGHLITECB;;} break; case 884: -#line 2028 "frame/parser.Y" - {(yyval.integer) = CallBack::EDITCB;;} +#line 2030 "frame/parser.Y" + {(yyval.integer) = CallBack::MOVEBEGINCB;;} break; case 885: -#line 2029 "frame/parser.Y" - {(yyval.integer) = CallBack::EDITENDCB;;} +#line 2031 "frame/parser.Y" + {(yyval.integer) = CallBack::MOVECB;;} break; case 886: -#line 2030 "frame/parser.Y" - {(yyval.integer) = CallBack::ROTATEBEGINCB;;} +#line 2032 "frame/parser.Y" + {(yyval.integer) = CallBack::MOVEENDCB;;} break; case 887: -#line 2031 "frame/parser.Y" - {(yyval.integer) = CallBack::ROTATECB;;} +#line 2033 "frame/parser.Y" + {(yyval.integer) = CallBack::EDITBEGINCB;;} break; case 888: -#line 2032 "frame/parser.Y" - {(yyval.integer) = CallBack::ROTATEENDCB;;} +#line 2034 "frame/parser.Y" + {(yyval.integer) = CallBack::EDITCB;;} break; case 889: -#line 2033 "frame/parser.Y" - {(yyval.integer) = CallBack::DELETECB;;} +#line 2035 "frame/parser.Y" + {(yyval.integer) = CallBack::EDITENDCB;;} break; case 890: -#line 2034 "frame/parser.Y" - {(yyval.integer) = CallBack::TEXTCB;;} +#line 2036 "frame/parser.Y" + {(yyval.integer) = CallBack::ROTATEBEGINCB;;} break; case 891: -#line 2035 "frame/parser.Y" - {(yyval.integer) = CallBack::COLORCB;;} +#line 2037 "frame/parser.Y" + {(yyval.integer) = CallBack::ROTATECB;;} break; case 892: -#line 2036 "frame/parser.Y" - {(yyval.integer) = CallBack::LINEWIDTHCB;;} +#line 2038 "frame/parser.Y" + {(yyval.integer) = CallBack::ROTATEENDCB;;} break; case 893: -#line 2037 "frame/parser.Y" - {(yyval.integer) = CallBack::PROPERTYCB;;} +#line 2039 "frame/parser.Y" + {(yyval.integer) = CallBack::DELETECB;;} break; case 894: -#line 2038 "frame/parser.Y" - {(yyval.integer) = CallBack::FONTCB;;} +#line 2040 "frame/parser.Y" + {(yyval.integer) = CallBack::TEXTCB;;} break; case 895: -#line 2039 "frame/parser.Y" - {(yyval.integer) = CallBack::KEYCB;;} +#line 2041 "frame/parser.Y" + {(yyval.integer) = CallBack::COLORCB;;} break; case 896: -#line 2040 "frame/parser.Y" - {(yyval.integer) = CallBack::UPDATECB;;} +#line 2042 "frame/parser.Y" + {(yyval.integer) = CallBack::LINEWIDTHCB;;} break; case 897: #line 2043 "frame/parser.Y" - {fr->markerCentroidCmd();;} + {(yyval.integer) = CallBack::PROPERTYCB;;} break; case 898: #line 2044 "frame/parser.Y" - {fr->markerCentroidCmd((yyvsp[(1) - (1)].integer));;} + {(yyval.integer) = CallBack::FONTCB;;} break; case 899: #line 2045 "frame/parser.Y" - {fr->markerCentroidAutoCmd((yyvsp[(2) - (2)].integer));;} + {(yyval.integer) = CallBack::KEYCB;;} break; case 900: #line 2046 "frame/parser.Y" - {fr->markerCentroidRadiusCmd((yyvsp[(2) - (2)].real));;} + {(yyval.integer) = CallBack::UPDATECB;;} break; case 901: -#line 2047 "frame/parser.Y" - {fr->markerCentroidIterationCmd((yyvsp[(2) - (2)].integer));;} +#line 2049 "frame/parser.Y" + {fr->markerCentroidCmd();;} break; case 902: -#line 2049 "frame/parser.Y" +#line 2050 "frame/parser.Y" + {fr->markerCentroidCmd((yyvsp[(1) - (1)].integer));;} + break; + + case 903: +#line 2051 "frame/parser.Y" + {fr->markerCentroidAutoCmd((yyvsp[(2) - (2)].integer));;} + break; + + case 904: +#line 2052 "frame/parser.Y" + {fr->markerCentroidRadiusCmd((yyvsp[(2) - (2)].real));;} + break; + + case 905: +#line 2053 "frame/parser.Y" + {fr->markerCentroidIterationCmd((yyvsp[(2) - (2)].integer));;} + break; + + case 906: +#line 2055 "frame/parser.Y" { fr->markerCentroidIterationCmd((yyvsp[(2) - (3)].integer)); fr->markerCentroidRadiusCmd((yyvsp[(3) - (3)].real)); ;} break; - case 903: -#line 2059 "frame/parser.Y" + case 907: +#line 2065 "frame/parser.Y" {fr->createCircleCmd(fr->mapToRef(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real)),Coord::CANVAS), (yyvsp[(4) - (5)].real), 0, currentColor,currentDash,currentWidth,currentFont, currentText,currentProps,NULL,taglist,cblist);;} break; - case 904: -#line 2067 "frame/parser.Y" + case 908: +#line 2073 "frame/parser.Y" {fr->createEllipseCmd(fr->mapToRef(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),Coord::CANVAS), Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)), (yyvsp[(6) - (7)].real), 0, @@ -9241,8 +9196,8 @@ currentText,currentProps,NULL,taglist,cblist);;} break; - case 905: -#line 2076 "frame/parser.Y" + case 909: +#line 2082 "frame/parser.Y" {fr->createBoxCmd(fr->mapToRef(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),Coord::CANVAS), Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)), (yyvsp[(6) - (7)].real), 0, @@ -9250,24 +9205,24 @@ currentText,currentProps,NULL,taglist,cblist);;} break; - case 906: -#line 2084 "frame/parser.Y" + case 910: +#line 2090 "frame/parser.Y" {fr->createPolygonCmd(fr->mapToRef(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)),Coord::CANVAS), Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)), 0, currentColor,currentDash,currentWidth,currentFont, currentText,currentProps,NULL,taglist,cblist);;} break; - case 907: -#line 2091 "frame/parser.Y" + case 911: +#line 2097 "frame/parser.Y" {fr->createSegmentCmd(fr->mapToRef(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)),Coord::CANVAS), Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)), currentColor,currentDash,currentWidth,currentFont, currentText,currentProps,NULL,taglist,cblist);;} break; - case 908: -#line 2098 "frame/parser.Y" + case 912: +#line 2104 "frame/parser.Y" {fr->createLineCmd(fr->mapToRef(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)),Coord::CANVAS), fr->mapToRef(Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)),Coord::CANVAS), 0, 0, @@ -9275,8 +9230,8 @@ currentText,currentProps,NULL,taglist,cblist);;} break; - case 909: -#line 2106 "frame/parser.Y" + case 913: +#line 2112 "frame/parser.Y" {fr->createVectCmd(fr->mapToRef(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)),Coord::CANVAS), fr->mapToRef(Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)),Coord::CANVAS), 1, @@ -9284,72 +9239,72 @@ currentText,currentProps,NULL,taglist,cblist);;} break; - case 910: -#line 2114 "frame/parser.Y" + case 914: +#line 2120 "frame/parser.Y" {fr->createTextCmd(fr->mapToRef(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real)),Coord::CANVAS), (yyvsp[(4) - (5)].real), 1, currentColor,currentDash,currentWidth,currentFont, currentText,currentProps,NULL,taglist,cblist);;} break; - case 911: -#line 2119 "frame/parser.Y" + case 915: +#line 2125 "frame/parser.Y" {fr->createPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),Coord::CANVAS), Point::CIRCLE, (yyvsp[(5) - (6)].integer), currentColor,currentDash,currentWidth,currentFont, currentText,currentProps,NULL,taglist,cblist);;} break; - case 912: -#line 2124 "frame/parser.Y" + case 916: +#line 2130 "frame/parser.Y" {fr->createPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),Coord::CANVAS), Point::BOX, (yyvsp[(5) - (6)].integer), currentColor,currentDash,currentWidth,currentFont, currentText,currentProps,NULL,taglist,cblist);;} break; - case 913: -#line 2129 "frame/parser.Y" + case 917: +#line 2135 "frame/parser.Y" {fr->createPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),Coord::CANVAS), Point::DIAMOND, (yyvsp[(5) - (6)].integer), currentColor,currentDash,currentWidth,currentFont, currentText,currentProps,NULL,taglist,cblist);;} break; - case 914: -#line 2134 "frame/parser.Y" + case 918: +#line 2140 "frame/parser.Y" {fr->createPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),Coord::CANVAS), Point::CROSS, (yyvsp[(5) - (6)].integer), currentColor,currentDash,currentWidth,currentFont, currentText,currentProps,NULL,taglist,cblist);;} break; - case 915: -#line 2139 "frame/parser.Y" + case 919: +#line 2145 "frame/parser.Y" {fr->createPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),Coord::CANVAS), Point::EX, (yyvsp[(5) - (6)].integer), currentColor,currentDash,currentWidth,currentFont, currentText,currentProps,NULL,taglist,cblist);;} break; - case 916: -#line 2144 "frame/parser.Y" + case 920: +#line 2150 "frame/parser.Y" {fr->createPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),Coord::CANVAS), Point::ARROW, (yyvsp[(5) - (6)].integer), currentColor,currentDash,currentWidth,currentFont, currentText,currentProps,NULL,taglist,cblist);;} break; - case 917: -#line 2149 "frame/parser.Y" + case 921: +#line 2155 "frame/parser.Y" {fr->createPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),Coord::CANVAS), Point::BOXCIRCLE, (yyvsp[(5) - (6)].integer), currentColor,currentDash,currentWidth,currentFont, currentText,currentProps,NULL,taglist,cblist);;} break; - case 918: -#line 2158 "frame/parser.Y" + case 922: +#line 2164 "frame/parser.Y" {fr->createRulerCmd(fr->mapToRef(Vector((yyvsp[(2) - (11)].real),(yyvsp[(3) - (11)].real)),Coord::CANVAS), fr->mapToRef(Vector((yyvsp[(4) - (11)].real),(yyvsp[(5) - (11)].real)),Coord::CANVAS), (Coord::CoordSystem)(yyvsp[(6) - (11)].integer), (Coord::SkyFrame)(yyvsp[(7) - (11)].integer), @@ -9358,8 +9313,8 @@ currentText,currentProps,NULL,taglist,cblist);;} break; - case 919: -#line 2168 "frame/parser.Y" + case 923: +#line 2174 "frame/parser.Y" {fr->createCompassCmd(fr->mapToRef(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),Coord::CANVAS), (yyvsp[(4) - (7)].real), "N", "E", 1, 1, @@ -9368,8 +9323,8 @@ currentText,currentProps,NULL,taglist,cblist);;} break; - case 920: -#line 2178 "frame/parser.Y" + case 924: +#line 2184 "frame/parser.Y" {fr->createProjectionCmd(fr->mapToRef(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),Coord::CANVAS), fr->mapToRef(Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),Coord::CANVAS), (yyvsp[(6) - (7)].real), @@ -9377,16 +9332,16 @@ currentText,currentProps,NULL,taglist,cblist);;} break; - case 921: -#line 2187 "frame/parser.Y" + case 925: +#line 2193 "frame/parser.Y" {fr->createAnnulusCmd(fr->mapToRef(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),Coord::CANVAS), (yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].integer), currentColor,currentDash,currentWidth,currentFont, currentText,currentProps,NULL,taglist,cblist);;} break; - case 922: -#line 2195 "frame/parser.Y" + case 926: +#line 2201 "frame/parser.Y" {fr->createEllipseAnnulusCmd(fr->mapToRef(Vector((yyvsp[(2) - (9)].real),(yyvsp[(3) - (9)].real)),Coord::CANVAS), Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real)), Vector((yyvsp[(6) - (9)].real),(yyvsp[(6) - (9)].real)*(yyvsp[(4) - (9)].real)/(yyvsp[(5) - (9)].real)),(yyvsp[(7) - (9)].integer), @@ -9395,8 +9350,8 @@ currentText,currentProps,NULL,taglist,cblist);;} break; - case 923: -#line 2205 "frame/parser.Y" + case 927: +#line 2211 "frame/parser.Y" {fr->createBoxAnnulusCmd(fr->mapToRef(Vector((yyvsp[(2) - (9)].real),(yyvsp[(3) - (9)].real)),Coord::CANVAS), Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real)),Vector((yyvsp[(6) - (9)].real),(yyvsp[(6) - (9)].real)*(yyvsp[(4) - (9)].real)/(yyvsp[(5) - (9)].real)),(yyvsp[(7) - (9)].integer), (yyvsp[(8) - (9)].real), @@ -9404,8 +9359,8 @@ currentText,currentProps,NULL,taglist,cblist);;} break; - case 924: -#line 2215 "frame/parser.Y" + case 928: +#line 2221 "frame/parser.Y" {fr->createCpandaCmd(fr->mapToRef(Vector((yyvsp[(2) - (10)].real),(yyvsp[(3) - (10)].real)),Coord::CANVAS), (yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real),(yyvsp[(6) - (10)].integer), (yyvsp[(7) - (10)].real),(yyvsp[(8) - (10)].real),(yyvsp[(9) - (10)].integer), @@ -9413,8 +9368,8 @@ currentText,currentProps,NULL,taglist,cblist);;} break; - case 925: -#line 2225 "frame/parser.Y" + case 929: +#line 2231 "frame/parser.Y" {fr->createEpandaCmd(fr->mapToRef(Vector((yyvsp[(2) - (12)].real),(yyvsp[(3) - (12)].real)),Coord::CANVAS), (yyvsp[(4) - (12)].real),(yyvsp[(5) - (12)].real),(yyvsp[(6) - (12)].integer), Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)), @@ -9424,8 +9379,8 @@ currentText,currentProps,NULL,taglist,cblist);;} break; - case 926: -#line 2237 "frame/parser.Y" + case 930: +#line 2243 "frame/parser.Y" {fr->createBpandaCmd(fr->mapToRef(Vector((yyvsp[(2) - (12)].real),(yyvsp[(3) - (12)].real)),Coord::CANVAS), (yyvsp[(4) - (12)].real),(yyvsp[(5) - (12)].real),(yyvsp[(6) - (12)].integer), Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)), @@ -9435,599 +9390,599 @@ currentText,currentProps,NULL,taglist,cblist);;} break; - case 927: -#line 2246 "frame/parser.Y" + case 931: +#line 2252 "frame/parser.Y" {fr->createCompositeCmd( currentColor,currentDash,currentWidth,currentFont, currentText,currentProps,NULL,taglist,cblist);;} break; - case 929: -#line 2254 "frame/parser.Y" + case 933: +#line 2260 "frame/parser.Y" {fr->createTemplateCmd(fr->mapToRef(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)),Coord::CANVAS), (yyvsp[(1) - (3)].str));;} break; - case 930: -#line 2256 "frame/parser.Y" + case 934: +#line 2262 "frame/parser.Y" {fr->createTemplateVarCmd(fr->mapToRef(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)),Coord::CANVAS), (yyvsp[(2) - (4)].str));;} break; - case 931: -#line 2258 "frame/parser.Y" + case 935: +#line 2264 "frame/parser.Y" { // backward compatibility fr->createTemplateVarCmd(fr->mapToRef(Vector((yyvsp[(1) - (4)].real),(yyvsp[(2) - (4)].real)),Coord::CANVAS), (yyvsp[(4) - (4)].str)); ;} break; - case 932: -#line 2263 "frame/parser.Y" + case 936: +#line 2269 "frame/parser.Y" {fr->createTemplateCmd(Vector((yyvsp[(4) - (4)].vector)),(Coord::CoordSystem)(yyvsp[(2) - (4)].integer),(Coord::SkyFrame)(yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str));;} break; - case 933: -#line 2266 "frame/parser.Y" + case 937: +#line 2272 "frame/parser.Y" {fr->markerDeleteAllCmd(0);;} break; - case 934: -#line 2267 "frame/parser.Y" + case 938: +#line 2273 "frame/parser.Y" {fr->markerDeleteAllCmd(1);;} break; - case 935: -#line 2268 "frame/parser.Y" + case 939: +#line 2274 "frame/parser.Y" { // backward compatibility fr->markerDeleteAllCmd(0); ;} break; - case 936: -#line 2275 "frame/parser.Y" + case 940: +#line 2281 "frame/parser.Y" {fr->markerEditBeginCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)),(yyvsp[(4) - (4)].integer));;} break; - case 937: -#line 2277 "frame/parser.Y" + case 941: +#line 2283 "frame/parser.Y" {fr->markerEditMotionCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)),(yyvsp[(4) - (4)].integer));;} break; - case 938: -#line 2278 "frame/parser.Y" + case 942: +#line 2284 "frame/parser.Y" {fr->markerEditEndCmd();;} break; - case 939: -#line 2281 "frame/parser.Y" + case 943: +#line 2287 "frame/parser.Y" {(yyval.integer) = Base::DS9;;} break; - case 940: -#line 2282 "frame/parser.Y" + case 944: +#line 2288 "frame/parser.Y" {(yyval.integer) = Base::XML;;} break; - case 941: -#line 2283 "frame/parser.Y" + case 945: +#line 2289 "frame/parser.Y" {(yyval.integer) = Base::CIAO;;} break; - case 942: -#line 2284 "frame/parser.Y" + case 946: +#line 2290 "frame/parser.Y" {(yyval.integer) = Base::SAOTNG;;} break; - case 943: -#line 2285 "frame/parser.Y" - {(yyval.integer) = Base::SAOIMAGE;;} - break; - - case 944: -#line 2286 "frame/parser.Y" - {(yyval.integer) = Base::PROS;;} - break; - - case 945: -#line 2287 "frame/parser.Y" - {(yyval.integer) = Base::RAWXY;;} - break; - case 947: #line 2291 "frame/parser.Y" - {fr->getMarkerColorCmd();;} + {(yyval.integer) = Base::SAOIMAGE;;} break; case 948: #line 2292 "frame/parser.Y" - {fr->getMarkerFontCmd();;} + {(yyval.integer) = Base::PROS;;} break; case 949: #line 2293 "frame/parser.Y" - {fr->getMarkerEpsilonCmd();;} - break; - - case 950: -#line 2294 "frame/parser.Y" - {fr->getMarkerHandleCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} + {(yyval.integer) = Base::RAWXY;;} break; case 951: -#line 2295 "frame/parser.Y" - {fr->getMarkerIdCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} +#line 2297 "frame/parser.Y" + {fr->getMarkerColorCmd();;} break; case 952: #line 2298 "frame/parser.Y" - {fr->getMarkerAnalysisPandaCmd((yyvsp[(1) - (8)].integer),(yyvsp[(4) - (8)].str),(yyvsp[(5) - (8)].str),(yyvsp[(6) - (8)].str),(Coord::CoordSystem)(yyvsp[(7) - (8)].integer),(yyvsp[(8) - (8)].integer));;} + {fr->getMarkerFontCmd();;} break; case 953: -#line 2300 "frame/parser.Y" - {fr->getMarkerAnalysisHistogramCmd((yyvsp[(1) - (6)].integer),(yyvsp[(4) - (6)].str),(yyvsp[(5) - (6)].str),(yyvsp[(6) - (6)].integer));;} +#line 2299 "frame/parser.Y" + {fr->getMarkerEpsilonCmd();;} break; case 954: -#line 2302 "frame/parser.Y" - {fr->getMarkerAnalysisPlot2dCmd((yyvsp[(1) - (10)].integer),(yyvsp[(4) - (10)].str),(yyvsp[(5) - (10)].str),(yyvsp[(6) - (10)].str),(yyvsp[(7) - (10)].str),(Coord::CoordSystem)(yyvsp[(8) - (10)].integer), (Coord::SkyFrame)(yyvsp[(9) - (10)].integer), (Marker::AnalysisMethod)(yyvsp[(10) - (10)].integer));;} +#line 2300 "frame/parser.Y" + {fr->getMarkerHandleCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} break; case 955: -#line 2304 "frame/parser.Y" - {fr->getMarkerAnalysisPlot3dCmd((yyvsp[(1) - (7)].integer),(yyvsp[(4) - (7)].str),(yyvsp[(5) - (7)].str),(Coord::CoordSystem)(yyvsp[(6) - (7)].integer), (Marker::AnalysisMethod)(yyvsp[(7) - (7)].integer));;} +#line 2301 "frame/parser.Y" + {fr->getMarkerIdCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} break; case 956: -#line 2306 "frame/parser.Y" - {fr->getMarkerAnalysisRadialCmd((yyvsp[(1) - (7)].integer),(yyvsp[(4) - (7)].str),(yyvsp[(5) - (7)].str),(yyvsp[(6) - (7)].str),(Coord::CoordSystem)(yyvsp[(7) - (7)].integer));;} +#line 2304 "frame/parser.Y" + {fr->getMarkerAnalysisPandaCmd((yyvsp[(1) - (8)].integer),(yyvsp[(4) - (8)].str),(yyvsp[(5) - (8)].str),(yyvsp[(6) - (8)].str),(Coord::CoordSystem)(yyvsp[(7) - (8)].integer),(yyvsp[(8) - (8)].integer));;} break; case 957: -#line 2308 "frame/parser.Y" - {fr->getMarkerAnalysisStatsCmd((yyvsp[(1) - (5)].integer),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyFrame)(yyvsp[(5) - (5)].integer));;} +#line 2306 "frame/parser.Y" + {fr->getMarkerAnalysisHistogramCmd((yyvsp[(1) - (6)].integer),(yyvsp[(4) - (6)].str),(yyvsp[(5) - (6)].str),(yyvsp[(6) - (6)].integer));;} break; case 958: -#line 2310 "frame/parser.Y" - {fr->getMarkerIdAllCmd();;} +#line 2308 "frame/parser.Y" + {fr->getMarkerAnalysisPlot2dCmd((yyvsp[(1) - (10)].integer),(yyvsp[(4) - (10)].str),(yyvsp[(5) - (10)].str),(yyvsp[(6) - (10)].str),(yyvsp[(7) - (10)].str),(Coord::CoordSystem)(yyvsp[(8) - (10)].integer), (Coord::SkyFrame)(yyvsp[(9) - (10)].integer), (Marker::AnalysisMethod)(yyvsp[(10) - (10)].integer));;} break; case 959: -#line 2311 "frame/parser.Y" - {fr->getMarkerAngleCmd((yyvsp[(1) - (2)].integer));;} +#line 2310 "frame/parser.Y" + {fr->getMarkerAnalysisPlot3dCmd((yyvsp[(1) - (7)].integer),(yyvsp[(4) - (7)].str),(yyvsp[(5) - (7)].str),(Coord::CoordSystem)(yyvsp[(6) - (7)].integer), (Marker::AnalysisMethod)(yyvsp[(7) - (7)].integer));;} break; case 960: #line 2312 "frame/parser.Y" - {fr->getMarkerAngleCmd((yyvsp[(1) - (3)].integer));;} + {fr->getMarkerAnalysisRadialCmd((yyvsp[(1) - (7)].integer),(yyvsp[(4) - (7)].str),(yyvsp[(5) - (7)].str),(yyvsp[(6) - (7)].str),(Coord::CoordSystem)(yyvsp[(7) - (7)].integer));;} break; case 961: #line 2314 "frame/parser.Y" - {fr->getMarkerAngleCmd((yyvsp[(1) - (4)].integer),(Coord::CoordSystem)(yyvsp[(3) - (4)].integer), (Coord::SkyFrame)(yyvsp[(4) - (4)].integer));;} + {fr->getMarkerAnalysisStatsCmd((yyvsp[(1) - (5)].integer),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyFrame)(yyvsp[(5) - (5)].integer));;} break; case 962: #line 2316 "frame/parser.Y" - {fr->getMarkerAnnulusRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} + {fr->getMarkerIdAllCmd();;} break; case 963: -#line 2318 "frame/parser.Y" - {fr->getMarkerBoxFillCmd((yyvsp[(1) - (3)].integer));;} +#line 2317 "frame/parser.Y" + {fr->getMarkerAngleCmd((yyvsp[(1) - (2)].integer));;} break; case 964: -#line 2320 "frame/parser.Y" - {fr->getMarkerBoxAnnulusRadiusCmd((yyvsp[(1) - (5)].integer),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer),(Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} +#line 2318 "frame/parser.Y" + {fr->getMarkerAngleCmd((yyvsp[(1) - (3)].integer));;} break; case 965: -#line 2322 "frame/parser.Y" - {fr->getMarkerBoxRadiusCmd((yyvsp[(1) - (5)].integer),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} +#line 2320 "frame/parser.Y" + {fr->getMarkerAngleCmd((yyvsp[(1) - (4)].integer),(Coord::CoordSystem)(yyvsp[(3) - (4)].integer), (Coord::SkyFrame)(yyvsp[(4) - (4)].integer));;} break; case 966: -#line 2323 "frame/parser.Y" - {fr->getMarkerBpandaAnglesCmd((yyvsp[(1) - (3)].integer));;} +#line 2322 "frame/parser.Y" + {fr->getMarkerAnnulusRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} break; case 967: #line 2324 "frame/parser.Y" - {fr->getMarkerBpandaAnglesCmd((yyvsp[(1) - (4)].integer));;} + {fr->getMarkerBoxFillCmd((yyvsp[(1) - (3)].integer));;} break; case 968: #line 2326 "frame/parser.Y" - {fr->getMarkerBpandaAnglesCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyFrame)(yyvsp[(5) - (5)].integer));;} + {fr->getMarkerBoxAnnulusRadiusCmd((yyvsp[(1) - (5)].integer),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer),(Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} break; case 969: #line 2328 "frame/parser.Y" - {fr->getMarkerBpandaRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} + {fr->getMarkerBoxRadiusCmd((yyvsp[(1) - (5)].integer),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} break; case 970: -#line 2331 "frame/parser.Y" - {fr->getMarkerCenterCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(3) - (5)].integer), (Coord::SkyFrame)(yyvsp[(4) - (5)].integer), - (Coord::SkyFormat)(yyvsp[(5) - (5)].integer));;} +#line 2329 "frame/parser.Y" + {fr->getMarkerBpandaAnglesCmd((yyvsp[(1) - (3)].integer));;} break; case 971: -#line 2333 "frame/parser.Y" - {fr->getMarkerCircleFillCmd((yyvsp[(1) - (3)].integer));;} +#line 2330 "frame/parser.Y" + {fr->getMarkerBpandaAnglesCmd((yyvsp[(1) - (4)].integer));;} break; case 972: -#line 2335 "frame/parser.Y" - {fr->getMarkerCircleRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} +#line 2332 "frame/parser.Y" + {fr->getMarkerBpandaAnglesCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyFrame)(yyvsp[(5) - (5)].integer));;} break; case 973: -#line 2336 "frame/parser.Y" - {fr->getMarkerColorCmd((yyvsp[(1) - (2)].integer));;} +#line 2334 "frame/parser.Y" + {fr->getMarkerBpandaRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} break; case 974: #line 2337 "frame/parser.Y" - {fr->getMarkerCompassArrowCmd((yyvsp[(1) - (3)].integer));;} + {fr->getMarkerCenterCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(3) - (5)].integer), (Coord::SkyFrame)(yyvsp[(4) - (5)].integer), + (Coord::SkyFormat)(yyvsp[(5) - (5)].integer));;} break; case 975: -#line 2338 "frame/parser.Y" - {fr->getMarkerCompassLabelCmd((yyvsp[(1) - (3)].integer));;} +#line 2339 "frame/parser.Y" + {fr->getMarkerCircleFillCmd((yyvsp[(1) - (3)].integer));;} break; case 976: -#line 2340 "frame/parser.Y" - {fr->getMarkerCompassRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} +#line 2341 "frame/parser.Y" + {fr->getMarkerCircleRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} break; case 977: -#line 2341 "frame/parser.Y" - {fr->getMarkerCompassSystemCmd((yyvsp[(1) - (3)].integer));;} +#line 2342 "frame/parser.Y" + {fr->getMarkerColorCmd((yyvsp[(1) - (2)].integer));;} break; case 978: -#line 2342 "frame/parser.Y" - {fr->getMarkerCompositeCmd((yyvsp[(1) - (3)].integer));;} +#line 2343 "frame/parser.Y" + {fr->getMarkerCompassArrowCmd((yyvsp[(1) - (3)].integer));;} break; case 979: -#line 2343 "frame/parser.Y" - {fr->getMarkerCpandaAnglesCmd((yyvsp[(1) - (3)].integer));;} +#line 2344 "frame/parser.Y" + {fr->getMarkerCompassLabelCmd((yyvsp[(1) - (3)].integer));;} break; case 980: -#line 2344 "frame/parser.Y" - {fr->getMarkerCpandaAnglesCmd((yyvsp[(1) - (4)].integer));;} +#line 2346 "frame/parser.Y" + {fr->getMarkerCompassRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} break; case 981: -#line 2346 "frame/parser.Y" - {fr->getMarkerCpandaAnglesCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyFrame)(yyvsp[(5) - (5)].integer));;} +#line 2347 "frame/parser.Y" + {fr->getMarkerCompassSystemCmd((yyvsp[(1) - (3)].integer));;} break; case 982: #line 2348 "frame/parser.Y" - {fr->getMarkerCpandaRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} + {fr->getMarkerCompositeCmd((yyvsp[(1) - (3)].integer));;} break; case 983: #line 2349 "frame/parser.Y" - {fr->getMarkerEllipseFillCmd((yyvsp[(1) - (3)].integer));;} + {fr->getMarkerCpandaAnglesCmd((yyvsp[(1) - (3)].integer));;} break; case 984: -#line 2351 "frame/parser.Y" - {fr->getMarkerEllipseRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} +#line 2350 "frame/parser.Y" + {fr->getMarkerCpandaAnglesCmd((yyvsp[(1) - (4)].integer));;} break; case 985: -#line 2353 "frame/parser.Y" - {fr->getMarkerEllipseAnnulusRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), - (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} +#line 2352 "frame/parser.Y" + {fr->getMarkerCpandaAnglesCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyFrame)(yyvsp[(5) - (5)].integer));;} break; case 986: -#line 2355 "frame/parser.Y" - {fr->getMarkerEpandaAnglesCmd((yyvsp[(1) - (3)].integer));;} +#line 2354 "frame/parser.Y" + {fr->getMarkerCpandaRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} break; case 987: -#line 2356 "frame/parser.Y" - {fr->getMarkerEpandaAnglesCmd((yyvsp[(1) - (4)].integer));;} +#line 2355 "frame/parser.Y" + {fr->getMarkerEllipseFillCmd((yyvsp[(1) - (3)].integer));;} break; case 988: -#line 2358 "frame/parser.Y" - {fr->getMarkerEpandaAnglesCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyFrame)(yyvsp[(5) - (5)].integer));;} +#line 2357 "frame/parser.Y" + {fr->getMarkerEllipseRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} break; case 989: -#line 2360 "frame/parser.Y" - {fr->getMarkerEpandaRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} +#line 2359 "frame/parser.Y" + {fr->getMarkerEllipseAnnulusRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), + (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} break; case 990: #line 2361 "frame/parser.Y" - {fr->getMarkerFontCmd((yyvsp[(1) - (2)].integer));;} + {fr->getMarkerEpandaAnglesCmd((yyvsp[(1) - (3)].integer));;} break; case 991: #line 2362 "frame/parser.Y" - {fr->getMarkerHighlitedCmd((yyvsp[(1) - (2)].integer));;} + {fr->getMarkerEpandaAnglesCmd((yyvsp[(1) - (4)].integer));;} break; case 992: -#line 2363 "frame/parser.Y" - {fr->getMarkerLineArrowCmd((yyvsp[(1) - (3)].integer));;} +#line 2364 "frame/parser.Y" + {fr->getMarkerEpandaAnglesCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyFrame)(yyvsp[(5) - (5)].integer));;} break; case 993: -#line 2365 "frame/parser.Y" - {fr->getMarkerLineLengthCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} +#line 2366 "frame/parser.Y" + {fr->getMarkerEpandaRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} break; case 994: #line 2367 "frame/parser.Y" - {fr->getMarkerLineCmd((yyvsp[(1) - (6)].integer), (Coord::CoordSystem)(yyvsp[(4) - (6)].integer), - (Coord::SkyFrame)(yyvsp[(5) - (6)].integer), (Coord::SkyFormat)(yyvsp[(6) - (6)].integer));;} + {fr->getMarkerFontCmd((yyvsp[(1) - (2)].integer));;} break; case 995: -#line 2370 "frame/parser.Y" - {fr->getMarkerMapLenFromRefCmd((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].real), - (Coord::CoordSystem)(yyvsp[(5) - (6)].integer),(Coord::DistFormat)(yyvsp[(6) - (6)].integer));;} +#line 2368 "frame/parser.Y" + {fr->getMarkerHighlitedCmd((yyvsp[(1) - (2)].integer));;} break; case 996: -#line 2373 "frame/parser.Y" - {fr->getMarkerPolygonFillCmd((yyvsp[(1) - (3)].integer));;} +#line 2369 "frame/parser.Y" + {fr->getMarkerLineArrowCmd((yyvsp[(1) - (3)].integer));;} break; case 997: -#line 2374 "frame/parser.Y" - {fr->getMarkerPointShapeCmd((yyvsp[(1) - (3)].integer));;} +#line 2371 "frame/parser.Y" + {fr->getMarkerLineLengthCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} break; case 998: -#line 2375 "frame/parser.Y" - {fr->getMarkerPointSizeCmd((yyvsp[(1) - (3)].integer));;} +#line 2373 "frame/parser.Y" + {fr->getMarkerLineCmd((yyvsp[(1) - (6)].integer), (Coord::CoordSystem)(yyvsp[(4) - (6)].integer), + (Coord::SkyFrame)(yyvsp[(5) - (6)].integer), (Coord::SkyFormat)(yyvsp[(6) - (6)].integer));;} break; case 999: -#line 2377 "frame/parser.Y" - {fr->getMarkerProjectionPointsCmd((yyvsp[(1) - (6)].integer), (Coord::CoordSystem)(yyvsp[(4) - (6)].integer), - (Coord::SkyFrame)(yyvsp[(5) - (6)].integer), (Coord::SkyFormat)(yyvsp[(6) - (6)].integer));;} +#line 2376 "frame/parser.Y" + {fr->getMarkerMapLenFromRefCmd((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].real), + (Coord::CoordSystem)(yyvsp[(5) - (6)].integer),(Coord::DistFormat)(yyvsp[(6) - (6)].integer));;} break; case 1000: -#line 2380 "frame/parser.Y" - {fr->getMarkerProjectionLengthCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), - (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} +#line 2379 "frame/parser.Y" + {fr->getMarkerPolygonFillCmd((yyvsp[(1) - (3)].integer));;} break; case 1001: -#line 2383 "frame/parser.Y" - {fr->getMarkerProjectionWidthCmd((yyvsp[(1) - (5)].integer),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer),(Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} +#line 2380 "frame/parser.Y" + {fr->getMarkerPointShapeCmd((yyvsp[(1) - (3)].integer));;} break; case 1002: -#line 2384 "frame/parser.Y" - {fr->getMarkerPropertyCmd((yyvsp[(1) - (2)].integer));;} +#line 2381 "frame/parser.Y" + {fr->getMarkerPointSizeCmd((yyvsp[(1) - (3)].integer));;} break; case 1003: -#line 2385 "frame/parser.Y" - {fr->getMarkerPropertyCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;} +#line 2383 "frame/parser.Y" + {fr->getMarkerProjectionPointsCmd((yyvsp[(1) - (6)].integer), (Coord::CoordSystem)(yyvsp[(4) - (6)].integer), + (Coord::SkyFrame)(yyvsp[(5) - (6)].integer), (Coord::SkyFormat)(yyvsp[(6) - (6)].integer));;} break; case 1004: #line 2386 "frame/parser.Y" - {fr->getMarkerRulerDistSpecCmd((yyvsp[(1) - (3)].integer));;} + {fr->getMarkerProjectionLengthCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), + (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} break; case 1005: -#line 2388 "frame/parser.Y" - {fr->getMarkerRulerLengthCmd((yyvsp[(1) - (5)].integer),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer),(Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} +#line 2389 "frame/parser.Y" + {fr->getMarkerProjectionWidthCmd((yyvsp[(1) - (5)].integer),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer),(Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} break; case 1006: #line 2390 "frame/parser.Y" - {fr->getMarkerRulerPointCmd((yyvsp[(1) - (6)].integer), (Coord::CoordSystem)(yyvsp[(4) - (6)].integer), - (Coord::SkyFrame)(yyvsp[(5) - (6)].integer), (Coord::SkyFormat)(yyvsp[(6) - (6)].integer));;} + {fr->getMarkerPropertyCmd((yyvsp[(1) - (2)].integer));;} break; case 1007: -#line 2392 "frame/parser.Y" - {fr->getMarkerRulerSystemCmd((yyvsp[(1) - (3)].integer));;} +#line 2391 "frame/parser.Y" + {fr->getMarkerPropertyCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;} break; case 1008: -#line 2393 "frame/parser.Y" - {fr->getMarkerSelectedCmd((yyvsp[(1) - (2)].integer));;} +#line 2392 "frame/parser.Y" + {fr->getMarkerRulerDistSpecCmd((yyvsp[(1) - (3)].integer));;} break; case 1009: -#line 2395 "frame/parser.Y" - {fr->getMarkerTagCmd((yyvsp[(1) - (2)].integer));;} +#line 2394 "frame/parser.Y" + {fr->getMarkerRulerLengthCmd((yyvsp[(1) - (5)].integer),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer),(Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} break; case 1010: #line 2396 "frame/parser.Y" - {fr->getMarkerTagCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;} + {fr->getMarkerRulerPointCmd((yyvsp[(1) - (6)].integer), (Coord::CoordSystem)(yyvsp[(4) - (6)].integer), + (Coord::SkyFrame)(yyvsp[(5) - (6)].integer), (Coord::SkyFormat)(yyvsp[(6) - (6)].integer));;} break; case 1011: -#line 2397 "frame/parser.Y" - {fr->getMarkerTextCmd((yyvsp[(1) - (2)].integer));;} +#line 2398 "frame/parser.Y" + {fr->getMarkerRulerSystemCmd((yyvsp[(1) - (3)].integer));;} break; case 1012: -#line 2398 "frame/parser.Y" - {fr->getMarkerTextRotateCmd((yyvsp[(1) - (3)].integer));;} +#line 2399 "frame/parser.Y" + {fr->getMarkerSelectedCmd((yyvsp[(1) - (2)].integer));;} break; case 1013: -#line 2399 "frame/parser.Y" - {fr->getMarkerTypeCmd((yyvsp[(1) - (2)].integer));;} +#line 2401 "frame/parser.Y" + {fr->getMarkerTagCmd((yyvsp[(1) - (2)].integer));;} break; case 1014: -#line 2401 "frame/parser.Y" - {fr->getMarkerVectorArrowCmd((yyvsp[(1) - (3)].integer));;} +#line 2402 "frame/parser.Y" + {fr->getMarkerTagCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;} break; case 1015: #line 2403 "frame/parser.Y" - {fr->getMarkerVectorLengthCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} + {fr->getMarkerTextCmd((yyvsp[(1) - (2)].integer));;} break; case 1016: -#line 2405 "frame/parser.Y" - {fr->getMarkerVectorCmd((yyvsp[(1) - (6)].integer), (Coord::CoordSystem)(yyvsp[(4) - (6)].integer), - (Coord::SkyFrame)(yyvsp[(5) - (6)].integer), (Coord::SkyFormat)(yyvsp[(6) - (6)].integer));;} +#line 2404 "frame/parser.Y" + {fr->getMarkerTextRotateCmd((yyvsp[(1) - (3)].integer));;} break; case 1017: +#line 2405 "frame/parser.Y" + {fr->getMarkerTypeCmd((yyvsp[(1) - (2)].integer));;} + break; + + case 1018: #line 2407 "frame/parser.Y" - {fr->getMarkerLineWidthCmd((yyvsp[(1) - (2)].integer));;} + {fr->getMarkerVectorArrowCmd((yyvsp[(1) - (3)].integer));;} break; case 1019: #line 2409 "frame/parser.Y" - {fr->getMarkerHighlitedNumberCmd();;} + {fr->getMarkerVectorLengthCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::DistFormat)(yyvsp[(5) - (5)].integer));;} break; case 1020: -#line 2410 "frame/parser.Y" - {fr->getMarkerNumberCmd();;} +#line 2411 "frame/parser.Y" + {fr->getMarkerVectorCmd((yyvsp[(1) - (6)].integer), (Coord::CoordSystem)(yyvsp[(4) - (6)].integer), + (Coord::SkyFrame)(yyvsp[(5) - (6)].integer), (Coord::SkyFormat)(yyvsp[(6) - (6)].integer));;} break; case 1021: -#line 2412 "frame/parser.Y" - {fr->getMarkerPolygonSegmentCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;} - break; - - case 1022: -#line 2414 "frame/parser.Y" - {fr->getMarkerSegmentSegmentCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;} +#line 2413 "frame/parser.Y" + {fr->getMarkerLineWidthCmd((yyvsp[(1) - (2)].integer));;} break; case 1023: #line 2415 "frame/parser.Y" - {fr->getMarkerPreserveCmd();;} + {fr->getMarkerHighlitedNumberCmd();;} break; case 1024: #line 2416 "frame/parser.Y" - {fr->getMarkerPropertyCmd((yyvsp[(2) - (2)].integer));;} + {fr->getMarkerNumberCmd();;} break; - case 1026: + case 1025: #line 2418 "frame/parser.Y" - {fr->getMarkerSelectedNumberCmd();;} + {fr->getMarkerPolygonSegmentCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;} + break; + + case 1026: +#line 2420 "frame/parser.Y" + {fr->getMarkerSegmentSegmentCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;} + break; + + case 1027: +#line 2421 "frame/parser.Y" + {fr->getMarkerPreserveCmd();;} break; case 1028: #line 2422 "frame/parser.Y" + {fr->getMarkerPropertyCmd((yyvsp[(2) - (2)].integer));;} + break; + + case 1030: +#line 2424 "frame/parser.Y" + {fr->getMarkerSelectedNumberCmd();;} + break; + + case 1032: +#line 2428 "frame/parser.Y" {fr->getMarkerColorCmd((yyvsp[(1) - (2)].str));;} break; - case 1029: -#line 2423 "frame/parser.Y" + case 1033: +#line 2429 "frame/parser.Y" {fr->getMarkerFontCmd((yyvsp[(1) - (2)].str));;} break; - case 1030: -#line 2424 "frame/parser.Y" + case 1034: +#line 2430 "frame/parser.Y" {fr->getMarkerIdCmd((yyvsp[(1) - (2)].str));;} break; - case 1031: -#line 2425 "frame/parser.Y" + case 1035: +#line 2431 "frame/parser.Y" {fr->getMarkerPropertyCmd((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].integer));;} break; - case 1032: -#line 2426 "frame/parser.Y" + case 1036: +#line 2432 "frame/parser.Y" {fr->getMarkerTagCmd((yyvsp[(1) - (2)].str));;} break; - case 1033: -#line 2427 "frame/parser.Y" + case 1037: +#line 2433 "frame/parser.Y" {fr->getMarkerTagNumberCmd((yyvsp[(1) - (3)].str));;} break; - - case 1034: -#line 2429 "frame/parser.Y" + + case 1038: +#line 2435 "frame/parser.Y" {fr->getMarkerTagsCmd();;} break; - case 1035: -#line 2430 "frame/parser.Y" + case 1039: +#line 2436 "frame/parser.Y" {fr->getMarkerTagDefaultNameCmd();;} break; - case 1036: -#line 2432 "frame/parser.Y" + case 1040: +#line 2438 "frame/parser.Y" {fr->getMarkerLineWidthCmd();;} break; - case 1037: -#line 2435 "frame/parser.Y" + case 1041: +#line 2441 "frame/parser.Y" {fr->getMarkerCentroidAutoCmd();;} break; - case 1038: -#line 2436 "frame/parser.Y" + case 1042: +#line 2442 "frame/parser.Y" {fr->getMarkerCentroidRadiusCmd();;} break; - case 1039: -#line 2437 "frame/parser.Y" + case 1043: +#line 2443 "frame/parser.Y" {fr->getMarkerCentroidIterationCmd();;} break; - case 1040: -#line 2438 "frame/parser.Y" + case 1044: +#line 2444 "frame/parser.Y" {fr->getMarkerCentroidOptionCmd();;} break; - case 1041: -#line 2441 "frame/parser.Y" + case 1045: +#line 2447 "frame/parser.Y" {fr->getMarkerHighlitedCmd();;} break; - case 1042: -#line 2442 "frame/parser.Y" + case 1046: +#line 2448 "frame/parser.Y" {fr->getMarkerHighlitedCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;} break; - case 1043: -#line 2445 "frame/parser.Y" + case 1047: +#line 2451 "frame/parser.Y" {fr->getMarkerSelectedCmd();;} break; - case 1044: -#line 2446 "frame/parser.Y" + case 1048: +#line 2452 "frame/parser.Y" {fr->getMarkerSelectedCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;} break; - case 1045: -#line 2449 "frame/parser.Y" + case 1049: +#line 2455 "frame/parser.Y" {fr->getMarkerShowCmd();;} break; - case 1046: -#line 2450 "frame/parser.Y" + case 1050: +#line 2456 "frame/parser.Y" {fr->getMarkerShowTextCmd();;} break; - case 1047: -#line 2453 "frame/parser.Y" + case 1051: +#line 2459 "frame/parser.Y" { strncpy(currentFont, "helvetica 10 normal roman", 32); strncpy(currentColor, "green", 16); @@ -10041,942 +9996,942 @@ ;} break; - case 1048: -#line 2466 "frame/parser.Y" + case 1052: +#line 2472 "frame/parser.Y" {fr->markerLayerCmd(Base::USER);;} break; - case 1049: -#line 2467 "frame/parser.Y" + case 1053: +#line 2473 "frame/parser.Y" { // backward compatibility fr->markerLayerCmd(Base::USER); ;} break; - case 1050: -#line 2471 "frame/parser.Y" + case 1054: +#line 2477 "frame/parser.Y" {fr->markerLayerCmd(Base::USER);;} break; - case 1051: -#line 2472 "frame/parser.Y" + case 1055: +#line 2478 "frame/parser.Y" { // backward compatibility fr->markerLayerCmd(Base::USER); ;} break; - case 1052: -#line 2476 "frame/parser.Y" + case 1056: +#line 2482 "frame/parser.Y" {fr->markerLayerCmd(Base::CATALOG);;} break; - case 1053: -#line 2477 "frame/parser.Y" + case 1057: +#line 2483 "frame/parser.Y" {fr->markerLayerCmd(Base::FOOTPRINT);;} break; - case 1054: -#line 2482 "frame/parser.Y" + case 1058: +#line 2488 "frame/parser.Y" {fr->markerListCmd((Base::MarkerFormat)(yyvsp[(1) - (7)].integer), (Coord::CoordSystem)(yyvsp[(2) - (7)].integer), (Coord::SkyFrame)(yyvsp[(3) - (7)].integer), (Coord::SkyFormat)(yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].integer), 0, propQMask, propQValue, taglist);;} break; - case 1055: -#line 2486 "frame/parser.Y" + case 1059: +#line 2492 "frame/parser.Y" {fr->markerListCmd((Base::MarkerFormat)(yyvsp[(2) - (8)].integer), (Coord::CoordSystem)(yyvsp[(3) - (8)].integer), (Coord::SkyFrame)(yyvsp[(4) - (8)].integer), (Coord::SkyFormat)(yyvsp[(5) - (8)].integer), (yyvsp[(6) - (8)].integer), 1, propQMask, propQValue, taglist);;} break; - case 1056: -#line 2491 "frame/parser.Y" + case 1060: +#line 2497 "frame/parser.Y" {fr->markerLoadCmd((Base::MarkerFormat)(yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].str),0,"green",Coord::PHYSICAL,Coord::FK5);;} break; - case 1057: -#line 2493 "frame/parser.Y" + case 1061: +#line 2499 "frame/parser.Y" {fr->markerLoadCmd((Base::MarkerFormat)(yyvsp[(1) - (6)].integer),(yyvsp[(2) - (6)].str),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].str), (Coord::CoordSystem)(yyvsp[(5) - (6)].integer),(Coord::SkyFrame)(yyvsp[(6) - (6)].integer));;} break; - case 1058: -#line 2496 "frame/parser.Y" + case 1062: +#line 2502 "frame/parser.Y" {fr->markerLoadCmd((Base::MarkerFormat)(yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].integer),0,"green",Coord::PHYSICAL,Coord::FK5);;} break; - case 1059: -#line 2498 "frame/parser.Y" + case 1063: +#line 2504 "frame/parser.Y" {fr->markerLoadCmd((Base::MarkerFormat)(yyvsp[(1) - (6)].integer),(yyvsp[(2) - (6)].integer),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].str), (Coord::CoordSystem)(yyvsp[(5) - (6)].integer),(Coord::SkyFrame)(yyvsp[(6) - (6)].integer));;} break; - case 1060: -#line 2501 "frame/parser.Y" + case 1064: +#line 2507 "frame/parser.Y" {fr->markerLoadFitsCmd((yyvsp[(2) - (2)].str), "green");;} break; - case 1061: -#line 2503 "frame/parser.Y" + case 1065: +#line 2509 "frame/parser.Y" {fr->markerLoadFitsCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str));;} break; - case 1062: -#line 2506 "frame/parser.Y" + case 1066: +#line 2512 "frame/parser.Y" {fr->markerMoveCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;} break; - case 1063: -#line 2507 "frame/parser.Y" + case 1067: +#line 2513 "frame/parser.Y" {fr->markerFrontCmd();;} break; - case 1064: -#line 2508 "frame/parser.Y" + case 1068: +#line 2514 "frame/parser.Y" {fr->markerBackCmd();;} break; - case 1065: -#line 2509 "frame/parser.Y" + case 1069: +#line 2515 "frame/parser.Y" {fr->markerMoveBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} break; - case 1066: -#line 2510 "frame/parser.Y" + case 1070: +#line 2516 "frame/parser.Y" {fr->markerMoveMotionCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} break; - case 1067: -#line 2511 "frame/parser.Y" + case 1071: +#line 2517 "frame/parser.Y" {fr->markerMoveEndCmd();;} break; - case 1068: -#line 2513 "frame/parser.Y" + case 1072: +#line 2519 "frame/parser.Y" {fr->markerMoveToCmd(Vector((yyvsp[(4) - (4)].vector)), (Coord::CoordSystem)(yyvsp[(2) - (4)].integer), (Coord::SkyFrame)(yyvsp[(3) - (4)].integer));;} break; - case 1071: -#line 2520 "frame/parser.Y" + case 1075: +#line 2526 "frame/parser.Y" {setProps(¤tProps,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;} break; - case 1072: -#line 2521 "frame/parser.Y" + case 1076: +#line 2527 "frame/parser.Y" {strncpy(currentColor,(yyvsp[(3) - (3)].str),16);;} break; - case 1073: -#line 2522 "frame/parser.Y" + case 1077: +#line 2528 "frame/parser.Y" {currentDash[0]=(yyvsp[(3) - (4)].integer);currentDash[1]=(yyvsp[(4) - (4)].integer);;} break; - case 1074: -#line 2523 "frame/parser.Y" + case 1078: +#line 2529 "frame/parser.Y" {currentWidth = (yyvsp[(3) - (3)].integer);;} break; - case 1075: -#line 2524 "frame/parser.Y" + case 1079: +#line 2530 "frame/parser.Y" {strncpy(currentFont,(yyvsp[(3) - (3)].str),32);;} break; - case 1076: -#line 2525 "frame/parser.Y" + case 1080: +#line 2531 "frame/parser.Y" {strncpy(currentText,(yyvsp[(3) - (3)].str),80);;} break; - case 1079: -#line 2530 "frame/parser.Y" + case 1083: +#line 2536 "frame/parser.Y" {(yyval.integer) = Marker::NONE;;} break; - case 1080: -#line 2531 "frame/parser.Y" + case 1084: +#line 2537 "frame/parser.Y" {(yyval.integer) = Marker::SELECT;;} break; - case 1081: -#line 2532 "frame/parser.Y" + case 1085: +#line 2538 "frame/parser.Y" {(yyval.integer) = Marker::HIGHLITE;;} break; - case 1082: -#line 2533 "frame/parser.Y" + case 1086: +#line 2539 "frame/parser.Y" {(yyval.integer) = Marker::DASH;;} break; - case 1083: -#line 2534 "frame/parser.Y" + case 1087: +#line 2540 "frame/parser.Y" {(yyval.integer) = Marker::FIXED;;} break; - case 1084: -#line 2535 "frame/parser.Y" + case 1088: +#line 2541 "frame/parser.Y" {(yyval.integer) = Marker::EDIT;;} break; - case 1085: -#line 2536 "frame/parser.Y" + case 1089: +#line 2542 "frame/parser.Y" {(yyval.integer) = Marker::MOVE;;} break; - case 1086: -#line 2537 "frame/parser.Y" + case 1090: +#line 2543 "frame/parser.Y" {(yyval.integer) = Marker::ROTATE;;} break; - case 1087: -#line 2538 "frame/parser.Y" + case 1091: +#line 2544 "frame/parser.Y" {(yyval.integer) = Marker::DELETE;;} break; - case 1088: -#line 2539 "frame/parser.Y" + case 1092: +#line 2545 "frame/parser.Y" {(yyval.integer) = Marker::INCLUDE;;} break; - case 1089: -#line 2540 "frame/parser.Y" + case 1093: +#line 2546 "frame/parser.Y" {(yyval.integer) = Marker::SOURCE;;} break; - case 1092: -#line 2547 "frame/parser.Y" + case 1096: +#line 2553 "frame/parser.Y" {propQMask=0;propQValue=0;;} break; - case 1093: -#line 2548 "frame/parser.Y" + case 1097: +#line 2554 "frame/parser.Y" {propQMask=0;propQValue=0;;} break; - case 1095: -#line 2552 "frame/parser.Y" + case 1099: +#line 2558 "frame/parser.Y" {fr->markerSaveCmd((yyvsp[(1) - (6)].str), (Base::MarkerFormat)(yyvsp[(2) - (6)].integer), (Coord::CoordSystem)(yyvsp[(3) - (6)].integer), (Coord::SkyFrame)(yyvsp[(4) - (6)].integer), (Coord::SkyFormat)(yyvsp[(5) - (6)].integer), (yyvsp[(6) - (6)].integer), 0);;} break; - case 1096: -#line 2554 "frame/parser.Y" + case 1100: +#line 2560 "frame/parser.Y" {fr->markerSaveCmd((yyvsp[(2) - (7)].str), (Base::MarkerFormat)(yyvsp[(3) - (7)].integer), (Coord::CoordSystem)(yyvsp[(4) - (7)].integer), (Coord::SkyFrame)(yyvsp[(5) - (7)].integer), (Coord::SkyFormat)(yyvsp[(6) - (7)].integer), (yyvsp[(7) - (7)].integer), 1);;} break; - case 1097: -#line 2555 "frame/parser.Y" + case 1101: +#line 2561 "frame/parser.Y" {fr->markerSaveTemplateCmd((yyvsp[(2) - (2)].str));;} break; - case 1098: -#line 2558 "frame/parser.Y" + case 1102: +#line 2564 "frame/parser.Y" {fr->markerSelectAllCmd();;} break; - case 1099: -#line 2559 "frame/parser.Y" + case 1103: +#line 2565 "frame/parser.Y" {fr->markerSelectOnlyCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} break; - case 1100: -#line 2560 "frame/parser.Y" + case 1104: +#line 2566 "frame/parser.Y" {fr->markerSelectToggleCmd();;} break; - case 1101: -#line 2561 "frame/parser.Y" + case 1105: +#line 2567 "frame/parser.Y" {fr->markerSelectToggleCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} break; - case 1102: -#line 2564 "frame/parser.Y" + case 1106: +#line 2570 "frame/parser.Y" {fr->markerShowCmd((yyvsp[(1) - (1)].integer));;} break; - case 1103: -#line 2565 "frame/parser.Y" + case 1107: +#line 2571 "frame/parser.Y" {fr->markerShowTextCmd((yyvsp[(2) - (2)].integer));;} break; - case 1106: -#line 2573 "frame/parser.Y" + case 1110: +#line 2579 "frame/parser.Y" {propQMask |= (yyvsp[(1) - (3)].integer); setProps(&propQValue,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;} break; - case 1107: -#line 2576 "frame/parser.Y" + case 1111: +#line 2582 "frame/parser.Y" {taglist.deleteAll();;} break; - case 1108: -#line 2577 "frame/parser.Y" + case 1112: +#line 2583 "frame/parser.Y" {taglist.deleteAll();;} break; - case 1112: -#line 2584 "frame/parser.Y" + case 1116: +#line 2590 "frame/parser.Y" {taglist.append(new Tag((yyvsp[(3) - (3)].str)));;} break; - case 1113: -#line 2587 "frame/parser.Y" + case 1117: +#line 2593 "frame/parser.Y" {cblist.append( new CallBack(fr->getInterp(),(CallBack::Type)(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str)));;} break; - case 1114: -#line 2591 "frame/parser.Y" + case 1118: +#line 2597 "frame/parser.Y" {fr->maskClearCmd();;} break; - case 1115: -#line 2592 "frame/parser.Y" + case 1119: +#line 2598 "frame/parser.Y" {fr->maskColorCmd((yyvsp[(2) - (2)].str));;} break; - case 1116: -#line 2593 "frame/parser.Y" + case 1120: +#line 2599 "frame/parser.Y" {fr->maskMarkCmd((FitsMask::MaskType)(yyvsp[(2) - (2)].integer));;} break; - case 1117: -#line 2594 "frame/parser.Y" + case 1121: +#line 2600 "frame/parser.Y" {fr->maskRangeCmd((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real));;} break; - case 1118: -#line 2595 "frame/parser.Y" + case 1122: +#line 2601 "frame/parser.Y" {fr->maskSystemCmd((Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;} break; - case 1119: -#line 2596 "frame/parser.Y" + case 1123: +#line 2602 "frame/parser.Y" {fr->maskTransparencyCmd((yyvsp[(2) - (2)].real));;} break; - case 1120: -#line 2597 "frame/parser.Y" + case 1124: +#line 2603 "frame/parser.Y" {fr->maskBlendCmd((FitsMask::MaskBlend)(yyvsp[(2) - (2)].integer));;} break; - case 1121: -#line 2598 "frame/parser.Y" + case 1125: +#line 2604 "frame/parser.Y" { // backward compatibility fr->maskMarkCmd((FitsMask::MaskType)(yyvsp[(2) - (2)].integer)); ;} break; - case 1122: -#line 2604 "frame/parser.Y" + case 1126: +#line 2610 "frame/parser.Y" {fr->orientCmd(Coord::XX);;} break; - case 1123: -#line 2605 "frame/parser.Y" + case 1127: +#line 2611 "frame/parser.Y" {fr->orientCmd(Coord::YY);;} break; - case 1124: -#line 2606 "frame/parser.Y" + case 1128: +#line 2612 "frame/parser.Y" {fr->orientCmd(Coord::XY);;} break; - case 1125: -#line 2607 "frame/parser.Y" + case 1129: +#line 2613 "frame/parser.Y" {fr->orientCmd(Coord::NORMAL);;} break; - case 1126: -#line 2611 "frame/parser.Y" + case 1130: +#line 2617 "frame/parser.Y" {fr->panCmd(Vector((yyvsp[(1) - (4)].real),(yyvsp[(2) - (4)].real)),Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;} break; - case 1127: -#line 2612 "frame/parser.Y" + case 1131: +#line 2618 "frame/parser.Y" {fr->panCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;} break; - case 1128: -#line 2614 "frame/parser.Y" + case 1132: +#line 2620 "frame/parser.Y" { // backward compatibility fr->panCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real))); ;} break; - case 1129: -#line 2619 "frame/parser.Y" + case 1133: +#line 2625 "frame/parser.Y" {fr->panCmd(Vector((yyvsp[(3) - (3)].vector)), (Coord::CoordSystem)(yyvsp[(1) - (3)].integer), (Coord::SkyFrame)(yyvsp[(2) - (3)].integer));;} break; - case 1131: -#line 2621 "frame/parser.Y" + case 1135: +#line 2627 "frame/parser.Y" {fr->panBBoxCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} break; - case 1133: -#line 2623 "frame/parser.Y" + case 1137: +#line 2629 "frame/parser.Y" {fr->panPreserveCmd((yyvsp[(2) - (2)].integer));;} break; - case 1134: -#line 2626 "frame/parser.Y" + case 1138: +#line 2632 "frame/parser.Y" {fr->panToCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;} break; - case 1135: -#line 2628 "frame/parser.Y" + case 1139: +#line 2634 "frame/parser.Y" { // backward compatibility fr->panToCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real))); ;} break; - case 1136: -#line 2633 "frame/parser.Y" + case 1140: +#line 2639 "frame/parser.Y" {fr->panToCmd(Vector((yyvsp[(3) - (3)].vector)), (Coord::CoordSystem)(yyvsp[(1) - (3)].integer), (Coord::SkyFrame)(yyvsp[(2) - (3)].integer));;} break; - case 1137: -#line 2636 "frame/parser.Y" + case 1141: +#line 2642 "frame/parser.Y" {fr->panBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} break; - case 1138: -#line 2637 "frame/parser.Y" + case 1142: +#line 2643 "frame/parser.Y" {fr->panMotionCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;} break; - case 1139: -#line 2638 "frame/parser.Y" + case 1143: +#line 2644 "frame/parser.Y" {fr->panEndCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} break; - case 1140: -#line 2641 "frame/parser.Y" + case 1144: +#line 2647 "frame/parser.Y" {fr->pannerCmd((yyvsp[(1) - (1)].integer));;} break; - case 1141: -#line 2643 "frame/parser.Y" + case 1145: +#line 2649 "frame/parser.Y" { // backward compatibility fr->pannerCmd((Coord::CoordSystem)(yyvsp[(2) - (3)].integer),(Coord::SkyFrame)(yyvsp[(3) - (3)].integer)); ;} break; - case 1142: -#line 2647 "frame/parser.Y" + case 1146: +#line 2653 "frame/parser.Y" {fr->pannerCmd((yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;} break; - case 1143: -#line 2648 "frame/parser.Y" + case 1147: +#line 2654 "frame/parser.Y" {fr->updatePannerCmd();;} break; - case 1144: -#line 2652 "frame/parser.Y" + case 1148: +#line 2658 "frame/parser.Y" {fr->psColorSpaceCmd((PSColorSpace)(yyvsp[(2) - (2)].integer));;} break; - case 1145: -#line 2653 "frame/parser.Y" + case 1149: +#line 2659 "frame/parser.Y" {fr->psLevelCmd((yyvsp[(2) - (2)].integer));;} break; - case 1146: -#line 2654 "frame/parser.Y" + case 1150: +#line 2660 "frame/parser.Y" {fr->psResolutionCmd((yyvsp[(2) - (2)].integer));;} break; - case 1147: -#line 2655 "frame/parser.Y" + case 1151: +#line 2661 "frame/parser.Y" { // backward compatibility with backup ;} break; - case 1148: -#line 2661 "frame/parser.Y" + case 1152: +#line 2667 "frame/parser.Y" {fr->precCmd((yyvsp[(1) - (9)].integer),(yyvsp[(2) - (9)].integer),(yyvsp[(3) - (9)].integer),(yyvsp[(4) - (9)].integer),(yyvsp[(5) - (9)].integer),(yyvsp[(6) - (9)].integer),(yyvsp[(7) - (9)].integer),(yyvsp[(8) - (9)].integer),(yyvsp[(9) - (9)].integer));;} break; - case 1149: -#line 2662 "frame/parser.Y" + case 1153: +#line 2668 "frame/parser.Y" { // backward compatibility with backup fr->precCmd((yyvsp[(1) - (6)].integer),(yyvsp[(2) - (6)].integer),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].integer),(yyvsp[(5) - (6)].integer),(yyvsp[(6) - (6)].integer)); ;} break; - case 1150: -#line 2668 "frame/parser.Y" + case 1154: +#line 2674 "frame/parser.Y" {(yyval.integer) = BW;;} break; - case 1151: -#line 2669 "frame/parser.Y" + case 1155: +#line 2675 "frame/parser.Y" {(yyval.integer) = GRAY;;} break; - case 1152: -#line 2670 "frame/parser.Y" + case 1156: +#line 2676 "frame/parser.Y" {(yyval.integer) = RGB;;} break; - case 1153: -#line 2671 "frame/parser.Y" + case 1157: +#line 2677 "frame/parser.Y" {(yyval.integer) = CMYK;;} break; - case 1156: -#line 2679 "frame/parser.Y" + case 1160: +#line 2685 "frame/parser.Y" {fr->regionHighliteBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} break; - case 1157: -#line 2681 "frame/parser.Y" + case 1161: +#line 2687 "frame/parser.Y" {fr->regionHighliteMotionCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} break; - case 1158: -#line 2682 "frame/parser.Y" + case 1162: +#line 2688 "frame/parser.Y" {fr->regionHighliteEndCmd();;} break; - case 1159: -#line 2683 "frame/parser.Y" + case 1163: +#line 2689 "frame/parser.Y" {fr->regionHighliteShiftEndCmd();;} break; - case 1160: -#line 2687 "frame/parser.Y" + case 1164: +#line 2693 "frame/parser.Y" {fr->regionSelectBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} break; - case 1161: -#line 2688 "frame/parser.Y" + case 1165: +#line 2694 "frame/parser.Y" {fr->regionSelectMotionCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} break; - case 1162: -#line 2689 "frame/parser.Y" + case 1166: +#line 2695 "frame/parser.Y" {fr->regionSelectEndCmd();;} break; - case 1163: -#line 2690 "frame/parser.Y" + case 1167: +#line 2696 "frame/parser.Y" {fr->regionSelectShiftEndCmd();;} break; - case 1164: -#line 2693 "frame/parser.Y" + case 1168: +#line 2699 "frame/parser.Y" {(yyval.integer) = Frame3dBase::MIP;;} break; - case 1165: -#line 2694 "frame/parser.Y" + case 1169: +#line 2700 "frame/parser.Y" {(yyval.integer) = Frame3dBase::AIP;;} break; - case 1166: -#line 2697 "frame/parser.Y" + case 1170: +#line 2703 "frame/parser.Y" {(yyval.integer) = Frame3dBase::NONE;;} break; - case 1167: -#line 2698 "frame/parser.Y" + case 1171: +#line 2704 "frame/parser.Y" {(yyval.integer) = Frame3dBase::AZIMUTH;;} break; - case 1168: -#line 2699 "frame/parser.Y" + case 1172: +#line 2705 "frame/parser.Y" {(yyval.integer) = Frame3dBase::ELEVATION;;} break; - case 1169: -#line 2702 "frame/parser.Y" + case 1173: +#line 2708 "frame/parser.Y" {fr->setRGBChannelCmd((yyvsp[(2) - (2)].str));;} break; - case 1170: -#line 2703 "frame/parser.Y" + case 1174: +#line 2709 "frame/parser.Y" {fr->setRGBSystemCmd((Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;} break; - case 1171: -#line 2704 "frame/parser.Y" + case 1175: +#line 2710 "frame/parser.Y" {fr->setRGBViewCmd((yyvsp[(2) - (4)].integer),(yyvsp[(3) - (4)].integer),(yyvsp[(4) - (4)].integer));;} break; - case 1172: -#line 2707 "frame/parser.Y" + case 1176: +#line 2713 "frame/parser.Y" {fr->rotateCmd(zeroTWOPI(degToRad((yyvsp[(1) - (1)].real))));;} break; - case 1173: -#line 2708 "frame/parser.Y" + case 1177: +#line 2714 "frame/parser.Y" {fr->rotateCmd(zeroTWOPI(degToRad((yyvsp[(1) - (2)].real))));;} break; - case 1175: -#line 2710 "frame/parser.Y" + case 1179: +#line 2716 "frame/parser.Y" {fr->rotateToCmd(zeroTWOPI(degToRad((yyvsp[(2) - (2)].real))));;} break; - case 1176: -#line 2711 "frame/parser.Y" + case 1180: +#line 2717 "frame/parser.Y" {fr->rotateToCmd(zeroTWOPI(degToRad((yyvsp[(2) - (3)].real))));;} break; - case 1177: -#line 2714 "frame/parser.Y" + case 1181: +#line 2720 "frame/parser.Y" {fr->rotateBeginCmd();;} break; - case 1178: -#line 2715 "frame/parser.Y" + case 1182: +#line 2721 "frame/parser.Y" {fr->rotateMotionCmd(zeroTWOPI(degToRad((yyvsp[(1) - (1)].real))));;} break; - case 1179: -#line 2716 "frame/parser.Y" + case 1183: +#line 2722 "frame/parser.Y" {fr->rotateEndCmd();;} break; - case 1184: -#line 2723 "frame/parser.Y" + case 1188: +#line 2729 "frame/parser.Y" {fr->savePhotoCmd((yyvsp[(2) - (2)].str));;} break; - case 1185: -#line 2727 "frame/parser.Y" + case 1189: +#line 2733 "frame/parser.Y" {fr->saveArrayFileCmd((yyvsp[(2) - (3)].str), (FitsFile::ArchType)(yyvsp[(3) - (3)].integer));;} break; - case 1186: -#line 2729 "frame/parser.Y" + case 1190: +#line 2735 "frame/parser.Y" {fr->saveArrayChannelCmd((yyvsp[(2) - (3)].str), (FitsFile::ArchType)(yyvsp[(3) - (3)].integer));;} break; - case 1187: -#line 2731 "frame/parser.Y" + case 1191: +#line 2737 "frame/parser.Y" {fr->saveArraySocketCmd((yyvsp[(2) - (3)].integer), (FitsFile::ArchType)(yyvsp[(3) - (3)].integer));;} break; - case 1189: -#line 2736 "frame/parser.Y" + case 1193: +#line 2742 "frame/parser.Y" {fr->saveArrayRGBCubeFileCmd((yyvsp[(2) - (3)].str), (FitsFile::ArchType)(yyvsp[(3) - (3)].integer));;} break; - case 1190: -#line 2738 "frame/parser.Y" + case 1194: +#line 2744 "frame/parser.Y" {fr->saveArrayRGBCubeChannelCmd((yyvsp[(2) - (3)].str), (FitsFile::ArchType)(yyvsp[(3) - (3)].integer));;} break; - case 1191: -#line 2740 "frame/parser.Y" + case 1195: +#line 2746 "frame/parser.Y" {fr->saveArrayRGBCubeSocketCmd((yyvsp[(2) - (3)].integer), (FitsFile::ArchType)(yyvsp[(3) - (3)].integer));;} break; - case 1201: -#line 2753 "frame/parser.Y" - {fr->saveFitsFileCmd((yyvsp[(2) - (2)].str));;} - break; - - case 1202: -#line 2754 "frame/parser.Y" - {fr->saveFitsChannelCmd((yyvsp[(2) - (2)].str));;} - break; - - case 1203: -#line 2755 "frame/parser.Y" - {fr->saveFitsSocketCmd((yyvsp[(2) - (2)].integer));;} - break; - - case 1204: -#line 2758 "frame/parser.Y" - {fr->saveFitsTableFileCmd((yyvsp[(2) - (2)].str));;} - break; - case 1205: #line 2759 "frame/parser.Y" - {fr->saveFitsTableChannelCmd((yyvsp[(2) - (2)].str));;} + {fr->saveFitsFileCmd((yyvsp[(2) - (2)].str));;} break; case 1206: #line 2760 "frame/parser.Y" - {fr->saveFitsTableSocketCmd((yyvsp[(2) - (2)].integer));;} + {fr->saveFitsChannelCmd((yyvsp[(2) - (2)].str));;} break; case 1207: -#line 2763 "frame/parser.Y" - {fr->saveFitsSliceFileCmd((yyvsp[(2) - (2)].str));;} +#line 2761 "frame/parser.Y" + {fr->saveFitsSocketCmd((yyvsp[(2) - (2)].integer));;} break; case 1208: #line 2764 "frame/parser.Y" - {fr->saveFitsSliceChannelCmd((yyvsp[(2) - (2)].str));;} + {fr->saveFitsTableFileCmd((yyvsp[(2) - (2)].str));;} break; case 1209: #line 2765 "frame/parser.Y" - {fr->saveFitsSliceSocketCmd((yyvsp[(2) - (2)].integer));;} + {fr->saveFitsTableChannelCmd((yyvsp[(2) - (2)].str));;} break; case 1210: -#line 2768 "frame/parser.Y" - {fr->saveFitsExtCubeFileCmd((yyvsp[(2) - (2)].str));;} +#line 2766 "frame/parser.Y" + {fr->saveFitsTableSocketCmd((yyvsp[(2) - (2)].integer));;} break; case 1211: #line 2769 "frame/parser.Y" - {fr->saveFitsExtCubeChannelCmd((yyvsp[(2) - (2)].str));;} + {fr->saveFitsSliceFileCmd((yyvsp[(2) - (2)].str));;} break; case 1212: #line 2770 "frame/parser.Y" - {fr->saveFitsExtCubeSocketCmd((yyvsp[(2) - (2)].integer));;} + {fr->saveFitsSliceChannelCmd((yyvsp[(2) - (2)].str));;} + break; + + case 1213: +#line 2771 "frame/parser.Y" + {fr->saveFitsSliceSocketCmd((yyvsp[(2) - (2)].integer));;} break; case 1214: #line 2774 "frame/parser.Y" - {fr->saveFitsMosaicFileCmd((yyvsp[(2) - (3)].str),(yyvsp[(3) - (3)].integer));;} + {fr->saveFitsExtCubeFileCmd((yyvsp[(2) - (2)].str));;} break; case 1215: #line 2775 "frame/parser.Y" - {fr->saveFitsMosaicChannelCmd((yyvsp[(2) - (3)].str),(yyvsp[(3) - (3)].integer));;} + {fr->saveFitsExtCubeChannelCmd((yyvsp[(2) - (2)].str));;} break; case 1216: #line 2776 "frame/parser.Y" - {fr->saveFitsMosaicSocketCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].integer));;} - break; - - case 1217: -#line 2779 "frame/parser.Y" - {fr->saveFitsMosaicImageFileCmd((yyvsp[(2) - (2)].str));;} + {fr->saveFitsExtCubeSocketCmd((yyvsp[(2) - (2)].integer));;} break; case 1218: #line 2780 "frame/parser.Y" - {fr->saveFitsMosaicImageChannelCmd((yyvsp[(2) - (2)].str));;} + {fr->saveFitsMosaicFileCmd((yyvsp[(2) - (3)].str),(yyvsp[(3) - (3)].integer));;} break; case 1219: #line 2781 "frame/parser.Y" - {fr->saveFitsMosaicImageSocketCmd((yyvsp[(2) - (2)].integer));;} + {fr->saveFitsMosaicChannelCmd((yyvsp[(2) - (3)].str),(yyvsp[(3) - (3)].integer));;} break; case 1220: -#line 2784 "frame/parser.Y" - {fr->saveFitsRGBImageFileCmd((yyvsp[(2) - (2)].str));;} +#line 2782 "frame/parser.Y" + {fr->saveFitsMosaicSocketCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].integer));;} break; case 1221: #line 2785 "frame/parser.Y" - {fr->saveFitsRGBImageChannelCmd((yyvsp[(2) - (2)].str));;} + {fr->saveFitsMosaicImageFileCmd((yyvsp[(2) - (2)].str));;} break; case 1222: #line 2786 "frame/parser.Y" - {fr->saveFitsRGBImageSocketCmd((yyvsp[(2) - (2)].integer));;} + {fr->saveFitsMosaicImageChannelCmd((yyvsp[(2) - (2)].str));;} break; case 1223: -#line 2789 "frame/parser.Y" - {fr->saveFitsRGBCubeFileCmd((yyvsp[(2) - (2)].str));;} +#line 2787 "frame/parser.Y" + {fr->saveFitsMosaicImageSocketCmd((yyvsp[(2) - (2)].integer));;} break; case 1224: #line 2790 "frame/parser.Y" - {fr->saveFitsRGBCubeChannelCmd((yyvsp[(2) - (2)].str));;} + {fr->saveFitsRGBImageFileCmd((yyvsp[(2) - (2)].str));;} break; case 1225: #line 2791 "frame/parser.Y" - {fr->saveFitsRGBCubeSocketCmd((yyvsp[(2) - (2)].integer));;} + {fr->saveFitsRGBImageChannelCmd((yyvsp[(2) - (2)].str));;} break; case 1226: -#line 2794 "frame/parser.Y" - {fr->saveFitsResampleFileCmd((yyvsp[(2) - (2)].str));;} +#line 2792 "frame/parser.Y" + {fr->saveFitsRGBImageSocketCmd((yyvsp[(2) - (2)].integer));;} break; case 1227: #line 2795 "frame/parser.Y" - {fr->saveFitsResampleChannelCmd((yyvsp[(2) - (2)].str));;} + {fr->saveFitsRGBCubeFileCmd((yyvsp[(2) - (2)].str));;} break; case 1228: #line 2796 "frame/parser.Y" - {fr->saveFitsResampleSocketCmd((yyvsp[(2) - (2)].integer));;} + {fr->saveFitsRGBCubeChannelCmd((yyvsp[(2) - (2)].str));;} break; case 1229: -#line 2800 "frame/parser.Y" - {fr->saveNRRDFileCmd((yyvsp[(2) - (3)].str), (FitsFile::ArchType)(yyvsp[(3) - (3)].integer));;} +#line 2797 "frame/parser.Y" + {fr->saveFitsRGBCubeSocketCmd((yyvsp[(2) - (2)].integer));;} break; case 1230: -#line 2802 "frame/parser.Y" - {fr->saveNRRDChannelCmd((yyvsp[(2) - (3)].str), (FitsFile::ArchType)(yyvsp[(3) - (3)].integer));;} +#line 2800 "frame/parser.Y" + {fr->saveFitsResampleFileCmd((yyvsp[(2) - (2)].str));;} break; case 1231: -#line 2804 "frame/parser.Y" - {fr->saveNRRDSocketCmd((yyvsp[(2) - (3)].integer), (FitsFile::ArchType)(yyvsp[(3) - (3)].integer));;} +#line 2801 "frame/parser.Y" + {fr->saveFitsResampleChannelCmd((yyvsp[(2) - (2)].str));;} break; case 1232: -#line 2808 "frame/parser.Y" - {fr->saveENVIFileCmd((yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (FitsFile::ArchType)(yyvsp[(4) - (4)].integer));;} +#line 2802 "frame/parser.Y" + {fr->saveFitsResampleSocketCmd((yyvsp[(2) - (2)].integer));;} break; case 1233: -#line 2812 "frame/parser.Y" - {fr->smoothCmd((Context::SmoothFunction)(yyvsp[(1) - (6)].integer),(yyvsp[(2) - (6)].integer),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real));;} +#line 2806 "frame/parser.Y" + {fr->saveNRRDFileCmd((yyvsp[(2) - (3)].str), (FitsFile::ArchType)(yyvsp[(3) - (3)].integer));;} break; case 1234: +#line 2808 "frame/parser.Y" + {fr->saveNRRDChannelCmd((yyvsp[(2) - (3)].str), (FitsFile::ArchType)(yyvsp[(3) - (3)].integer));;} + break; + + case 1235: +#line 2810 "frame/parser.Y" + {fr->saveNRRDSocketCmd((yyvsp[(2) - (3)].integer), (FitsFile::ArchType)(yyvsp[(3) - (3)].integer));;} + break; + + case 1236: #line 2814 "frame/parser.Y" + {fr->saveENVIFileCmd((yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (FitsFile::ArchType)(yyvsp[(4) - (4)].integer));;} + break; + + case 1237: +#line 2818 "frame/parser.Y" + {fr->smoothCmd((Context::SmoothFunction)(yyvsp[(1) - (6)].integer),(yyvsp[(2) - (6)].integer),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real));;} + break; + + case 1238: +#line 2820 "frame/parser.Y" { // backward compatibility with backup fr->smoothCmd((Context::SmoothFunction)(yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].integer)); ;} break; - case 1235: -#line 2818 "frame/parser.Y" + case 1239: +#line 2824 "frame/parser.Y" {fr->smoothDeleteCmd();;} break; - case 1236: -#line 2821 "frame/parser.Y" + case 1240: +#line 2827 "frame/parser.Y" {(yyval.integer) = Context::BOXCAR;;} break; - case 1237: -#line 2822 "frame/parser.Y" + case 1241: +#line 2828 "frame/parser.Y" {(yyval.integer) = Context::TOPHAT;;} break; - case 1238: -#line 2823 "frame/parser.Y" + case 1242: +#line 2829 "frame/parser.Y" {(yyval.integer) = Context::GAUSSIAN;;} break; - case 1239: -#line 2824 "frame/parser.Y" + case 1243: +#line 2830 "frame/parser.Y" {(yyval.integer) = Context::ELLIPTIC;;} break; - case 1240: -#line 2827 "frame/parser.Y" + case 1244: +#line 2833 "frame/parser.Y" {fr->updateFitsCmd(0);;} break; - case 1241: -#line 2829 "frame/parser.Y" + case 1245: +#line 2835 "frame/parser.Y" {fr->updateFitsCmd((yyvsp[(1) - (5)].integer),BBox((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)),0);;} break; - case 1242: -#line 2830 "frame/parser.Y" + case 1246: +#line 2836 "frame/parser.Y" {fr->updateFitsCmd(1);;} break; - case 1243: -#line 2832 "frame/parser.Y" + case 1247: +#line 2838 "frame/parser.Y" {fr->updateFitsCmd((yyvsp[(2) - (6)].integer),BBox((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)),1);;} break; - case 1245: -#line 2836 "frame/parser.Y" + case 1249: +#line 2842 "frame/parser.Y" {fr->sliceCmd(2,(yyvsp[(1) - (1)].integer));;} break; - case 1246: -#line 2837 "frame/parser.Y" + case 1250: +#line 2843 "frame/parser.Y" {fr->sliceCmd((yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].integer));;} break; - case 1247: -#line 2838 "frame/parser.Y" + case 1251: +#line 2844 "frame/parser.Y" {fr->sliceCmd((yyvsp[(1) - (2)].real), (Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;} break; - case 1248: -#line 2841 "frame/parser.Y" + case 1252: +#line 2847 "frame/parser.Y" {fr->warpCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;} break; - case 1249: -#line 2842 "frame/parser.Y" + case 1253: +#line 2848 "frame/parser.Y" {fr->warpToCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;} break; - case 1250: -#line 2846 "frame/parser.Y" + case 1254: +#line 2852 "frame/parser.Y" {fr->wcsCmd((Coord::CoordSystem)(yyvsp[(1) - (3)].integer), (Coord::SkyFrame)(yyvsp[(2) - (3)].integer), (Coord::SkyFormat)(yyvsp[(3) - (3)].integer));;} break; - case 1252: -#line 2848 "frame/parser.Y" + case 1256: +#line 2854 "frame/parser.Y" {fr->wcsResetCmd((yyvsp[(2) - (2)].integer));;} break; - case 1255: -#line 2853 "frame/parser.Y" + case 1259: +#line 2859 "frame/parser.Y" {fr->wcsAppendCmd((yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].integer));;} break; - case 1256: -#line 2854 "frame/parser.Y" + case 1260: +#line 2860 "frame/parser.Y" {fr->wcsAppendCmd((yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].str));;} break; - case 1257: -#line 2855 "frame/parser.Y" + case 1261: +#line 2861 "frame/parser.Y" {fr->wcsAppendTxtCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].str));;} break; - case 1258: -#line 2858 "frame/parser.Y" + case 1262: +#line 2864 "frame/parser.Y" {fr->wcsReplaceCmd((yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].integer));;} break; - case 1259: -#line 2859 "frame/parser.Y" + case 1263: +#line 2865 "frame/parser.Y" {fr->wcsReplaceCmd((yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].str));;} break; - case 1260: -#line 2860 "frame/parser.Y" + case 1264: +#line 2866 "frame/parser.Y" {fr->wcsReplaceTxtCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].str));;} break; - case 1261: -#line 2863 "frame/parser.Y" + case 1265: +#line 2869 "frame/parser.Y" {fr->wcsAlignCmd((yyvsp[(1) - (1)].integer));;} break; - case 1262: -#line 2865 "frame/parser.Y" + case 1266: +#line 2871 "frame/parser.Y" { // used by backup fr->wcsAlignCmd((yyvsp[(1) - (3)].integer), (Coord::CoordSystem)(yyvsp[(2) - (3)].integer), (Coord::SkyFrame)(yyvsp[(3) - (3)].integer)); ;} break; - case 1263: -#line 2870 "frame/parser.Y" + case 1267: +#line 2876 "frame/parser.Y" {fr->wcsAlignCmd((yyvsp[(1) - (4)].integer), (FitsImage*)(yyvsp[(2) - (4)].ptr), (Coord::CoordSystem)(yyvsp[(3) - (4)].integer), (Coord::SkyFrame)(yyvsp[(4) - (4)].integer));;} break; - case 1264: -#line 2873 "frame/parser.Y" + case 1268: +#line 2879 "frame/parser.Y" { #ifdef __WIN32 fr->win32PrintCmd(); @@ -10984,66 +10939,66 @@ ;} break; - case 1265: -#line 2880 "frame/parser.Y" + case 1269: +#line 2886 "frame/parser.Y" {fr->zoomCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;} break; - case 1266: -#line 2882 "frame/parser.Y" + case 1270: +#line 2888 "frame/parser.Y" {fr->zoomAboutCmd(Vector((yyvsp[(1) - (5)].real),(yyvsp[(2) - (5)].real)),Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)));;} break; - case 1267: -#line 2884 "frame/parser.Y" + case 1271: +#line 2890 "frame/parser.Y" { // backward compatibility fr->zoomAboutCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real))); ;} break; - case 1268: -#line 2889 "frame/parser.Y" + case 1272: +#line 2895 "frame/parser.Y" {fr->zoomAboutCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)),Vector((yyvsp[(6) - (6)].vector)), (Coord::CoordSystem)(yyvsp[(4) - (6)].integer),(Coord::SkyFrame)(yyvsp[(5) - (6)].integer));;} break; - case 1270: -#line 2893 "frame/parser.Y" + case 1274: +#line 2899 "frame/parser.Y" {fr->zoomToFitCmd(1);;} break; - case 1271: -#line 2894 "frame/parser.Y" + case 1275: +#line 2900 "frame/parser.Y" {fr->zoomToFitCmd((yyvsp[(2) - (2)].real));;} break; - case 1272: -#line 2895 "frame/parser.Y" + case 1276: +#line 2901 "frame/parser.Y" {fr->zoomToCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;} break; - case 1273: -#line 2897 "frame/parser.Y" + case 1277: +#line 2903 "frame/parser.Y" {fr->zoomToAboutCmd(Vector((yyvsp[(1) - (5)].real),(yyvsp[(2) - (5)].real)),Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)));;} break; - case 1274: -#line 2899 "frame/parser.Y" + case 1278: +#line 2905 "frame/parser.Y" { // backward compatibility fr->zoomToAboutCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real))); ;} break; - case 1275: -#line 2904 "frame/parser.Y" + case 1279: +#line 2910 "frame/parser.Y" {fr->zoomToAboutCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)), Vector((yyvsp[(6) - (6)].vector)), (Coord::CoordSystem)(yyvsp[(4) - (6)].integer), (Coord::SkyFrame)(yyvsp[(5) - (6)].integer));;} break; /* Line 1267 of yacc.c. */ -#line 11047 "frame/parser.C" +#line 11002 "frame/parser.C" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -11257,7 +11212,7 @@ } -#line 2908 "frame/parser.Y" +#line 2914 "frame/parser.Y" static void setProps(unsigned short* props, unsigned short prop, int value) diff -Nru saods9-8.2+repack/tksao/frame/parser.Y saods9-8.3+repack/tksao/frame/parser.Y --- saods9-8.2+repack/tksao/frame/parser.Y 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/parser.Y 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -1028,8 +1028,7 @@ | GRID_ getGrid | HIGHLITE_ COLOR_ {fr->getHighliteColorCmd();} | HISTOGRAM_ STRING STRING INT {fr->getHistogramCmd($2,$3,$4);} - | HORIZONTAL_ CUT_ STRING STRING numeric numeric internalSystem INT cutMethod - {fr->getHorzCutCmd($3,$4,Vector($5,$6),(Coord::InternalSystem)$7,$8,(Base::CutMethod)$9);} + | HORIZONTAL_ CUT_ getHorzCut | IIS_ getiis | INFO_ getInfo | IRAF_ ALIGN_ {fr->getIRAFAlignCmd();} @@ -1049,12 +1048,23 @@ | TYPE_ {fr->getTypeCmd();} | VALUE_ internalSystem numeric numeric {fr->getValueCmd(Vector($3,$4),(Coord::InternalSystem)$2);} - | VERTICAL_ CUT_ STRING STRING numeric numeric internalSystem INT cutMethod - {fr->getVertCutCmd($3,$4,Vector($5,$6),(Coord::InternalSystem)$7,$8,(Base::CutMethod)$9);} + | VERTICAL_ CUT_ getVertCut | WCS_ getWCS | ZOOM_ {fr->getZoomCmd();} ; +getHorzCut : STRING STRING numeric numeric internalSystem INT cutMethod + {fr->getHorzCutCmd($1,$2,Vector($3,$4),(Coord::InternalSystem)$5,$6,(Base::CutMethod)$7);} + | STRING STRING numeric numeric coordSystem skyFrame INT cutMethod + {fr->getHorzCutCmd($1,$2,Vector($3,$4),(Coord::CoordSystem)$5,(Coord::SkyFrame)$6,$7,(Base::CutMethod)$8);} + ; + +getVertCut : STRING STRING numeric numeric internalSystem INT cutMethod + {fr->getVertCutCmd($1,$2,Vector($3,$4),(Coord::InternalSystem)$5,$6,(Base::CutMethod)$7);} + | STRING STRING numeric numeric coordSystem skyFrame INT cutMethod + {fr->getVertCutCmd($1,$2,Vector($3,$4),(Coord::CoordSystem)$5,(Coord::SkyFrame)$6,$7,(Base::CutMethod)$8);} + ; + getBin : DEPTH_ {fr->getBinDepthCmd();} | FACTOR_ {fr->getBinFactorCmd();} | FUNCTION_ {fr->getBinFunctionCmd();} @@ -1714,11 +1724,7 @@ | END_ {fr->loadIncrEndCmd();} ; -macosx : PRINT_ { -#ifdef MAC_OSX_TK - fr->macosxPrintCmd(); -#endif - } +macosx : PRINT_ {} ; magnifier: yesno {fr->magnifierCmd($1);} diff -Nru saods9-8.2+repack/tksao/frame/point.C saods9-8.3+repack/tksao/frame/point.C --- saods9-8.2+repack/tksao/frame/point.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/point.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -290,95 +290,6 @@ Tcl_AppendResult(parent->interp, (char*)str.str().c_str(), NULL); } -// MacOSX - -#ifdef MAC_OSX_TK -#include - -void Point::renderMACOSX() -{ - /* - renderMACOSXGC(); - Vector* vv = NULL; - - switch (shape_) { - case CIRCLE: - renderMACOSXCircle(size_); - break; - case BOX: - renderMACOSXBox(); - break; - case DIAMOND: - vv = generateDiamond(Coord::CANVAS); - macosxDrawLines(vv,5); - break; - case CROSS: - vv = generateCross(Coord::CANVAS); - macosxDrawLine(vv[0],vv[1]); - macosxDrawLine(vv[2],vv[3]); - break; - case EX: - vv = generateEx(Coord::CANVAS); - macosxDrawLine(vv[0],vv[1]); - macosxDrawLine(vv[2],vv[3]); - break; - case ARROW: - vv = generateArrow(Coord::CANVAS); - macosxDrawLine(vv[0],vv[3]); - macosxDrawLine(vv[1],vv[3]); - macosxDrawLine(vv[2],vv[3]); - break; - case BOXCIRCLE: - renderMACOSXBox(); - renderMACOSXCircle(size_-2); - break; - } - - if (vv) - delete [] vv; - */ -} - -void Point::renderMACOSXCircle(int ss) -{ - /* - renderMACOSXGC(); - - if (parent->isAzElZero()) { - Vector cc = parent->mapFromRef(center,Coord::CANVAS); - macosxDrawArc(cc, ss/2., 0, M_TWOPI); - } - else { - Vector* vv = generateCircle(Coord::CANVAS, ss); - macosxDrawLines(vv,NUMSEG+1); - delete [] vv; - } - */ -} - -void Point::renderMACOSXBox() -{ - /* - renderMACOSXGC(); - - Vector* vv = generateBox(Coord::CANVAS); - macosxDrawLines(vv,5); - delete [] vv; - */ -} - -void Point::renderMACOSXLineDash() -{ - /* - macosxWidth(lineWidth); - float dl[2]; - dl[0] = dlist[0]/2.; - dl[1] = dlist[1]/2.; - macosxDash(dl,2); - */ -} -#endif - // WIN32 #ifdef __WIN32 diff -Nru saods9-8.2+repack/tksao/frame/point.h saods9-8.3+repack/tksao/frame/point.h --- saods9-8.2+repack/tksao/frame/point.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/point.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -32,12 +32,6 @@ void renderPSBox(int); void renderPSLineDash(); -#ifdef MAC_OSX_TK - void renderMACOSXCircle(int); - void renderMACOSXBox(); - void renderMACOSXLineDash(); -#endif - #ifdef __WIN32 void renderWIN32Circle(int); void renderWIN32Box(); @@ -65,10 +59,6 @@ void renderX(Drawable, Coord::InternalSystem, RenderMode); void renderPS(PSColorSpace mode); -#ifdef MAC_OSX_TK - void renderMACOSX(); -#endif - #ifdef __WIN32 void renderWIN32(); #endif diff -Nru saods9-8.2+repack/tksao/frame/polygon.C saods9-8.3+repack/tksao/frame/polygon.C --- saods9-8.2+repack/tksao/frame/polygon.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/polygon.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -96,32 +96,6 @@ Tcl_AppendResult(parent->interp, str.str().c_str(), NULL); } -#ifdef MAC_OSX_TK -#include - -void Polygon::renderMACOSX() -{ - /* - renderMACOSXGC(); - - int cnt = vertex.count(); - Vector* vv = new Vector[cnt]; - vertex.head(); - for (int ii=0; iivector,Coord::CANVAS); - vertex.next(); - } - - if (fill_) - macosxFillPolygon(vv,cnt); - else - macosxDrawLines(vv,cnt); - - delete [] vv; - */ -} -#endif - #ifdef __WIN32 #include diff -Nru saods9-8.2+repack/tksao/frame/polygon.h saods9-8.3+repack/tksao/frame/polygon.h --- saods9-8.2+repack/tksao/frame/polygon.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/polygon.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -17,9 +17,6 @@ int isInRef(const Vector& v); void renderX(Drawable, Coord::InternalSystem, RenderMode); void renderPS(PSColorSpace); -#ifdef MAC_OSX_TK - void renderMACOSX(); -#endif #ifdef __WIN32 void renderWIN32(); #endif diff -Nru saods9-8.2+repack/tksao/frame/projection.C saods9-8.3+repack/tksao/frame/projection.C --- saods9-8.2+repack/tksao/frame/projection.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/projection.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -124,48 +124,6 @@ renderPSLineNoDash(); } -#ifdef MAC_OSX_TK -#include - -void Projection::renderMACOSX() -{ - /* - renderMACOSXGC(); - - Vector aa = parent->mapFromRef(p1,Coord::CANVAS); - Vector bb = parent->mapFromRef(p2,Coord::CANVAS); - - macosxDrawLine(aa,bb); - - if (width>0) { - renderMACOSXLineDash(); - - Matrix imm = bckMatrix(); - Vector a = p1*imm; - Vector b = p2*imm; - Vector c = Vector(0,-width); - - Vector ll = fwdMap(a,Coord::CANVAS); - Vector lr = fwdMap(b,Coord::CANVAS); - Vector ul = fwdMap(a+c,Coord::CANVAS); - Vector ur = fwdMap(b+c,Coord::CANVAS); - - macosxDrawLine(lr,ur); - macosxDrawLine(ur,ul); - macosxDrawLine(ul,ll); - } - */ -} - -void Projection::renderMACOSXGC() -{ - /* - macosxColor(parent->getXColor(colorName)); - renderMACOSXLineNoDash(); - */ -} -#endif - #ifdef __WIN32 #include diff -Nru saods9-8.2+repack/tksao/frame/projection.h saods9-8.3+repack/tksao/frame/projection.h --- saods9-8.2+repack/tksao/frame/projection.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/projection.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -20,11 +20,6 @@ void renderPS(PSColorSpace); void renderPSGC(PSColorSpace); -#ifdef MAC_OSX_TK - void renderMACOSX(); - void renderMACOSXGC(); -#endif - #ifdef __WIN32 void renderWIN32(); void renderWIN32GC(); diff -Nru saods9-8.2+repack/tksao/frame/proslex.C saods9-8.3+repack/tksao/frame/proslex.C --- saods9-8.2+repack/tksao/frame/proslex.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/proslex.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,6 +1,6 @@ -#line 2 "frame/proslex.C" +#line 1 "frame/proslex.C" -#line 4 "frame/proslex.C" +#line 3 "frame/proslex.C" #define YY_INT_ALIGNED short int @@ -8,8 +8,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -22,6 +22,24 @@ */ #define yyFlexLexer prosFlexLexer +#ifdef yyalloc +#define prosalloc_ALREADY_DEFINED +#else +#define yyalloc prosalloc +#endif + +#ifdef yyrealloc +#define prosrealloc_ALREADY_DEFINED +#else +#define yyrealloc prosrealloc +#endif + +#ifdef yyfree +#define prosfree_ALREADY_DEFINED +#else +#define yyfree prosfree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -59,7 +77,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -90,70 +107,67 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ -#include +#include #include #include +#include #include /* end standard C++ headers. */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) - #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -175,8 +189,9 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -191,7 +206,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -199,7 +213,7 @@ struct yy_buffer_state { - std::istream* yy_input_file; + std::streambuf* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ @@ -207,7 +221,7 @@ /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -235,7 +249,7 @@ int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -269,18 +283,16 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -void *prosalloc (yy_size_t ); -void *prosrealloc (void *,yy_size_t ); -void prosfree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -290,7 +302,6 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -300,13 +311,11 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; #define yytext_ptr yytext @@ -323,7 +332,6 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 52 #define YY_END_OF_BUFFER 53 /* This struct is not used in this scanner, @@ -333,7 +341,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[198] = +static const flex_int16_t yy_accept[198] = { 0, 0, 0, 2, 2, 53, 51, 47, 50, 51, 51, 51, 51, 51, 22, 46, 46, 46, 46, 46, 46, @@ -359,7 +367,7 @@ } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, @@ -391,7 +399,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[66] = +static const YY_CHAR yy_meta[66] = { 0, 1, 1, 2, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -402,7 +410,7 @@ 3, 3, 3, 1, 1 } ; -static yyconst flex_int16_t yy_base[204] = +static const flex_int16_t yy_base[204] = { 0, 0, 0, 134, 131, 130, 1540, 123, 1540, 121, 116, 114, 58, 64, 74, 94, 98, 90, 121, 162, 127, @@ -429,7 +437,7 @@ 78, 1533, 1536 } ; -static yyconst flex_int16_t yy_def[204] = +static const flex_int16_t yy_def[204] = { 0, 197, 1, 198, 198, 197, 197, 197, 197, 197, 199, 200, 197, 197, 201, 201, 201, 201, 201, 201, 201, @@ -456,7 +464,7 @@ 197, 197, 197 } ; -static yyconst flex_int16_t yy_nxt[1606] = +static const flex_int16_t yy_nxt[1606] = { 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 14, 14, 14, 14, 6, 15, 16, 17, 18, 19, @@ -637,7 +645,7 @@ 197, 197, 197, 197, 197 } ; -static yyconst flex_int16_t yy_chk[1606] = +static const flex_int16_t yy_chk[1606] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -826,7 +834,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "frame/proslex.L" -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -840,9 +848,10 @@ extern YYSTYPE* proslval; extern prosFlexLexer* proslexx; +#line 851 "frame/proslex.C" /* rules */ -#line 846 "frame/proslex.C" +#line 854 "frame/proslex.C" #define INITIAL 0 #define DISCARD 1 @@ -860,11 +869,11 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -873,7 +882,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -887,7 +901,7 @@ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif @@ -929,7 +943,7 @@ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -939,15 +953,10 @@ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 30 "frame/proslex.L" - - -#line 950 "frame/proslex.C" - if ( !(yy_init) ) { (yy_init) = 1; @@ -960,10 +969,10 @@ (yy_start) = 1; /* first start state */ if ( ! yyin ) - yyin = & std::cin; + yyin.rdbuf(std::cin.rdbuf()); if ( ! yyout ) - yyout = & std::cout; + yyout.rdbuf(std::cout.rdbuf()); if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); @@ -974,7 +983,13 @@ yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 30 "frame/proslex.L" + + +#line 990 "frame/proslex.C" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -990,7 +1005,7 @@ yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1000,9 +1015,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 198 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 197 ); @@ -1328,7 +1343,7 @@ #line 179 "frame/proslex.L" ECHO; YY_BREAK -#line 1332 "frame/proslex.C" +#line 1346 "frame/proslex.C" case YY_END_OF_BUFFER: { @@ -1351,7 +1366,7 @@ * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -1458,14 +1473,33 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. */ -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::ctor_common() { - yyin = arg_yyin; - yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; @@ -1482,7 +1516,7 @@ yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -1495,23 +1529,36 @@ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; - prosfree(yy_start_stack ); + yyfree( yy_start_stack ); yy_delete_buffer( YY_CURRENT_BUFFER ); - prosfree(yy_buffer_stack ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } + if( ! new_in ) { + new_in = &yyin; + } - if ( new_out ) - yyout = new_out; + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); } #ifdef YY_INTERACTIVE @@ -1520,33 +1567,33 @@ size_t yyFlexLexer::LexerInput( char* buf, size_t max_size ) #endif { - if ( yyin->eof() || yyin->fail() ) + if ( yyin.eof() || yyin.fail() ) return 0; #ifdef YY_INTERACTIVE - yyin->get( buf[0] ); + yyin.get( buf[0] ); - if ( yyin->eof() ) + if ( yyin.eof() ) return 0; - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; return 1; #else - (void) yyin->read( buf, max_size ); + (void) yyin.read( buf, max_size ); - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; else - return yyin->gcount(); + return yyin.gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, size_t size ) { - (void) yyout->write( buf, size ); + (void) yyout.write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer @@ -1558,9 +1605,9 @@ */ int yyFlexLexer::yy_get_next_buffer() { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1589,7 +1636,7 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1609,7 +1656,7 @@ { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); @@ -1625,11 +1672,12 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - prosrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1671,12 +1719,15 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) prosrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1692,14 +1743,14 @@ yy_state_type yyFlexLexer::yy_get_previous_state() { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1709,9 +1760,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 198 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1724,10 +1775,10 @@ */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1737,17 +1788,18 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 198 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 197); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - void yyFlexLexer::yyunput( int c, register char* yy_bp) +#ifndef YY_NO_UNPUT + void yyFlexLexer::yyunput( int c, char* yy_bp) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -1757,10 +1809,10 @@ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -1769,7 +1821,7 @@ yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -1781,6 +1833,7 @@ (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } +#endif int yyFlexLexer::yyinput() { @@ -1854,7 +1907,7 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void yyFlexLexer::yyrestart( std::istream* input_file ) + void yyFlexLexer::yyrestart( std::istream& input_file ) { if ( ! YY_CURRENT_BUFFER ){ @@ -1867,6 +1920,19 @@ yy_load_buffer_state( ); } +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -1906,7 +1972,7 @@ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); (yy_hold_char) = *(yy_c_buf_p); } @@ -1916,11 +1982,11 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) prosalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1929,7 +1995,7 @@ /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) prosalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1940,6 +2006,17 @@ return b; } +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -1954,23 +2031,23 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - prosfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - prosfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) { int oerrno = errno; yy_flush_buffer( b ); - b->yy_input_file = file; + b->yy_input_file = file.rdbuf(); b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -2078,15 +2155,15 @@ * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)prosalloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -2095,10 +2172,10 @@ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)prosrealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -2111,20 +2188,21 @@ } } - void yyFlexLexer::yy_push_state( int new_state ) + void yyFlexLexer::yy_push_state( int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) prosalloc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) prosrealloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -2132,7 +2210,7 @@ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } void yyFlexLexer::yy_pop_state() @@ -2152,7 +2230,7 @@ #define YY_EXIT_FAILURE 2 #endif -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( const char* msg ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); @@ -2165,7 +2243,7 @@ do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -2182,18 +2260,19 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -2201,13 +2280,14 @@ } #endif -void *prosalloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *prosrealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -2215,12 +2295,12 @@ * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void prosfree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see prosrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -2228,7 +2308,6 @@ #line 179 "frame/proslex.L" - void prosDiscard(int doit) { if (proslexx) diff -Nru saods9-8.2+repack/tksao/frame/proslex.L saods9-8.3+repack/tksao/frame/proslex.L --- saods9-8.2+repack/tksao/frame/proslex.L 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/proslex.L 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ diff -Nru saods9-8.2+repack/tksao/frame/prosparser.C saods9-8.3+repack/tksao/frame/prosparser.C --- saods9-8.2+repack/tksao/frame/prosparser.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/prosparser.C 2021-11-08 15:46:07.000000000 +0000 @@ -565,16 +565,16 @@ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 126, 126, 126, 137, 138, 141, 142, 143, 144, - 144, 145, 145, 146, 147, 150, 151, 152, 155, 156, - 159, 160, 163, 164, 167, 168, 171, 172, 175, 176, - 179, 180, 181, 184, 185, 186, 187, 190, 197, 204, - 211, 220, 223, 226, 229, 232, 245, 253, 261, 268, - 278, 279, 282, 283, 284, 285, 286, 289, 290, 293, - 304, 316, 317, 318, 322, 325, 329, 329, 338, 343, - 357, 364, 378, 381, 388, 392, 392, 397, 398, 401, - 404, 405, 408, 412, 439, 440, 440, 443, 443, 446, - 447, 447 + 0, 126, 126, 126, 133, 134, 137, 138, 139, 140, + 140, 141, 141, 142, 143, 146, 147, 148, 151, 152, + 155, 156, 159, 160, 163, 164, 167, 168, 171, 172, + 175, 176, 177, 180, 181, 182, 183, 186, 193, 200, + 207, 216, 219, 222, 225, 228, 241, 249, 257, 264, + 274, 275, 278, 279, 280, 281, 282, 285, 286, 289, + 300, 312, 313, 314, 318, 321, 325, 325, 334, 339, + 353, 360, 374, 377, 384, 388, 388, 393, 394, 397, + 400, 401, 404, 408, 435, 436, 436, 439, 439, 442, + 443, 443 }; #endif @@ -1623,103 +1623,99 @@ case 2: #line 126 "frame/prosparser.Y" { - if (fr->useMarkerColor()) - strcpy(color, fr->markerColor()); - else - strcpy(color, "green"); - + strcpy(color, fr->markerColor()); globalSystem = fr->xySystem(); globalSky = fr->xySky(); ;} break; case 8: -#line 143 "frame/prosparser.Y" +#line 139 "frame/prosparser.Y" {cerr << "PROS" << endl;;} break; case 9: -#line 144 "frame/prosparser.Y" +#line 140 "frame/prosparser.Y" {globalSystem = (Coord::CoordSystem)(yyvsp[(1) - (1)].integer);;} break; case 11: -#line 145 "frame/prosparser.Y" +#line 141 "frame/prosparser.Y" {globalSystem = Coord::WCS; globalSky = (Coord::SkyFrame)(yyvsp[(1) - (1)].integer);;} break; case 17: -#line 152 "frame/prosparser.Y" +#line 148 "frame/prosparser.Y" {YYACCEPT;;} break; case 18: -#line 155 "frame/prosparser.Y" +#line 151 "frame/prosparser.Y" {(yyval.real)=(yyvsp[(1) - (1)].real);;} break; case 19: -#line 156 "frame/prosparser.Y" +#line 152 "frame/prosparser.Y" {(yyval.real)=(yyvsp[(1) - (1)].integer);;} break; case 20: -#line 159 "frame/prosparser.Y" +#line 155 "frame/prosparser.Y" {yydebug=1;;} break; case 21: -#line 160 "frame/prosparser.Y" +#line 156 "frame/prosparser.Y" {yydebug=0;;} break; case 28: -#line 175 "frame/prosparser.Y" +#line 171 "frame/prosparser.Y" {(yyval.real) = 0;;} break; case 29: -#line 176 "frame/prosparser.Y" +#line 172 "frame/prosparser.Y" {(yyval.real) = (yyvsp[(1) - (1)].real);;} break; case 30: -#line 179 "frame/prosparser.Y" +#line 175 "frame/prosparser.Y" {(yyval.real) = zeroTWOPI(degToRad((yyvsp[(1) - (1)].real)));;} break; case 31: -#line 180 "frame/prosparser.Y" +#line 176 "frame/prosparser.Y" {(yyval.real) = zeroTWOPI(degToRad((yyvsp[(1) - (1)].real)));;} break; case 32: -#line 181 "frame/prosparser.Y" +#line 177 "frame/prosparser.Y" {(yyval.real)=(yyvsp[(1) - (1)].real);;} break; case 33: -#line 184 "frame/prosparser.Y" +#line 180 "frame/prosparser.Y" {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), Coord::IMAGE);;} break; case 34: -#line 185 "frame/prosparser.Y" +#line 181 "frame/prosparser.Y" {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), Coord::DEGREE);;} break; case 35: -#line 186 "frame/prosparser.Y" +#line 182 "frame/prosparser.Y" {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), Coord::ARCMIN);;} break; case 36: -#line 187 "frame/prosparser.Y" +#line 183 "frame/prosparser.Y" {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), Coord::ARCSEC);;} break; case 37: -#line 191 "frame/prosparser.Y" +#line 187 "frame/prosparser.Y" { Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::IMAGE); (yyval.vector)[0] = r[0]; @@ -1729,7 +1725,7 @@ break; case 38: -#line 198 "frame/prosparser.Y" +#line 194 "frame/prosparser.Y" { Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),Coord::DEGREE); (yyval.vector)[0] = r[0]; @@ -1739,7 +1735,7 @@ break; case 39: -#line 205 "frame/prosparser.Y" +#line 201 "frame/prosparser.Y" { Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),Coord::ARCMIN); (yyval.vector)[0] = r[0]; @@ -1749,7 +1745,7 @@ break; case 40: -#line 212 "frame/prosparser.Y" +#line 208 "frame/prosparser.Y" { Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),Coord::ARCSEC); (yyval.vector)[0] = r[0]; @@ -1759,27 +1755,27 @@ break; case 41: -#line 220 "frame/prosparser.Y" +#line 216 "frame/prosparser.Y" {(yyval.integer) = (yyvsp[(3) - (3)].integer);;} break; case 42: -#line 223 "frame/prosparser.Y" +#line 219 "frame/prosparser.Y" {(yyval.real) = parseSEXStr((yyvsp[(1) - (1)].str));;} break; case 43: -#line 226 "frame/prosparser.Y" +#line 222 "frame/prosparser.Y" {(yyval.real) = parseHMSStr((yyvsp[(1) - (1)].str));;} break; case 44: -#line 229 "frame/prosparser.Y" +#line 225 "frame/prosparser.Y" {(yyval.real) = parseDMSStr((yyvsp[(1) - (1)].str));;} break; case 45: -#line 233 "frame/prosparser.Y" +#line 229 "frame/prosparser.Y" { Vector r; Coord::CoordSystem sys = checkWCSSystem(); @@ -1795,7 +1791,7 @@ break; case 46: -#line 246 "frame/prosparser.Y" +#line 242 "frame/prosparser.Y" { Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), checkWCSSystem(), checkWCSSky()); @@ -1806,7 +1802,7 @@ break; case 47: -#line 254 "frame/prosparser.Y" +#line 250 "frame/prosparser.Y" { Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), checkWCSSystem(), checkWCSSky()); @@ -1817,7 +1813,7 @@ break; case 48: -#line 262 "frame/prosparser.Y" +#line 258 "frame/prosparser.Y" { Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), localSystem, localSky); (yyval.vector)[0] = r[0]; @@ -1827,7 +1823,7 @@ break; case 49: -#line 269 "frame/prosparser.Y" +#line 265 "frame/prosparser.Y" { Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), checkWCSSystem(), checkWCSSky()); @@ -1838,52 +1834,52 @@ break; case 50: -#line 278 "frame/prosparser.Y" +#line 274 "frame/prosparser.Y" {(yyval.integer) = Coord::IMAGE;;} break; case 51: -#line 279 "frame/prosparser.Y" +#line 275 "frame/prosparser.Y" {(yyval.integer) = Coord::PHYSICAL;;} break; case 52: -#line 282 "frame/prosparser.Y" +#line 278 "frame/prosparser.Y" {(yyval.integer) = (yyvsp[(2) - (2)].integer);;} break; case 53: -#line 283 "frame/prosparser.Y" +#line 279 "frame/prosparser.Y" {(yyval.integer) = Coord::FK4;;} break; case 54: -#line 284 "frame/prosparser.Y" +#line 280 "frame/prosparser.Y" {(yyval.integer) = Coord::FK5;;} break; case 55: -#line 285 "frame/prosparser.Y" +#line 281 "frame/prosparser.Y" {(yyval.integer) = Coord::GALACTIC;;} break; case 56: -#line 286 "frame/prosparser.Y" +#line 282 "frame/prosparser.Y" {(yyval.integer) = Coord::ECLIPTIC;;} break; case 57: -#line 289 "frame/prosparser.Y" +#line 285 "frame/prosparser.Y" {(yyval.integer) = Coord::FK4;;} break; case 58: -#line 290 "frame/prosparser.Y" +#line 286 "frame/prosparser.Y" {(yyval.integer) = Coord::FK5;;} break; case 59: -#line 293 "frame/prosparser.Y" +#line 289 "frame/prosparser.Y" { // global properties globalSystem = Coord::IMAGE; @@ -1896,7 +1892,7 @@ break; case 60: -#line 304 "frame/prosparser.Y" +#line 300 "frame/prosparser.Y" { // reset maperr flag maperr =0; @@ -1910,40 +1906,40 @@ break; case 61: -#line 316 "frame/prosparser.Y" +#line 312 "frame/prosparser.Y" {setProps(&localProps, Marker::INCLUDE, 1);;} break; case 62: -#line 317 "frame/prosparser.Y" +#line 313 "frame/prosparser.Y" {setProps(&localProps, Marker::INCLUDE, 1);;} break; case 63: -#line 318 "frame/prosparser.Y" +#line 314 "frame/prosparser.Y" {setProps(&localProps, Marker::INCLUDE, 0);;} break; case 64: -#line 323 "frame/prosparser.Y" +#line 319 "frame/prosparser.Y" {fr->createCircleCmd(Vector((yyvsp[(3) - (7)].vector)), (yyvsp[(5) - (7)].real), fill_, color,dash,1,font,text,localProps,localComment,taglist,cblist);;} break; case 65: -#line 326 "frame/prosparser.Y" +#line 322 "frame/prosparser.Y" {fr->createAnnulusCmd(Vector((yyvsp[(3) - (9)].vector)), (yyvsp[(5) - (9)].real),(yyvsp[(7) - (9)].real),1, color,dash,1,font,text,localProps,localComment,taglist,cblist);;} break; case 66: -#line 329 "frame/prosparser.Y" +#line 325 "frame/prosparser.Y" {aNum=2;;} break; case 67: -#line 331 "frame/prosparser.Y" +#line 327 "frame/prosparser.Y" { aAnnuli[0] = (yyvsp[(5) - (12)].real); aAnnuli[1] = (yyvsp[(7) - (12)].real); @@ -1954,14 +1950,14 @@ break; case 68: -#line 339 "frame/prosparser.Y" +#line 335 "frame/prosparser.Y" {fr->createAnnulusCmd(Vector((yyvsp[(3) - (11)].vector)), (yyvsp[(5) - (11)].real),(yyvsp[(7) - (11)].real),(yyvsp[(9) - (11)].integer), color,dash,1,font,text,localProps,localComment,taglist,cblist);;} break; case 69: -#line 344 "frame/prosparser.Y" +#line 340 "frame/prosparser.Y" { // for ellipse annulus aStatus = 1; @@ -1978,7 +1974,7 @@ break; case 70: -#line 359 "frame/prosparser.Y" +#line 355 "frame/prosparser.Y" { aStatus = 2; aVector[aNum++] = Vector((yyvsp[(5) - (18)].vector)); @@ -1986,7 +1982,7 @@ break; case 71: -#line 365 "frame/prosparser.Y" +#line 361 "frame/prosparser.Y" { // for box annulus aStatus = 3; @@ -2003,13 +1999,13 @@ break; case 72: -#line 379 "frame/prosparser.Y" +#line 375 "frame/prosparser.Y" {fr->createBoxCmd(Vector((yyvsp[(3) - (9)].vector)), Vector((yyvsp[(5) - (9)].vector)), (yyvsp[(7) - (9)].real), fill_, color,dash,1,font,text,localProps,localComment,taglist,cblist);;} break; case 73: -#line 383 "frame/prosparser.Y" +#line 379 "frame/prosparser.Y" { aStatus = 4; aVector[aNum++] = Vector((yyvsp[(5) - (18)].vector)); @@ -2017,34 +2013,34 @@ break; case 74: -#line 389 "frame/prosparser.Y" +#line 385 "frame/prosparser.Y" {fr->createPointCmd(Vector((yyvsp[(3) - (5)].vector)), Point::BOXCIRCLE, POINTSIZE, color,dash,1,font,text,localProps,localComment,taglist,cblist);;} break; case 75: -#line 392 "frame/prosparser.Y" +#line 388 "frame/prosparser.Y" {polylist.deleteAll();;} break; case 76: -#line 393 "frame/prosparser.Y" +#line 389 "frame/prosparser.Y" {fr->createPolygonCmd(polylist, fill_, color,dash,1,font,text,localProps,localComment,taglist,cblist);;} break; case 79: -#line 401 "frame/prosparser.Y" +#line 397 "frame/prosparser.Y" {polylist.append(new Vertex((yyvsp[(1) - (1)].vector)));;} break; case 82: -#line 408 "frame/prosparser.Y" +#line 404 "frame/prosparser.Y" {aAnnuli[aNum++] = (yyvsp[(1) - (1)].real);;} break; case 83: -#line 412 "frame/prosparser.Y" +#line 408 "frame/prosparser.Y" { switch (aStatus) { case 0: // do nothing @@ -2073,28 +2069,28 @@ break; case 85: -#line 440 "frame/prosparser.Y" +#line 436 "frame/prosparser.Y" {DISCARD_(1);;} break; case 87: -#line 443 "frame/prosparser.Y" +#line 439 "frame/prosparser.Y" {DISCARD_(1);;} break; case 90: -#line 447 "frame/prosparser.Y" +#line 443 "frame/prosparser.Y" {DISCARD_(0);;} break; case 91: -#line 448 "frame/prosparser.Y" +#line 444 "frame/prosparser.Y" {strncpy(localComment,(yyvsp[(3) - (4)].str),80);;} break; /* Line 1267 of yacc.c. */ -#line 2098 "frame/prosparser.C" +#line 2094 "frame/prosparser.C" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2308,7 +2304,7 @@ } -#line 451 "frame/prosparser.Y" +#line 447 "frame/prosparser.Y" static void setProps(unsigned short* props, unsigned short prop, int value) diff -Nru saods9-8.2+repack/tksao/frame/prosparser.Y saods9-8.3+repack/tksao/frame/prosparser.Y --- saods9-8.2+repack/tksao/frame/prosparser.Y 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/prosparser.Y 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -124,11 +124,7 @@ %% start : { - if (fr->useMarkerColor()) - strcpy(color, fr->markerColor()); - else - strcpy(color, "green"); - + strcpy(color, fr->markerColor()); globalSystem = fr->xySystem(); globalSky = fr->xySky(); } initGlobal commands processAnnulus diff -Nru saods9-8.2+repack/tksao/frame/raytrace.C saods9-8.3+repack/tksao/frame/raytrace.C --- saods9-8.2+repack/tksao/frame/raytrace.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/raytrace.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/raytrace.h saods9-8.3+repack/tksao/frame/raytrace.h --- saods9-8.2+repack/tksao/frame/raytrace.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/raytrace.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/ruler.C saods9-8.3+repack/tksao/frame/ruler.C --- saods9-8.2+repack/tksao/frame/ruler.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/ruler.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -179,67 +179,8 @@ renderPSLineNoDash(); } -#ifdef MAC_OSX_TK -#include - -void Ruler::renderMACOSX() -{ - /* - renderMACOSXGC(); - - Vector aa = parent->mapFromRef(p1,Coord::CANVAS); - Vector bb = parent->mapFromRef(p2,Coord::CANVAS); - Vector cc = parent->mapFromRef(p3,Coord::CANVAS); - Vector dd = modifyArrow(p2,p1,Coord::CANVAS); - Vector ee = modifyArrow(p1,p2,Coord::CANVAS); - - // line - macosxDrawLine(dd,ee); - renderMACOSXArrow(p2,p1,Coord::CANVAS); - renderMACOSXArrow(p1,p2,Coord::CANVAS); - - // axes - renderMACOSXLineDash(); - macosxDrawLine(aa,cc); - macosxDrawLine(bb,cc); - - // dist - { - ostringstream vstr; - distToStr(vstr); - vstr << ends; - - if (psfont_) { - Tcl_DString psdstr; - Tcl_DStringInit(&psdstr); - int psSize = Tk_PostscriptFontName(psfont_, &psdstr); - macosxFont(Tcl_DStringValue(&psdstr), psSize); - Tcl_DStringFree(&psdstr); - - Tk_FontMetrics metrics; - Tk_GetFontMetrics(psfont_, &metrics); - char* buf = dupstr(vstr.str().c_str()); - int width = Tk_TextWidth(psfont_, buf, strlen(buf)); - - Vector tt = ((bb-aa)/2 + aa) * Translate(-width/2., -metrics.descent); - macosxDrawText(tt, 0, buf); - if (buf) - delete buf; - } - } - */ -} - -void Ruler::renderMACOSXGC() -{ - /* - macosxColor(parent->getXColor(colorName)); - renderMACOSXLineNoDash(); - */ -} -#endif - // WIN32 + #ifdef __WIN32 #include diff -Nru saods9-8.2+repack/tksao/frame/ruler.h saods9-8.3+repack/tksao/frame/ruler.h --- saods9-8.2+repack/tksao/frame/ruler.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/ruler.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -24,11 +24,6 @@ void renderPS(PSColorSpace); void renderPSGC(PSColorSpace); -#ifdef MAC_OSX_TK - void renderMACOSX(); - void renderMACOSXGC(); -#endif - #ifdef __WIN32 void renderWIN32(); void renderWIN32GC(); diff -Nru saods9-8.2+repack/tksao/frame/saolex.C saods9-8.3+repack/tksao/frame/saolex.C --- saods9-8.2+repack/tksao/frame/saolex.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/saolex.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,6 +1,6 @@ -#line 2 "frame/saolex.C" +#line 1 "frame/saolex.C" -#line 4 "frame/saolex.C" +#line 3 "frame/saolex.C" #define YY_INT_ALIGNED short int @@ -8,8 +8,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -22,6 +22,24 @@ */ #define yyFlexLexer saoFlexLexer +#ifdef yyalloc +#define saoalloc_ALREADY_DEFINED +#else +#define yyalloc saoalloc +#endif + +#ifdef yyrealloc +#define saorealloc_ALREADY_DEFINED +#else +#define yyrealloc saorealloc +#endif + +#ifdef yyfree +#define saofree_ALREADY_DEFINED +#else +#define yyfree saofree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -59,7 +77,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -90,70 +107,67 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ -#include +#include #include #include +#include #include /* end standard C++ headers. */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) - #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -175,8 +189,9 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -191,7 +206,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -199,7 +213,7 @@ struct yy_buffer_state { - std::istream* yy_input_file; + std::streambuf* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ @@ -207,7 +221,7 @@ /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -235,7 +249,7 @@ int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -269,18 +283,16 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -void *saoalloc (yy_size_t ); -void *saorealloc (void *,yy_size_t ); -void saofree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -290,7 +302,6 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -300,13 +311,11 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; #define yytext_ptr yytext @@ -323,7 +332,6 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 27 #define YY_END_OF_BUFFER 28 /* This struct is not used in this scanner, @@ -333,7 +341,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[101] = +static const flex_int16_t yy_accept[101] = { 0, 0, 0, 2, 2, 28, 26, 22, 25, 26, 26, 26, 26, 26, 15, 21, 21, 21, 21, 21, 21, @@ -348,7 +356,7 @@ } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, @@ -380,7 +388,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[52] = +static const YY_CHAR yy_meta[52] = { 0, 1, 1, 2, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -390,7 +398,7 @@ 1 } ; -static yyconst flex_int16_t yy_base[107] = +static const flex_int16_t yy_base[107] = { 0, 0, 0, 252, 246, 248, 266, 245, 266, 243, 240, 236, 44, 232, 46, 48, 49, 51, 50, 53, 232, @@ -406,7 +414,7 @@ 250, 253, 256, 62, 259, 262 } ; -static yyconst flex_int16_t yy_def[107] = +static const flex_int16_t yy_def[107] = { 0, 100, 1, 101, 101, 100, 100, 100, 100, 100, 102, 103, 100, 100, 104, 104, 104, 104, 104, 104, 104, @@ -422,7 +430,7 @@ 100, 100, 100, 100, 100, 100 } ; -static yyconst flex_int16_t yy_nxt[318] = +static const flex_int16_t yy_nxt[318] = { 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 20, 20, 20, 20, 21, @@ -461,7 +469,7 @@ 100, 100, 100, 100, 100, 100, 100 } ; -static yyconst flex_int16_t yy_chk[318] = +static const flex_int16_t yy_chk[318] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -508,7 +516,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "frame/saolex.L" -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -522,9 +530,10 @@ extern YYSTYPE* saolval; extern saoFlexLexer* saolexx; +#line 533 "frame/saolex.C" /* rules */ -#line 528 "frame/saolex.C" +#line 536 "frame/saolex.C" #define INITIAL 0 #define DISCARD 1 @@ -542,11 +551,11 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -555,7 +564,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -569,7 +583,7 @@ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif @@ -611,7 +625,7 @@ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -621,15 +635,10 @@ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 30 "frame/saolex.L" - - -#line 632 "frame/saolex.C" - if ( !(yy_init) ) { (yy_init) = 1; @@ -642,10 +651,10 @@ (yy_start) = 1; /* first start state */ if ( ! yyin ) - yyin = & std::cin; + yyin.rdbuf(std::cin.rdbuf()); if ( ! yyout ) - yyout = & std::cout; + yyout.rdbuf(std::cout.rdbuf()); if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); @@ -656,7 +665,13 @@ yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 30 "frame/saolex.L" + + +#line 672 "frame/saolex.C" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -672,7 +687,7 @@ yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -682,9 +697,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 101 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 100 ); @@ -887,7 +902,7 @@ #line 116 "frame/saolex.L" ECHO; YY_BREAK -#line 891 "frame/saolex.C" +#line 905 "frame/saolex.C" case YY_END_OF_BUFFER: { @@ -910,7 +925,7 @@ * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -1017,14 +1032,33 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. */ -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::ctor_common() { - yyin = arg_yyin; - yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; @@ -1041,7 +1075,7 @@ yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -1054,23 +1088,36 @@ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; - saofree(yy_start_stack ); + yyfree( yy_start_stack ); yy_delete_buffer( YY_CURRENT_BUFFER ); - saofree(yy_buffer_stack ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } + if( ! new_in ) { + new_in = &yyin; + } - if ( new_out ) - yyout = new_out; + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); } #ifdef YY_INTERACTIVE @@ -1079,33 +1126,33 @@ size_t yyFlexLexer::LexerInput( char* buf, size_t max_size ) #endif { - if ( yyin->eof() || yyin->fail() ) + if ( yyin.eof() || yyin.fail() ) return 0; #ifdef YY_INTERACTIVE - yyin->get( buf[0] ); + yyin.get( buf[0] ); - if ( yyin->eof() ) + if ( yyin.eof() ) return 0; - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; return 1; #else - (void) yyin->read( buf, max_size ); + (void) yyin.read( buf, max_size ); - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; else - return yyin->gcount(); + return yyin.gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, size_t size ) { - (void) yyout->write( buf, size ); + (void) yyout.write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer @@ -1117,9 +1164,9 @@ */ int yyFlexLexer::yy_get_next_buffer() { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1148,7 +1195,7 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1168,7 +1215,7 @@ { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); @@ -1184,11 +1231,12 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - saorealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1230,12 +1278,15 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) saorealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1251,14 +1302,14 @@ yy_state_type yyFlexLexer::yy_get_previous_state() { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1268,9 +1319,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 101 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1283,10 +1334,10 @@ */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1296,17 +1347,18 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 101 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 100); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - void yyFlexLexer::yyunput( int c, register char* yy_bp) +#ifndef YY_NO_UNPUT + void yyFlexLexer::yyunput( int c, char* yy_bp) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -1316,10 +1368,10 @@ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -1328,7 +1380,7 @@ yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -1340,6 +1392,7 @@ (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } +#endif int yyFlexLexer::yyinput() { @@ -1413,7 +1466,7 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void yyFlexLexer::yyrestart( std::istream* input_file ) + void yyFlexLexer::yyrestart( std::istream& input_file ) { if ( ! YY_CURRENT_BUFFER ){ @@ -1426,6 +1479,19 @@ yy_load_buffer_state( ); } +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -1465,7 +1531,7 @@ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); (yy_hold_char) = *(yy_c_buf_p); } @@ -1475,11 +1541,11 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) saoalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1488,7 +1554,7 @@ /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) saoalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1499,6 +1565,17 @@ return b; } +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -1513,23 +1590,23 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - saofree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - saofree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) { int oerrno = errno; yy_flush_buffer( b ); - b->yy_input_file = file; + b->yy_input_file = file.rdbuf(); b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -1637,15 +1714,15 @@ * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)saoalloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -1654,10 +1731,10 @@ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)saorealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -1670,20 +1747,21 @@ } } - void yyFlexLexer::yy_push_state( int new_state ) + void yyFlexLexer::yy_push_state( int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) saoalloc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) saorealloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -1691,7 +1769,7 @@ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } void yyFlexLexer::yy_pop_state() @@ -1711,7 +1789,7 @@ #define YY_EXIT_FAILURE 2 #endif -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( const char* msg ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); @@ -1724,7 +1802,7 @@ do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -1741,18 +1819,19 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -1760,13 +1839,14 @@ } #endif -void *saoalloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *saorealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -1774,12 +1854,12 @@ * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void saofree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see saorealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -1787,7 +1867,6 @@ #line 116 "frame/saolex.L" - void saoDiscard(int doit) { if (saolexx) diff -Nru saods9-8.2+repack/tksao/frame/saolex.L saods9-8.3+repack/tksao/frame/saolex.L --- saods9-8.2+repack/tksao/frame/saolex.L 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/saolex.L 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ diff -Nru saods9-8.2+repack/tksao/frame/saoparser.C saods9-8.3+repack/tksao/frame/saoparser.C --- saods9-8.2+repack/tksao/frame/saoparser.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/saoparser.C 2021-11-08 15:46:07.000000000 +0000 @@ -519,13 +519,13 @@ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 98, 98, 98, 106, 107, 110, 111, 112, 113, - 114, 117, 118, 119, 122, 123, 126, 127, 130, 131, - 134, 135, 138, 139, 142, 143, 146, 149, 152, 161, - 164, 173, 181, 189, 190, 191, 194, 197, 201, 201, - 210, 216, 230, 237, 251, 254, 261, 265, 265, 270, - 271, 274, 277, 278, 281, 285, 312, 312, 315, 316, - 316 + 0, 98, 98, 98, 103, 104, 107, 108, 109, 110, + 111, 114, 115, 116, 119, 120, 123, 124, 127, 128, + 131, 132, 135, 136, 139, 140, 143, 146, 149, 158, + 161, 170, 178, 186, 187, 188, 191, 194, 198, 198, + 207, 213, 227, 234, 248, 251, 258, 262, 262, 267, + 268, 271, 274, 275, 278, 282, 309, 309, 312, 313, + 313 }; #endif @@ -1535,65 +1535,62 @@ case 2: #line 98 "frame/saoparser.Y" { - if (fr->useMarkerColor()) - strcpy(color, fr->markerColor()); - else - strcpy(color, "green"); + strcpy(color, fr->markerColor()); ;} break; case 8: -#line 112 "frame/saoparser.Y" +#line 109 "frame/saoparser.Y" {cerr << "SAOimage" << endl;;} break; case 13: -#line 119 "frame/saoparser.Y" +#line 116 "frame/saoparser.Y" {YYACCEPT;;} break; case 14: -#line 122 "frame/saoparser.Y" +#line 119 "frame/saoparser.Y" {(yyval.real)=(yyvsp[(1) - (1)].real);;} break; case 15: -#line 123 "frame/saoparser.Y" +#line 120 "frame/saoparser.Y" {(yyval.real)=(yyvsp[(1) - (1)].integer);;} break; case 16: -#line 126 "frame/saoparser.Y" +#line 123 "frame/saoparser.Y" {yydebug=1;;} break; case 17: -#line 127 "frame/saoparser.Y" +#line 124 "frame/saoparser.Y" {yydebug=0;;} break; case 24: -#line 142 "frame/saoparser.Y" +#line 139 "frame/saoparser.Y" {(yyval.real) = 0;;} break; case 25: -#line 143 "frame/saoparser.Y" +#line 140 "frame/saoparser.Y" {(yyval.real) = (yyvsp[(1) - (1)].real);;} break; case 26: -#line 146 "frame/saoparser.Y" +#line 143 "frame/saoparser.Y" {(yyval.real) = zeroTWOPI(degToRad((yyvsp[(1) - (1)].real)));;} break; case 27: -#line 149 "frame/saoparser.Y" +#line 146 "frame/saoparser.Y" {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), Coord::IMAGE);;} break; case 28: -#line 153 "frame/saoparser.Y" +#line 150 "frame/saoparser.Y" { Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::IMAGE); (yyval.vector)[0] = r[0]; @@ -1603,12 +1600,12 @@ break; case 29: -#line 161 "frame/saoparser.Y" +#line 158 "frame/saoparser.Y" {(yyval.integer) = (yyvsp[(3) - (3)].integer);;} break; case 30: -#line 165 "frame/saoparser.Y" +#line 162 "frame/saoparser.Y" { Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::IMAGE); (yyval.vector)[0] = r[0]; @@ -1618,7 +1615,7 @@ break; case 31: -#line 173 "frame/saoparser.Y" +#line 170 "frame/saoparser.Y" { globalProps = Marker::SELECT | Marker::EDIT | Marker::MOVE | @@ -1628,7 +1625,7 @@ break; case 32: -#line 181 "frame/saoparser.Y" +#line 178 "frame/saoparser.Y" { // reset maperr flag maperr =0; @@ -1638,40 +1635,40 @@ break; case 33: -#line 189 "frame/saoparser.Y" +#line 186 "frame/saoparser.Y" {setProps(&localProps, Marker::INCLUDE, 1);;} break; case 34: -#line 190 "frame/saoparser.Y" +#line 187 "frame/saoparser.Y" {setProps(&localProps, Marker::INCLUDE, 1);;} break; case 35: -#line 191 "frame/saoparser.Y" +#line 188 "frame/saoparser.Y" {setProps(&localProps, Marker::INCLUDE, 0);;} break; case 36: -#line 195 "frame/saoparser.Y" +#line 192 "frame/saoparser.Y" {fr->createCircleCmd(Vector((yyvsp[(3) - (7)].vector)), (yyvsp[(5) - (7)].real), fill_, color,dash,1,font,text,localProps,localComment,taglist,cblist);;} break; case 37: -#line 198 "frame/saoparser.Y" +#line 195 "frame/saoparser.Y" {fr->createAnnulusCmd(Vector((yyvsp[(3) - (9)].vector)), (yyvsp[(5) - (9)].real),(yyvsp[(7) - (9)].real),1, color,dash,1,font,text,localProps,localComment,taglist,cblist);;} break; case 38: -#line 201 "frame/saoparser.Y" +#line 198 "frame/saoparser.Y" {aNum=2;;} break; case 39: -#line 203 "frame/saoparser.Y" +#line 200 "frame/saoparser.Y" { aAnnuli[0] = (yyvsp[(5) - (12)].real); aAnnuli[1] = (yyvsp[(7) - (12)].real); @@ -1682,14 +1679,14 @@ break; case 40: -#line 211 "frame/saoparser.Y" +#line 208 "frame/saoparser.Y" {fr->createAnnulusCmd(Vector((yyvsp[(3) - (11)].vector)), (yyvsp[(5) - (11)].real),(yyvsp[(7) - (11)].real),(yyvsp[(9) - (11)].integer), color,dash,1,font,text,localProps,localComment,taglist,cblist);;} break; case 41: -#line 217 "frame/saoparser.Y" +#line 214 "frame/saoparser.Y" { // for ellipse annulus aStatus = 1; @@ -1706,7 +1703,7 @@ break; case 42: -#line 232 "frame/saoparser.Y" +#line 229 "frame/saoparser.Y" { aStatus = 2; aVector[aNum++] = Vector((yyvsp[(5) - (18)].vector)); @@ -1714,7 +1711,7 @@ break; case 43: -#line 238 "frame/saoparser.Y" +#line 235 "frame/saoparser.Y" { // for box annulus aStatus = 3; @@ -1731,13 +1728,13 @@ break; case 44: -#line 252 "frame/saoparser.Y" +#line 249 "frame/saoparser.Y" {fr->createBoxCmd(Vector((yyvsp[(3) - (9)].vector)), Vector((yyvsp[(5) - (9)].vector)), (yyvsp[(7) - (9)].real), fill_, color,dash,1,font,text,localProps,localComment,taglist,cblist);;} break; case 45: -#line 256 "frame/saoparser.Y" +#line 253 "frame/saoparser.Y" { aStatus = 4; aVector[aNum++] = Vector((yyvsp[(5) - (18)].vector)); @@ -1745,34 +1742,34 @@ break; case 46: -#line 262 "frame/saoparser.Y" +#line 259 "frame/saoparser.Y" {fr->createPointCmd(Vector((yyvsp[(3) - (5)].vector)), Point::BOXCIRCLE, POINTSIZE, color,dash,1,font,text,localProps,localComment,taglist,cblist);;} break; case 47: -#line 265 "frame/saoparser.Y" +#line 262 "frame/saoparser.Y" {polylist.deleteAll();;} break; case 48: -#line 266 "frame/saoparser.Y" +#line 263 "frame/saoparser.Y" {fr->createPolygonCmd(polylist, fill_, color,dash,1,font,text,localProps,localComment,taglist,cblist);;} break; case 51: -#line 274 "frame/saoparser.Y" +#line 271 "frame/saoparser.Y" {polylist.append(new Vertex((yyvsp[(1) - (1)].vector)));;} break; case 54: -#line 281 "frame/saoparser.Y" +#line 278 "frame/saoparser.Y" {aAnnuli[aNum++] = (yyvsp[(1) - (1)].real);;} break; case 55: -#line 285 "frame/saoparser.Y" +#line 282 "frame/saoparser.Y" { switch (aStatus) { case 0: // do nothing @@ -1801,23 +1798,23 @@ break; case 56: -#line 312 "frame/saoparser.Y" +#line 309 "frame/saoparser.Y" {DISCARD_(1);;} break; case 59: -#line 316 "frame/saoparser.Y" +#line 313 "frame/saoparser.Y" {DISCARD_(0);;} break; case 60: -#line 317 "frame/saoparser.Y" +#line 314 "frame/saoparser.Y" {strncpy(localComment,(yyvsp[(3) - (4)].str),80);;} break; /* Line 1267 of yacc.c. */ -#line 1821 "frame/saoparser.C" +#line 1818 "frame/saoparser.C" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2031,7 +2028,7 @@ } -#line 320 "frame/saoparser.Y" +#line 317 "frame/saoparser.Y" static void setProps(unsigned short* props, unsigned short prop, int value) diff -Nru saods9-8.2+repack/tksao/frame/saoparser.Y saods9-8.3+repack/tksao/frame/saoparser.Y --- saods9-8.2+repack/tksao/frame/saoparser.Y 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/saoparser.Y 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -96,10 +96,7 @@ %% start : { - if (fr->useMarkerColor()) - strcpy(color, fr->markerColor()); - else - strcpy(color, "green"); + strcpy(color, fr->markerColor()); } initGlobal commands processAnnulus ; diff -Nru saods9-8.2+repack/tksao/frame/segment.C saods9-8.3+repack/tksao/frame/segment.C --- saods9-8.2+repack/tksao/frame/segment.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/segment.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -74,28 +74,6 @@ Tcl_AppendResult(parent->interp, str.str().c_str(), NULL); } -#ifdef MAC_OSX_TK -#include - -void Segment::renderMACOSX() -{ - /* - renderMACOSXGC(); - - vertex.head(); - Vector v1; - Vector v2 = fwdMap(vertex.current()->vector,Coord::CANVAS); - vertex.next(); - - do { - v1 = v2; - v2 = fwdMap(vertex.current()->vector,Coord::CANVAS); - macosxDrawLine(v1,v2); - } while (vertex.next()); - */ -} -#endif - #ifdef __WIN32 #include diff -Nru saods9-8.2+repack/tksao/frame/segment.h saods9-8.3+repack/tksao/frame/segment.h --- saods9-8.2+repack/tksao/frame/segment.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/segment.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -13,9 +13,6 @@ protected: void renderX(Drawable, Coord::InternalSystem, RenderMode); void renderPS(PSColorSpace); -#ifdef MAC_OSX_TK - void renderMACOSX(); -#endif #ifdef __WIN32 void renderWIN32(); #endif diff -Nru saods9-8.2+repack/tksao/frame/sigbus.h saods9-8.3+repack/tksao/frame/sigbus.h --- saods9-8.2+repack/tksao/frame/sigbus.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/sigbus.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -21,6 +21,11 @@ siglongjmp(crashbuf, 1); } #define INTERP interp + +#ifdef NOSIGBUS +#define SETSIGBUS +#define CLEARSIGBUS +#else #define SETSIGBUS \ if (sigsetjmp(crashbuf, 1)) { \ Tcl_SetVar2(INTERP, "ds9", "msg", "A SIGBUS or SIGSEGV error has been received.", TCL_GLOBAL_ONLY); \ @@ -37,7 +42,7 @@ } \ sigaction(SIGSEGV, &osigsegv, NULL); \ sigaction(SIGBUS, &osigbus, NULL); - +#endif #endif #endif diff -Nru saods9-8.2+repack/tksao/frame/tag.C saods9-8.3+repack/tksao/frame/tag.C --- saods9-8.2+repack/tksao/frame/tag.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/tag.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/tag.h saods9-8.3+repack/tksao/frame/tag.h --- saods9-8.2+repack/tksao/frame/tag.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/tag.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/text.C saods9-8.3+repack/tksao/frame/text.C --- saods9-8.2+repack/tksao/frame/text.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/text.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -90,38 +90,6 @@ } } -#ifdef MAC_OSX_TK -#include - -void Text::renderMACOSX() -{ - /* - renderMACOSXGC(); - - if (text && *text && psfont_) { - Tcl_DString psdstr; - Tcl_DStringInit(&psdstr); - int psSize = Tk_PostscriptFontName(psfont_, &psdstr); - macosxFont(Tcl_DStringValue(&psdstr), psSize); - Tcl_DStringFree(&psdstr); - - Tk_FontMetrics metrics; - Tk_GetFontMetrics(psfont_, &metrics); - int width = Tk_TextWidth(psfont_, text, strlen(text)); - - double ang = rotate ? calcAngle() : 0; - Vector cc = parent->mapFromRef(center,Coord::CANVAS); - Matrix mm = Translate(-cc) * - Translate(-width/2.,metrics.descent) * - Rotate(ang) * - Translate(cc); - - macosxDrawText(cc*mm, 0, text); - } - */ -} -#endif - #ifdef __WIN32 #include diff -Nru saods9-8.2+repack/tksao/frame/text.h saods9-8.3+repack/tksao/frame/text.h --- saods9-8.2+repack/tksao/frame/text.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/text.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -20,12 +20,6 @@ void renderPSText(PSColorSpace) {} void renderPSInclude(PSColorSpace) {} -#ifdef MAC_OSX_TK - void renderMACOSX(); - void renderMACOSXText() {} - void renderMACOSXInclude() {} -#endif - #ifdef __WIN32 void renderWIN32(); void renderWIN32Text() {} diff -Nru saods9-8.2+repack/tksao/frame/tnglex.C saods9-8.3+repack/tksao/frame/tnglex.C --- saods9-8.2+repack/tksao/frame/tnglex.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/tnglex.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,6 +1,6 @@ -#line 2 "frame/tnglex.C" +#line 1 "frame/tnglex.C" -#line 4 "frame/tnglex.C" +#line 3 "frame/tnglex.C" #define YY_INT_ALIGNED short int @@ -8,8 +8,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -22,6 +22,24 @@ */ #define yyFlexLexer tngFlexLexer +#ifdef yyalloc +#define tngalloc_ALREADY_DEFINED +#else +#define yyalloc tngalloc +#endif + +#ifdef yyrealloc +#define tngrealloc_ALREADY_DEFINED +#else +#define yyrealloc tngrealloc +#endif + +#ifdef yyfree +#define tngfree_ALREADY_DEFINED +#else +#define yyfree tngfree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -59,7 +77,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -90,70 +107,67 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ -#include +#include #include #include +#include #include /* end standard C++ headers. */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) - #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -175,8 +189,9 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -191,7 +206,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -199,7 +213,7 @@ struct yy_buffer_state { - std::istream* yy_input_file; + std::streambuf* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ @@ -207,7 +221,7 @@ /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -235,7 +249,7 @@ int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -269,18 +283,16 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -void *tngalloc (yy_size_t ); -void *tngrealloc (void *,yy_size_t ); -void tngfree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -290,7 +302,6 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -300,13 +311,11 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; #define yytext_ptr yytext @@ -323,7 +332,6 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 54 #define YY_END_OF_BUFFER 55 /* This struct is not used in this scanner, @@ -333,7 +341,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[221] = +static const flex_int16_t yy_accept[221] = { 0, 0, 0, 2, 2, 55, 53, 49, 52, 53, 53, 53, 53, 53, 38, 48, 48, 48, 48, 48, 48, @@ -361,7 +369,7 @@ 31, 35, 48, 14, 15, 19, 28, 48, 4, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, @@ -393,7 +401,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[69] = +static const YY_CHAR yy_meta[69] = { 0, 1, 1, 2, 1, 1, 1, 1, 3, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 4, @@ -404,7 +412,7 @@ 3, 3, 3, 3, 3, 3, 1, 1 } ; -static yyconst flex_int16_t yy_base[228] = +static const flex_int16_t yy_base[228] = { 0, 0, 0, 162, 156, 150, 1053, 146, 1053, 136, 121, 118, 61, 68, 76, 85, 90, 86, 87, 97, 104, @@ -433,7 +441,7 @@ 1030, 1034, 1038, 1040, 1044, 1048, 95 } ; -static yyconst flex_int16_t yy_def[228] = +static const flex_int16_t yy_def[228] = { 0, 220, 1, 221, 221, 220, 220, 220, 220, 220, 222, 223, 220, 220, 224, 224, 224, 224, 224, 224, 224, @@ -462,7 +470,7 @@ 220, 220, 220, 220, 220, 220, 220 } ; -static yyconst flex_int16_t yy_nxt[1122] = +static const flex_int16_t yy_nxt[1122] = { 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 14, 14, 14, 14, 14, 6, 15, 16, 17, 18, @@ -590,7 +598,7 @@ 220 } ; -static yyconst flex_int16_t yy_chk[1122] = +static const flex_int16_t yy_chk[1122] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -726,7 +734,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "frame/tnglex.L" -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -740,9 +748,10 @@ extern YYSTYPE* tnglval; extern tngFlexLexer* tnglexx; +#line 751 "frame/tnglex.C" /* rules */ -#line 746 "frame/tnglex.C" +#line 754 "frame/tnglex.C" #define INITIAL 0 #define DISCARD 1 @@ -760,11 +769,11 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -773,7 +782,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -787,7 +801,7 @@ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif @@ -829,7 +843,7 @@ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -839,15 +853,10 @@ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 30 "frame/tnglex.L" - - -#line 850 "frame/tnglex.C" - if ( !(yy_init) ) { (yy_init) = 1; @@ -860,10 +869,10 @@ (yy_start) = 1; /* first start state */ if ( ! yyin ) - yyin = & std::cin; + yyin.rdbuf(std::cin.rdbuf()); if ( ! yyout ) - yyout = & std::cout; + yyout.rdbuf(std::cout.rdbuf()); if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); @@ -874,7 +883,13 @@ yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 30 "frame/tnglex.L" + + +#line 890 "frame/tnglex.C" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -890,7 +905,7 @@ yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -900,9 +915,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 221 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 220 ); @@ -1243,7 +1258,7 @@ #line 154 "frame/tnglex.L" ECHO; YY_BREAK -#line 1247 "frame/tnglex.C" +#line 1261 "frame/tnglex.C" case YY_END_OF_BUFFER: { @@ -1266,7 +1281,7 @@ * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -1373,14 +1388,33 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. */ -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::ctor_common() { - yyin = arg_yyin; - yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; @@ -1397,7 +1431,7 @@ yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -1410,23 +1444,36 @@ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; - tngfree(yy_start_stack ); + yyfree( yy_start_stack ); yy_delete_buffer( YY_CURRENT_BUFFER ); - tngfree(yy_buffer_stack ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } + if( ! new_in ) { + new_in = &yyin; + } - if ( new_out ) - yyout = new_out; + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); } #ifdef YY_INTERACTIVE @@ -1435,33 +1482,33 @@ size_t yyFlexLexer::LexerInput( char* buf, size_t max_size ) #endif { - if ( yyin->eof() || yyin->fail() ) + if ( yyin.eof() || yyin.fail() ) return 0; #ifdef YY_INTERACTIVE - yyin->get( buf[0] ); + yyin.get( buf[0] ); - if ( yyin->eof() ) + if ( yyin.eof() ) return 0; - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; return 1; #else - (void) yyin->read( buf, max_size ); + (void) yyin.read( buf, max_size ); - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; else - return yyin->gcount(); + return yyin.gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, size_t size ) { - (void) yyout->write( buf, size ); + (void) yyout.write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer @@ -1473,9 +1520,9 @@ */ int yyFlexLexer::yy_get_next_buffer() { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1504,7 +1551,7 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1524,7 +1571,7 @@ { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); @@ -1540,11 +1587,12 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - tngrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1586,12 +1634,15 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) tngrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1607,14 +1658,14 @@ yy_state_type yyFlexLexer::yy_get_previous_state() { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1624,9 +1675,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 221 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1639,10 +1690,10 @@ */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1652,17 +1703,18 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 221 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 220); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - void yyFlexLexer::yyunput( int c, register char* yy_bp) +#ifndef YY_NO_UNPUT + void yyFlexLexer::yyunput( int c, char* yy_bp) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -1672,10 +1724,10 @@ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -1684,7 +1736,7 @@ yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -1696,6 +1748,7 @@ (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } +#endif int yyFlexLexer::yyinput() { @@ -1769,7 +1822,7 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void yyFlexLexer::yyrestart( std::istream* input_file ) + void yyFlexLexer::yyrestart( std::istream& input_file ) { if ( ! YY_CURRENT_BUFFER ){ @@ -1782,6 +1835,19 @@ yy_load_buffer_state( ); } +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -1821,7 +1887,7 @@ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); (yy_hold_char) = *(yy_c_buf_p); } @@ -1831,11 +1897,11 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) tngalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1844,7 +1910,7 @@ /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) tngalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1855,6 +1921,17 @@ return b; } +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -1869,23 +1946,23 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - tngfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - tngfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) { int oerrno = errno; yy_flush_buffer( b ); - b->yy_input_file = file; + b->yy_input_file = file.rdbuf(); b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -1993,15 +2070,15 @@ * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)tngalloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -2010,10 +2087,10 @@ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)tngrealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -2026,20 +2103,21 @@ } } - void yyFlexLexer::yy_push_state( int new_state ) + void yyFlexLexer::yy_push_state( int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) tngalloc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) tngrealloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -2047,7 +2125,7 @@ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } void yyFlexLexer::yy_pop_state() @@ -2067,7 +2145,7 @@ #define YY_EXIT_FAILURE 2 #endif -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( const char* msg ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); @@ -2080,7 +2158,7 @@ do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -2097,18 +2175,19 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -2116,13 +2195,14 @@ } #endif -void *tngalloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *tngrealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -2130,12 +2210,12 @@ * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void tngfree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see tngrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -2143,7 +2223,6 @@ #line 154 "frame/tnglex.L" - void tngDiscard(int doit) { if (tnglexx) diff -Nru saods9-8.2+repack/tksao/frame/tnglex.L saods9-8.3+repack/tksao/frame/tnglex.L --- saods9-8.2+repack/tksao/frame/tnglex.L 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/tnglex.L 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ diff -Nru saods9-8.2+repack/tksao/frame/tngparser.Y saods9-8.3+repack/tksao/frame/tngparser.Y --- saods9-8.2+repack/tksao/frame/tngparser.Y 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/tngparser.Y 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/vect.C saods9-8.3+repack/tksao/frame/vect.C --- saods9-8.2+repack/tksao/frame/vect.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/vect.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/vect.h saods9-8.3+repack/tksao/frame/vect.h --- saods9-8.2+repack/tksao/frame/vect.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/vect.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/wcsast.C saods9-8.3+repack/tksao/frame/wcsast.C --- saods9-8.2+repack/tksao/frame/wcsast.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/wcsast.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/wcsast.h saods9-8.3+repack/tksao/frame/wcsast.h --- saods9-8.2+repack/tksao/frame/wcsast.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/wcsast.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/xml.h saods9-8.3+repack/tksao/frame/xml.h --- saods9-8.2+repack/tksao/frame/xml.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/xml.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/frame/xylex.C saods9-8.3+repack/tksao/frame/xylex.C --- saods9-8.2+repack/tksao/frame/xylex.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/xylex.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,6 +1,6 @@ -#line 2 "frame/xylex.C" +#line 1 "frame/xylex.C" -#line 4 "frame/xylex.C" +#line 3 "frame/xylex.C" #define YY_INT_ALIGNED short int @@ -8,8 +8,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -22,6 +22,24 @@ */ #define yyFlexLexer xyFlexLexer +#ifdef yyalloc +#define xyalloc_ALREADY_DEFINED +#else +#define yyalloc xyalloc +#endif + +#ifdef yyrealloc +#define xyrealloc_ALREADY_DEFINED +#else +#define yyrealloc xyrealloc +#endif + +#ifdef yyfree +#define xyfree_ALREADY_DEFINED +#else +#define yyfree xyfree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -59,7 +77,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -90,70 +107,67 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ -#include +#include #include #include +#include #include /* end standard C++ headers. */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) - #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -175,8 +189,9 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -191,7 +206,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -199,7 +213,7 @@ struct yy_buffer_state { - std::istream* yy_input_file; + std::streambuf* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ @@ -207,7 +221,7 @@ /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -235,7 +249,7 @@ int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -269,18 +283,16 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -void *xyalloc (yy_size_t ); -void *xyrealloc (void *,yy_size_t ); -void xyfree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -290,7 +302,6 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -300,13 +311,11 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; #define yytext_ptr yytext @@ -323,7 +332,6 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 58 #define YY_END_OF_BUFFER 59 /* This struct is not used in this scanner, @@ -333,7 +341,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[166] = +static const flex_int16_t yy_accept[166] = { 0, 0, 0, 59, 57, 56, 57, 54, 57, 56, 57, 45, 57, 57, 57, 57, 57, 57, 57, 57, 57, @@ -355,7 +363,7 @@ 6, 9, 16, 1, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, @@ -387,7 +395,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[68] = +static const YY_CHAR yy_meta[68] = { 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -398,7 +406,7 @@ 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[167] = +static const flex_int16_t yy_base[167] = { 0, 0, 0, 219, 594, 594, 215, 0, 61, 594, 68, 76, 64, 207, 75, 74, 79, 72, 84, 83, 205, @@ -420,7 +428,7 @@ 594, 594, 594, 594, 594, 114 } ; -static yyconst flex_int16_t yy_def[167] = +static const flex_int16_t yy_def[167] = { 0, 165, 1, 165, 165, 165, 165, 166, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, @@ -442,7 +450,7 @@ 165, 165, 165, 165, 0, 165 } ; -static yyconst flex_int16_t yy_nxt[662] = +static const flex_int16_t yy_nxt[662] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 11, 11, 11, 11, 11, 11, 4, 12, 13, 14, 15, 16, @@ -519,7 +527,7 @@ 165 } ; -static yyconst flex_int16_t yy_chk[662] = +static const flex_int16_t yy_chk[662] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -604,7 +612,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "frame/xylex.L" -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -617,8 +625,9 @@ #include "xyparser.H" extern YYSTYPE* xylval; +#line 628 "frame/xylex.C" /* rules */ -#line 622 "frame/xylex.C" +#line 630 "frame/xylex.C" #define INITIAL 0 @@ -635,11 +644,11 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -648,7 +657,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -662,7 +676,7 @@ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif @@ -704,7 +718,7 @@ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -714,15 +728,10 @@ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 27 "frame/xylex.L" - - -#line 725 "frame/xylex.C" - if ( !(yy_init) ) { (yy_init) = 1; @@ -735,10 +744,10 @@ (yy_start) = 1; /* first start state */ if ( ! yyin ) - yyin = & std::cin; + yyin.rdbuf(std::cin.rdbuf()); if ( ! yyout ) - yyout = & std::cout; + yyout.rdbuf(std::cout.rdbuf()); if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); @@ -749,7 +758,13 @@ yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 27 "frame/xylex.L" + + +#line 765 "frame/xylex.C" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -765,7 +780,7 @@ yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -775,9 +790,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 166 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 165 ); @@ -1113,7 +1128,7 @@ #line 127 "frame/xylex.L" ECHO; YY_BREAK -#line 1117 "frame/xylex.C" +#line 1131 "frame/xylex.C" case YY_END_OF_BUFFER: { @@ -1136,7 +1151,7 @@ * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -1243,14 +1258,33 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. */ -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::ctor_common() { - yyin = arg_yyin; - yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; @@ -1267,7 +1301,7 @@ yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -1280,23 +1314,36 @@ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; - xyfree(yy_start_stack ); + yyfree( yy_start_stack ); yy_delete_buffer( YY_CURRENT_BUFFER ); - xyfree(yy_buffer_stack ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } + if( ! new_in ) { + new_in = &yyin; + } - if ( new_out ) - yyout = new_out; + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); } #ifdef YY_INTERACTIVE @@ -1305,33 +1352,33 @@ size_t yyFlexLexer::LexerInput( char* buf, size_t max_size ) #endif { - if ( yyin->eof() || yyin->fail() ) + if ( yyin.eof() || yyin.fail() ) return 0; #ifdef YY_INTERACTIVE - yyin->get( buf[0] ); + yyin.get( buf[0] ); - if ( yyin->eof() ) + if ( yyin.eof() ) return 0; - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; return 1; #else - (void) yyin->read( buf, max_size ); + (void) yyin.read( buf, max_size ); - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; else - return yyin->gcount(); + return yyin.gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, size_t size ) { - (void) yyout->write( buf, size ); + (void) yyout.write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer @@ -1343,9 +1390,9 @@ */ int yyFlexLexer::yy_get_next_buffer() { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1374,7 +1421,7 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1394,7 +1441,7 @@ { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); @@ -1410,11 +1457,12 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - xyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1456,12 +1504,15 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) xyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1477,14 +1528,14 @@ yy_state_type yyFlexLexer::yy_get_previous_state() { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1494,9 +1545,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 166 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1509,10 +1560,10 @@ */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1522,17 +1573,18 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 166 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 165); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - void yyFlexLexer::yyunput( int c, register char* yy_bp) +#ifndef YY_NO_UNPUT + void yyFlexLexer::yyunput( int c, char* yy_bp) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -1542,10 +1594,10 @@ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -1554,7 +1606,7 @@ yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -1566,6 +1618,7 @@ (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } +#endif int yyFlexLexer::yyinput() { @@ -1639,7 +1692,7 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void yyFlexLexer::yyrestart( std::istream* input_file ) + void yyFlexLexer::yyrestart( std::istream& input_file ) { if ( ! YY_CURRENT_BUFFER ){ @@ -1652,6 +1705,19 @@ yy_load_buffer_state( ); } +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -1691,7 +1757,7 @@ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); (yy_hold_char) = *(yy_c_buf_p); } @@ -1701,11 +1767,11 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) xyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1714,7 +1780,7 @@ /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) xyalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1725,6 +1791,17 @@ return b; } +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -1739,23 +1816,23 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - xyfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - xyfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) { int oerrno = errno; yy_flush_buffer( b ); - b->yy_input_file = file; + b->yy_input_file = file.rdbuf(); b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -1863,15 +1940,15 @@ * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)xyalloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -1880,10 +1957,10 @@ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)xyrealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -1896,20 +1973,21 @@ } } - void yyFlexLexer::yy_push_state( int new_state ) + void yyFlexLexer::yy_push_state( int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) xyalloc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) xyrealloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -1917,7 +1995,7 @@ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } void yyFlexLexer::yy_pop_state() @@ -1937,7 +2015,7 @@ #define YY_EXIT_FAILURE 2 #endif -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( const char* msg ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); @@ -1950,7 +2028,7 @@ do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -1967,18 +2045,19 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -1986,13 +2065,14 @@ } #endif -void *xyalloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *xyrealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -2000,12 +2080,12 @@ * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void xyfree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see xyrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -2013,4 +2093,3 @@ #line 127 "frame/xylex.L" - diff -Nru saods9-8.2+repack/tksao/frame/xylex.L saods9-8.3+repack/tksao/frame/xylex.L --- saods9-8.2+repack/tksao/frame/xylex.L 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/xylex.L 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ diff -Nru saods9-8.2+repack/tksao/frame/xyparser.C saods9-8.3+repack/tksao/frame/xyparser.C --- saods9-8.2+repack/tksao/frame/xyparser.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/xyparser.C 2021-11-08 15:46:07.000000000 +0000 @@ -571,14 +571,14 @@ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 120, 120, 120, 131, 132, 135, 136, 137, 138, - 139, 141, 141, 144, 145, 148, 149, 152, 155, 156, - 157, 160, 161, 164, 165, 168, 169, 172, 175, 178, - 181, 192, 199, 206, 213, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 257, 258, - 259, 260, 261, 262, 263, 266 + 0, 120, 120, 120, 127, 128, 131, 132, 133, 134, + 135, 137, 137, 140, 141, 144, 145, 148, 151, 152, + 153, 156, 157, 160, 161, 164, 165, 168, 171, 174, + 177, 188, 195, 202, 209, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 253, 254, + 255, 256, 257, 258, 259, 262 }; #endif @@ -1566,83 +1566,79 @@ case 2: #line 120 "frame/xyparser.Y" { - if (fr->useMarkerColor()) - strcpy(color, fr->markerColor()); - else - strcpy(color, "green"); - + strcpy(color, fr->markerColor()); globalSystem = fr->xySystem(); globalSky = fr->xySky(); ;} break; case 8: -#line 137 "frame/xyparser.Y" +#line 133 "frame/xyparser.Y" {cerr << "X Y Format 1.0" << endl;;} break; case 9: -#line 138 "frame/xyparser.Y" +#line 134 "frame/xyparser.Y" {globalSystem = (Coord::CoordSystem)(yyvsp[(1) - (1)].integer);;} break; case 10: -#line 140 "frame/xyparser.Y" +#line 136 "frame/xyparser.Y" {globalSystem = (Coord::CoordSystem)(yyvsp[(1) - (2)].integer); globalSky = (Coord::SkyFrame)(yyvsp[(2) - (2)].integer);;} break; case 11: -#line 141 "frame/xyparser.Y" +#line 137 "frame/xyparser.Y" {localSystem = globalSystem; localSky = globalSky; maperr = 0;;} break; case 17: -#line 152 "frame/xyparser.Y" +#line 148 "frame/xyparser.Y" {;} break; case 20: -#line 157 "frame/xyparser.Y" +#line 153 "frame/xyparser.Y" {YYACCEPT;;} break; case 21: -#line 160 "frame/xyparser.Y" +#line 156 "frame/xyparser.Y" {(yyval.real)=(yyvsp[(1) - (1)].real);;} break; case 22: -#line 161 "frame/xyparser.Y" +#line 157 "frame/xyparser.Y" {(yyval.real)=(yyvsp[(1) - (1)].integer);;} break; case 23: -#line 164 "frame/xyparser.Y" +#line 160 "frame/xyparser.Y" {yydebug=1;;} break; case 24: -#line 165 "frame/xyparser.Y" +#line 161 "frame/xyparser.Y" {yydebug=0;;} break; case 27: -#line 172 "frame/xyparser.Y" +#line 168 "frame/xyparser.Y" {(yyval.real) = parseSEXStr((yyvsp[(1) - (1)].str));;} break; case 28: -#line 175 "frame/xyparser.Y" +#line 171 "frame/xyparser.Y" {(yyval.real) = parseHMSStr((yyvsp[(1) - (1)].str));;} break; case 29: -#line 178 "frame/xyparser.Y" +#line 174 "frame/xyparser.Y" {(yyval.real) = parseDMSStr((yyvsp[(1) - (1)].str));;} break; case 30: -#line 182 "frame/xyparser.Y" +#line 178 "frame/xyparser.Y" { Vector r; if (localSky == Coord::GALACTIC || localSky == Coord::ECLIPTIC) @@ -1656,7 +1652,7 @@ break; case 31: -#line 193 "frame/xyparser.Y" +#line 189 "frame/xyparser.Y" { Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),localSystem,localSky); (yyval.vector)[0] = r[0]; @@ -1666,7 +1662,7 @@ break; case 32: -#line 200 "frame/xyparser.Y" +#line 196 "frame/xyparser.Y" { Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),localSystem,localSky); (yyval.vector)[0] = r[0]; @@ -1676,7 +1672,7 @@ break; case 33: -#line 207 "frame/xyparser.Y" +#line 203 "frame/xyparser.Y" { Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),localSystem,localSky); (yyval.vector)[0] = r[0]; @@ -1686,7 +1682,7 @@ break; case 34: -#line 214 "frame/xyparser.Y" +#line 210 "frame/xyparser.Y" { Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),localSystem,localSky); (yyval.vector)[0] = r[0]; @@ -1696,207 +1692,207 @@ break; case 35: -#line 222 "frame/xyparser.Y" +#line 218 "frame/xyparser.Y" {(yyval.integer) = Coord::IMAGE;;} break; case 36: -#line 223 "frame/xyparser.Y" +#line 219 "frame/xyparser.Y" {(yyval.integer) = Coord::IMAGE;;} break; case 37: -#line 224 "frame/xyparser.Y" +#line 220 "frame/xyparser.Y" {(yyval.integer) = Coord::PHYSICAL;;} break; case 38: -#line 225 "frame/xyparser.Y" +#line 221 "frame/xyparser.Y" {(yyval.integer) = Coord::PHYSICAL;;} break; case 39: -#line 226 "frame/xyparser.Y" +#line 222 "frame/xyparser.Y" {(yyval.integer) = Coord::AMPLIFIER;;} break; case 40: -#line 227 "frame/xyparser.Y" +#line 223 "frame/xyparser.Y" {(yyval.integer) = Coord::DETECTOR;;} break; case 41: -#line 228 "frame/xyparser.Y" +#line 224 "frame/xyparser.Y" {(yyval.integer) = Coord::WCS;;} break; case 42: -#line 229 "frame/xyparser.Y" +#line 225 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSA;;} break; case 43: -#line 230 "frame/xyparser.Y" +#line 226 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSB;;} break; case 44: -#line 231 "frame/xyparser.Y" +#line 227 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSC;;} break; case 45: -#line 232 "frame/xyparser.Y" +#line 228 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSD;;} break; case 46: -#line 233 "frame/xyparser.Y" +#line 229 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSE;;} break; case 47: -#line 234 "frame/xyparser.Y" +#line 230 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSF;;} break; case 48: -#line 235 "frame/xyparser.Y" +#line 231 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSG;;} break; case 49: -#line 236 "frame/xyparser.Y" +#line 232 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSH;;} break; case 50: -#line 237 "frame/xyparser.Y" +#line 233 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSI;;} break; case 51: -#line 238 "frame/xyparser.Y" +#line 234 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSJ;;} break; case 52: -#line 239 "frame/xyparser.Y" +#line 235 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSK;;} break; case 53: -#line 240 "frame/xyparser.Y" +#line 236 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSL;;} break; case 54: -#line 241 "frame/xyparser.Y" +#line 237 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSM;;} break; case 55: -#line 242 "frame/xyparser.Y" +#line 238 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSN;;} break; case 56: -#line 243 "frame/xyparser.Y" +#line 239 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSO;;} break; case 57: -#line 244 "frame/xyparser.Y" +#line 240 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSP;;} break; case 58: -#line 245 "frame/xyparser.Y" +#line 241 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSQ;;} break; case 59: -#line 246 "frame/xyparser.Y" +#line 242 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSR;;} break; case 60: -#line 247 "frame/xyparser.Y" +#line 243 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSS;;} break; case 61: -#line 248 "frame/xyparser.Y" +#line 244 "frame/xyparser.Y" {(yyval.integer) = Coord::WCST;;} break; case 62: -#line 249 "frame/xyparser.Y" +#line 245 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSU;;} break; case 63: -#line 250 "frame/xyparser.Y" +#line 246 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSV;;} break; case 64: -#line 251 "frame/xyparser.Y" +#line 247 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSW;;} break; case 65: -#line 252 "frame/xyparser.Y" +#line 248 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSX;;} break; case 66: -#line 253 "frame/xyparser.Y" +#line 249 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSY;;} break; case 67: -#line 254 "frame/xyparser.Y" +#line 250 "frame/xyparser.Y" {(yyval.integer) = Coord::WCSZ;;} break; case 68: -#line 257 "frame/xyparser.Y" +#line 253 "frame/xyparser.Y" {(yyval.integer) = Coord::FK4;;} break; case 69: -#line 258 "frame/xyparser.Y" +#line 254 "frame/xyparser.Y" {(yyval.integer) = Coord::FK4;;} break; case 70: -#line 259 "frame/xyparser.Y" +#line 255 "frame/xyparser.Y" {(yyval.integer) = Coord::FK5;;} break; case 71: -#line 260 "frame/xyparser.Y" +#line 256 "frame/xyparser.Y" {(yyval.integer) = Coord::FK5;;} break; case 72: -#line 261 "frame/xyparser.Y" +#line 257 "frame/xyparser.Y" {(yyval.integer) = Coord::ICRS;;} break; case 73: -#line 262 "frame/xyparser.Y" +#line 258 "frame/xyparser.Y" {(yyval.integer) = Coord::GALACTIC;;} break; case 74: -#line 263 "frame/xyparser.Y" +#line 259 "frame/xyparser.Y" {(yyval.integer) = Coord::ECLIPTIC;;} break; case 75: -#line 266 "frame/xyparser.Y" +#line 262 "frame/xyparser.Y" {fr->createPointCmd(Vector((yyvsp[(1) - (1)].vector)), Point::BOXCIRCLE, POINTSIZE, color,dash,1,font,text, Marker::SELECT | Marker::EDIT | Marker::MOVE | Marker::ROTATE | @@ -1908,7 +1904,7 @@ /* Line 1267 of yacc.c. */ -#line 1912 "frame/xyparser.C" +#line 1908 "frame/xyparser.C" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2122,6 +2118,6 @@ } -#line 275 "frame/xyparser.Y" +#line 271 "frame/xyparser.Y" diff -Nru saods9-8.2+repack/tksao/frame/xyparser.Y saods9-8.3+repack/tksao/frame/xyparser.Y --- saods9-8.2+repack/tksao/frame/xyparser.Y 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/frame/xyparser.Y 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -118,11 +118,7 @@ %% start : { - if (fr->useMarkerColor()) - strcpy(color, fr->markerColor()); - else - strcpy(color, "green"); - + strcpy(color, fr->markerColor()); globalSystem = fr->xySystem(); globalSky = fr->xySky(); } commands diff -Nru saods9-8.2+repack/tksao/list/list.C saods9-8.3+repack/tksao/list/list.C --- saods9-8.2+repack/tksao/list/list.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/list/list.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/list/list.h saods9-8.3+repack/tksao/list/list.h --- saods9-8.2+repack/tksao/list/list.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/list/list.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/magnifier/lex.C saods9-8.3+repack/tksao/magnifier/lex.C --- saods9-8.2+repack/tksao/magnifier/lex.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/magnifier/lex.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,6 +1,6 @@ -#line 2 "magnifier/lex.C" +#line 1 "magnifier/lex.C" -#line 4 "magnifier/lex.C" +#line 3 "magnifier/lex.C" #define YY_INT_ALIGNED short int @@ -8,8 +8,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -22,6 +22,24 @@ */ #define yyFlexLexer mgFlexLexer +#ifdef yyalloc +#define mgalloc_ALREADY_DEFINED +#else +#define yyalloc mgalloc +#endif + +#ifdef yyrealloc +#define mgrealloc_ALREADY_DEFINED +#else +#define yyrealloc mgrealloc +#endif + +#ifdef yyfree +#define mgfree_ALREADY_DEFINED +#else +#define yyfree mgfree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -59,7 +77,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -90,70 +107,67 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ -#include +#include #include #include +#include #include /* end standard C++ headers. */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) - #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -175,8 +189,9 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -191,7 +206,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -199,7 +213,7 @@ struct yy_buffer_state { - std::istream* yy_input_file; + std::streambuf* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ @@ -207,7 +221,7 @@ /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -235,7 +249,7 @@ int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -269,18 +283,16 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -void *mgalloc (yy_size_t ); -void *mgrealloc (void *,yy_size_t ); -void mgfree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -290,7 +302,6 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -300,13 +311,11 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; #define yytext_ptr yytext @@ -323,7 +332,6 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 24 #define YY_END_OF_BUFFER 25 /* This struct is not used in this scanner, @@ -333,7 +341,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[86] = +static const flex_int16_t yy_accept[86] = { 0, 0, 0, 25, 23, 22, 24, 23, 20, 20, 23, 23, 23, 23, 23, 23, 10, 23, 23, 23, 23, @@ -346,7 +354,7 @@ 6, 15, 0, 16, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -378,7 +386,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[49] = +static const YY_CHAR yy_meta[49] = { 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, @@ -387,7 +395,7 @@ 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[87] = +static const flex_int16_t yy_base[87] = { 0, 0, 0, 159, 175, 154, 175, 44, 46, 48, 47, 40, 46, 51, 48, 49, 43, 50, 52, 51, 46, @@ -400,7 +408,7 @@ 175, 175, 136, 175, 175, 152 } ; -static yyconst flex_int16_t yy_def[87] = +static const flex_int16_t yy_def[87] = { 0, 85, 1, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, @@ -413,7 +421,7 @@ 85, 85, 85, 85, 0, 85 } ; -static yyconst flex_int16_t yy_nxt[224] = +static const flex_int16_t yy_nxt[224] = { 0, 4, 5, 6, 7, 8, 9, 4, 10, 11, 12, 4, 13, 14, 15, 4, 4, 16, 17, 4, 18, @@ -442,7 +450,7 @@ 85, 85, 85 } ; -static yyconst flex_int16_t yy_chk[224] = +static const flex_int16_t yy_chk[224] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -479,7 +487,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "magnifier/lex.L" -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -491,8 +499,9 @@ #include "parser.H" extern YYSTYPE* mglval; +#line 502 "magnifier/lex.C" /* rules */ -#line 496 "magnifier/lex.C" +#line 504 "magnifier/lex.C" #define INITIAL 0 @@ -509,11 +518,11 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -522,7 +531,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -536,7 +550,7 @@ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif @@ -578,7 +592,7 @@ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -588,15 +602,10 @@ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 26 "magnifier/lex.L" - - -#line 599 "magnifier/lex.C" - if ( !(yy_init) ) { (yy_init) = 1; @@ -609,10 +618,10 @@ (yy_start) = 1; /* first start state */ if ( ! yyin ) - yyin = & std::cin; + yyin.rdbuf(std::cin.rdbuf()); if ( ! yyout ) - yyout = & std::cout; + yyout.rdbuf(std::cout.rdbuf()); if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); @@ -623,7 +632,13 @@ yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 26 "magnifier/lex.L" + + +#line 639 "magnifier/lex.C" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -639,7 +654,7 @@ yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -649,9 +664,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 86 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 85 ); @@ -803,7 +818,7 @@ #line 65 "magnifier/lex.L" ECHO; YY_BREAK -#line 807 "magnifier/lex.C" +#line 821 "magnifier/lex.C" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -828,7 +843,7 @@ * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -935,14 +950,33 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. */ -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::ctor_common() { - yyin = arg_yyin; - yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; @@ -959,7 +993,7 @@ yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -972,23 +1006,36 @@ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; - mgfree(yy_start_stack ); + yyfree( yy_start_stack ); yy_delete_buffer( YY_CURRENT_BUFFER ); - mgfree(yy_buffer_stack ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } + if( ! new_in ) { + new_in = &yyin; + } - if ( new_out ) - yyout = new_out; + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); } #ifdef YY_INTERACTIVE @@ -997,33 +1044,33 @@ size_t yyFlexLexer::LexerInput( char* buf, size_t max_size ) #endif { - if ( yyin->eof() || yyin->fail() ) + if ( yyin.eof() || yyin.fail() ) return 0; #ifdef YY_INTERACTIVE - yyin->get( buf[0] ); + yyin.get( buf[0] ); - if ( yyin->eof() ) + if ( yyin.eof() ) return 0; - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; return 1; #else - (void) yyin->read( buf, max_size ); + (void) yyin.read( buf, max_size ); - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; else - return yyin->gcount(); + return yyin.gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, size_t size ) { - (void) yyout->write( buf, size ); + (void) yyout.write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer @@ -1035,9 +1082,9 @@ */ int yyFlexLexer::yy_get_next_buffer() { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1066,7 +1113,7 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1086,7 +1133,7 @@ { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); @@ -1102,11 +1149,12 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - mgrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1148,12 +1196,15 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) mgrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1169,14 +1220,14 @@ yy_state_type yyFlexLexer::yy_get_previous_state() { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1186,9 +1237,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 86 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1201,10 +1252,10 @@ */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1214,17 +1265,18 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 86 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 85); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - void yyFlexLexer::yyunput( int c, register char* yy_bp) +#ifndef YY_NO_UNPUT + void yyFlexLexer::yyunput( int c, char* yy_bp) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -1234,10 +1286,10 @@ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -1246,7 +1298,7 @@ yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -1258,6 +1310,7 @@ (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } +#endif int yyFlexLexer::yyinput() { @@ -1331,7 +1384,7 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void yyFlexLexer::yyrestart( std::istream* input_file ) + void yyFlexLexer::yyrestart( std::istream& input_file ) { if ( ! YY_CURRENT_BUFFER ){ @@ -1344,6 +1397,19 @@ yy_load_buffer_state( ); } +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -1383,7 +1449,7 @@ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); (yy_hold_char) = *(yy_c_buf_p); } @@ -1393,11 +1459,11 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) mgalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1406,7 +1472,7 @@ /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) mgalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1417,6 +1483,17 @@ return b; } +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -1431,23 +1508,23 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - mgfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - mgfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) { int oerrno = errno; yy_flush_buffer( b ); - b->yy_input_file = file; + b->yy_input_file = file.rdbuf(); b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -1555,15 +1632,15 @@ * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)mgalloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -1572,10 +1649,10 @@ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)mgrealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -1588,20 +1665,21 @@ } } - void yyFlexLexer::yy_push_state( int new_state ) + void yyFlexLexer::yy_push_state( int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) mgalloc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) mgrealloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -1609,7 +1687,7 @@ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } void yyFlexLexer::yy_pop_state() @@ -1629,7 +1707,7 @@ #define YY_EXIT_FAILURE 2 #endif -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( const char* msg ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); @@ -1642,7 +1720,7 @@ do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -1659,18 +1737,19 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -1678,13 +1757,14 @@ } #endif -void *mgalloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *mgrealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -1692,12 +1772,12 @@ * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void mgfree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see mgrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -1705,4 +1785,3 @@ #line 65 "magnifier/lex.L" - diff -Nru saods9-8.2+repack/tksao/magnifier/lex.L saods9-8.3+repack/tksao/magnifier/lex.L --- saods9-8.2+repack/tksao/magnifier/lex.L 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/magnifier/lex.L 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ diff -Nru saods9-8.2+repack/tksao/magnifier/magnifier.C saods9-8.3+repack/tksao/magnifier/magnifier.C --- saods9-8.2+repack/tksao/magnifier/magnifier.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/magnifier/magnifier.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -54,7 +54,7 @@ void Magnifier::update() { needsUpdate = 1; - redrawNow(); + redraw(); } // Required Virtual Functions @@ -85,12 +85,6 @@ } else clearPixmap(); - - // MacOS will generate an Expose event (dark mode) - // so need to update -#ifndef MAC_OSX_TK - needsUpdate = 0; -#endif } return TCL_OK; diff -Nru saods9-8.2+repack/tksao/magnifier/magnifier.h saods9-8.3+repack/tksao/magnifier/magnifier.h --- saods9-8.2+repack/tksao/magnifier/magnifier.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/magnifier/magnifier.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/magnifier/magnifiertrue.C saods9-8.3+repack/tksao/magnifier/magnifiertrue.C --- saods9-8.2+repack/tksao/magnifier/magnifiertrue.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/magnifier/magnifiertrue.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/magnifier/magnifiertrue.h saods9-8.3+repack/tksao/magnifier/magnifiertrue.h --- saods9-8.2+repack/tksao/magnifier/magnifiertrue.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/magnifier/magnifiertrue.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/magnifier/parser.Y saods9-8.3+repack/tksao/magnifier/parser.Y --- saods9-8.2+repack/tksao/magnifier/parser.Y 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/magnifier/parser.Y 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/Makefile.in saods9-8.3+repack/tksao/Makefile.in --- saods9-8.2+repack/tksao/Makefile.in 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/Makefile.in 2021-11-08 15:46:07.000000000 +0000 @@ -148,7 +148,7 @@ #INCLUDES = @PKG_INCLUDES@ @TCL_INCLUDES@ INCLUDES = @PKG_INCLUDES@ @TCL_INCLUDES@ @TK_INCLUDES@ @TK_XINCLUDES@ -PKG_CFLAGS = @PKG_CFLAGS@ +PKG_CFLAGS = @PKG_CFLAGS@ @XML2_CFLAGS@ # TCL_DEFS is not strictly need here, but if you remove it, then you # must make sure that configure.ac checks for the necessary components @@ -163,7 +163,7 @@ CLEANFILES = @CLEANFILES@ CPPFLAGS = @CPPFLAGS@ -LIBS = @PKG_LIBS@ @LIBS@ +LIBS = @PKG_LIBS@ @LIBS@ @XML2_LIBS@ AR = @AR@ CFLAGS = @CFLAGS@ CXXFLAGS = @CXXFLAGS@ diff -Nru saods9-8.2+repack/tksao/panner/lex.C saods9-8.3+repack/tksao/panner/lex.C --- saods9-8.2+repack/tksao/panner/lex.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/panner/lex.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,6 +1,6 @@ -#line 2 "panner/lex.C" +#line 1 "panner/lex.C" -#line 4 "panner/lex.C" +#line 3 "panner/lex.C" #define YY_INT_ALIGNED short int @@ -8,8 +8,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -22,6 +22,24 @@ */ #define yyFlexLexer pnFlexLexer +#ifdef yyalloc +#define pnalloc_ALREADY_DEFINED +#else +#define yyalloc pnalloc +#endif + +#ifdef yyrealloc +#define pnrealloc_ALREADY_DEFINED +#else +#define yyrealloc pnrealloc +#endif + +#ifdef yyfree +#define pnfree_ALREADY_DEFINED +#else +#define yyfree pnfree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -59,7 +77,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -90,70 +107,67 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ -#include +#include #include #include +#include #include /* end standard C++ headers. */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) - #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -175,8 +189,9 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -191,7 +206,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -199,7 +213,7 @@ struct yy_buffer_state { - std::istream* yy_input_file; + std::streambuf* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ @@ -207,7 +221,7 @@ /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -235,7 +249,7 @@ int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -269,18 +283,16 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -void *pnalloc (yy_size_t ); -void *pnrealloc (void *,yy_size_t ); -void pnfree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -290,7 +302,6 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -300,13 +311,11 @@ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; #define yytext_ptr yytext @@ -323,7 +332,6 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 38 #define YY_END_OF_BUFFER 39 /* This struct is not used in this scanner, @@ -333,7 +341,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[144] = +static const flex_int16_t yy_accept[144] = { 0, 0, 0, 39, 37, 36, 38, 37, 37, 32, 32, 37, 37, 37, 37, 37, 37, 37, 37, 37, 15, @@ -353,7 +361,7 @@ 26, 11, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -385,7 +393,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[54] = +static const YY_CHAR yy_meta[54] = { 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, @@ -395,7 +403,7 @@ 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[145] = +static const flex_int16_t yy_base[145] = { 0, 0, 0, 300, 320, 297, 320, 49, 51, 54, 57, 56, 50, 59, 53, 65, 62, 63, 58, 58, 60, @@ -415,7 +423,7 @@ 320, 320, 320, 295 } ; -static yyconst flex_int16_t yy_def[145] = +static const flex_int16_t yy_def[145] = { 0, 143, 1, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, @@ -435,7 +443,7 @@ 143, 143, 0, 143 } ; -static yyconst flex_int16_t yy_nxt[374] = +static const flex_int16_t yy_nxt[374] = { 0, 4, 5, 6, 7, 8, 9, 10, 4, 11, 12, 13, 14, 15, 16, 17, 18, 4, 19, 20, 21, @@ -480,7 +488,7 @@ 143, 143, 143 } ; -static yyconst flex_int16_t yy_chk[374] = +static const flex_int16_t yy_chk[374] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -533,7 +541,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "panner/lex.L" -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ @@ -545,8 +553,9 @@ #include "parser.H" extern YYSTYPE* pnlval; +#line 556 "panner/lex.C" /* rules */ -#line 550 "panner/lex.C" +#line 558 "panner/lex.C" #define INITIAL 0 @@ -563,11 +572,11 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -576,7 +585,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -590,7 +604,7 @@ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif @@ -632,7 +646,7 @@ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -642,15 +656,10 @@ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 26 "panner/lex.L" - - -#line 653 "panner/lex.C" - if ( !(yy_init) ) { (yy_init) = 1; @@ -663,10 +672,10 @@ (yy_start) = 1; /* first start state */ if ( ! yyin ) - yyin = & std::cin; + yyin.rdbuf(std::cin.rdbuf()); if ( ! yyout ) - yyout = & std::cout; + yyout.rdbuf(std::cout.rdbuf()); if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); @@ -677,7 +686,13 @@ yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 26 "panner/lex.L" + + +#line 693 "panner/lex.C" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -693,7 +708,7 @@ yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -703,9 +718,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 144 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 143 ); @@ -927,7 +942,7 @@ #line 84 "panner/lex.L" ECHO; YY_BREAK -#line 931 "panner/lex.C" +#line 945 "panner/lex.C" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -952,7 +967,7 @@ * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -1059,14 +1074,33 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. */ -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::ctor_common() { - yyin = arg_yyin; - yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; @@ -1083,7 +1117,7 @@ yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -1096,23 +1130,36 @@ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; - pnfree(yy_start_stack ); + yyfree( yy_start_stack ); yy_delete_buffer( YY_CURRENT_BUFFER ); - pnfree(yy_buffer_stack ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } + if( ! new_in ) { + new_in = &yyin; + } - if ( new_out ) - yyout = new_out; + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); } #ifdef YY_INTERACTIVE @@ -1121,33 +1168,33 @@ size_t yyFlexLexer::LexerInput( char* buf, size_t max_size ) #endif { - if ( yyin->eof() || yyin->fail() ) + if ( yyin.eof() || yyin.fail() ) return 0; #ifdef YY_INTERACTIVE - yyin->get( buf[0] ); + yyin.get( buf[0] ); - if ( yyin->eof() ) + if ( yyin.eof() ) return 0; - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; return 1; #else - (void) yyin->read( buf, max_size ); + (void) yyin.read( buf, max_size ); - if ( yyin->bad() ) + if ( yyin.bad() ) return -1; else - return yyin->gcount(); + return yyin.gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, size_t size ) { - (void) yyout->write( buf, size ); + (void) yyout.write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer @@ -1159,9 +1206,9 @@ */ int yyFlexLexer::yy_get_next_buffer() { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1190,7 +1237,7 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1210,7 +1257,7 @@ { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); @@ -1226,11 +1273,12 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - pnrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1272,12 +1320,15 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) pnrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1293,14 +1344,14 @@ yy_state_type yyFlexLexer::yy_get_previous_state() { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1310,9 +1361,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 144 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1325,10 +1376,10 @@ */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1338,17 +1389,18 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 144 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 143); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - void yyFlexLexer::yyunput( int c, register char* yy_bp) +#ifndef YY_NO_UNPUT + void yyFlexLexer::yyunput( int c, char* yy_bp) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -1358,10 +1410,10 @@ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -1370,7 +1422,7 @@ yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -1382,6 +1434,7 @@ (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } +#endif int yyFlexLexer::yyinput() { @@ -1455,7 +1508,7 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void yyFlexLexer::yyrestart( std::istream* input_file ) + void yyFlexLexer::yyrestart( std::istream& input_file ) { if ( ! YY_CURRENT_BUFFER ){ @@ -1468,6 +1521,19 @@ yy_load_buffer_state( ); } +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -1507,7 +1573,7 @@ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); (yy_hold_char) = *(yy_c_buf_p); } @@ -1517,11 +1583,11 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) pnalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1530,7 +1596,7 @@ /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) pnalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1541,6 +1607,17 @@ return b; } +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -1555,23 +1632,23 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - pnfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - pnfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) { int oerrno = errno; yy_flush_buffer( b ); - b->yy_input_file = file; + b->yy_input_file = file.rdbuf(); b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -1679,15 +1756,15 @@ * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)pnalloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -1696,10 +1773,10 @@ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)pnrealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -1712,20 +1789,21 @@ } } - void yyFlexLexer::yy_push_state( int new_state ) + void yyFlexLexer::yy_push_state( int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) pnalloc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) pnrealloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -1733,7 +1811,7 @@ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } void yyFlexLexer::yy_pop_state() @@ -1753,7 +1831,7 @@ #define YY_EXIT_FAILURE 2 #endif -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( const char* msg ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); @@ -1766,7 +1844,7 @@ do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -1783,18 +1861,19 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -1802,13 +1881,14 @@ } #endif -void *pnalloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *pnrealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -1816,12 +1896,12 @@ * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void pnfree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see pnrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -1829,4 +1909,3 @@ #line 84 "panner/lex.L" - diff -Nru saods9-8.2+repack/tksao/panner/lex.L saods9-8.3+repack/tksao/panner/lex.L --- saods9-8.2+repack/tksao/panner/lex.L 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/panner/lex.L 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 +/* Copyright (C) 1999-2021 * Smithsonian Astrophysical Observatory, Cambridge, MA, USA * For conditions of distribution and use, see copyright notice in "copyright" */ diff -Nru saods9-8.2+repack/tksao/panner/panner.C saods9-8.3+repack/tksao/panner/panner.C --- saods9-8.2+repack/tksao/panner/panner.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/panner/panner.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -120,12 +120,6 @@ } else clearPixmap(); - - // MacOS will generate an Expose event (dark mode) - // so need to update -#ifndef MAC_OSX_TK - needsUpdate = 0; -#endif } return TCL_OK; diff -Nru saods9-8.2+repack/tksao/panner/panner.h saods9-8.3+repack/tksao/panner/panner.h --- saods9-8.2+repack/tksao/panner/panner.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/panner/panner.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/panner/pannertrue.C saods9-8.3+repack/tksao/panner/pannertrue.C --- saods9-8.2+repack/tksao/panner/pannertrue.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/panner/pannertrue.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/panner/pannertrue.h saods9-8.3+repack/tksao/panner/pannertrue.h --- saods9-8.2+repack/tksao/panner/pannertrue.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/panner/pannertrue.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/panner/parser.Y saods9-8.3+repack/tksao/panner/parser.Y --- saods9-8.2+repack/tksao/panner/parser.Y 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/panner/parser.Y 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/saotk.C saods9-8.3+repack/tksao/saotk.C --- saods9-8.2+repack/tksao/saotk.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/saotk.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/tkutil/attribute.C saods9-8.3+repack/tksao/tkutil/attribute.C --- saods9-8.2+repack/tksao/tkutil/attribute.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/tkutil/attribute.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/tkutil/attribute.h saods9-8.3+repack/tksao/tkutil/attribute.h --- saods9-8.2+repack/tksao/tkutil/attribute.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/tkutil/attribute.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/tkutil/convolve.C saods9-8.3+repack/tksao/tkutil/convolve.C --- saods9-8.2+repack/tksao/tkutil/convolve.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/tkutil/convolve.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2019 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/tkutil/convolve.h saods9-8.3+repack/tksao/tkutil/convolve.h --- saods9-8.2+repack/tksao/tkutil/convolve.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/tkutil/convolve.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2019 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/tkutil/grid25dbase.C saods9-8.3+repack/tksao/tkutil/grid25dbase.C --- saods9-8.2+repack/tksao/tkutil/grid25dbase.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/tkutil/grid25dbase.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/tkutil/grid25dbase.h saods9-8.3+repack/tksao/tkutil/grid25dbase.h --- saods9-8.2+repack/tksao/tkutil/grid25dbase.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/tkutil/grid25dbase.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/tkutil/grid2dbase.C saods9-8.3+repack/tksao/tkutil/grid2dbase.C --- saods9-8.2+repack/tksao/tkutil/grid2dbase.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/tkutil/grid2dbase.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/tkutil/grid2dbase.h saods9-8.3+repack/tksao/tkutil/grid2dbase.h --- saods9-8.2+repack/tksao/tkutil/grid2dbase.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/tkutil/grid2dbase.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/tkutil/grid3dbase.C saods9-8.3+repack/tksao/tkutil/grid3dbase.C --- saods9-8.2+repack/tksao/tkutil/grid3dbase.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/tkutil/grid3dbase.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/tkutil/grid3dbase.h saods9-8.3+repack/tksao/tkutil/grid3dbase.h --- saods9-8.2+repack/tksao/tkutil/grid3dbase.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/tkutil/grid3dbase.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/tkutil/gridbase.C saods9-8.3+repack/tksao/tkutil/gridbase.C --- saods9-8.2+repack/tksao/tkutil/gridbase.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/tkutil/gridbase.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -266,7 +266,6 @@ } #ifdef MAC_OSX_TK -#include int GridBase::macosxLine(int n, float* x, float* y) { diff -Nru saods9-8.2+repack/tksao/tkutil/gridbase.h saods9-8.3+repack/tksao/tkutil/gridbase.h --- saods9-8.2+repack/tksao/tkutil/gridbase.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/tkutil/gridbase.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/tkutil/ps.C saods9-8.3+repack/tksao/tkutil/ps.C --- saods9-8.2+repack/tksao/tkutil/ps.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/tkutil/ps.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/tkutil/ps.h saods9-8.3+repack/tksao/tkutil/ps.h --- saods9-8.2+repack/tksao/tkutil/ps.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/tkutil/ps.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2020 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/tkutil/psutil.C saods9-8.3+repack/tksao/tkutil/psutil.C --- saods9-8.2+repack/tksao/tkutil/psutil.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/tkutil/psutil.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2020 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/tkutil/psutil.h saods9-8.3+repack/tksao/tkutil/psutil.h --- saods9-8.2+repack/tksao/tkutil/psutil.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/tkutil/psutil.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2020 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/widget/truecolor16.C saods9-8.3+repack/tksao/widget/truecolor16.C --- saods9-8.2+repack/tksao/widget/truecolor16.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/widget/truecolor16.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/widget/truecolor16.h saods9-8.3+repack/tksao/widget/truecolor16.h --- saods9-8.2+repack/tksao/widget/truecolor16.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/widget/truecolor16.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/widget/truecolor24.C saods9-8.3+repack/tksao/widget/truecolor24.C --- saods9-8.2+repack/tksao/widget/truecolor24.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/widget/truecolor24.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/widget/truecolor24.h saods9-8.3+repack/tksao/widget/truecolor24.h --- saods9-8.2+repack/tksao/widget/truecolor24.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/widget/truecolor24.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/widget/truecolor8.C saods9-8.3+repack/tksao/widget/truecolor8.C --- saods9-8.2+repack/tksao/widget/truecolor8.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/widget/truecolor8.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/widget/truecolor8.h saods9-8.3+repack/tksao/widget/truecolor8.h --- saods9-8.2+repack/tksao/widget/truecolor8.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/widget/truecolor8.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/tksao/widget/widget.C saods9-8.3+repack/tksao/widget/widget.C --- saods9-8.2+repack/tksao/widget/widget.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/widget/widget.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,10 +1,11 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" #include #include "widget.h" +#include "util.h" // Tk Canvas Widget Functions Declaration @@ -274,6 +275,10 @@ if (updatePixmap(bb) != TCL_OK) return; // something is wrong, bail out + // just in case (MacOS) + if (!pixmap) + return; + // define pixmap clip region // NOTE: it appears that the canvas coord system is 1 to n, width/height = n // with the original of value 1,1 located at upper left corner @@ -505,6 +510,10 @@ void Widget::clearPixmap() { + // just in case (MacOS) + if (!pixmap) + return; + XSetForeground(display, widgetGC, options->bgColor->pixel); XFillRectangle(display, pixmap, widgetGC, 0, 0, options->width, options->height); @@ -590,6 +599,17 @@ options->item.y2 = originY + options->height; } +int Widget::getColor(const char* str) +{ + XColor* cc = getXColor(str); + if (cc) + return cc->pixel; + else { + internalError("Invalid color, setting to white"); + return getXColor("white")->pixel; + } +} + XColor* Widget::getXColor(const char* str) { XColor* cc= NULL; @@ -621,16 +641,15 @@ #endif #ifdef MAC_OSX_TK -#include void Widget::warp(Vector& vv) { - XXWarpPointer(display, None, None, 0, 0, 0, 0, vv[0], vv[1]); + XWarpPointer(display, None, None, 0, 0, 0, 0, vv[0], vv[1]); } void Widget::warpTo(Vector& vv) { - XXWarpPointer(display, None, Tk_WindowId(tkwin), 0, 0, 0, 0, vv[0], vv[1]); + XWarpPointer(display, None, Tk_WindowId(tkwin), 0, 0, 0, 0, vv[0], vv[1]); } #endif diff -Nru saods9-8.2+repack/tksao/widget/widget.h saods9-8.3+repack/tksao/widget/widget.h --- saods9-8.2+repack/tksao/widget/widget.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/tksao/widget/widget.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" @@ -164,7 +164,7 @@ int getScreenNumber() {return screenNumber;} Tk_Canvas getCanvas() {return canvas;} - int getColor(const char* str) {return getXColor(str)->pixel;} + int getColor(const char*); XColor* getXColor(const char*); void warp(Vector&); diff -Nru saods9-8.2+repack/tksvg/aclocal.m4 saods9-8.3+repack/tksvg/aclocal.m4 --- saods9-8.2+repack/tksvg/aclocal.m4 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/aclocal.m4 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,9 @@ +# +# Include the TEA standard macro set +# + +builtin(include,tclconfig/tcl.m4) + +# +# Add here whatever m4 macros you want to define for your package +# diff -Nru saods9-8.2+repack/tksvg/configure saods9-8.3+repack/tksvg/configure --- saods9-8.2+repack/tksvg/configure 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/configure 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,10544 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.71 for tksvg 0.7. +# +# +# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else $as_nop + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. +as_nl=' +' +export as_nl +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi + +# The user is always right. +if ${PATH_SEPARATOR+false} :; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="as_nop=: +if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else \$as_nop + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ) +then : + +else \$as_nop + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +blah=\$(echo \$(echo blah)) +test x\"\$blah\" = xblah || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null +then : + as_have_required=yes +else $as_nop + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null +then : + +else $as_nop + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$as_shell as_have_required=yes + if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null +then : + break 2 +fi +fi + done;; + esac + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi +fi + + + if test "x$CONFIG_SHELL" != x +then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno +then : + printf "%s\n" "$0: This script requires a shell more modern than all" + printf "%s\n" "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then + printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." + else + printf "%s\n" "$0: Please tell bug-autoconf@gnu.org about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else $as_nop + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else $as_nop + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + printf "%s\n" "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='tksvg' +PACKAGE_TARNAME='tksvg' +PACKAGE_VERSION='0.7' +PACKAGE_STRING='tksvg 0.7' +PACKAGE_BUGREPORT='' +PACKAGE_URL='' + +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_STDIO_H +# include +#endif +#ifdef HAVE_STDLIB_H +# include +#endif +#ifdef HAVE_STRING_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_header_c_list= +ac_subst_vars='LTLIBOBJS +LIBOBJS +PATCHLEVEL +MINOR_VERSION +MAJOR_VERSION +tksvg_STUB_LIB_PATH +tksvg_BUILD_STUB_LIB_PATH +tksvg_STUB_LIB_SPEC +tksvg_BUILD_STUB_LIB_SPEC +tksvg_LIB_SPEC +tksvg_BUILD_LIB_SPEC +TCLSH_PROG +VC_MANIFEST_EMBED_EXE +VC_MANIFEST_EMBED_DLL +RANLIB_STUB +MAKE_STUB_LIB +MAKE_STATIC_LIB +MAKE_SHARED_LIB +MAKE_LIB +EGREP +GREP +TCL_DBGX +LDFLAGS_DEFAULT +CFLAGS_DEFAULT +LD_LIBRARY_PATH_VAR +SHLIB_CFLAGS +SHLIB_LD_LIBS +SHLIB_LD +STLIB_LD +CFLAGS_WARNING +CFLAGS_OPTIMIZE +CFLAGS_DEBUG +RC +CELIB_DIR +AR +STUBS_BUILD +SHARED_BUILD +TCL_THREADS +TK_INCLUDES +TCL_INCLUDES +PKG_OBJECTS +PKG_SOURCES +RANLIB +SET_MAKE +CPP +TK_XINCLUDES +TK_LIBS +TK_STUB_LIB_SPEC +TK_STUB_LIB_FLAG +TK_STUB_LIB_FILE +TK_LIB_SPEC +TK_LIB_FLAG +TK_LIB_FILE +TK_SRC_DIR +TK_BIN_DIR +TK_VERSION +TCL_SHLIB_LD_LIBS +TCL_LD_FLAGS +TCL_EXTRA_CFLAGS +TCL_DEFS +TCL_LIBS +CLEANFILES +OBJEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +TCL_STUB_LIB_SPEC +TCL_STUB_LIB_FLAG +TCL_STUB_LIB_FILE +TCL_LIB_SPEC +TCL_LIB_FLAG +TCL_LIB_FILE +TCL_SRC_DIR +TCL_BIN_DIR +TCL_PATCH_LEVEL +TCL_VERSION +INSTALL_LIBRARY +INSTALL_SCRIPT +INSTALL_PROGRAM +INSTALL_DATA +INSTALL_DATA_DIR +INSTALL +PKG_CFLAGS +PKG_LIBS +PKG_INCLUDES +PKG_HEADERS +PKG_TCL_SOURCES +PKG_STUB_OBJECTS +PKG_STUB_SOURCES +PKG_STUB_LIB_FILE +PKG_LIB_FILE +EXEEXT +CYGPATH +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +runstatedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +with_tcl +with_tk +with_tclinclude +with_tkinclude +enable_threads +enable_shared +enable_stubs +enable_64bit +enable_64bit_vis +enable_rpath +enable_wince +with_celib +enable_symbols +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir runstatedir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures tksvg 0.7 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/tksvg] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of tksvg 0.7:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-threads build with threads (default: on) + --enable-shared build and link with shared libraries (default: on) + --enable-stubs build and link with stub libraries. Always true for + shared builds (default: on) + --enable-64bit enable 64bit support (default: off) + --enable-64bit-vis enable 64bit Sparc VIS support (default: off) + --disable-rpath disable rpath support (default: on) + --enable-wince enable Win/CE support (where applicable) + --enable-symbols build with debugging symbols (default: off) + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-tcl directory containing tcl configuration + (tclConfig.sh) + --with-tk directory containing tk configuration (tkConfig.sh) + --with-tclinclude directory containing the public Tcl header files + --with-tkinclude directory containing the public Tk header files + --with-celib=DIR use Windows/CE support library from DIR + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to the package provider. +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +tksvg configure 0.7 +generated by GNU Autoconf 2.71 + +Copyright (C) 2021 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest.beam + 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\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$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_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$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 + printf "%s\n" "$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_nop + printf "%s\n" "$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_run LINENO +# ---------------------- +# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that +# executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: program exited with status $ac_status" >&5 + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$3=yes" +else $as_nop + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest.beam 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\"" +printf "%s\n" "$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 + printf "%s\n" "$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_nop + printf "%s\n" "$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_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. */ + +#include +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main (void) +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$3=yes" +else $as_nop + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func +ac_configure_args_raw= +for ac_arg +do + case $ac_arg in + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_configure_args_raw " '$ac_arg'" +done + +case $ac_configure_args_raw in + *$as_nl*) + ac_safe_unquote= ;; + *) + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" + ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; +esac + +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 tksvg $as_me 0.7, which was +generated by GNU Autoconf 2.71. Invocation command line was + + $ $0$ac_configure_args_raw + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + printf "%s\n" "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Sanitize IFS. + IFS=" "" $as_nl" + # Save into config.log some information that might help in debugging. + { + echo + + printf "%s\n" "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + printf "%s\n" "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + printf "%s\n" "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + printf "%s\n" "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + printf "%s\n" "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + printf "%s\n" "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + printf "%s\n" "$as_me: caught signal $ac_signal" + printf "%s\n" "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +printf "%s\n" "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +if test -n "$CONFIG_SITE"; then + ac_site_files="$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + ac_site_files="$prefix/share/config.site $prefix/etc/config.site" +else + ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" +fi + +for ac_site_file in $ac_site_files +do + case $ac_site_file in #( + */*) : + ;; #( + *) : + ac_site_file=./$ac_site_file ;; +esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf "%s\n" "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf "%s\n" "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Test code for whether the C compiler supports C89 (global declarations) +ac_c_conftest_c89_globals=' +/* Does the compiler advertise C89 conformance? + Do not test the value of __STDC__, because some compilers set it to 0 + while being otherwise adequately conformant. */ +#if !defined __STDC__ +# error "Compiler does not advertise C89 conformance" +#endif + +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ +struct buf { int x; }; +struct buf * (*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 do not provoke an error unfortunately, instead are silently treated + as an "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 is necessary to write \x00 == 0 to get something + that is 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 **, int *(*)(struct buf *, struct stat *, int), + int, int);' + +# Test code for whether the C compiler supports C89 (body of main). +ac_c_conftest_c89_main=' +ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); +' + +# Test code for whether the C compiler supports C99 (global declarations) +ac_c_conftest_c99_globals=' +// Does the compiler advertise C99 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L +# error "Compiler does not advertise C99 conformance" +#endif + +#include +extern int puts (const char *); +extern int printf (const char *, ...); +extern int dprintf (int, const char *, ...); +extern void *malloc (size_t); + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +// dprintf is used instead of fprintf to avoid needing to declare +// FILE and stderr. +#define debug(...) dprintf (2, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + #error "your preprocessor is broken" +#endif +#if BIG_OK +#else + #error "your preprocessor is broken" +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case '\''s'\'': // string + str = va_arg (args_copy, const char *); + break; + case '\''d'\'': // int + number = va_arg (args_copy, int); + break; + case '\''f'\'': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +' + +# Test code for whether the C compiler supports C99 (body of main). +ac_c_conftest_c99_main=' + // Check bool. + _Bool success = false; + success |= (argc != 0); + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[0] = argv[0][0]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' + || dynamic_array[ni.number - 1] != 543); +' + +# Test code for whether the C compiler supports C11 (global declarations) +ac_c_conftest_c11_globals=' +// Does the compiler advertise C11 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L +# error "Compiler does not advertise C11 conformance" +#endif + +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +' + +# Test code for whether the C compiler supports C11 (body of main). +ac_c_conftest_c11_main=' + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + v1.i = 2; + v1.w.k = 5; + ok |= v1.i != 5; +' + +# Test code for whether the C compiler supports C11 (complete). +ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} +${ac_c_conftest_c11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + ${ac_c_conftest_c11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C99 (complete). +ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + return ok; +} +" + +# Test code for whether the C compiler supports C89 (complete). +ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + return ok; +} +" + +as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" +as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" +as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" +as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" +as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" +as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" +as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" +as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" +as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' + and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +#-------------------------------------------------------------------- +# Call TEA_INIT as the first TEA_ macro to set up initial vars. +# This will define a ${TEA_PLATFORM} variable == "unix" or "windows" +# as well as PKG_LIB_FILE and PKG_STUB_LIB_FILE. +#-------------------------------------------------------------------- + + + TEA_VERSION="3.13" + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking TEA configuration" >&5 +printf %s "checking TEA configuration... " >&6; } + if test x"${PACKAGE_NAME}" = x ; then + as_fn_error $? " +The PACKAGE_NAME variable must be defined by your TEA configure.ac" "$LINENO" 5 + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok (TEA ${TEA_VERSION})" >&5 +printf "%s\n" "ok (TEA ${TEA_VERSION})" >&6; } + + # If the user did not set CFLAGS, set it now to keep macros + # like AC_PROG_CC and AC_TRY_COMPILE from adding "-g -O2". + if test "${CFLAGS+set}" != "set" ; then + CFLAGS="" + fi + + case "`uname -s`" in + *win32*|*WIN32*|*MINGW32_*|*MINGW64_*) + # Extract the first word of "cygpath", so it can be a program name with args. +set dummy cygpath; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CYGPATH+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CYGPATH"; then + ac_cv_prog_CYGPATH="$CYGPATH" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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_CYGPATH="cygpath -m" + printf "%s\n" "$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_CYGPATH" && ac_cv_prog_CYGPATH="echo" +fi +fi +CYGPATH=$ac_cv_prog_CYGPATH +if test -n "$CYGPATH"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CYGPATH" >&5 +printf "%s\n" "$CYGPATH" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + EXEEXT=".exe" + TEA_PLATFORM="windows" + ;; + *CYGWIN_*) + EXEEXT=".exe" + # CYGPATH and TEA_PLATFORM are determined later in LOAD_TCLCONFIG + ;; + *) + CYGPATH=echo + # Maybe we are cross-compiling.... + case ${host_alias} in + *mingw32*) + EXEEXT=".exe" + TEA_PLATFORM="windows" + ;; + *) + EXEEXT="" + TEA_PLATFORM="unix" + ;; + esac + ;; + esac + + # Check if exec_prefix is set. If not use fall back to prefix. + # Note when adjusted, so that TEA_PREFIX can correct for this. + # This is needed for recursive configures, since autoconf propagates + # $prefix, but not $exec_prefix (doh!). + if test x$exec_prefix = xNONE ; then + exec_prefix_default=yes + exec_prefix=$prefix + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}" >&5 +printf "%s\n" "$as_me: configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}" >&6;} + + + + + # This package name must be replaced statically for AC_SUBST to work + + # Substitute STUB_LIB_FILE in case package creates a stub library too. + + + # We AC_SUBST these here to ensure they are subst'ed, + # in case the user doesn't call TEA_ADD_... + + + + + + + + + # Configure the installer. + + INSTALL='$(SHELL) $(srcdir)/tclconfig/install-sh -c' + INSTALL_DATA_DIR='${INSTALL} -d -m 755' + INSTALL_DATA='${INSTALL} -m 644' + INSTALL_PROGRAM='${INSTALL} -m 755' + INSTALL_SCRIPT='${INSTALL} -m 755' + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking system version" >&5 +printf %s "checking system version... " >&6; } +if test ${tcl_cv_sys_version+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + # TEA specific: + if test "${TEA_PLATFORM}" = "windows" ; then + tcl_cv_sys_version=windows + else + tcl_cv_sys_version=`uname -s`-`uname -r` + if test "$?" -ne 0 ; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: can't find uname command" >&5 +printf "%s\n" "$as_me: WARNING: can't find uname command" >&2;} + tcl_cv_sys_version=unknown + else + if test "`uname -s`" = "AIX" ; then + tcl_cv_sys_version=AIX-`uname -v`.`uname -r` + fi + fi + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_sys_version" >&5 +printf "%s\n" "$tcl_cv_sys_version" >&6; } + system=$tcl_cv_sys_version + + case $system in + HP-UX-*) INSTALL_LIBRARY='${INSTALL} -m 755' ;; + *) INSTALL_LIBRARY='${INSTALL} -m 644' ;; + esac + + + + + + + + + + + + +#-------------------------------------------------------------------- +# Load the tclConfig.sh file +#-------------------------------------------------------------------- + + + + # + # Ok, lets find the tcl configuration + # First, look for one uninstalled. + # the alternative search directory is invoked by --with-tcl + # + + if test x"${no_tcl}" = x ; then + # we reset no_tcl in case something fails here + no_tcl=true + +# Check whether --with-tcl was given. +if test ${with_tcl+y} +then : + withval=$with_tcl; with_tclconfig="${withval}" +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Tcl configuration" >&5 +printf %s "checking for Tcl configuration... " >&6; } + if test ${ac_cv_c_tclconfig+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + # First check to see if --with-tcl was specified. + if test x"${with_tclconfig}" != x ; then + case "${with_tclconfig}" in + */tclConfig.sh ) + if test -f "${with_tclconfig}"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: --with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself" >&5 +printf "%s\n" "$as_me: WARNING: --with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself" >&2;} + with_tclconfig="`echo "${with_tclconfig}" | sed 's!/tclConfig\.sh$!!'`" + fi ;; + esac + if test -f "${with_tclconfig}/tclConfig.sh" ; then + ac_cv_c_tclconfig="`(cd "${with_tclconfig}"; pwd)`" + else + as_fn_error $? "${with_tclconfig} directory doesn't contain tclConfig.sh" "$LINENO" 5 + fi + fi + + # then check for a private Tcl installation + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in \ + ../tcl \ + `ls -dr ../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \ + `ls -dr ../tcl[8-9].[0-9] 2>/dev/null` \ + `ls -dr ../tcl[8-9].[0-9]* 2>/dev/null` \ + ../../tcl \ + `ls -dr ../../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \ + `ls -dr ../../tcl[8-9].[0-9] 2>/dev/null` \ + `ls -dr ../../tcl[8-9].[0-9]* 2>/dev/null` \ + ../../../tcl \ + `ls -dr ../../../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \ + `ls -dr ../../../tcl[8-9].[0-9] 2>/dev/null` \ + `ls -dr ../../../tcl[8-9].[0-9]* 2>/dev/null` ; do + if test "${TEA_PLATFORM}" = "windows" \ + -a -f "$i/win/tclConfig.sh" ; then + ac_cv_c_tclconfig="`(cd $i/win; pwd)`" + break + fi + if test -f "$i/unix/tclConfig.sh" ; then + ac_cv_c_tclconfig="`(cd $i/unix; pwd)`" + break + fi + done + fi + + # on Darwin, check in Framework installation locations + if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tclconfig}" = x ; then + for i in `ls -d ~/Library/Frameworks 2>/dev/null` \ + `ls -d /Library/Frameworks 2>/dev/null` \ + `ls -d /Network/Library/Frameworks 2>/dev/null` \ + `ls -d /System/Library/Frameworks 2>/dev/null` \ + `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Library/Frameworks/Tcl.framework 2>/dev/null` \ + `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Network/Library/Frameworks/Tcl.framework 2>/dev/null` \ + `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Tcl.framework 2>/dev/null` \ + ; do + if test -f "$i/Tcl.framework/tclConfig.sh" ; then + ac_cv_c_tclconfig="`(cd $i/Tcl.framework; pwd)`" + break + fi + done + fi + + # TEA specific: on Windows, check in common installation locations + if test "${TEA_PLATFORM}" = "windows" \ + -a x"${ac_cv_c_tclconfig}" = x ; then + for i in `ls -d C:/Tcl/lib 2>/dev/null` \ + `ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \ + ; do + if test -f "$i/tclConfig.sh" ; then + ac_cv_c_tclconfig="`(cd $i; pwd)`" + break + fi + done + fi + + # check in a few common install locations + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in `ls -d ${libdir} 2>/dev/null` \ + `ls -d ${exec_prefix}/lib 2>/dev/null` \ + `ls -d ${prefix}/lib 2>/dev/null` \ + `ls -d /usr/local/lib 2>/dev/null` \ + `ls -d /usr/contrib/lib 2>/dev/null` \ + `ls -d /usr/pkg/lib 2>/dev/null` \ + `ls -d /usr/lib 2>/dev/null` \ + `ls -d /usr/lib64 2>/dev/null` \ + `ls -d /usr/lib/tcl8.6 2>/dev/null` \ + `ls -d /usr/lib/tcl8.5 2>/dev/null` \ + `ls -d /usr/local/lib/tcl8.6 2>/dev/null` \ + `ls -d /usr/local/lib/tcl8.5 2>/dev/null` \ + `ls -d /usr/local/lib/tcl/tcl8.6 2>/dev/null` \ + `ls -d /usr/local/lib/tcl/tcl8.5 2>/dev/null` \ + ; do + if test -f "$i/tclConfig.sh" ; then + ac_cv_c_tclconfig="`(cd $i; pwd)`" + break + fi + done + fi + + # check in a few other private locations + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in \ + ${srcdir}/../tcl \ + `ls -dr ${srcdir}/../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \ + `ls -dr ${srcdir}/../tcl[8-9].[0-9] 2>/dev/null` \ + `ls -dr ${srcdir}/../tcl[8-9].[0-9]* 2>/dev/null` ; do + if test "${TEA_PLATFORM}" = "windows" \ + -a -f "$i/win/tclConfig.sh" ; then + ac_cv_c_tclconfig="`(cd $i/win; pwd)`" + break + fi + if test -f "$i/unix/tclConfig.sh" ; then + ac_cv_c_tclconfig="`(cd $i/unix; pwd)`" + break + fi + done + fi + +fi + + + if test x"${ac_cv_c_tclconfig}" = x ; then + TCL_BIN_DIR="# no Tcl configs found" + as_fn_error $? "Can't find Tcl configuration definitions. Use --with-tcl to specify a directory containing tclConfig.sh" "$LINENO" 5 + else + no_tcl= + TCL_BIN_DIR="${ac_cv_c_tclconfig}" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found ${TCL_BIN_DIR}/tclConfig.sh" >&5 +printf "%s\n" "found ${TCL_BIN_DIR}/tclConfig.sh" >&6; } + 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 +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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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}clang" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 + +fi + + +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$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. +printf "%s\n" "$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 -version; 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\"" +printf "%s\n" "$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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + 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. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +printf %s "checking whether the C compiler works... " >&6; } +ac_link_default=`printf "%s\n" "$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\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else $as_nop + ac_file='' +fi +if test -z "$ac_file" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$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_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +printf %s "checking for C compiler default output file name... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf "%s\n" "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +printf %s "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\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf "%s\n" "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +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. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +printf %s "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf "%s\n" "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +printf %s "checking for suffix of object files... " >&6; } +if test ${ac_cv_objext+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + 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\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf "%s\n" "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_compiler_gnu=yes +else $as_nop + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+y} +ac_save_CFLAGS=$CFLAGS +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +else $as_nop + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program +_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 conftest.beam + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 +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 + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for existence of ${TCL_BIN_DIR}/tclConfig.sh" >&5 +printf %s "checking for existence of ${TCL_BIN_DIR}/tclConfig.sh... " >&6; } + + if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: loading" >&5 +printf "%s\n" "loading" >&6; } + . "${TCL_BIN_DIR}/tclConfig.sh" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: could not find ${TCL_BIN_DIR}/tclConfig.sh" >&5 +printf "%s\n" "could not find ${TCL_BIN_DIR}/tclConfig.sh" >&6; } + fi + + # eval is required to do the TCL_DBGX substitution + eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\"" + eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\"" + + # If the TCL_BIN_DIR is the build directory (not the install directory), + # then set the common variable name to the value of the build variables. + # For example, the variable TCL_LIB_SPEC will be set to the value + # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC + # instead of TCL_BUILD_LIB_SPEC since it will work with both an + # installed and uninstalled version of Tcl. + if test -f "${TCL_BIN_DIR}/Makefile" ; then + TCL_LIB_SPEC="${TCL_BUILD_LIB_SPEC}" + TCL_STUB_LIB_SPEC="${TCL_BUILD_STUB_LIB_SPEC}" + TCL_STUB_LIB_PATH="${TCL_BUILD_STUB_LIB_PATH}" + elif test "`uname -s`" = "Darwin"; then + # If Tcl was built as a framework, attempt to use the libraries + # from the framework at the given location so that linking works + # against Tcl.framework installed in an arbitrary location. + case ${TCL_DEFS} in + *TCL_FRAMEWORK*) + if test -f "${TCL_BIN_DIR}/${TCL_LIB_FILE}"; then + for i in "`cd "${TCL_BIN_DIR}"; pwd`" \ + "`cd "${TCL_BIN_DIR}"/../..; pwd`"; do + if test "`basename "$i"`" = "${TCL_LIB_FILE}.framework"; then + TCL_LIB_SPEC="-F`dirname "$i" | sed -e 's/ /\\\\ /g'` -framework ${TCL_LIB_FILE}" + break + fi + done + fi + if test -f "${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"; then + TCL_STUB_LIB_SPEC="-L`echo "${TCL_BIN_DIR}" | sed -e 's/ /\\\\ /g'` ${TCL_STUB_LIB_FLAG}" + TCL_STUB_LIB_PATH="${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}" + fi + ;; + esac + fi + + # eval is required to do the TCL_DBGX substitution + eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\"" + eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\"" + eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\"" + eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\"" + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking platform" >&5 +printf %s "checking platform... " >&6; } + hold_cc=$CC; CC="$TCL_CC" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + #ifdef _WIN32 + #error win32 + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + TEA_PLATFORM="unix" + CYGPATH=echo + +else $as_nop + + TEA_PLATFORM="windows" + # Extract the first word of "cygpath", so it can be a program name with args. +set dummy cygpath; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CYGPATH+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CYGPATH"; then + ac_cv_prog_CYGPATH="$CYGPATH" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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_CYGPATH="cygpath -m" + printf "%s\n" "$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_CYGPATH" && ac_cv_prog_CYGPATH="echo" +fi +fi +CYGPATH=$ac_cv_prog_CYGPATH +if test -n "$CYGPATH"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CYGPATH" >&5 +printf "%s\n" "$CYGPATH" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CC=$hold_cc + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $TEA_PLATFORM" >&5 +printf "%s\n" "$TEA_PLATFORM" >&6; } + + # The BUILD_$pkg is to define the correct extern storage class + # handling when making this package + +printf "%s\n" "#define BUILD_${PACKAGE_NAME} /**/" >>confdefs.h + + # Do this here as we have fully defined TEA_PLATFORM now + if test "${TEA_PLATFORM}" = "windows" ; then + EXEEXT=".exe" + CLEANFILES="$CLEANFILES *.lib *.dll *.pdb *.exp" + fi + + # TEA specific: + + + + + + + + +#-------------------------------------------------------------------- +# Load the tkConfig.sh file if necessary (Tk extension) +#-------------------------------------------------------------------- + + + # + # Ok, lets find the tk configuration + # First, look for one uninstalled. + # the alternative search directory is invoked by --with-tk + # + + if test x"${no_tk}" = x ; then + # we reset no_tk in case something fails here + no_tk=true + +# Check whether --with-tk was given. +if test ${with_tk+y} +then : + withval=$with_tk; with_tkconfig="${withval}" +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Tk configuration" >&5 +printf %s "checking for Tk configuration... " >&6; } + if test ${ac_cv_c_tkconfig+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + # First check to see if --with-tkconfig was specified. + if test x"${with_tkconfig}" != x ; then + case "${with_tkconfig}" in + */tkConfig.sh ) + if test -f "${with_tkconfig}"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: --with-tk argument should refer to directory containing tkConfig.sh, not to tkConfig.sh itself" >&5 +printf "%s\n" "$as_me: WARNING: --with-tk argument should refer to directory containing tkConfig.sh, not to tkConfig.sh itself" >&2;} + with_tkconfig="`echo "${with_tkconfig}" | sed 's!/tkConfig\.sh$!!'`" + fi ;; + esac + if test -f "${with_tkconfig}/tkConfig.sh" ; then + ac_cv_c_tkconfig="`(cd "${with_tkconfig}"; pwd)`" + else + as_fn_error $? "${with_tkconfig} directory doesn't contain tkConfig.sh" "$LINENO" 5 + fi + fi + + # then check for a private Tk library + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in \ + ../tk \ + `ls -dr ../tk[8-9].[0-9].[0-9]* 2>/dev/null` \ + `ls -dr ../tk[8-9].[0-9] 2>/dev/null` \ + `ls -dr ../tk[8-9].[0-9]* 2>/dev/null` \ + ../../tk \ + `ls -dr ../../tk[8-9].[0-9].[0-9]* 2>/dev/null` \ + `ls -dr ../../tk[8-9].[0-9] 2>/dev/null` \ + `ls -dr ../../tk[8-9].[0-9]* 2>/dev/null` \ + ../../../tk \ + `ls -dr ../../../tk[8-9].[0-9].[0-9]* 2>/dev/null` \ + `ls -dr ../../../tk[8-9].[0-9] 2>/dev/null` \ + `ls -dr ../../../tk[8-9].[0-9]* 2>/dev/null` ; do + if test "${TEA_PLATFORM}" = "windows" \ + -a -f "$i/win/tkConfig.sh" ; then + ac_cv_c_tkconfig="`(cd $i/win; pwd)`" + break + fi + if test -f "$i/unix/tkConfig.sh" ; then + ac_cv_c_tkconfig="`(cd $i/unix; pwd)`" + break + fi + done + fi + + # on Darwin, check in Framework installation locations + if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tkconfig}" = x ; then + for i in `ls -d ~/Library/Frameworks 2>/dev/null` \ + `ls -d /Library/Frameworks 2>/dev/null` \ + `ls -d /Network/Library/Frameworks 2>/dev/null` \ + `ls -d /System/Library/Frameworks 2>/dev/null` \ + `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Library/Frameworks/Tcl.framework 2>/dev/null` \ + `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Network/Library/Frameworks/Tcl.framework 2>/dev/null` \ + `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Tcl.framework 2>/dev/null` \ + ; do + if test -f "$i/Tk.framework/tkConfig.sh" ; then + ac_cv_c_tkconfig="`(cd $i/Tk.framework; pwd)`" + break + fi + done + fi + + # check in a few common install locations + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in `ls -d ${libdir} 2>/dev/null` \ + `ls -d ${exec_prefix}/lib 2>/dev/null` \ + `ls -d ${prefix}/lib 2>/dev/null` \ + `ls -d /usr/local/lib 2>/dev/null` \ + `ls -d /usr/contrib/lib 2>/dev/null` \ + `ls -d /usr/pkg/lib 2>/dev/null` \ + `ls -d /usr/lib 2>/dev/null` \ + `ls -d /usr/lib64 2>/dev/null` \ + `ls -d /usr/lib/tk8.6 2>/dev/null` \ + `ls -d /usr/lib/tk8.5 2>/dev/null` \ + `ls -d /usr/local/lib/tk8.6 2>/dev/null` \ + `ls -d /usr/local/lib/tk8.5 2>/dev/null` \ + `ls -d /usr/local/lib/tcl/tk8.6 2>/dev/null` \ + `ls -d /usr/local/lib/tcl/tk8.5 2>/dev/null` \ + ; do + if test -f "$i/tkConfig.sh" ; then + ac_cv_c_tkconfig="`(cd $i; pwd)`" + break + fi + done + fi + + # TEA specific: on Windows, check in common installation locations + if test "${TEA_PLATFORM}" = "windows" \ + -a x"${ac_cv_c_tkconfig}" = x ; then + for i in `ls -d C:/Tcl/lib 2>/dev/null` \ + `ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \ + ; do + if test -f "$i/tkConfig.sh" ; then + ac_cv_c_tkconfig="`(cd $i; pwd)`" + break + fi + done + fi + + # check in a few other private locations + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in \ + ${srcdir}/../tk \ + `ls -dr ${srcdir}/../tk[8-9].[0-9].[0-9]* 2>/dev/null` \ + `ls -dr ${srcdir}/../tk[8-9].[0-9] 2>/dev/null` \ + `ls -dr ${srcdir}/../tk[8-9].[0-9]* 2>/dev/null` ; do + if test "${TEA_PLATFORM}" = "windows" \ + -a -f "$i/win/tkConfig.sh" ; then + ac_cv_c_tkconfig="`(cd $i/win; pwd)`" + break + fi + if test -f "$i/unix/tkConfig.sh" ; then + ac_cv_c_tkconfig="`(cd $i/unix; pwd)`" + break + fi + done + fi + +fi + + + if test x"${ac_cv_c_tkconfig}" = x ; then + TK_BIN_DIR="# no Tk configs found" + as_fn_error $? "Can't find Tk configuration definitions. Use --with-tk to specify a directory containing tkConfig.sh" "$LINENO" 5 + else + no_tk= + TK_BIN_DIR="${ac_cv_c_tkconfig}" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found ${TK_BIN_DIR}/tkConfig.sh" >&5 +printf "%s\n" "found ${TK_BIN_DIR}/tkConfig.sh" >&6; } + fi + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for existence of ${TK_BIN_DIR}/tkConfig.sh" >&5 +printf %s "checking for existence of ${TK_BIN_DIR}/tkConfig.sh... " >&6; } + + if test -f "${TK_BIN_DIR}/tkConfig.sh" ; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: loading" >&5 +printf "%s\n" "loading" >&6; } + . "${TK_BIN_DIR}/tkConfig.sh" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: could not find ${TK_BIN_DIR}/tkConfig.sh" >&5 +printf "%s\n" "could not find ${TK_BIN_DIR}/tkConfig.sh" >&6; } + fi + + # eval is required to do the TK_DBGX substitution + eval "TK_LIB_FILE=\"${TK_LIB_FILE}\"" + eval "TK_STUB_LIB_FILE=\"${TK_STUB_LIB_FILE}\"" + + # If the TK_BIN_DIR is the build directory (not the install directory), + # then set the common variable name to the value of the build variables. + # For example, the variable TK_LIB_SPEC will be set to the value + # of TK_BUILD_LIB_SPEC. An extension should make use of TK_LIB_SPEC + # instead of TK_BUILD_LIB_SPEC since it will work with both an + # installed and uninstalled version of Tcl. + if test -f "${TK_BIN_DIR}/Makefile" ; then + TK_LIB_SPEC="${TK_BUILD_LIB_SPEC}" + TK_STUB_LIB_SPEC="${TK_BUILD_STUB_LIB_SPEC}" + TK_STUB_LIB_PATH="${TK_BUILD_STUB_LIB_PATH}" + elif test "`uname -s`" = "Darwin"; then + # If Tk was built as a framework, attempt to use the libraries + # from the framework at the given location so that linking works + # against Tk.framework installed in an arbitrary location. + case ${TK_DEFS} in + *TK_FRAMEWORK*) + if test -f "${TK_BIN_DIR}/${TK_LIB_FILE}"; then + for i in "`cd "${TK_BIN_DIR}"; pwd`" \ + "`cd "${TK_BIN_DIR}"/../..; pwd`"; do + if test "`basename "$i"`" = "${TK_LIB_FILE}.framework"; then + TK_LIB_SPEC="-F`dirname "$i" | sed -e 's/ /\\\\ /g'` -framework ${TK_LIB_FILE}" + break + fi + done + fi + if test -f "${TK_BIN_DIR}/${TK_STUB_LIB_FILE}"; then + TK_STUB_LIB_SPEC="-L` echo "${TK_BIN_DIR}" | sed -e 's/ /\\\\ /g'` ${TK_STUB_LIB_FLAG}" + TK_STUB_LIB_PATH="${TK_BIN_DIR}/${TK_STUB_LIB_FILE}" + fi + ;; + esac + fi + + # eval is required to do the TK_DBGX substitution + eval "TK_LIB_FLAG=\"${TK_LIB_FLAG}\"" + eval "TK_LIB_SPEC=\"${TK_LIB_SPEC}\"" + eval "TK_STUB_LIB_FLAG=\"${TK_STUB_LIB_FLAG}\"" + eval "TK_STUB_LIB_SPEC=\"${TK_STUB_LIB_SPEC}\"" + + # TEA specific: Ensure windowingsystem is defined + if test "${TEA_PLATFORM}" = "unix" ; then + case ${TK_DEFS} in + *MAC_OSX_TK*) + +printf "%s\n" "#define MAC_OSX_TK 1" >>confdefs.h + + TEA_WINDOWINGSYSTEM="aqua" + ;; + *) + TEA_WINDOWINGSYSTEM="x11" + ;; + esac + elif test "${TEA_PLATFORM}" = "windows" ; then + TEA_WINDOWINGSYSTEM="win32" + fi + + + + + + + + + + + + + + # TEA specific: + + + + +#----------------------------------------------------------------------- +# Handle the --prefix=... option by defaulting to what Tcl gave. +# Must be called after TEA_LOAD_TCLCONFIG and before TEA_SETUP_COMPILER. +#----------------------------------------------------------------------- + + + if test "${prefix}" = "NONE"; then + prefix_default=yes + if test x"${TCL_PREFIX}" != x; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: --prefix defaulting to TCL_PREFIX ${TCL_PREFIX}" >&5 +printf "%s\n" "$as_me: --prefix defaulting to TCL_PREFIX ${TCL_PREFIX}" >&6;} + prefix=${TCL_PREFIX} + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: --prefix defaulting to /usr/local" >&5 +printf "%s\n" "$as_me: --prefix defaulting to /usr/local" >&6;} + prefix=/usr/local + fi + fi + if test "${exec_prefix}" = "NONE" -a x"${prefix_default}" = x"yes" \ + -o x"${exec_prefix_default}" = x"yes" ; then + if test x"${TCL_EXEC_PREFIX}" != x; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: --exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}" >&5 +printf "%s\n" "$as_me: --exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}" >&6;} + exec_prefix=${TCL_EXEC_PREFIX} + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: --exec-prefix defaulting to ${prefix}" >&5 +printf "%s\n" "$as_me: --exec-prefix defaulting to ${prefix}" >&6;} + exec_prefix=$prefix + fi + fi + + +#----------------------------------------------------------------------- +# Standard compiler checks. +# This sets up CC by using the CC env var, or looks for gcc otherwise. +# This also calls AC_PROG_CC and a few others to create the basic setup +# necessary to compile executables. +#----------------------------------------------------------------------- + + + # Don't put any macros that use the compiler (e.g. AC_TRY_COMPILE) + # in this macro, they need to go into TEA_SETUP_COMPILER instead. + + 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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}clang" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 + +fi + + +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$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. +printf "%s\n" "$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 -version; 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\"" +printf "%s\n" "$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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_compiler_gnu=yes +else $as_nop + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+y} +ac_save_CFLAGS=$CFLAGS +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +else $as_nop + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program +_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 conftest.beam + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 +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 + + 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +printf %s "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test ${ac_cv_prog_CPP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Double quotes because $CC needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" 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. + # 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. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else $as_nop + # 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 $as_nop + # 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +printf "%s\n" "$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. + # 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. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else $as_nop + # 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 $as_nop + # 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_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$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 + + + #-------------------------------------------------------------------- + # Checks to see if the make program sets the $MAKE variable. + #-------------------------------------------------------------------- + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval test \${ac_cv_prog_make_${ac_make}_set+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + SET_MAKE= +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + + + #-------------------------------------------------------------------- + # Find ranlib + #-------------------------------------------------------------------- + + 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +printf "%s\n" "$RANLIB" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +printf "%s\n" "$ac_ct_RANLIB" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 + + + #-------------------------------------------------------------------- + # Determines the correct binary file extension (.o, .obj, .exe etc.) + #-------------------------------------------------------------------- + + + + +ac_header= ac_cache= +for ac_item in $ac_header_c_list +do + if test $ac_cache; then + ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then + printf "%s\n" "#define $ac_item 1" >> confdefs.h + fi + ac_header= ac_cache= + elif test $ac_header; then + ac_cache=$ac_item + else + ac_header=$ac_item + fi +done + + + + + + + + +if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +then : + +printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h + +fi + + # Any macros that use the compiler (e.g. AC_TRY_COMPILE) have to go here. + + + #------------------------------------------------------------------------ + # If we're using GCC, see if the compiler understands -pipe. If so, use it. + # It makes compiling go faster. (This is only a performance feature.) + #------------------------------------------------------------------------ + + if test -z "$no_pipe" -a -n "$GCC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the compiler understands -pipe" >&5 +printf %s "checking if the compiler understands -pipe... " >&6; } +if test ${tcl_cv_cc_pipe+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -pipe" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tcl_cv_cc_pipe=yes +else $as_nop + tcl_cv_cc_pipe=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$hold_cflags +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_pipe" >&5 +printf "%s\n" "$tcl_cv_cc_pipe" >&6; } + if test $tcl_cv_cc_pipe = yes; then + CFLAGS="$CFLAGS -pipe" + fi + fi + + #-------------------------------------------------------------------- + # Common compiler flag setup + #-------------------------------------------------------------------- + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +printf %s "checking whether byte ordering is bigendian... " >&6; } +if test ${ac_cv_c_bigendian+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main (void) +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main (void) +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_bigendian=yes +else $as_nop + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_bigendian=yes +else $as_nop + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes +then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +unsigned short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + unsigned short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + unsigned short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + unsigned short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main (void) +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main (void) +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + ac_cv_c_bigendian=no +else $as_nop + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +printf "%s\n" "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + + + +#----------------------------------------------------------------------- +# __CHANGE__ +# Specify the C source files to compile in TEA_ADD_SOURCES, +# public headers that need to be installed in TEA_ADD_HEADERS, +# stub library C source files to compile in TEA_ADD_STUB_SOURCES, +# and runtime Tcl library files in TEA_ADD_TCL_SOURCES. +# This defines PKG(_STUB)_SOURCES, PKG(_STUB)_OBJECTS, PKG_HEADERS +# and PKG_TCL_SOURCES. +#----------------------------------------------------------------------- + + + vars="tkImgSVG.c" + for i in $vars; do + case $i in + \$*) + # allow $-var names + PKG_SOURCES="$PKG_SOURCES $i" + PKG_OBJECTS="$PKG_OBJECTS $i" + ;; + *) + # check for existence - allows for generic/win/unix VPATH + # To add more dirs here (like 'src'), you have to update VPATH + # in Makefile.in as well + if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ + -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ + -a ! -f "${srcdir}/macosx/$i" \ + ; then + as_fn_error $? "could not find source file '$i'" "$LINENO" 5 + fi + PKG_SOURCES="$PKG_SOURCES $i" + # this assumes it is in a VPATH dir + i=`basename $i` + # handle user calling this before or after TEA_SETUP_COMPILER + if test x"${OBJEXT}" != x ; then + j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}" + else + j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}" + fi + PKG_OBJECTS="$PKG_OBJECTS $j" + ;; + esac + done + + + + + vars="" + for i in $vars; do + # check for existence, be strict because it is installed + if test ! -f "${srcdir}/$i" ; then + as_fn_error $? "could not find header file '${srcdir}/$i'" "$LINENO" 5 + fi + PKG_HEADERS="$PKG_HEADERS $i" + done + + + + vars="" + for i in $vars; do + PKG_INCLUDES="$PKG_INCLUDES $i" + done + + + + vars="" + for i in $vars; do + if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then + # Convert foo.lib to -lfoo for GCC. No-op if not *.lib + i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'` + fi + PKG_LIBS="$PKG_LIBS $i" + done + + + + PKG_CFLAGS="$PKG_CFLAGS " + + + + vars="" + for i in $vars; do + # check for existence - allows for generic/win/unix VPATH + if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ + -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ + -a ! -f "${srcdir}/macosx/$i" \ + ; then + as_fn_error $? "could not find stub source file '$i'" "$LINENO" 5 + fi + PKG_STUB_SOURCES="$PKG_STUB_SOURCES $i" + # this assumes it is in a VPATH dir + i=`basename $i` + # handle user calling this before or after TEA_SETUP_COMPILER + if test x"${OBJEXT}" != x ; then + j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}" + else + j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}" + fi + PKG_STUB_OBJECTS="$PKG_STUB_OBJECTS $j" + done + + + + + vars="" + for i in $vars; do + # check for existence, be strict because it is installed + if test ! -f "${srcdir}/$i" ; then + as_fn_error $? "could not find tcl source file '${srcdir}/$i'" "$LINENO" 5 + fi + PKG_TCL_SOURCES="$PKG_TCL_SOURCES $i" + done + + + +#-------------------------------------------------------------------- +# __CHANGE__ +# +# You can add more files to clean if your extension creates any extra +# files by extending CLEANFILES. +# Add pkgIndex.tcl if it is generated in the Makefile instead of ./configure +# and change Makefile.in to move it from CONFIG_CLEAN_FILES to BINARIES var. +# +# A few miscellaneous platform-specific items: +# TEA_ADD_* any platform specific compiler/build info here. +#-------------------------------------------------------------------- + +#CLEANFILES="$CLEANFILES pkgIndex.tcl" +if test "${TEA_PLATFORM}" = "windows" ; then + # Ensure no empty if clauses + : + #TEA_ADD_SOURCES([win/winFile.c]) + #TEA_ADD_INCLUDES([-I\"$(${CYGPATH} ${srcdir}/win)\"]) +else + # Ensure no empty else clauses + : + #TEA_ADD_SOURCES([unix/unixFile.c]) + #TEA_ADD_LIBS([-lsuperfly]) +fi + +#-------------------------------------------------------------------- +# __CHANGE__ +# Choose which headers you need. Extension authors should try very +# hard to only rely on the Tcl public header files. Internal headers +# contain private data structures and are subject to change without +# notice. +# This MUST be called after TEA_LOAD_TCLCONFIG / TEA_LOAD_TKCONFIG +#-------------------------------------------------------------------- + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Tcl public headers" >&5 +printf %s "checking for Tcl public headers... " >&6; } + + +# Check whether --with-tclinclude was given. +if test ${with_tclinclude+y} +then : + withval=$with_tclinclude; with_tclinclude=${withval} +fi + + + if test ${ac_cv_c_tclh+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + # Use the value from --with-tclinclude, if it was given + + if test x"${with_tclinclude}" != x ; then + if test -f "${with_tclinclude}/tcl.h" ; then + ac_cv_c_tclh=${with_tclinclude} + else + as_fn_error $? "${with_tclinclude} directory does not contain tcl.h" "$LINENO" 5 + fi + else + list="" + if test "`uname -s`" = "Darwin"; then + # If Tcl was built as a framework, attempt to use + # the framework's Headers directory + case ${TCL_DEFS} in + *TCL_FRAMEWORK*) + list="`ls -d ${TCL_BIN_DIR}/Headers 2>/dev/null`" + ;; + esac + fi + + # Look in the source dir only if Tcl is not installed, + # and in that situation, look there before installed locations. + if test -f "${TCL_BIN_DIR}/Makefile" ; then + list="$list `ls -d ${TCL_SRC_DIR}/generic 2>/dev/null`" + fi + + # Check order: pkg --prefix location, Tcl's --prefix location, + # relative to directory of tclConfig.sh. + + eval "temp_includedir=${includedir}" + list="$list \ + `ls -d ${temp_includedir} 2>/dev/null` \ + `ls -d ${TCL_PREFIX}/include 2>/dev/null` \ + `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`" + if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then + list="$list /usr/local/include /usr/include" + if test x"${TCL_INCLUDE_SPEC}" != x ; then + d=`echo "${TCL_INCLUDE_SPEC}" | sed -e 's/^-I//'` + list="$list `ls -d ${d} 2>/dev/null`" + fi + fi + for i in $list ; do + if test -f "$i/tcl.h" ; then + ac_cv_c_tclh=$i + break + fi + done + fi + +fi + + + # Print a message based on how we determined the include path + + if test x"${ac_cv_c_tclh}" = x ; then + as_fn_error $? "tcl.h not found. Please specify its location with --with-tclinclude" "$LINENO" 5 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_c_tclh}" >&5 +printf "%s\n" "${ac_cv_c_tclh}" >&6; } + fi + + # Convert to a native path and substitute into the output files. + + INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tclh}` + + TCL_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\" + + + +#TEA_PRIVATE_TCL_HEADERS + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Tk public headers" >&5 +printf %s "checking for Tk public headers... " >&6; } + + +# Check whether --with-tkinclude was given. +if test ${with_tkinclude+y} +then : + withval=$with_tkinclude; with_tkinclude=${withval} +fi + + + if test ${ac_cv_c_tkh+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + # Use the value from --with-tkinclude, if it was given + + if test x"${with_tkinclude}" != x ; then + if test -f "${with_tkinclude}/tk.h" ; then + ac_cv_c_tkh=${with_tkinclude} + else + as_fn_error $? "${with_tkinclude} directory does not contain tk.h" "$LINENO" 5 + fi + else + list="" + if test "`uname -s`" = "Darwin"; then + # If Tk was built as a framework, attempt to use + # the framework's Headers directory. + case ${TK_DEFS} in + *TK_FRAMEWORK*) + list="`ls -d ${TK_BIN_DIR}/Headers 2>/dev/null`" + ;; + esac + fi + + # Look in the source dir only if Tk is not installed, + # and in that situation, look there before installed locations. + if test -f "${TK_BIN_DIR}/Makefile" ; then + list="$list `ls -d ${TK_SRC_DIR}/generic 2>/dev/null`" + fi + + # Check order: pkg --prefix location, Tk's --prefix location, + # relative to directory of tkConfig.sh, Tcl's --prefix location, + # relative to directory of tclConfig.sh. + + eval "temp_includedir=${includedir}" + list="$list \ + `ls -d ${temp_includedir} 2>/dev/null` \ + `ls -d ${TK_PREFIX}/include 2>/dev/null` \ + `ls -d ${TK_BIN_DIR}/../include 2>/dev/null` \ + `ls -d ${TCL_PREFIX}/include 2>/dev/null` \ + `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`" + if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then + list="$list /usr/local/include /usr/include" + if test x"${TK_INCLUDE_SPEC}" != x ; then + d=`echo "${TK_INCLUDE_SPEC}" | sed -e 's/^-I//'` + list="$list `ls -d ${d} 2>/dev/null`" + fi + fi + for i in $list ; do + if test -f "$i/tk.h" ; then + ac_cv_c_tkh=$i + break + fi + done + fi + +fi + + + # Print a message based on how we determined the include path + + if test x"${ac_cv_c_tkh}" = x ; then + as_fn_error $? "tk.h not found. Please specify its location with --with-tkinclude" "$LINENO" 5 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_c_tkh}" >&5 +printf "%s\n" "${ac_cv_c_tkh}" >&6; } + fi + + # Convert to a native path and substitute into the output files. + + INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tkh}` + + TK_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\" + + + + if test "${TEA_WINDOWINGSYSTEM}" != "x11"; then + # On Windows and Aqua, we need the X compat headers + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for X11 header files" >&5 +printf %s "checking for X11 header files... " >&6; } + if test ! -r "${INCLUDE_DIR_NATIVE}/X11/Xlib.h"; then + INCLUDE_DIR_NATIVE="`${CYGPATH} ${TK_SRC_DIR}/xlib`" + TK_XINCLUDES=-I\"${INCLUDE_DIR_NATIVE}\" + + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${INCLUDE_DIR_NATIVE}" >&5 +printf "%s\n" "${INCLUDE_DIR_NATIVE}" >&6; } + fi + +#TEA_PRIVATE_TK_HEADERS +#TEA_PATH_X + +#-------------------------------------------------------------------- +# Check whether --enable-threads or --disable-threads was given. +# This auto-enables if Tcl was compiled threaded. +#-------------------------------------------------------------------- + + + # Check whether --enable-threads was given. +if test ${enable_threads+y} +then : + enableval=$enable_threads; tcl_ok=$enableval +else $as_nop + tcl_ok=yes +fi + + + if test "${enable_threads+set}" = set; then + enableval="$enable_threads" + tcl_ok=$enableval + else + tcl_ok=yes + fi + + if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then + TCL_THREADS=1 + + if test "${TEA_PLATFORM}" != "windows" ; then + # We are always OK on Windows, so check what this platform wants: + + # USE_THREAD_ALLOC tells us to try the special thread-based + # allocator that significantly reduces lock contention + +printf "%s\n" "#define USE_THREAD_ALLOC 1" >>confdefs.h + + +printf "%s\n" "#define _REENTRANT 1" >>confdefs.h + + if test "`uname -s`" = "SunOS" ; then + +printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + fi + +printf "%s\n" "#define _THREAD_SAFE 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lpthread" >&5 +printf %s "checking for pthread_mutex_init in -lpthread... " >&6; } +if test ${ac_cv_lib_pthread_pthread_mutex_init+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char pthread_mutex_init (); +int +main (void) +{ +return pthread_mutex_init (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_pthread_pthread_mutex_init=yes +else $as_nop + ac_cv_lib_pthread_pthread_mutex_init=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_mutex_init" >&5 +printf "%s\n" "$ac_cv_lib_pthread_pthread_mutex_init" >&6; } +if test "x$ac_cv_lib_pthread_pthread_mutex_init" = xyes +then : + tcl_ok=yes +else $as_nop + tcl_ok=no +fi + + if test "$tcl_ok" = "no"; then + # Check a little harder for __pthread_mutex_init in the same + # library, as some systems hide it there until pthread.h is + # defined. We could alternatively do an AC_TRY_COMPILE with + # pthread.h, but that will work with libpthread really doesn't + # exist, like AIX 4.2. [Bug: 4359] + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __pthread_mutex_init in -lpthread" >&5 +printf %s "checking for __pthread_mutex_init in -lpthread... " >&6; } +if test ${ac_cv_lib_pthread___pthread_mutex_init+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char __pthread_mutex_init (); +int +main (void) +{ +return __pthread_mutex_init (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_pthread___pthread_mutex_init=yes +else $as_nop + ac_cv_lib_pthread___pthread_mutex_init=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread___pthread_mutex_init" >&5 +printf "%s\n" "$ac_cv_lib_pthread___pthread_mutex_init" >&6; } +if test "x$ac_cv_lib_pthread___pthread_mutex_init" = xyes +then : + tcl_ok=yes +else $as_nop + tcl_ok=no +fi + + fi + + if test "$tcl_ok" = "yes"; then + # The space is needed + THREADS_LIBS=" -lpthread" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lpthreads" >&5 +printf %s "checking for pthread_mutex_init in -lpthreads... " >&6; } +if test ${ac_cv_lib_pthreads_pthread_mutex_init+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthreads $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char pthread_mutex_init (); +int +main (void) +{ +return pthread_mutex_init (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_pthreads_pthread_mutex_init=yes +else $as_nop + ac_cv_lib_pthreads_pthread_mutex_init=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_pthread_mutex_init" >&5 +printf "%s\n" "$ac_cv_lib_pthreads_pthread_mutex_init" >&6; } +if test "x$ac_cv_lib_pthreads_pthread_mutex_init" = xyes +then : + tcl_ok=yes +else $as_nop + tcl_ok=no +fi + + if test "$tcl_ok" = "yes"; then + # The space is needed + THREADS_LIBS=" -lpthreads" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lc" >&5 +printf %s "checking for pthread_mutex_init in -lc... " >&6; } +if test ${ac_cv_lib_c_pthread_mutex_init+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char pthread_mutex_init (); +int +main (void) +{ +return pthread_mutex_init (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_c_pthread_mutex_init=yes +else $as_nop + ac_cv_lib_c_pthread_mutex_init=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_pthread_mutex_init" >&5 +printf "%s\n" "$ac_cv_lib_c_pthread_mutex_init" >&6; } +if test "x$ac_cv_lib_c_pthread_mutex_init" = xyes +then : + tcl_ok=yes +else $as_nop + tcl_ok=no +fi + + if test "$tcl_ok" = "no"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lc_r" >&5 +printf %s "checking for pthread_mutex_init in -lc_r... " >&6; } +if test ${ac_cv_lib_c_r_pthread_mutex_init+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc_r $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char pthread_mutex_init (); +int +main (void) +{ +return pthread_mutex_init (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_c_r_pthread_mutex_init=yes +else $as_nop + ac_cv_lib_c_r_pthread_mutex_init=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_mutex_init" >&5 +printf "%s\n" "$ac_cv_lib_c_r_pthread_mutex_init" >&6; } +if test "x$ac_cv_lib_c_r_pthread_mutex_init" = xyes +then : + tcl_ok=yes +else $as_nop + tcl_ok=no +fi + + if test "$tcl_ok" = "yes"; then + # The space is needed + THREADS_LIBS=" -pthread" + else + TCL_THREADS=0 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&5 +printf "%s\n" "$as_me: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&2;} + fi + fi + fi + fi + fi + else + TCL_THREADS=0 + fi + # Do checking message here to not mess up interleaved configure output + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for building with threads" >&5 +printf %s "checking for building with threads... " >&6; } + if test "${TCL_THREADS}" = 1; then + +printf "%s\n" "#define TCL_THREADS 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes (default)" >&5 +printf "%s\n" "yes (default)" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + # TCL_THREADS sanity checking. See if our request for building with + # threads is the same as the way Tcl was built. If not, warn the user. + case ${TCL_DEFS} in + *THREADS=1*) + if test "${TCL_THREADS}" = "0"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: + Building ${PACKAGE_NAME} without threads enabled, but building against Tcl + that IS thread-enabled. It is recommended to use --enable-threads." >&5 +printf "%s\n" "$as_me: WARNING: + Building ${PACKAGE_NAME} without threads enabled, but building against Tcl + that IS thread-enabled. It is recommended to use --enable-threads." >&2;} + fi + ;; + esac + + + +#-------------------------------------------------------------------- +# The statement below defines a collection of symbols related to +# building as a shared library instead of a static library. +#-------------------------------------------------------------------- + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to build libraries" >&5 +printf %s "checking how to build libraries... " >&6; } + # Check whether --enable-shared was given. +if test ${enable_shared+y} +then : + enableval=$enable_shared; shared_ok=$enableval +else $as_nop + shared_ok=yes +fi + + + if test "${enable_shared+set}" = set; then + enableval="$enable_shared" + shared_ok=$enableval + else + shared_ok=yes + fi + + # Check whether --enable-stubs was given. +if test ${enable_stubs+y} +then : + enableval=$enable_stubs; stubs_ok=$enableval +else $as_nop + stubs_ok=yes +fi + + + if test "${enable_stubs+set}" = set; then + enableval="$enable_stubs" + stubs_ok=$enableval + else + stubs_ok=yes + fi + + # Stubs are always enabled for shared builds + if test "$shared_ok" = "yes" ; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: shared" >&5 +printf "%s\n" "shared" >&6; } + SHARED_BUILD=1 + STUBS_BUILD=1 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: static" >&5 +printf "%s\n" "static" >&6; } + SHARED_BUILD=0 + +printf "%s\n" "#define STATIC_BUILD 1" >>confdefs.h + + if test "$stubs_ok" = "yes" ; then + STUBS_BUILD=1 + else + STUBS_BUILD=0 + fi + fi + if test "${STUBS_BUILD}" = "1" ; then + +printf "%s\n" "#define USE_TCL_STUBS 1" >>confdefs.h + + +printf "%s\n" "#define USE_TCLOO_STUBS 1" >>confdefs.h + + if test "${TEA_WINDOWINGSYSTEM}" != ""; then + +printf "%s\n" "#define USE_TK_STUBS 1" >>confdefs.h + + fi + fi + + + + + +#-------------------------------------------------------------------- +# This macro figures out what flags to use with the compiler/linker +# when building shared/static debug/optimized objects. This information +# can be taken from the tclConfig.sh file, but this figures it all out. +#-------------------------------------------------------------------- + +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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +printf "%s\n" "$RANLIB" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +printf "%s\n" "$ac_ct_RANLIB" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 + + + + + # Step 0.a: Enable 64 bit support? + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if 64bit support is requested" >&5 +printf %s "checking if 64bit support is requested... " >&6; } + # Check whether --enable-64bit was given. +if test ${enable_64bit+y} +then : + enableval=$enable_64bit; do64bit=$enableval +else $as_nop + do64bit=no +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $do64bit" >&5 +printf "%s\n" "$do64bit" >&6; } + + # Step 0.b: Enable Solaris 64 bit VIS support? + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if 64bit Sparc VIS support is requested" >&5 +printf %s "checking if 64bit Sparc VIS support is requested... " >&6; } + # Check whether --enable-64bit-vis was given. +if test ${enable_64bit_vis+y} +then : + enableval=$enable_64bit_vis; do64bitVIS=$enableval +else $as_nop + do64bitVIS=no +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $do64bitVIS" >&5 +printf "%s\n" "$do64bitVIS" >&6; } + # Force 64bit on with VIS + if test "$do64bitVIS" = "yes" +then : + do64bit=yes +fi + + # Step 0.c: Check if visibility support is available. Do this here so + # that platform specific alternatives can be used below if this fails. + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler supports visibility \"hidden\"" >&5 +printf %s "checking if compiler supports visibility \"hidden\"... " >&6; } +if test ${tcl_cv_cc_visibility_hidden+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + extern __attribute__((__visibility__("hidden"))) void f(void); + void f(void) {} +int +main (void) +{ +f(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + tcl_cv_cc_visibility_hidden=yes +else $as_nop + tcl_cv_cc_visibility_hidden=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS=$hold_cflags +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_visibility_hidden" >&5 +printf "%s\n" "$tcl_cv_cc_visibility_hidden" >&6; } + if test $tcl_cv_cc_visibility_hidden = yes +then : + + +printf "%s\n" "#define MODULE_SCOPE extern __attribute__((__visibility__(\"hidden\")))" >>confdefs.h + + +printf "%s\n" "#define HAVE_HIDDEN 1" >>confdefs.h + + +fi + + # Step 0.d: Disable -rpath support? + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if rpath support is requested" >&5 +printf %s "checking if rpath support is requested... " >&6; } + # Check whether --enable-rpath was given. +if test ${enable_rpath+y} +then : + enableval=$enable_rpath; doRpath=$enableval +else $as_nop + doRpath=yes +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $doRpath" >&5 +printf "%s\n" "$doRpath" >&6; } + + # TEA specific: Cross-compiling options for Windows/CE builds? + + if test "${TEA_PLATFORM}" = windows +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if Windows/CE build is requested" >&5 +printf %s "checking if Windows/CE build is requested... " >&6; } + # Check whether --enable-wince was given. +if test ${enable_wince+y} +then : + enableval=$enable_wince; doWince=$enableval +else $as_nop + doWince=no +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $doWince" >&5 +printf "%s\n" "$doWince" >&6; } + +fi + + # Set the variable "system" to hold the name and version number + # for the system. + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking system version" >&5 +printf %s "checking system version... " >&6; } +if test ${tcl_cv_sys_version+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + # TEA specific: + if test "${TEA_PLATFORM}" = "windows" ; then + tcl_cv_sys_version=windows + else + tcl_cv_sys_version=`uname -s`-`uname -r` + if test "$?" -ne 0 ; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: can't find uname command" >&5 +printf "%s\n" "$as_me: WARNING: can't find uname command" >&2;} + tcl_cv_sys_version=unknown + else + if test "`uname -s`" = "AIX" ; then + tcl_cv_sys_version=AIX-`uname -v`.`uname -r` + fi + fi + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_sys_version" >&5 +printf "%s\n" "$tcl_cv_sys_version" >&6; } + system=$tcl_cv_sys_version + + + # Require ranlib early so we can override it in special cases below. + + + + # Set configuration options based on system name and version. + # This is similar to Tcl's unix/tcl.m4 except that we've added a + # "windows" case and removed some core-only vars. + + do64bit_ok=no + # default to '{$LIBS}' and set to "" on per-platform necessary basis + SHLIB_LD_LIBS='${LIBS}' + # When ld needs options to work in 64-bit mode, put them in + # LDFLAGS_ARCH so they eventually end up in LDFLAGS even if [load] + # is disabled by the user. [Bug 1016796] + LDFLAGS_ARCH="" + UNSHARED_LIB_SUFFIX="" + # TEA specific: use PACKAGE_VERSION instead of VERSION + TCL_TRIM_DOTS='`echo ${PACKAGE_VERSION} | tr -d .`' + ECHO_VERSION='`echo ${PACKAGE_VERSION}`' + TCL_LIB_VERSIONS_OK=ok + CFLAGS_DEBUG=-g + if test "$GCC" = yes +then : + + CFLAGS_OPTIMIZE=-O2 + CFLAGS_WARNING="-Wall" + +else $as_nop + + CFLAGS_OPTIMIZE=-O + CFLAGS_WARNING="" + +fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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_AR="${ac_tool_prefix}ar" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf "%s\n" "$AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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_AR="ar" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +printf "%s\n" "$ac_ct_AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + STLIB_LD='${AR} cr' + LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH" + if test "x$SHLIB_VERSION" = x +then : + SHLIB_VERSION="" +else $as_nop + SHLIB_VERSION=".$SHLIB_VERSION" +fi + case $system in + # TEA specific: + windows) + # This is a 2-stage check to make sure we have the 64-bit SDK + # We have to know where the SDK is installed. + # This magic is based on MS Platform SDK for Win2003 SP1 - hobbs + # MACHINE is IX86 for LINK, but this is used by the manifest, + # which requires x86|amd64|ia64. + MACHINE="X86" + if test "$do64bit" != "no" ; then + if test "x${MSSDK}x" = "xx" ; then + MSSDK="C:/Progra~1/Microsoft Platform SDK" + fi + MSSDK=`echo "$MSSDK" | sed -e 's!\\\!/!g'` + PATH64="" + case "$do64bit" in + amd64|x64|yes) + MACHINE="AMD64" ; # default to AMD64 64-bit build + PATH64="${MSSDK}/Bin/Win64/x86/AMD64" + ;; + ia64) + MACHINE="IA64" + PATH64="${MSSDK}/Bin/Win64" + ;; + esac + if test "$GCC" != "yes" -a ! -d "${PATH64}" ; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&5 +printf "%s\n" "$as_me: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Ensure latest Platform SDK is installed" >&5 +printf "%s\n" "$as_me: WARNING: Ensure latest Platform SDK is installed" >&2;} + do64bit="no" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Using 64-bit $MACHINE mode" >&5 +printf "%s\n" " Using 64-bit $MACHINE mode" >&6; } + do64bit_ok="yes" + fi + fi + + if test "$doWince" != "no" ; then + if test "$do64bit" != "no" ; then + as_fn_error $? "Windows/CE and 64-bit builds incompatible" "$LINENO" 5 + fi + if test "$GCC" = "yes" ; then + as_fn_error $? "Windows/CE and GCC builds incompatible" "$LINENO" 5 + fi + + # First, look for one uninstalled. + # the alternative search directory is invoked by --with-celib + + if test x"${no_celib}" = x ; then + # we reset no_celib in case something fails here + no_celib=true + +# Check whether --with-celib was given. +if test ${with_celib+y} +then : + withval=$with_celib; with_celibconfig=${withval} +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Windows/CE celib directory" >&5 +printf %s "checking for Windows/CE celib directory... " >&6; } + if test ${ac_cv_c_celibconfig+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + # First check to see if --with-celibconfig was specified. + if test x"${with_celibconfig}" != x ; then + if test -d "${with_celibconfig}/inc" ; then + ac_cv_c_celibconfig=`(cd ${with_celibconfig}; pwd)` + else + as_fn_error $? "${with_celibconfig} directory doesn't contain inc directory" "$LINENO" 5 + fi + fi + + # then check for a celib library + if test x"${ac_cv_c_celibconfig}" = x ; then + for i in \ + ../celib-palm-3.0 \ + ../celib \ + ../../celib-palm-3.0 \ + ../../celib \ + `ls -dr ../celib-*3.[0-9]* 2>/dev/null` \ + ${srcdir}/../celib-palm-3.0 \ + ${srcdir}/../celib \ + `ls -dr ${srcdir}/../celib-*3.[0-9]* 2>/dev/null` \ + ; do + if test -d "$i/inc" ; then + ac_cv_c_celibconfig=`(cd $i; pwd)` + break + fi + done + fi + +fi + + if test x"${ac_cv_c_celibconfig}" = x ; then + as_fn_error $? "Cannot find celib support library directory" "$LINENO" 5 + else + no_celib= + CELIB_DIR=${ac_cv_c_celibconfig} + CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found $CELIB_DIR" >&5 +printf "%s\n" "found $CELIB_DIR" >&6; } + fi + fi + + # Set defaults for common evc4/PPC2003 setup + # Currently Tcl requires 300+, possibly 420+ for sockets + CEVERSION=420; # could be 211 300 301 400 420 ... + TARGETCPU=ARMV4; # could be ARMV4 ARM MIPS SH3 X86 ... + ARCH=ARM; # could be ARM MIPS X86EM ... + PLATFORM="Pocket PC 2003"; # or "Pocket PC 2002" + if test "$doWince" != "yes"; then + # If !yes then the user specified something + # Reset ARCH to allow user to skip specifying it + ARCH= + eval `echo $doWince | awk -F, '{ \ + if (length($1)) { printf "CEVERSION=\"%s\"\n", $1; \ + if ($1 < 400) { printf "PLATFORM=\"Pocket PC 2002\"\n" } }; \ + if (length($2)) { printf "TARGETCPU=\"%s\"\n", toupper($2) }; \ + if (length($3)) { printf "ARCH=\"%s\"\n", toupper($3) }; \ + if (length($4)) { printf "PLATFORM=\"%s\"\n", $4 }; \ + }'` + if test "x${ARCH}" = "x" ; then + ARCH=$TARGETCPU; + fi + fi + OSVERSION=WCE$CEVERSION; + if test "x${WCEROOT}" = "x" ; then + WCEROOT="C:/Program Files/Microsoft eMbedded C++ 4.0" + if test ! -d "${WCEROOT}" ; then + WCEROOT="C:/Program Files/Microsoft eMbedded Tools" + fi + fi + if test "x${SDKROOT}" = "x" ; then + SDKROOT="C:/Program Files/Windows CE Tools" + if test ! -d "${SDKROOT}" ; then + SDKROOT="C:/Windows CE Tools" + fi + fi + WCEROOT=`echo "$WCEROOT" | sed -e 's!\\\!/!g'` + SDKROOT=`echo "$SDKROOT" | sed -e 's!\\\!/!g'` + if test ! -d "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" \ + -o ! -d "${WCEROOT}/EVC/${OSVERSION}/bin"; then + as_fn_error $? "could not find PocketPC SDK or target compiler to enable WinCE mode $CEVERSION,$TARGETCPU,$ARCH,$PLATFORM" "$LINENO" 5 + doWince="no" + else + # We could PATH_NOSPACE these, but that's not important, + # as long as we quote them when used. + CEINCLUDE="${SDKROOT}/${OSVERSION}/${PLATFORM}/include" + if test -d "${CEINCLUDE}/${TARGETCPU}" ; then + CEINCLUDE="${CEINCLUDE}/${TARGETCPU}" + fi + CELIBPATH="${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" + fi + fi + + if test "$GCC" != "yes" ; then + if test "${SHARED_BUILD}" = "0" ; then + runtime=-MT + else + runtime=-MD + fi + case "x`echo \${VisualStudioVersion}`" in + x1[4-9]*) + lflags="${lflags} -nodefaultlib:libucrt.lib" + + vars="ucrt.lib" + for i in $vars; do + if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then + # Convert foo.lib to -lfoo for GCC. No-op if not *.lib + i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'` + fi + PKG_LIBS="$PKG_LIBS $i" + done + + + ;; + *) + ;; + esac + + if test "$do64bit" != "no" ; then + # All this magic is necessary for the Win64 SDK RC1 - hobbs + CC="\"${PATH64}/cl.exe\"" + CFLAGS="${CFLAGS} -I\"${MSSDK}/Include\" -I\"${MSSDK}/Include/crt\" -I\"${MSSDK}/Include/crt/sys\"" + RC="\"${MSSDK}/bin/rc.exe\"" + lflags="${lflags} -nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\"" + LINKBIN="\"${PATH64}/link.exe\"" + CFLAGS_DEBUG="-nologo -Zi -Od -W3 ${runtime}d" + CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}" + # Avoid 'unresolved external symbol __security_cookie' + # errors, c.f. http://support.microsoft.com/?id=894573 + + vars="bufferoverflowU.lib" + for i in $vars; do + if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then + # Convert foo.lib to -lfoo for GCC. No-op if not *.lib + i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'` + fi + PKG_LIBS="$PKG_LIBS $i" + done + + + elif test "$doWince" != "no" ; then + CEBINROOT="${WCEROOT}/EVC/${OSVERSION}/bin" + if test "${TARGETCPU}" = "X86"; then + CC="\"${CEBINROOT}/cl.exe\"" + else + CC="\"${CEBINROOT}/cl${ARCH}.exe\"" + fi + CFLAGS="$CFLAGS -I\"${CELIB_DIR}/inc\" -I\"${CEINCLUDE}\"" + RC="\"${WCEROOT}/Common/EVC/bin/rc.exe\"" + arch=`echo ${ARCH} | awk '{print tolower($0)}'` + defs="${ARCH} _${ARCH}_ ${arch} PALM_SIZE _MT _WINDOWS" + if test "${SHARED_BUILD}" = "1" ; then + # Static CE builds require static celib as well + defs="${defs} _DLL" + fi + for i in $defs ; do + +printf "%s\n" "#define $i 1" >>confdefs.h + + done + +printf "%s\n" "#define _WIN32_WCE $CEVERSION" >>confdefs.h + + +printf "%s\n" "#define UNDER_CE $CEVERSION" >>confdefs.h + + CFLAGS_DEBUG="-nologo -Zi -Od" + CFLAGS_OPTIMIZE="-nologo -Ox" + lversion=`echo ${CEVERSION} | sed -e 's/\(.\)\(..\)/\1\.\2/'` + lflags="${lflags} -MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo" + LINKBIN="\"${CEBINROOT}/link.exe\"" + + else + RC="rc" + lflags="${lflags} -nologo" + LINKBIN="link" + CFLAGS_DEBUG="-nologo -Z7 -Od -W3 -WX ${runtime}d" + CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}" + fi + fi + + if test "$GCC" = "yes"; then + # mingw gcc mode + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. +set dummy ${ac_tool_prefix}windres; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$RC"; then + ac_cv_prog_RC="$RC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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_RC="${ac_tool_prefix}windres" + printf "%s\n" "$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 +RC=$ac_cv_prog_RC +if test -n "$RC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RC" >&5 +printf "%s\n" "$RC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RC"; then + ac_ct_RC=$RC + # Extract the first word of "windres", so it can be a program name with args. +set dummy windres; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_RC"; then + ac_cv_prog_ac_ct_RC="$ac_ct_RC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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_RC="windres" + printf "%s\n" "$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_RC=$ac_cv_prog_ac_ct_RC +if test -n "$ac_ct_RC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RC" >&5 +printf "%s\n" "$ac_ct_RC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_RC" = x; then + RC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RC=$ac_ct_RC + fi +else + RC="$ac_cv_prog_RC" +fi + + CFLAGS_DEBUG="-g" + CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" + SHLIB_LD='${CC} -shared' + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' + LDFLAGS_CONSOLE="-wl,--subsystem,console ${lflags}" + LDFLAGS_WINDOW="-wl,--subsystem,windows ${lflags}" + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cross-compile version of gcc" >&5 +printf %s "checking for cross-compile version of gcc... " >&6; } +if test ${ac_cv_cross+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #ifdef _WIN32 + #error cross-compiler + #endif + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_cross=yes +else $as_nop + ac_cv_cross=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cross" >&5 +printf "%s\n" "$ac_cv_cross" >&6; } + if test "$ac_cv_cross" = "yes"; then + case "$do64bit" in + amd64|x64|yes) + CC="x86_64-w64-mingw32-gcc" + LD="x86_64-w64-mingw32-ld" + AR="x86_64-w64-mingw32-ar" + RANLIB="x86_64-w64-mingw32-ranlib" + RC="x86_64-w64-mingw32-windres" + ;; + *) + CC="i686-w64-mingw32-gcc" + LD="i686-w64-mingw32-ld" + AR="i686-w64-mingw32-ar" + RANLIB="i686-w64-mingw32-ranlib" + RC="i686-w64-mingw32-windres" + ;; + esac + fi + + else + SHLIB_LD="${LINKBIN} -dll ${lflags}" + # link -lib only works when -lib is the first arg + STLIB_LD="${LINKBIN} -lib ${lflags}" + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.lib' + PATHTYPE=-w + # For information on what debugtype is most useful, see: + # http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp + # and also + # http://msdn2.microsoft.com/en-us/library/y0zzbyt4%28VS.80%29.aspx + # This essentially turns it all on. + LDFLAGS_DEBUG="-debug -debugtype:cv" + LDFLAGS_OPTIMIZE="-release" + if test "$doWince" != "no" ; then + LDFLAGS_CONSOLE="-link ${lflags}" + LDFLAGS_WINDOW=${LDFLAGS_CONSOLE} + else + LDFLAGS_CONSOLE="-link -subsystem:console ${lflags}" + LDFLAGS_WINDOW="-link -subsystem:windows ${lflags}" + fi + fi + + SHLIB_SUFFIX=".dll" + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.dll' + + TCL_LIB_VERSIONS_OK=nodots + ;; + AIX-*) + if test "${TCL_THREADS}" = "1" -a "$GCC" != "yes" +then : + + # AIX requires the _r compiler when gcc isn't being used + case "${CC}" in + *_r|*_r\ *) + # ok ... + ;; + *) + # Make sure only first arg gets _r + CC=`echo "$CC" | sed -e 's/^\([^ ]*\)/\1_r/'` + ;; + esac + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Using $CC for compiling with threads" >&5 +printf "%s\n" "Using $CC for compiling with threads" >&6; } + +fi + LIBS="$LIBS -lc" + SHLIB_CFLAGS="" + SHLIB_SUFFIX=".so" + + LD_LIBRARY_PATH_VAR="LIBPATH" + + # Check to enable 64-bit flags for compiler/linker + if test "$do64bit" = yes +then : + + if test "$GCC" = yes +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;} + +else $as_nop + + do64bit_ok=yes + CFLAGS="$CFLAGS -q64" + LDFLAGS_ARCH="-q64" + RANLIB="${RANLIB} -X64" + AR="${AR} -X64" + SHLIB_LD_FLAGS="-b64" + +fi + +fi + + if test "`uname -m`" = ia64 +then : + + # AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC + SHLIB_LD="/usr/ccs/bin/ld -G -z text" + if test "$GCC" = yes +then : + + CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' + +else $as_nop + + CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}' + +fi + LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' + +else $as_nop + + if test "$GCC" = yes +then : + + SHLIB_LD='${CC} -shared -Wl,-bexpall' + +else $as_nop + + SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bexpall -H512 -T512 -bnoentry" + LDFLAGS="$LDFLAGS -brtl" + +fi + SHLIB_LD="${SHLIB_LD} ${SHLIB_LD_FLAGS}" + CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + +fi + ;; + BeOS*) + SHLIB_CFLAGS="-fPIC" + SHLIB_LD='${CC} -nostart' + SHLIB_SUFFIX=".so" + + #----------------------------------------------------------- + # Check for inet_ntoa in -lbind, for BeOS (which also needs + # -lsocket, even if the network functions are in -lnet which + # is always linked to, for compatibility. + #----------------------------------------------------------- + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inet_ntoa in -lbind" >&5 +printf %s "checking for inet_ntoa in -lbind... " >&6; } +if test ${ac_cv_lib_bind_inet_ntoa+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbind $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char inet_ntoa (); +int +main (void) +{ +return inet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_bind_inet_ntoa=yes +else $as_nop + ac_cv_lib_bind_inet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bind_inet_ntoa" >&5 +printf "%s\n" "$ac_cv_lib_bind_inet_ntoa" >&6; } +if test "x$ac_cv_lib_bind_inet_ntoa" = xyes +then : + LIBS="$LIBS -lbind -lsocket" +fi + + ;; + BSD/OS-4.*) + SHLIB_CFLAGS="-export-dynamic -fPIC" + SHLIB_LD='${CC} -shared' + SHLIB_SUFFIX=".so" + LDFLAGS="$LDFLAGS -export-dynamic" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + CYGWIN_*) + SHLIB_CFLAGS="" + SHLIB_LD='${CC} -shared' + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,--out-implib,\$@.a" + SHLIB_SUFFIX=".dll" + EXEEXT=".exe" + do64bit_ok=yes + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + Haiku*) + LDFLAGS="$LDFLAGS -Wl,--export-dynamic" + SHLIB_CFLAGS="-fPIC" + SHLIB_SUFFIX=".so" + SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS} -shared' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inet_ntoa in -lnetwork" >&5 +printf %s "checking for inet_ntoa in -lnetwork... " >&6; } +if test ${ac_cv_lib_network_inet_ntoa+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnetwork $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char inet_ntoa (); +int +main (void) +{ +return inet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_network_inet_ntoa=yes +else $as_nop + ac_cv_lib_network_inet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_network_inet_ntoa" >&5 +printf "%s\n" "$ac_cv_lib_network_inet_ntoa" >&6; } +if test "x$ac_cv_lib_network_inet_ntoa" = xyes +then : + LIBS="$LIBS -lnetwork" +fi + + ;; + HP-UX-*.11.*) + # Use updated header definitions where possible + +printf "%s\n" "#define _XOPEN_SOURCE_EXTENDED 1" >>confdefs.h + + # TEA specific: Needed by Tcl, but not most extensions + #AC_DEFINE(_XOPEN_SOURCE, 1, [Do we want to use the XOPEN network library?]) + #LIBS="$LIBS -lxnet" # Use the XOPEN network library + + if test "`uname -m`" = ia64 +then : + + SHLIB_SUFFIX=".so" + # Use newer C++ library for C++ extensions + #if test "$GCC" != "yes" ; then + # CPPFLAGS="-AA" + #fi + +else $as_nop + + SHLIB_SUFFIX=".sl" + +fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +printf %s "checking for shl_load in -ldld... " >&6; } +if test ${ac_cv_lib_dld_shl_load+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char shl_load (); +int +main (void) +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dld_shl_load=yes +else $as_nop + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes +then : + tcl_ok=yes +else $as_nop + tcl_ok=no +fi + + if test "$tcl_ok" = yes +then : + + LDFLAGS="$LDFLAGS -Wl,-E" + CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.' + LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.' + LD_LIBRARY_PATH_VAR="SHLIB_PATH" + +fi + if test "$GCC" = yes +then : + + SHLIB_LD='${CC} -shared' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + +else $as_nop + + CFLAGS="$CFLAGS -z" + # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc + #CFLAGS="$CFLAGS +DAportable" + SHLIB_CFLAGS="+z" + SHLIB_LD="ld -b" + +fi + + # Check to enable 64-bit flags for compiler/linker + if test "$do64bit" = "yes" +then : + + if test "$GCC" = yes +then : + + case `${CC} -dumpmachine` in + hppa64*) + # 64-bit gcc in use. Fix flags for GNU ld. + do64bit_ok=yes + SHLIB_LD='${CC} -shared' + if test $doRpath = yes +then : + + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' +fi + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;} + ;; + esac + +else $as_nop + + do64bit_ok=yes + CFLAGS="$CFLAGS +DD64" + LDFLAGS_ARCH="+DD64" + +fi + +fi ;; + IRIX-6.*) + SHLIB_CFLAGS="" + SHLIB_LD="ld -n32 -shared -rdata_shared" + SHLIB_SUFFIX=".so" + if test $doRpath = yes +then : + + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' +fi + if test "$GCC" = yes +then : + + CFLAGS="$CFLAGS -mabi=n32" + LDFLAGS="$LDFLAGS -mabi=n32" + +else $as_nop + + case $system in + IRIX-6.3) + # Use to build 6.2 compatible binaries on 6.3. + CFLAGS="$CFLAGS -n32 -D_OLD_TERMIOS" + ;; + *) + CFLAGS="$CFLAGS -n32" + ;; + esac + LDFLAGS="$LDFLAGS -n32" + +fi + ;; + IRIX64-6.*) + SHLIB_CFLAGS="" + SHLIB_LD="ld -n32 -shared -rdata_shared" + SHLIB_SUFFIX=".so" + if test $doRpath = yes +then : + + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' +fi + + # Check to enable 64-bit flags for compiler/linker + + if test "$do64bit" = yes +then : + + if test "$GCC" = yes +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported by gcc" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported by gcc" >&2;} + +else $as_nop + + do64bit_ok=yes + SHLIB_LD="ld -64 -shared -rdata_shared" + CFLAGS="$CFLAGS -64" + LDFLAGS_ARCH="-64" + +fi + +fi + ;; + Linux*|GNU*|NetBSD-Debian) + SHLIB_CFLAGS="-fPIC" + SHLIB_SUFFIX=".so" + + # TEA specific: + CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" + + # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS + SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS_DEFAULT} -shared' + LDFLAGS="$LDFLAGS -Wl,--export-dynamic" + if test $doRpath = yes +then : + + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' +fi + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + if test "`uname -m`" = "alpha" +then : + CFLAGS="$CFLAGS -mieee" +fi + if test $do64bit = yes +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -m64 flag" >&5 +printf %s "checking if compiler accepts -m64 flag... " >&6; } +if test ${tcl_cv_cc_m64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + hold_cflags=$CFLAGS + CFLAGS="$CFLAGS -m64" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + tcl_cv_cc_m64=yes +else $as_nop + tcl_cv_cc_m64=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS=$hold_cflags +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_m64" >&5 +printf "%s\n" "$tcl_cv_cc_m64" >&6; } + if test $tcl_cv_cc_m64 = yes +then : + + CFLAGS="$CFLAGS -m64" + do64bit_ok=yes + +fi + +fi + + # The combo of gcc + glibc has a bug related to inlining of + # functions like strtod(). The -fno-builtin flag should address + # this problem but it does not work. The -fno-inline flag is kind + # of overkill but it works. Disable inlining only when one of the + # files in compat/*.c is being linked in. + + if test x"${USE_COMPAT}" != x +then : + CFLAGS="$CFLAGS -fno-inline" +fi + ;; + Lynx*) + SHLIB_CFLAGS="-fPIC" + SHLIB_SUFFIX=".so" + CFLAGS_OPTIMIZE=-02 + SHLIB_LD='${CC} -shared' + LD_FLAGS="-Wl,--export-dynamic" + if test $doRpath = yes +then : + + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' +fi + ;; + OpenBSD-*) + arch=`arch -s` + case "$arch" in + alpha|sparc64) + SHLIB_CFLAGS="-fPIC" + ;; + *) + SHLIB_CFLAGS="-fpic" + ;; + esac + SHLIB_LD='${CC} ${SHLIB_CFLAGS} -shared' + SHLIB_SUFFIX=".so" + if test $doRpath = yes +then : + + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' +fi + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so${SHLIB_VERSION}' + LDFLAGS="-Wl,-export-dynamic" + CFLAGS_OPTIMIZE="-O2" + if test "${TCL_THREADS}" = "1" +then : + + # On OpenBSD: Compile with -pthread + # Don't link with -lpthread + LIBS=`echo $LIBS | sed s/-lpthread//` + CFLAGS="$CFLAGS -pthread" + +fi + # OpenBSD doesn't do version numbers with dots. + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' + TCL_LIB_VERSIONS_OK=nodots + ;; + NetBSD-*) + # NetBSD has ELF and can use 'cc -shared' to build shared libs + SHLIB_CFLAGS="-fPIC" + SHLIB_LD='${CC} ${SHLIB_CFLAGS} -shared' + SHLIB_SUFFIX=".so" + LDFLAGS="$LDFLAGS -export-dynamic" + if test $doRpath = yes +then : + + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' +fi + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + if test "${TCL_THREADS}" = "1" +then : + + # The -pthread needs to go in the CFLAGS, not LIBS + LIBS=`echo $LIBS | sed s/-pthread//` + CFLAGS="$CFLAGS -pthread" + LDFLAGS="$LDFLAGS -pthread" + +fi + ;; + DragonFly-*|FreeBSD-*) + # This configuration from FreeBSD Ports. + SHLIB_CFLAGS="-fPIC" + SHLIB_LD="${CC} -shared" + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,-soname,\$@" + SHLIB_SUFFIX=".so" + LDFLAGS="" + if test $doRpath = yes +then : + + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' +fi + if test "${TCL_THREADS}" = "1" +then : + + # The -pthread needs to go in the LDFLAGS, not LIBS + LIBS=`echo $LIBS | sed s/-pthread//` + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LDFLAGS="$LDFLAGS $PTHREAD_LIBS" +fi + case $system in + FreeBSD-3.*) + # Version numbers are dot-stripped by system policy. + TCL_TRIM_DOTS=`echo ${PACKAGE_VERSION} | tr -d .` + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1' + TCL_LIB_VERSIONS_OK=nodots + ;; + esac + ;; + Darwin-*) + CFLAGS_OPTIMIZE="-Os" + SHLIB_CFLAGS="-fno-common" + # To avoid discrepancies between what headers configure sees during + # preprocessing tests and compiling tests, move any -isysroot and + # -mmacosx-version-min flags from CFLAGS to CPPFLAGS: + CPPFLAGS="${CPPFLAGS} `echo " ${CFLAGS}" | \ + awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ + if ($i~/^(isysroot|mmacosx-version-min)/) print "-"$i}'`" + CFLAGS="`echo " ${CFLAGS}" | \ + awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ + if (!($i~/^(isysroot|mmacosx-version-min)/)) print "-"$i}'`" + if test $do64bit = yes +then : + + case `arch` in + ppc) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -arch ppc64 flag" >&5 +printf %s "checking if compiler accepts -arch ppc64 flag... " >&6; } +if test ${tcl_cv_cc_arch_ppc64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + hold_cflags=$CFLAGS + CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + tcl_cv_cc_arch_ppc64=yes +else $as_nop + tcl_cv_cc_arch_ppc64=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS=$hold_cflags +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_arch_ppc64" >&5 +printf "%s\n" "$tcl_cv_cc_arch_ppc64" >&6; } + if test $tcl_cv_cc_arch_ppc64 = yes +then : + + CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" + do64bit_ok=yes + +fi;; + i386) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -arch x86_64 flag" >&5 +printf %s "checking if compiler accepts -arch x86_64 flag... " >&6; } +if test ${tcl_cv_cc_arch_x86_64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + hold_cflags=$CFLAGS + CFLAGS="$CFLAGS -arch x86_64" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + tcl_cv_cc_arch_x86_64=yes +else $as_nop + tcl_cv_cc_arch_x86_64=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS=$hold_cflags +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_arch_x86_64" >&5 +printf "%s\n" "$tcl_cv_cc_arch_x86_64" >&6; } + if test $tcl_cv_cc_arch_x86_64 = yes +then : + + CFLAGS="$CFLAGS -arch x86_64" + do64bit_ok=yes + +fi;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&5 +printf "%s\n" "$as_me: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&2;};; + esac + +else $as_nop + + # Check for combined 32-bit and 64-bit fat build + if echo "$CFLAGS " |grep -E -q -- '-arch (ppc64|x86_64) ' \ + && echo "$CFLAGS " |grep -E -q -- '-arch (ppc|i386) ' +then : + + fat_32_64=yes +fi + +fi + # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS + SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS_DEFAULT}' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ld accepts -single_module flag" >&5 +printf %s "checking if ld accepts -single_module flag... " >&6; } +if test ${tcl_cv_ld_single_module+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + hold_ldflags=$LDFLAGS + LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +int i; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + tcl_cv_ld_single_module=yes +else $as_nop + tcl_cv_ld_single_module=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$hold_ldflags +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_single_module" >&5 +printf "%s\n" "$tcl_cv_ld_single_module" >&6; } + if test $tcl_cv_ld_single_module = yes +then : + + SHLIB_LD="${SHLIB_LD} -Wl,-single_module" + +fi + # TEA specific: link shlib with current and compatibility version flags + vers=`echo ${PACKAGE_VERSION} | sed -e 's/^\([0-9]\{1,5\}\)\(\(\.[0-9]\{1,3\}\)\{0,2\}\).*$/\1\2/p' -e d` + SHLIB_LD="${SHLIB_LD} -current_version ${vers:-0} -compatibility_version ${vers:-0}" + SHLIB_SUFFIX=".dylib" + # Don't use -prebind when building for Mac OS X 10.4 or later only: + if test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int($2)}'`" -lt 4 -a \ + "`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int($2)}'`" -lt 4 +then : + + LDFLAGS="$LDFLAGS -prebind" +fi + LDFLAGS="$LDFLAGS -headerpad_max_install_names" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ld accepts -search_paths_first flag" >&5 +printf %s "checking if ld accepts -search_paths_first flag... " >&6; } +if test ${tcl_cv_ld_search_paths_first+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + hold_ldflags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-search_paths_first" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +int i; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + tcl_cv_ld_search_paths_first=yes +else $as_nop + tcl_cv_ld_search_paths_first=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$hold_ldflags +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_search_paths_first" >&5 +printf "%s\n" "$tcl_cv_ld_search_paths_first" >&6; } + if test $tcl_cv_ld_search_paths_first = yes +then : + + LDFLAGS="$LDFLAGS -Wl,-search_paths_first" + +fi + if test "$tcl_cv_cc_visibility_hidden" != yes +then : + + +printf "%s\n" "#define MODULE_SCOPE __private_extern__" >>confdefs.h + + tcl_cv_cc_visibility_hidden=yes + +fi + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH" + # TEA specific: for combined 32 & 64 bit fat builds of Tk + # extensions, verify that 64-bit build is possible. + if test "$fat_32_64" = yes && test -n "${TK_BIN_DIR}" +then : + + if test "${TEA_WINDOWINGSYSTEM}" = x11 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit X11" >&5 +printf %s "checking for 64-bit X11... " >&6; } +if test ${tcl_cv_lib_x11_64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + for v in CFLAGS CPPFLAGS LDFLAGS; do + eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' + done + CPPFLAGS="$CPPFLAGS -I/usr/X11R6/include" + LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -lX11" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +XrmInitialize(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + tcl_cv_lib_x11_64=yes +else $as_nop + tcl_cv_lib_x11_64=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + for v in CFLAGS CPPFLAGS LDFLAGS; do + eval $v'="$hold_'$v'"' + done +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_lib_x11_64" >&5 +printf "%s\n" "$tcl_cv_lib_x11_64" >&6; } + +fi + if test "${TEA_WINDOWINGSYSTEM}" = aqua +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit Tk" >&5 +printf %s "checking for 64-bit Tk... " >&6; } +if test ${tcl_cv_lib_tk_64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + for v in CFLAGS CPPFLAGS LDFLAGS; do + eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' + done + CPPFLAGS="$CPPFLAGS -DUSE_TCL_STUBS=1 -DUSE_TK_STUBS=1 ${TCL_INCLUDES} ${TK_INCLUDES}" + LDFLAGS="$LDFLAGS ${TCL_STUB_LIB_SPEC} ${TK_STUB_LIB_SPEC}" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +Tk_InitStubs(NULL, "", 0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + tcl_cv_lib_tk_64=yes +else $as_nop + tcl_cv_lib_tk_64=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + for v in CFLAGS CPPFLAGS LDFLAGS; do + eval $v'="$hold_'$v'"' + done +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_lib_tk_64" >&5 +printf "%s\n" "$tcl_cv_lib_tk_64" >&6; } + +fi + # remove 64-bit arch flags from CFLAGS et al. if configuration + # does not support 64-bit. + if test "$tcl_cv_lib_tk_64" = no -o "$tcl_cv_lib_x11_64" = no +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Removing 64-bit architectures from compiler & linker flags" >&5 +printf "%s\n" "$as_me: Removing 64-bit architectures from compiler & linker flags" >&6;} + for v in CFLAGS CPPFLAGS LDFLAGS; do + eval $v'="`echo "$'$v' "|sed -e "s/-arch ppc64 / /g" -e "s/-arch x86_64 / /g"`"' + done +fi + +fi + ;; + OS/390-*) + CFLAGS_OPTIMIZE="" # Optimizer is buggy + +printf "%s\n" "#define _OE_SOCKETS 1" >>confdefs.h + + ;; + OSF1-V*) + # Digital OSF/1 + SHLIB_CFLAGS="" + if test "$SHARED_BUILD" = 1 +then : + + SHLIB_LD='ld -shared -expect_unresolved "*"' + +else $as_nop + + SHLIB_LD='ld -non_shared -expect_unresolved "*"' + +fi + SHLIB_SUFFIX=".so" + if test $doRpath = yes +then : + + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' +fi + if test "$GCC" = yes +then : + CFLAGS="$CFLAGS -mieee" +else $as_nop + + CFLAGS="$CFLAGS -DHAVE_TZSET -std1 -ieee" +fi + # see pthread_intro(3) for pthread support on osf1, k.furukawa + if test "${TCL_THREADS}" = 1 +then : + + CFLAGS="$CFLAGS -DHAVE_PTHREAD_ATTR_SETSTACKSIZE" + CFLAGS="$CFLAGS -DTCL_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64" + LIBS=`echo $LIBS | sed s/-lpthreads//` + if test "$GCC" = yes +then : + + LIBS="$LIBS -lpthread -lmach -lexc" + +else $as_nop + + CFLAGS="$CFLAGS -pthread" + LDFLAGS="$LDFLAGS -pthread" + +fi + +fi + ;; + QNX-6*) + # QNX RTP + # This may work for all QNX, but it was only reported for v6. + SHLIB_CFLAGS="-fPIC" + SHLIB_LD="ld -Bshareable -x" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + SCO_SV-3.2*) + if test "$GCC" = yes +then : + + SHLIB_CFLAGS="-fPIC -melf" + LDFLAGS="$LDFLAGS -melf -Wl,-Bexport" + +else $as_nop + + SHLIB_CFLAGS="-Kpic -belf" + LDFLAGS="$LDFLAGS -belf -Wl,-Bexport" + +fi + SHLIB_LD="ld -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + SunOS-5.[0-6]) + # Careful to not let 5.10+ fall into this case + + # Note: If _REENTRANT isn't defined, then Solaris + # won't define thread-safe library routines. + + +printf "%s\n" "#define _REENTRANT 1" >>confdefs.h + + +printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + + SHLIB_CFLAGS="-KPIC" + SHLIB_SUFFIX=".so" + if test "$GCC" = yes +then : + + SHLIB_LD='${CC} -shared' + CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + +else $as_nop + + SHLIB_LD="/usr/ccs/bin/ld -G -z text" + CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + +fi + ;; + SunOS-5*) + # Note: If _REENTRANT isn't defined, then Solaris + # won't define thread-safe library routines. + + +printf "%s\n" "#define _REENTRANT 1" >>confdefs.h + + +printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + + SHLIB_CFLAGS="-KPIC" + + # Check to enable 64-bit flags for compiler/linker + if test "$do64bit" = yes +then : + + arch=`isainfo` + if test "$arch" = "sparcv9 sparc" +then : + + if test "$GCC" = yes +then : + + if test "`${CC} -dumpversion | awk -F. '{print $1}'`" -lt 3 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&2;} + +else $as_nop + + do64bit_ok=yes + CFLAGS="$CFLAGS -m64 -mcpu=v9" + LDFLAGS="$LDFLAGS -m64 -mcpu=v9" + SHLIB_CFLAGS="-fPIC" + +fi + +else $as_nop + + do64bit_ok=yes + if test "$do64bitVIS" = yes +then : + + CFLAGS="$CFLAGS -xarch=v9a" + LDFLAGS_ARCH="-xarch=v9a" + +else $as_nop + + CFLAGS="$CFLAGS -xarch=v9" + LDFLAGS_ARCH="-xarch=v9" + +fi + # Solaris 64 uses this as well + #LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64" + +fi + +else $as_nop + if test "$arch" = "amd64 i386" +then : + + if test "$GCC" = yes +then : + + case $system in + SunOS-5.1[1-9]*|SunOS-5.[2-9][0-9]*) + do64bit_ok=yes + CFLAGS="$CFLAGS -m64" + LDFLAGS="$LDFLAGS -m64";; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;};; + esac + +else $as_nop + + do64bit_ok=yes + case $system in + SunOS-5.1[1-9]*|SunOS-5.[2-9][0-9]*) + CFLAGS="$CFLAGS -m64" + LDFLAGS="$LDFLAGS -m64";; + *) + CFLAGS="$CFLAGS -xarch=amd64" + LDFLAGS="$LDFLAGS -xarch=amd64";; + esac + +fi + +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported for $arch" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported for $arch" >&2;} +fi +fi + +fi + + SHLIB_SUFFIX=".so" + if test "$GCC" = yes +then : + + SHLIB_LD='${CC} -shared' + CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + if test "$do64bit_ok" = yes +then : + + if test "$arch" = "sparcv9 sparc" +then : + + # We need to specify -static-libgcc or we need to + # add the path to the sparv9 libgcc. + # JH: static-libgcc is necessary for core Tcl, but may + # not be necessary for extensions. + SHLIB_LD="$SHLIB_LD -m64 -mcpu=v9 -static-libgcc" + # for finding sparcv9 libgcc, get the regular libgcc + # path, remove so name and append 'sparcv9' + #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..." + #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir" + +else $as_nop + if test "$arch" = "amd64 i386" +then : + + # JH: static-libgcc is necessary for core Tcl, but may + # not be necessary for extensions. + SHLIB_LD="$SHLIB_LD -m64 -static-libgcc" + +fi +fi + +fi + +else $as_nop + + case $system in + SunOS-5.[1-9][0-9]*) + # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS + SHLIB_LD='${CC} -G -z text ${LDFLAGS_DEFAULT}';; + *) + SHLIB_LD='/usr/ccs/bin/ld -G -z text';; + esac + CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' + +fi + ;; + UNIX_SV* | UnixWare-5*) + SHLIB_CFLAGS="-KPIC" + SHLIB_LD='${CC} -G' + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers + # that don't grok the -Bexport option. Test that it does. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld accepts -Bexport flag" >&5 +printf %s "checking for ld accepts -Bexport flag... " >&6; } +if test ${tcl_cv_ld_Bexport+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + hold_ldflags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-Bexport" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +int i; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + tcl_cv_ld_Bexport=yes +else $as_nop + tcl_cv_ld_Bexport=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$hold_ldflags +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_Bexport" >&5 +printf "%s\n" "$tcl_cv_ld_Bexport" >&6; } + if test $tcl_cv_ld_Bexport = yes +then : + + LDFLAGS="$LDFLAGS -Wl,-Bexport" + +fi + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + esac + + if test "$do64bit" = yes -a "$do64bit_ok" = no +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit support being disabled -- don't know magic for this platform" >&5 +printf "%s\n" "$as_me: WARNING: 64bit support being disabled -- don't know magic for this platform" >&2;} + +fi + + + + # Add in the arch flags late to ensure it wasn't removed. + # Not necessary in TEA, but this is aligned with core + LDFLAGS="$LDFLAGS $LDFLAGS_ARCH" + + # If we're running gcc, then change the C flags for compiling shared + # libraries to the right flags for gcc, instead of those for the + # standard manufacturer compiler. + + if test "$GCC" = yes +then : + + case $system in + AIX-*) ;; + BSD/OS*) ;; + CYGWIN_*|MINGW32_*|MINGW64_*) ;; + IRIX*) ;; + NetBSD-*|DragonFly-*|FreeBSD-*|OpenBSD-*) ;; + Darwin-*) ;; + SCO_SV-3.2*) ;; + windows) ;; + *) SHLIB_CFLAGS="-fPIC" ;; + esac +fi + + if test "$tcl_cv_cc_visibility_hidden" != yes +then : + + +printf "%s\n" "#define MODULE_SCOPE extern" >>confdefs.h + + +fi + + if test "$SHARED_LIB_SUFFIX" = "" +then : + + # TEA specific: use PACKAGE_VERSION instead of VERSION + SHARED_LIB_SUFFIX='${PACKAGE_VERSION}${SHLIB_SUFFIX}' +fi + if test "$UNSHARED_LIB_SUFFIX" = "" +then : + + # TEA specific: use PACKAGE_VERSION instead of VERSION + UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a' +fi + + if test "${GCC}" = "yes" -a ${SHLIB_SUFFIX} = ".dll"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SEH support in compiler" >&5 +printf %s "checking for SEH support in compiler... " >&6; } +if test ${tcl_cv_seh+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + tcl_cv_seh=no +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define WIN32_LEAN_AND_MEAN +#include +#undef WIN32_LEAN_AND_MEAN + + int main(int argc, char** argv) { + int a, b = 0; + __try { + a = 666 / b; + } + __except (EXCEPTION_EXECUTE_HANDLER) { + return 0; + } + return 1; + } + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + tcl_cv_seh=yes +else $as_nop + tcl_cv_seh=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_seh" >&5 +printf "%s\n" "$tcl_cv_seh" >&6; } + if test "$tcl_cv_seh" = "no" ; then + +printf "%s\n" "#define HAVE_NO_SEH 1" >>confdefs.h + + fi + + # + # Check to see if the excpt.h include file provided contains the + # definition for EXCEPTION_DISPOSITION; if not, which is the case + # with Cygwin's version as of 2002-04-10, define it to be int, + # sufficient for getting the current code to work. + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EXCEPTION_DISPOSITION support in include files" >&5 +printf %s "checking for EXCEPTION_DISPOSITION support in include files... " >&6; } +if test ${tcl_cv_eh_disposition+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# define WIN32_LEAN_AND_MEAN +# include +# undef WIN32_LEAN_AND_MEAN + +int +main (void) +{ + + EXCEPTION_DISPOSITION x; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tcl_cv_eh_disposition=yes +else $as_nop + tcl_cv_eh_disposition=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_eh_disposition" >&5 +printf "%s\n" "$tcl_cv_eh_disposition" >&6; } + if test "$tcl_cv_eh_disposition" = "no" ; then + +printf "%s\n" "#define EXCEPTION_DISPOSITION int" >>confdefs.h + + fi + + # Check to see if winnt.h defines CHAR, SHORT, and LONG + # even if VOID has already been #defined. The win32api + # used by mingw and cygwin is known to do this. + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for winnt.h that ignores VOID define" >&5 +printf %s "checking for winnt.h that ignores VOID define... " >&6; } +if test ${tcl_cv_winnt_ignore_void+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define VOID void +#define WIN32_LEAN_AND_MEAN +#include +#undef WIN32_LEAN_AND_MEAN + +int +main (void) +{ + + CHAR c; + SHORT s; + LONG l; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tcl_cv_winnt_ignore_void=yes +else $as_nop + tcl_cv_winnt_ignore_void=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_winnt_ignore_void" >&5 +printf "%s\n" "$tcl_cv_winnt_ignore_void" >&6; } + if test "$tcl_cv_winnt_ignore_void" = "yes" ; then + +printf "%s\n" "#define HAVE_WINNT_IGNORE_VOID 1" >>confdefs.h + + fi + fi + + # See if the compiler supports casting to a union type. + # This is used to stop gcc from printing a compiler + # warning when initializing a union member. + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cast to union support" >&5 +printf %s "checking for cast to union support... " >&6; } +if test ${tcl_cv_cast_to_union+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + union foo { int i; double d; }; + union foo f = (union foo) (int) 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tcl_cv_cast_to_union=yes +else $as_nop + tcl_cv_cast_to_union=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cast_to_union" >&5 +printf "%s\n" "$tcl_cv_cast_to_union" >&6; } + if test "$tcl_cv_cast_to_union" = "yes"; then + +printf "%s\n" "#define HAVE_CAST_TO_UNION 1" >>confdefs.h + + fi + + + + + + + + + + + + + + # These must be called after we do the basic CFLAGS checks and + # verify any possible 64-bit or similar switches are necessary + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for required early compiler flags" >&5 +printf %s "checking for required early compiler flags... " >&6; } + tcl_flags="" + + if test ${tcl_cv_flag__isoc99_source+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +char *p = (char *)strtoll; char *q = (char *)strtoull; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tcl_cv_flag__isoc99_source=no +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _ISOC99_SOURCE 1 +#include +int +main (void) +{ +char *p = (char *)strtoll; char *q = (char *)strtoull; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tcl_cv_flag__isoc99_source=yes +else $as_nop + tcl_cv_flag__isoc99_source=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + if test "x${tcl_cv_flag__isoc99_source}" = "xyes" ; then + +printf "%s\n" "#define _ISOC99_SOURCE 1" >>confdefs.h + + tcl_flags="$tcl_flags _ISOC99_SOURCE" + fi + + + if test ${tcl_cv_flag__largefile64_source+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +struct stat64 buf; int i = stat64("/", &buf); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tcl_cv_flag__largefile64_source=no +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _LARGEFILE64_SOURCE 1 +#include +int +main (void) +{ +struct stat64 buf; int i = stat64("/", &buf); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tcl_cv_flag__largefile64_source=yes +else $as_nop + tcl_cv_flag__largefile64_source=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + if test "x${tcl_cv_flag__largefile64_source}" = "xyes" ; then + +printf "%s\n" "#define _LARGEFILE64_SOURCE 1" >>confdefs.h + + tcl_flags="$tcl_flags _LARGEFILE64_SOURCE" + fi + + + if test ${tcl_cv_flag__largefile_source64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +char *p = (char *)open64; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tcl_cv_flag__largefile_source64=no +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _LARGEFILE_SOURCE64 1 +#include +int +main (void) +{ +char *p = (char *)open64; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tcl_cv_flag__largefile_source64=yes +else $as_nop + tcl_cv_flag__largefile_source64=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + if test "x${tcl_cv_flag__largefile_source64}" = "xyes" ; then + +printf "%s\n" "#define _LARGEFILE_SOURCE64 1" >>confdefs.h + + tcl_flags="$tcl_flags _LARGEFILE_SOURCE64" + fi + + if test "x${tcl_flags}" = "x" ; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf "%s\n" "none" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${tcl_flags}" >&5 +printf "%s\n" "${tcl_flags}" >&6; } + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit integer type" >&5 +printf %s "checking for 64-bit integer type... " >&6; } + if test ${tcl_cv_type_64bit+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + tcl_cv_type_64bit=none + # See if the compiler knows natively about __int64 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +__int64 value = (__int64) 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tcl_type_64bit=__int64 +else $as_nop + tcl_type_64bit="long long" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + # See if we should use long anyway Note that we substitute in the + # type that is our current guess for a 64-bit type inside this check + # program, so it should be modified only carefully... + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +switch (0) { + case 1: case (sizeof(${tcl_type_64bit})==sizeof(long)): ; + } + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tcl_cv_type_64bit=${tcl_type_64bit} +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + if test "${tcl_cv_type_64bit}" = none ; then + +printf "%s\n" "#define TCL_WIDE_INT_IS_LONG 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using long" >&5 +printf "%s\n" "using long" >&6; } + elif test "${tcl_cv_type_64bit}" = "__int64" \ + -a "${TEA_PLATFORM}" = "windows" ; then + # TEA specific: We actually want to use the default tcl.h checks in + # this case to handle both TCL_WIDE_INT_TYPE and TCL_LL_MODIFIER* + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using Tcl header defaults" >&5 +printf "%s\n" "using Tcl header defaults" >&6; } + else + +printf "%s\n" "#define TCL_WIDE_INT_TYPE ${tcl_cv_type_64bit}" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${tcl_cv_type_64bit}" >&5 +printf "%s\n" "${tcl_cv_type_64bit}" >&6; } + + # Now check for auxiliary declarations + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct dirent64" >&5 +printf %s "checking for struct dirent64... " >&6; } +if test ${tcl_cv_struct_dirent64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +int +main (void) +{ +struct dirent64 p; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tcl_cv_struct_dirent64=yes +else $as_nop + tcl_cv_struct_dirent64=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_struct_dirent64" >&5 +printf "%s\n" "$tcl_cv_struct_dirent64" >&6; } + if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then + +printf "%s\n" "#define HAVE_STRUCT_DIRENT64 1" >>confdefs.h + + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct stat64" >&5 +printf %s "checking for struct stat64... " >&6; } +if test ${tcl_cv_struct_stat64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +struct stat64 p; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tcl_cv_struct_stat64=yes +else $as_nop + tcl_cv_struct_stat64=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_struct_stat64" >&5 +printf "%s\n" "$tcl_cv_struct_stat64" >&6; } + if test "x${tcl_cv_struct_stat64}" = "xyes" ; then + +printf "%s\n" "#define HAVE_STRUCT_STAT64 1" >>confdefs.h + + fi + + ac_fn_c_check_func "$LINENO" "open64" "ac_cv_func_open64" +if test "x$ac_cv_func_open64" = xyes +then : + printf "%s\n" "#define HAVE_OPEN64 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "lseek64" "ac_cv_func_lseek64" +if test "x$ac_cv_func_lseek64" = xyes +then : + printf "%s\n" "#define HAVE_LSEEK64 1" >>confdefs.h + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for off64_t" >&5 +printf %s "checking for off64_t... " >&6; } + if test ${tcl_cv_type_off64_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +off64_t offset; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tcl_cv_type_off64_t=yes +else $as_nop + tcl_cv_type_off64_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + if test "x${tcl_cv_type_off64_t}" = "xyes" && \ + test "x${ac_cv_func_lseek64}" = "xyes" && \ + test "x${ac_cv_func_open64}" = "xyes" ; then + +printf "%s\n" "#define HAVE_TYPE_OFF64_T 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + fi + + + +#-------------------------------------------------------------------- +# Set the default compiler switches based on the --enable-symbols option. +#-------------------------------------------------------------------- + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for build with symbols" >&5 +printf %s "checking for build with symbols... " >&6; } + # Check whether --enable-symbols was given. +if test ${enable_symbols+y} +then : + enableval=$enable_symbols; tcl_ok=$enableval +else $as_nop + tcl_ok=no +fi + + DBGX="" + if test "$tcl_ok" = "no"; then + CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE} -DNDEBUG" + LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + else + CFLAGS_DEFAULT="${CFLAGS_DEBUG}" + LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}" + if test "$tcl_ok" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes (standard debugging)" >&5 +printf "%s\n" "yes (standard debugging)" >&6; } + fi + fi + # TEA specific: + if test "${TEA_PLATFORM}" != "windows" ; then + LDFLAGS_DEFAULT="${LDFLAGS}" + fi + + + + + if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then + +printf "%s\n" "#define TCL_MEM_DEBUG 1" >>confdefs.h + + fi + + if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then + if test "$tcl_ok" = "all"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: enabled symbols mem debugging" >&5 +printf "%s\n" "enabled symbols mem debugging" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: enabled $tcl_ok debugging" >&5 +printf "%s\n" "enabled $tcl_ok debugging" >&6; } + fi + fi + + +#-------------------------------------------------------------------- +# This macro generates a line to use when building a library. It +# depends on values set by the TEA_ENABLE_SHARED, TEA_ENABLE_SYMBOLS, +# and TEA_LOAD_TCLCONFIG macros above. +#-------------------------------------------------------------------- + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +printf %s "checking for grep that handles long lines and -e... " >&6; } +if test ${ac_cv_path_GREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" '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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +printf "%s\n" "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +printf %s "checking for egrep... " >&6; } +if test ${ac_cv_path_EGREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" '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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +printf "%s\n" "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + + + if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then + MAKE_STATIC_LIB="\${STLIB_LD} -out:\$@ \$(PKG_OBJECTS)" + MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LD_LIBS} \${LDFLAGS_DEFAULT} -out:\$@ \$(PKG_OBJECTS)" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#if defined(_MSC_VER) && _MSC_VER >= 1400 +print("manifest needed") +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "manifest needed" >/dev/null 2>&1 +then : + + # Could do a CHECK_PROG for mt, but should always be with MSVC8+ + VC_MANIFEST_EMBED_DLL="if test -f \$@.manifest ; then mt.exe -nologo -manifest \$@.manifest -outputresource:\$@\;2 ; fi" + VC_MANIFEST_EMBED_EXE="if test -f \$@.manifest ; then mt.exe -nologo -manifest \$@.manifest -outputresource:\$@\;1 ; fi" + MAKE_SHARED_LIB="${MAKE_SHARED_LIB} ; ${VC_MANIFEST_EMBED_DLL}" + + CLEANFILES="$CLEANFILES *.manifest" + + +fi +rm -rf conftest* + + MAKE_STUB_LIB="\${STLIB_LD} -nodefaultlib -out:\$@ \$(PKG_STUB_OBJECTS)" + else + MAKE_STATIC_LIB="\${STLIB_LD} \$@ \$(PKG_OBJECTS)" + MAKE_SHARED_LIB="\${SHLIB_LD} -o \$@ \$(PKG_OBJECTS) \${SHLIB_LD_LIBS}" + MAKE_STUB_LIB="\${STLIB_LD} \$@ \$(PKG_STUB_OBJECTS)" + fi + + if test "${SHARED_BUILD}" = "1" ; then + MAKE_LIB="${MAKE_SHARED_LIB} " + else + MAKE_LIB="${MAKE_STATIC_LIB} " + fi + + #-------------------------------------------------------------------- + # Shared libraries and static libraries have different names. + # Use the double eval to make sure any variables in the suffix is + # substituted. (@@@ Might not be necessary anymore) + #-------------------------------------------------------------------- + + if test "${TEA_PLATFORM}" = "windows" ; then + if test "${SHARED_BUILD}" = "1" ; then + # We force the unresolved linking of symbols that are really in + # the private libraries of Tcl and Tk. + if test x"${TK_BIN_DIR}" != x ; then + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" + fi + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}`\"" + if test "$GCC" = "yes"; then + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc" + fi + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" + else + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" + if test "$GCC" = "yes"; then + PKG_LIB_FILE=lib${PKG_LIB_FILE} + fi + fi + # Some packages build their own stubs libraries + eval eval "PKG_STUB_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}" + if test "$GCC" = "yes"; then + PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE} + fi + # These aren't needed on Windows (either MSVC or gcc) + RANLIB=: + RANLIB_STUB=: + else + RANLIB_STUB="${RANLIB}" + if test "${SHARED_BUILD}" = "1" ; then + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TCL_STUB_LIB_SPEC}" + if test x"${TK_BIN_DIR}" != x ; then + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}" + fi + eval eval "PKG_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" + RANLIB=: + else + eval eval "PKG_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" + fi + # Some packages build their own stubs libraries + eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}" + fi + + # These are escaped so that only CFLAGS is picked up at configure time. + # The other values will be substituted at make time. + CFLAGS="${CFLAGS} \${CFLAGS_DEFAULT} \${CFLAGS_WARNING}" + if test "${SHARED_BUILD}" = "1" ; then + CFLAGS="${CFLAGS} \${SHLIB_CFLAGS}" + fi + + + + + + + + + + +#-------------------------------------------------------------------- +# Determine the name of the tclsh and/or wish executables in the +# Tcl and Tk build directories or the location they were installed +# into. These paths are used to support running test cases only, +# the Makefile should not be making use of these paths to generate +# a pkgIndex.tcl file or anything else at extension build time. +#-------------------------------------------------------------------- + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tclsh" >&5 +printf %s "checking for tclsh... " >&6; } + if test -f "${TCL_BIN_DIR}/Makefile" ; then + # tclConfig.sh is in Tcl build directory + if test "${TEA_PLATFORM}" = "windows"; then + if test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" ; then + TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" + elif test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}s${EXEEXT}" ; then + TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}s${EXEEXT}" + elif test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}t${EXEEXT}" ; then + TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}t${EXEEXT}" + elif test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}st${EXEEXT}" ; then + TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}st${EXEEXT}" + fi + else + TCLSH_PROG="${TCL_BIN_DIR}/tclsh" + fi + else + # tclConfig.sh is in install location + if test "${TEA_PLATFORM}" = "windows"; then + TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" + else + TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${TCL_DBGX}" + fi + list="`ls -d ${TCL_BIN_DIR}/../bin 2>/dev/null` \ + `ls -d ${TCL_BIN_DIR}/.. 2>/dev/null` \ + `ls -d ${TCL_PREFIX}/bin 2>/dev/null`" + for i in $list ; do + if test -f "$i/${TCLSH_PROG}" ; then + REAL_TCL_BIN_DIR="`cd "$i"; pwd`/" + break + fi + done + TCLSH_PROG="${REAL_TCL_BIN_DIR}${TCLSH_PROG}" + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${TCLSH_PROG}" >&5 +printf "%s\n" "${TCLSH_PROG}" >&6; } + + +#TEA_PROG_WISH + +#-------------------------------------------------------------------- +# Setup a *Config.sh.in configuration file. +#-------------------------------------------------------------------- + + + #-------------------------------------------------------------------- + # These are for tksvgConfig.sh + #-------------------------------------------------------------------- + + # pkglibdir must be a fully qualified path and (not ${exec_prefix}/lib) + eval pkglibdir="${libdir}/tksvg${PACKAGE_VERSION}" + if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then + eval tksvg_LIB_FLAG="-ltksvg${PACKAGE_VERSION}${DBGX}" + eval tksvg_STUB_LIB_FLAG="-ltksvgstub${PACKAGE_VERSION}${DBGX}" + else + eval tksvg_LIB_FLAG="-ltksvg`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}" + eval tksvg_STUB_LIB_FLAG="-ltksvgstub`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}" + fi + tksvg_BUILD_LIB_SPEC="-L`$CYGPATH $(pwd)` ${tksvg_LIB_FLAG}" + tksvg_LIB_SPEC="-L`$CYGPATH ${pkglibdir}` ${tksvg_LIB_FLAG}" + tksvg_BUILD_STUB_LIB_SPEC="-L`$CYGPATH $(pwd)` ${tksvg_STUB_LIB_FLAG}" + tksvg_STUB_LIB_SPEC="-L`$CYGPATH ${pkglibdir}` ${tksvg_STUB_LIB_FLAG}" + tksvg_BUILD_STUB_LIB_PATH="`$CYGPATH $(pwd)`/${PKG_STUB_LIB_FILE}" + tksvg_STUB_LIB_PATH="`$CYGPATH ${pkglibdir}`/${PKG_STUB_LIB_FILE}" + + + + + + + + + + + + +#AC_SUBST(SAMPLE_VAR) + +#-------------------------------------------------------------------- +# Specify files to substitute AC variables in. You may alternatively +# have a special pkgIndex.tcl.in or other files which require +# substituting the AC variables in. Include these here. +#-------------------------------------------------------------------- + +ac_config_files="$ac_config_files Makefile pkgIndex.tcl" + +ac_config_files="$ac_config_files tksvgConfig.sh" + + +#-------------------------------------------------------------------- +# Finally, substitute all of the various values into the files +# specified with AC_CONFIG_FILES. +#-------------------------------------------------------------------- + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf "%s\n" "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +ac_script=' +:mline +/\\$/{ + N + s,\\\n,, + b mline +} +t clear +:clear +s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g +t quote +s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g +t quote +b any +:quote +s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g +s/\[/\\&/g +s/\]/\\&/g +s/\$/$$/g +H +:any +${ + g + s/^\n// + s/\n/ /g + p +} +' +DEFS=`sed -n "$ac_script" confdefs.h` + + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + +CFLAGS="${CFLAGS} ${CPPFLAGS}"; CPPFLAGS="" + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else $as_nop + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. +as_nl=' +' +export as_nl +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi + +# The user is always right. +if ${PATH_SEPARATOR+false} :; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + printf "%s\n" "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else $as_nop + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else $as_nop + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by tksvg $as_me 0.7, which was +generated by GNU Autoconf 2.71. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + +Configuration files: +$config_files + +Report bugs to the package provider." + +_ACEOF +ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config='$ac_cs_config_escaped' +ac_cs_version="\\ +tksvg config.status 0.7 +configured by $0, generated by GNU Autoconf 2.71, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2021 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + printf "%s\n" "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + printf "%s\n" "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h | --help | --hel | -h ) + printf "%s\n" "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + printf "%s\n" "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "pkgIndex.tcl") CONFIG_FILES="$CONFIG_FILES pkgIndex.tcl" ;; + "tksvgConfig.sh") CONFIG_FILES="$CONFIG_FILES tksvgConfig.sh" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + + +eval set X " :F $CONFIG_FILES " +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`printf "%s\n" "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + + + + esac + +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + diff -Nru saods9-8.2+repack/tksvg/configure.ac saods9-8.3+repack/tksvg/configure.ac --- saods9-8.2+repack/tksvg/configure.ac 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/configure.ac 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,191 @@ +#!/bin/bash -norc +dnl This file is an input file used by the GNU "autoconf" program to +dnl generate the file "configure", which is run during Tcl installation +dnl to configure the system for the local environment. + +#----------------------------------------------------------------------- +# Sample configure.ac for Tcl Extensions. The only places you should +# need to modify this file are marked by the string __CHANGE__ +#----------------------------------------------------------------------- + +#----------------------------------------------------------------------- +# __CHANGE__ +# Set your package name and version numbers here. +# +# This initializes the environment with PACKAGE_NAME and PACKAGE_VERSION +# set as provided. These will also be added as -D defs in your Makefile +# so you can encode the package version directly into the source files. +# This will also define a special symbol for Windows (BUILD_ +# so that we create the export library with the dll. +#----------------------------------------------------------------------- + +AC_INIT([tksvg], [0.7]) + +#-------------------------------------------------------------------- +# Call TEA_INIT as the first TEA_ macro to set up initial vars. +# This will define a ${TEA_PLATFORM} variable == "unix" or "windows" +# as well as PKG_LIB_FILE and PKG_STUB_LIB_FILE. +#-------------------------------------------------------------------- + +TEA_INIT() + +AC_CONFIG_AUX_DIR(tclconfig) + +#-------------------------------------------------------------------- +# Load the tclConfig.sh file +#-------------------------------------------------------------------- + +TEA_PATH_TCLCONFIG +TEA_LOAD_TCLCONFIG + +#-------------------------------------------------------------------- +# Load the tkConfig.sh file if necessary (Tk extension) +#-------------------------------------------------------------------- + +TEA_PATH_TKCONFIG +TEA_LOAD_TKCONFIG + +#----------------------------------------------------------------------- +# Handle the --prefix=... option by defaulting to what Tcl gave. +# Must be called after TEA_LOAD_TCLCONFIG and before TEA_SETUP_COMPILER. +#----------------------------------------------------------------------- + +TEA_PREFIX + +#----------------------------------------------------------------------- +# Standard compiler checks. +# This sets up CC by using the CC env var, or looks for gcc otherwise. +# This also calls AC_PROG_CC and a few others to create the basic setup +# necessary to compile executables. +#----------------------------------------------------------------------- + +TEA_SETUP_COMPILER + +#----------------------------------------------------------------------- +# __CHANGE__ +# Specify the C source files to compile in TEA_ADD_SOURCES, +# public headers that need to be installed in TEA_ADD_HEADERS, +# stub library C source files to compile in TEA_ADD_STUB_SOURCES, +# and runtime Tcl library files in TEA_ADD_TCL_SOURCES. +# This defines PKG(_STUB)_SOURCES, PKG(_STUB)_OBJECTS, PKG_HEADERS +# and PKG_TCL_SOURCES. +#----------------------------------------------------------------------- + +TEA_ADD_SOURCES([tkImgSVG.c]) +TEA_ADD_HEADERS([]) +TEA_ADD_INCLUDES([]) +TEA_ADD_LIBS([]) +TEA_ADD_CFLAGS([]) +TEA_ADD_STUB_SOURCES([]) +TEA_ADD_TCL_SOURCES([]) + +#-------------------------------------------------------------------- +# __CHANGE__ +# +# You can add more files to clean if your extension creates any extra +# files by extending CLEANFILES. +# Add pkgIndex.tcl if it is generated in the Makefile instead of ./configure +# and change Makefile.in to move it from CONFIG_CLEAN_FILES to BINARIES var. +# +# A few miscellaneous platform-specific items: +# TEA_ADD_* any platform specific compiler/build info here. +#-------------------------------------------------------------------- + +#CLEANFILES="$CLEANFILES pkgIndex.tcl" +if test "${TEA_PLATFORM}" = "windows" ; then + # Ensure no empty if clauses + : + #TEA_ADD_SOURCES([win/winFile.c]) + #TEA_ADD_INCLUDES([-I\"$(${CYGPATH} ${srcdir}/win)\"]) +else + # Ensure no empty else clauses + : + #TEA_ADD_SOURCES([unix/unixFile.c]) + #TEA_ADD_LIBS([-lsuperfly]) +fi + +#-------------------------------------------------------------------- +# __CHANGE__ +# Choose which headers you need. Extension authors should try very +# hard to only rely on the Tcl public header files. Internal headers +# contain private data structures and are subject to change without +# notice. +# This MUST be called after TEA_LOAD_TCLCONFIG / TEA_LOAD_TKCONFIG +#-------------------------------------------------------------------- + +TEA_PUBLIC_TCL_HEADERS +#TEA_PRIVATE_TCL_HEADERS + +TEA_PUBLIC_TK_HEADERS +#TEA_PRIVATE_TK_HEADERS +#TEA_PATH_X + +#-------------------------------------------------------------------- +# Check whether --enable-threads or --disable-threads was given. +# This auto-enables if Tcl was compiled threaded. +#-------------------------------------------------------------------- + +TEA_ENABLE_THREADS + +#-------------------------------------------------------------------- +# The statement below defines a collection of symbols related to +# building as a shared library instead of a static library. +#-------------------------------------------------------------------- + +TEA_ENABLE_SHARED + +#-------------------------------------------------------------------- +# This macro figures out what flags to use with the compiler/linker +# when building shared/static debug/optimized objects. This information +# can be taken from the tclConfig.sh file, but this figures it all out. +#-------------------------------------------------------------------- + +TEA_CONFIG_CFLAGS + +#-------------------------------------------------------------------- +# Set the default compiler switches based on the --enable-symbols option. +#-------------------------------------------------------------------- + +TEA_ENABLE_SYMBOLS + +#-------------------------------------------------------------------- +# This macro generates a line to use when building a library. It +# depends on values set by the TEA_ENABLE_SHARED, TEA_ENABLE_SYMBOLS, +# and TEA_LOAD_TCLCONFIG macros above. +#-------------------------------------------------------------------- + +TEA_MAKE_LIB + +#-------------------------------------------------------------------- +# Determine the name of the tclsh and/or wish executables in the +# Tcl and Tk build directories or the location they were installed +# into. These paths are used to support running test cases only, +# the Makefile should not be making use of these paths to generate +# a pkgIndex.tcl file or anything else at extension build time. +#-------------------------------------------------------------------- + +TEA_PROG_TCLSH +#TEA_PROG_WISH + +#-------------------------------------------------------------------- +# Setup a *Config.sh.in configuration file. +#-------------------------------------------------------------------- + +TEA_EXPORT_CONFIG([tksvg]) +#AC_SUBST(SAMPLE_VAR) + +#-------------------------------------------------------------------- +# Specify files to substitute AC variables in. You may alternatively +# have a special pkgIndex.tcl.in or other files which require +# substituting the AC variables in. Include these here. +#-------------------------------------------------------------------- + +AC_CONFIG_FILES([Makefile pkgIndex.tcl]) +AC_CONFIG_FILES([tksvgConfig.sh]) + +#-------------------------------------------------------------------- +# Finally, substitute all of the various values into the files +# specified with AC_CONFIG_FILES. +#-------------------------------------------------------------------- + +AC_OUTPUT() diff -Nru saods9-8.2+repack/tksvg/generic/nanosvg.h saods9-8.3+repack/tksvg/generic/nanosvg.h --- saods9-8.2+repack/tksvg/generic/nanosvg.h 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/generic/nanosvg.h 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,3135 @@ +/* + * Copyright (c) 2013-14 Mikko Mononen memon@inside.org + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + * The SVG parser is based on Anti-Grain Geometry 2.4 SVG example + * Copyright (C) 2002-2004 Maxim Shemanarev (McSeem) (http://www.antigrain.com/) + * + * Arc calculation code based on canvg (https://code.google.com/p/canvg/) + * + * Bounding box calculation based on http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html + * + */ + +#ifndef NANOSVG_H +#define NANOSVG_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* NanoSVG is a simple stupid single-header-file SVG parse. The output of the parser is a list of cubic bezier shapes. + * + * The library suits well for anything from rendering scalable icons in your editor application to prototyping a game. + * + * NanoSVG supports a wide range of SVG features, but something may be missing, feel free to create a pull request! + * + * The shapes in the SVG images are transformed by the viewBox and converted to specified units. + * That is, you should get the same looking data as your designed in your favorite app. + * + * NanoSVG can return the paths in few different units. For example if you want to render an image, you may choose + * to get the paths in pixels, or if you are feeding the data into a CNC-cutter, you may want to use millimeters. + * + * The units passed to NanoSVG should be one of: 'px', 'pt', 'pc' 'mm', 'cm', or 'in'. + * DPI (dots-per-inch) controls how the unit conversion is done. + * + * If you don't know or care about the units stuff, "px" and 96 should get you going. + */ + + +/* Example Usage: + // Load SVG + NSVGimage* image; + image = nsvgParseFromFile("test.svg", "px", 96); + printf("size: %f x %f\n", image->width, image->height); + // Use... + for (NSVGshape *shape = image->shapes; shape != NULL; shape = shape->next) { + for (NSVGpath *path = shape->paths; path != NULL; path = path->next) { + for (int i = 0; i < path->npts-1; i += 3) { + float* p = &path->pts[i*2]; + drawCubicBez(p[0],p[1], p[2],p[3], p[4],p[5], p[6],p[7]); + } + } + } + // Delete + nsvgDelete(image); +*/ + +#ifndef NANOSVG_SCOPE +#define NANOSVG_SCOPE +#endif + +#ifndef NANOSVG_malloc +#define NANOSVG_malloc malloc +#endif + +#ifndef NANOSVG_realloc +#define NANOSVG_realloc realloc +#endif + +#ifndef NANOSVG_free +#define NANOSVG_free free +#endif + +/* float emulation for MS VC6++ compiler */ +#if defined(_MSC_VER) && (_MSC_VER == 1200) +#define tanf(a) (float)tan(a) +#define cosf(a) (float)cos(a) +#define sinf(a) (float)sin(a) +#define sqrtf(a) (float)sqrt(a) +#define fabsf(a) (float)fabs(a) +#define acosf(a) (float)acos(a) +#define atan2f(a,b) (float)atan2(a,b) +#define ceilf(a) (float)ceil(a) +#define fmodf(a,b) (float)fmod(a,b) +#define floorf(a) (float)floor(a) +#endif +/* float emulation for MS VC8++ compiler */ +#if defined(_MSC_VER) && (_MSC_VER == 1400) +#define fabsf(a) (float)fabs(a) +#endif + +enum NSVGpaintType { + NSVG_PAINT_NONE = 0, + NSVG_PAINT_COLOR = 1, + NSVG_PAINT_LINEAR_GRADIENT = 2, + NSVG_PAINT_RADIAL_GRADIENT = 3 +}; + +enum NSVGspreadType { + NSVG_SPREAD_PAD = 0, + NSVG_SPREAD_REFLECT = 1, + NSVG_SPREAD_REPEAT = 2 +}; + +enum NSVGlineJoin { + NSVG_JOIN_MITER = 0, + NSVG_JOIN_ROUND = 1, + NSVG_JOIN_BEVEL = 2 +}; + +enum NSVGlineCap { + NSVG_CAP_BUTT = 0, + NSVG_CAP_ROUND = 1, + NSVG_CAP_SQUARE = 2 +}; + +enum NSVGfillRule { + NSVG_FILLRULE_NONZERO = 0, + NSVG_FILLRULE_EVENODD = 1 +}; + +enum NSVGflags { + NSVG_FLAGS_VISIBLE = 0x01 +}; + +typedef struct NSVGgradientStop { + unsigned int color; + float offset; +} NSVGgradientStop; + +typedef struct NSVGgradient { + float xform[6]; + char spread; + float fx, fy; + int nstops; + NSVGgradientStop stops[1]; +} NSVGgradient; + +typedef struct NSVGpaint { + char type; + union { + unsigned int color; + NSVGgradient* gradient; + }; +} NSVGpaint; + +typedef struct NSVGpath +{ + float* pts; /* Cubic bezier points: x0,y0, [cpx1,cpx1,cpx2,cpy2,x1,y1], ... */ + int npts; /* Total number of bezier points. */ + char closed; /* Flag indicating if shapes should be treated as closed. */ + float bounds[4]; /* Tight bounding box of the shape [minx,miny,maxx,maxy]. */ + struct NSVGpath* next; /* Pointer to next path, or NULL if last element. */ +} NSVGpath; + +typedef struct NSVGshape +{ + char id[64]; /* Optional 'id' attr of the shape or its group */ + NSVGpaint fill; /* Fill paint */ + NSVGpaint stroke; /* Stroke paint */ + float opacity; /* Opacity of the shape. */ + float strokeWidth; /* Stroke width (scaled). */ + float strokeDashOffset; /* Stroke dash offset (scaled). */ + float strokeDashArray[8]; /* Stroke dash array (scaled). */ + char strokeDashCount; /* Number of dash values in dash array. */ + char strokeLineJoin; /* Stroke join type. */ + char strokeLineCap; /* Stroke cap type. */ + float miterLimit; /* Miter limit */ + char fillRule; /* Fill rule, see NSVGfillRule. */ + unsigned char flags; /* Logical or of NSVG_FLAGS_* flags */ + float bounds[4]; /* Tight bounding box of the shape [minx,miny,maxx,maxy]. */ + NSVGpath* paths; /* Linked list of paths in the image. */ + struct NSVGshape* next; /* Pointer to next shape, or NULL if last element. */ +} NSVGshape; + +typedef struct NSVGimage +{ + float width; /* Width of the image. */ + float height; /* Height of the image. */ + NSVGshape* shapes; /* Linked list of shapes in the image. */ +} NSVGimage; + +/* Parses SVG file from a file, returns SVG image as paths. */ +NANOSVG_SCOPE NSVGimage* nsvgParseFromFile(const char* filename, const char* units, float dpi); + +/* Parses SVG file from a null terminated string, returns SVG image as paths. */ +/* Important note: changes the string. */ +NANOSVG_SCOPE NSVGimage* nsvgParse(char* input, const char* units, float dpi); + +/* Deletes list of paths. */ +NANOSVG_SCOPE void nsvgDelete(NSVGimage* image); + +#ifdef __cplusplus +} +#endif + +#endif /* NANOSVG_H */ + +#ifdef NANOSVG_IMPLEMENTATION + +#include +#include +#include + +#define NSVG_PI (3.14159265358979323846264338327f) +#define NSVG_KAPPA90 (0.5522847493f) /* Length proportional to radius of a cubic bezier handle for 90deg arcs. */ + +#define NSVG_ALIGN_MIN 0 +#define NSVG_ALIGN_MID 1 +#define NSVG_ALIGN_MAX 2 +#define NSVG_ALIGN_NONE 0 +#define NSVG_ALIGN_MEET 1 +#define NSVG_ALIGN_SLICE 2 + +#define NSVG_NOTUSED(v) do { (void)(1 ? (void)0 : ( (void)(v) ) ); } while(0) +#define NSVG_RGB(r, g, b) (((unsigned int)r) | ((unsigned int)g << 8) | ((unsigned int)b << 16)) + +#ifdef _MSC_VER + #pragma warning (disable: 4996) /* Switch off security warnings */ + #pragma warning (disable: 4100) /* Switch off unreferenced formal parameter warnings */ + #ifdef __cplusplus + #define NSVG_INLINE inline + #else + #define NSVG_INLINE + #endif + #if !defined(strtoll) /* old MSVC versions do not have strtoll() */ + #define strtoll _strtoi64 + #endif +#else + #define NSVG_INLINE inline +#endif + + +static int nsvg__isspace(char c) +{ + return strchr(" \t\n\v\f\r", c) != 0; +} + +static int nsvg__isdigit(char c) +{ + return c >= '0' && c <= '9'; +} + +static NSVG_INLINE float nsvg__minf(float a, float b) { return a < b ? a : b; } +static NSVG_INLINE float nsvg__maxf(float a, float b) { return a > b ? a : b; } + + +/* Simple XML parser */ + +#define NSVG_XML_TAG 1 +#define NSVG_XML_CONTENT 2 +#define NSVG_XML_MAX_ATTRIBS 256 + +static void nsvg__parseContent(char* s, + void (*contentCb)(void* ud, const char* s), + void* ud) +{ + /* Trim start white spaces */ + while (*s && nsvg__isspace(*s)) s++; + if (!*s) return; + + if (contentCb) + (*contentCb)(ud, s); +} + +static void nsvg__parseElement(char* s, + void (*startelCb)(void* ud, const char* el, const char** attr), + void (*endelCb)(void* ud, const char* el), + void* ud) +{ + const char* attr[NSVG_XML_MAX_ATTRIBS]; + int nattr = 0; + char* cbname; + int start = 0; + int end = 0; + char quote; + + /* Skip white space after the '<' */ + while (*s && nsvg__isspace(*s)) s++; + + /* Check if the tag is end tag */ + if (*s == '/') { + s++; + end = 1; + } else { + start = 1; + } + + /* Skip comments, data and preprocessor stuff. */ + if (!*s || *s == '?' || *s == '!') + return; + + /* Get tag name */ + cbname = s; + while (*s && !nsvg__isspace(*s)) s++; + if (*s) { *s++ = '\0'; } + + /* Get attribs */ + while (!end && *s && nattr < NSVG_XML_MAX_ATTRIBS-3) { + char* name = NULL; + char* value = NULL; + + /* Skip white space before the attrib name */ + while (*s && nsvg__isspace(*s)) s++; + if (!*s) break; + if (*s == '/') { + end = 1; + break; + } + name = s; + /* Find end of the attrib name. */ + while (*s && !nsvg__isspace(*s) && *s != '=') s++; + if (*s) { *s++ = '\0'; } + /* Skip until the beginning of the value. */ + while (*s && *s != '\"' && *s != '\'') s++; + if (!*s) break; + quote = *s; + s++; + /* Store value and find the end of it. */ + value = s; + while (*s && *s != quote) s++; + if (*s) { *s++ = '\0'; } + + /* Store only well formed attributes */ + if (name && value) { + attr[nattr++] = name; + attr[nattr++] = value; + } + } + + /* List terminator */ + attr[nattr++] = 0; + attr[nattr++] = 0; + + /* Call callbacks. */ + if (start && startelCb) + (*startelCb)(ud, cbname, attr); + if (end && endelCb) + (*endelCb)(ud, cbname); +} + +NANOSVG_SCOPE +int nsvg__parseXML(char* input, + void (*startelCb)(void* ud, const char* el, const char** attr), + void (*endelCb)(void* ud, const char* el), + void (*contentCb)(void* ud, const char* s), + void* ud) +{ + char* s = input; + char* mark = s; + int state = NSVG_XML_CONTENT; + while (*s) { + if (*s == '<' && state == NSVG_XML_CONTENT) { + /* Start of a tag */ + *s++ = '\0'; + nsvg__parseContent(mark, contentCb, ud); + mark = s; + state = NSVG_XML_TAG; + } else if (*s == '>' && state == NSVG_XML_TAG) { + /* Start of a content or new tag. */ + *s++ = '\0'; + nsvg__parseContent(mark, contentCb, ud); + nsvg__parseElement(mark, startelCb, endelCb, ud); + mark = s; + state = NSVG_XML_CONTENT; + } else { + s++; + } + } + + return 1; +} + + +/* Simple SVG parser. */ + +#define NSVG_MAX_ATTR 128 + +enum NSVGgradientUnits { + NSVG_USER_SPACE = 0, + NSVG_OBJECT_SPACE = 1 +}; + +#define NSVG_MAX_DASHES 8 + +enum NSVGunits { + NSVG_UNITS_USER, + NSVG_UNITS_PX, + NSVG_UNITS_PT, + NSVG_UNITS_PC, + NSVG_UNITS_MM, + NSVG_UNITS_CM, + NSVG_UNITS_IN, + NSVG_UNITS_PERCENT, + NSVG_UNITS_EM, + NSVG_UNITS_EX +}; + +enum NSVGvisible { + NSVG_VIS_DISPLAY = 1, + NSVG_VIS_VISIBLE = 2 +}; + +typedef struct NSVGcoordinate { + float value; + int units; +} NSVGcoordinate; + +typedef struct NSVGlinearData { + NSVGcoordinate x1, y1, x2, y2; +} NSVGlinearData; + +typedef struct NSVGradialData { + NSVGcoordinate cx, cy, r, fx, fy; +} NSVGradialData; + +typedef struct NSVGgradientData +{ + char id[64]; + char ref[64]; + char type; + union { + NSVGlinearData linear; + NSVGradialData radial; + }; + char spread; + char units; + float xform[6]; + int nstops; + NSVGgradientStop* stops; + struct NSVGgradientData* next; +} NSVGgradientData; + +typedef struct NSVGattrib +{ + char id[64]; + float xform[6]; + unsigned int fillColor; + unsigned int strokeColor; + float opacity; + float fillOpacity; + float strokeOpacity; + char fillGradient[64]; + char strokeGradient[64]; + float strokeWidth; + float strokeDashOffset; + float strokeDashArray[NSVG_MAX_DASHES]; + int strokeDashCount; + char strokeLineJoin; + char strokeLineCap; + float miterLimit; + char fillRule; + float fontSize; + unsigned int stopColor; + float stopOpacity; + float stopOffset; + char hasFill; + char hasStroke; + char visible; +} NSVGattrib; + +typedef struct NSVGstyles +{ + char* name; + char* description; + struct NSVGstyles* next; +} NSVGstyles; + +typedef struct NSVGparser +{ + NSVGattrib attr[NSVG_MAX_ATTR]; + int attrHead; + float* pts; + int npts; + int cpts; + NSVGpath* plist; + NSVGimage* image; + NSVGstyles* styles; + NSVGgradientData* gradients; + NSVGshape* shapesTail; + float viewMinx, viewMiny, viewWidth, viewHeight; + int alignX, alignY, alignType; + float dpi; + char pathFlag; + char defsFlag; + char styleFlag; +} NSVGparser; + +static void nsvg__xformIdentity(float* t) +{ + t[0] = 1.0f; t[1] = 0.0f; + t[2] = 0.0f; t[3] = 1.0f; + t[4] = 0.0f; t[5] = 0.0f; +} + +static void nsvg__xformSetTranslation(float* t, float tx, float ty) +{ + t[0] = 1.0f; t[1] = 0.0f; + t[2] = 0.0f; t[3] = 1.0f; + t[4] = tx; t[5] = ty; +} + +static void nsvg__xformSetScale(float* t, float sx, float sy) +{ + t[0] = sx; t[1] = 0.0f; + t[2] = 0.0f; t[3] = sy; + t[4] = 0.0f; t[5] = 0.0f; +} + +static void nsvg__xformSetSkewX(float* t, float a) +{ + t[0] = 1.0f; t[1] = 0.0f; + t[2] = tanf(a); t[3] = 1.0f; + t[4] = 0.0f; t[5] = 0.0f; +} + +static void nsvg__xformSetSkewY(float* t, float a) +{ + t[0] = 1.0f; t[1] = tanf(a); + t[2] = 0.0f; t[3] = 1.0f; + t[4] = 0.0f; t[5] = 0.0f; +} + +static void nsvg__xformSetRotation(float* t, float a) +{ + float cs = cosf(a), sn = sinf(a); + t[0] = cs; t[1] = sn; + t[2] = -sn; t[3] = cs; + t[4] = 0.0f; t[5] = 0.0f; +} + +static void nsvg__xformMultiply(float* t, float* s) +{ + float t0 = t[0] * s[0] + t[1] * s[2]; + float t2 = t[2] * s[0] + t[3] * s[2]; + float t4 = t[4] * s[0] + t[5] * s[2] + s[4]; + t[1] = t[0] * s[1] + t[1] * s[3]; + t[3] = t[2] * s[1] + t[3] * s[3]; + t[5] = t[4] * s[1] + t[5] * s[3] + s[5]; + t[0] = t0; + t[2] = t2; + t[4] = t4; +} + +static void nsvg__xformInverse(float* inv, float* t) +{ + double invdet, det = (double)t[0] * t[3] - (double)t[2] * t[1]; + if (det > -1e-6 && det < 1e-6) { + nsvg__xformIdentity(t); + return; + } + invdet = 1.0 / det; + inv[0] = (float)(t[3] * invdet); + inv[2] = (float)(-t[2] * invdet); + inv[4] = (float)(((double)t[2] * t[5] - (double)t[3] * t[4]) * invdet); + inv[1] = (float)(-t[1] * invdet); + inv[3] = (float)(t[0] * invdet); + inv[5] = (float)(((double)t[1] * t[4] - (double)t[0] * t[5]) * invdet); +} + +static void nsvg__xformPremultiply(float* t, float* s) +{ + float s2[6]; + memcpy(s2, s, sizeof(float)*6); + nsvg__xformMultiply(s2, t); + memcpy(t, s2, sizeof(float)*6); +} + +static void nsvg__xformPoint(float* dx, float* dy, float x, float y, float* t) +{ + *dx = x*t[0] + y*t[2] + t[4]; + *dy = x*t[1] + y*t[3] + t[5]; +} + +static void nsvg__xformVec(float* dx, float* dy, float x, float y, float* t) +{ + *dx = x*t[0] + y*t[2]; + *dy = x*t[1] + y*t[3]; +} + +#define NSVG_EPSILON (1e-12) + +static int nsvg__ptInBounds(float* pt, float* bounds) +{ + return pt[0] >= bounds[0] && pt[0] <= bounds[2] && pt[1] >= bounds[1] && pt[1] <= bounds[3]; +} + + +static double nsvg__evalBezier(double t, double p0, double p1, double p2, double p3) +{ + double it = 1.0-t; + return it*it*it*p0 + 3.0*it*it*t*p1 + 3.0*it*t*t*p2 + t*t*t*p3; +} + +static void nsvg__curveBounds(float* bounds, float* curve) +{ + int i, j, count; + double roots[2], a, b, c, b2ac, t, v; + float* v0 = &curve[0]; + float* v1 = &curve[2]; + float* v2 = &curve[4]; + float* v3 = &curve[6]; + + /* Start the bounding box by end points */ + bounds[0] = nsvg__minf(v0[0], v3[0]); + bounds[1] = nsvg__minf(v0[1], v3[1]); + bounds[2] = nsvg__maxf(v0[0], v3[0]); + bounds[3] = nsvg__maxf(v0[1], v3[1]); + + /* Bezier curve fits inside the convex hull of it's control points. */ + /* If control points are inside the bounds, we're done. */ + if (nsvg__ptInBounds(v1, bounds) && nsvg__ptInBounds(v2, bounds)) + return; + + /* Add bezier curve inflection points in X and Y. */ + for (i = 0; i < 2; i++) { + a = -3.0 * v0[i] + 9.0 * v1[i] - 9.0 * v2[i] + 3.0 * v3[i]; + b = 6.0 * v0[i] - 12.0 * v1[i] + 6.0 * v2[i]; + c = 3.0 * v1[i] - 3.0 * v0[i]; + count = 0; + if (fabs(a) < NSVG_EPSILON) { + if (fabs(b) > NSVG_EPSILON) { + t = -c / b; + if (t > NSVG_EPSILON && t < 1.0-NSVG_EPSILON) + roots[count++] = t; + } + } else { + b2ac = b*b - 4.0*c*a; + if (b2ac > NSVG_EPSILON) { + t = (-b + sqrt(b2ac)) / (2.0 * a); + if (t > NSVG_EPSILON && t < 1.0-NSVG_EPSILON) + roots[count++] = t; + t = (-b - sqrt(b2ac)) / (2.0 * a); + if (t > NSVG_EPSILON && t < 1.0-NSVG_EPSILON) + roots[count++] = t; + } + } + for (j = 0; j < count; j++) { + v = nsvg__evalBezier(roots[j], v0[i], v1[i], v2[i], v3[i]); + bounds[0+i] = nsvg__minf(bounds[0+i], (float)v); + bounds[2+i] = nsvg__maxf(bounds[2+i], (float)v); + } + } +} + +static NSVGparser* nsvg__createParser(void) +{ + NSVGparser* p; + p = (NSVGparser*)NANOSVG_malloc(sizeof(NSVGparser)); + if (p == NULL) goto error; + memset(p, 0, sizeof(NSVGparser)); + + p->image = (NSVGimage*)NANOSVG_malloc(sizeof(NSVGimage)); + if (p->image == NULL) goto error; + memset(p->image, 0, sizeof(NSVGimage)); + + /* Init style */ + nsvg__xformIdentity(p->attr[0].xform); + memset(p->attr[0].id, 0, sizeof p->attr[0].id); + p->attr[0].fillColor = NSVG_RGB(0,0,0); + p->attr[0].strokeColor = NSVG_RGB(0,0,0); + p->attr[0].opacity = 1; + p->attr[0].fillOpacity = 1; + p->attr[0].strokeOpacity = 1; + p->attr[0].stopOpacity = 1; + p->attr[0].strokeWidth = 1; + p->attr[0].strokeLineJoin = NSVG_JOIN_MITER; + p->attr[0].strokeLineCap = NSVG_CAP_BUTT; + p->attr[0].miterLimit = 4; + p->attr[0].fillRule = NSVG_FILLRULE_NONZERO; + p->attr[0].hasFill = 1; + p->attr[0].visible = NSVG_VIS_DISPLAY | NSVG_VIS_VISIBLE; + + return p; + +error: + if (p) { + if (p->image) NANOSVG_free(p->image); + NANOSVG_free(p); + } + return NULL; +} + +static void nsvg__deleteStyles(NSVGstyles* style) { + while (style) { + NSVGstyles *next = style->next; + if (style->name!= NULL) + NANOSVG_free(style->name); + if (style->description != NULL) + NANOSVG_free(style->description); + NANOSVG_free(style); + style = next; + } +} + +static void nsvg__deletePaths(NSVGpath* path) +{ + while (path) { + NSVGpath *next = path->next; + if (path->pts != NULL) + NANOSVG_free(path->pts); + NANOSVG_free(path); + path = next; + } +} + +static void nsvg__deletePaint(NSVGpaint* paint) +{ + if (paint->type == NSVG_PAINT_LINEAR_GRADIENT || paint->type == NSVG_PAINT_RADIAL_GRADIENT) + NANOSVG_free(paint->gradient); +} + +static void nsvg__deleteGradientData(NSVGgradientData* grad) +{ + NSVGgradientData* next; + while (grad != NULL) { + next = grad->next; + NANOSVG_free(grad->stops); + NANOSVG_free(grad); + grad = next; + } +} + +static void nsvg__deleteParser(NSVGparser* p) +{ + if (p != NULL) { + nsvg__deleteStyles(p->styles); + nsvg__deletePaths(p->plist); + nsvg__deleteGradientData(p->gradients); + nsvgDelete(p->image); + NANOSVG_free(p->pts); + NANOSVG_free(p); + } +} + +static void nsvg__resetPath(NSVGparser* p) +{ + p->npts = 0; +} + +static void nsvg__addPoint(NSVGparser* p, float x, float y) +{ + if (p->npts+1 > p->cpts) { + p->cpts = p->cpts ? p->cpts*2 : 8; + p->pts = (float*)NANOSVG_realloc(p->pts, p->cpts*2*sizeof(float)); + if (!p->pts) return; + } + p->pts[p->npts*2+0] = x; + p->pts[p->npts*2+1] = y; + p->npts++; +} + +static void nsvg__moveTo(NSVGparser* p, float x, float y) +{ + if (p->npts > 0) { + p->pts[(p->npts-1)*2+0] = x; + p->pts[(p->npts-1)*2+1] = y; + } else { + nsvg__addPoint(p, x, y); + } +} + +static void nsvg__lineTo(NSVGparser* p, float x, float y) +{ + float px,py, dx,dy; + if (p->npts > 0) { + px = p->pts[(p->npts-1)*2+0]; + py = p->pts[(p->npts-1)*2+1]; + dx = x - px; + dy = y - py; + nsvg__addPoint(p, px + dx/3.0f, py + dy/3.0f); + nsvg__addPoint(p, x - dx/3.0f, y - dy/3.0f); + nsvg__addPoint(p, x, y); + } +} + +static void nsvg__cubicBezTo(NSVGparser* p, float cpx1, float cpy1, float cpx2, float cpy2, float x, float y) +{ + if (p->npts > 0) { + nsvg__addPoint(p, cpx1, cpy1); + nsvg__addPoint(p, cpx2, cpy2); + nsvg__addPoint(p, x, y); + } +} + +static NSVGattrib* nsvg__getAttr(NSVGparser* p) +{ + return &p->attr[p->attrHead]; +} + +static void nsvg__pushAttr(NSVGparser* p) +{ + if (p->attrHead < NSVG_MAX_ATTR-1) { + p->attrHead++; + memcpy(&p->attr[p->attrHead], &p->attr[p->attrHead-1], sizeof(NSVGattrib)); + } +} + +static void nsvg__popAttr(NSVGparser* p) +{ + if (p->attrHead > 0) + p->attrHead--; +} + +static float nsvg__actualOrigX(NSVGparser* p) +{ + return p->viewMinx; +} + +static float nsvg__actualOrigY(NSVGparser* p) +{ + return p->viewMiny; +} + +static float nsvg__actualWidth(NSVGparser* p) +{ + return p->viewWidth; +} + +static float nsvg__actualHeight(NSVGparser* p) +{ + return p->viewHeight; +} + +static float nsvg__actualLength(NSVGparser* p) +{ + float w = nsvg__actualWidth(p), h = nsvg__actualHeight(p); + return sqrtf(w*w + h*h) / sqrtf(2.0f); +} + +static float nsvg__convertToPixels(NSVGparser* p, NSVGcoordinate c, float orig, float length) +{ + NSVGattrib* attr = nsvg__getAttr(p); + switch (c.units) { + case NSVG_UNITS_USER: return c.value; + case NSVG_UNITS_PX: return c.value; + case NSVG_UNITS_PT: return c.value / 72.0f * p->dpi; + case NSVG_UNITS_PC: return c.value / 6.0f * p->dpi; + case NSVG_UNITS_MM: return c.value / 25.4f * p->dpi; + case NSVG_UNITS_CM: return c.value / 2.54f * p->dpi; + case NSVG_UNITS_IN: return c.value * p->dpi; + case NSVG_UNITS_EM: return c.value * attr->fontSize; + case NSVG_UNITS_EX: return c.value * attr->fontSize * 0.52f; /* x-height of Helvetica. */ + case NSVG_UNITS_PERCENT: return orig + c.value / 100.0f * length; + default: return c.value; + } + return c.value; +} + +static NSVGgradientData* nsvg__findGradientData(NSVGparser* p, const char* id) +{ + NSVGgradientData* grad = p->gradients; + if (id == NULL || *id == '\0') + return NULL; + while (grad != NULL) { + if (strcmp(grad->id, id) == 0) + return grad; + grad = grad->next; + } + return NULL; +} + +static NSVGgradient* nsvg__createGradient(NSVGparser* p, const char* id, const float* localBounds, char* paintType) +{ + NSVGattrib* attr = nsvg__getAttr(p); + NSVGgradientData* data = NULL; + NSVGgradientData* ref = NULL; + NSVGgradientStop* stops = NULL; + NSVGgradient* grad; + float ox, oy, sw, sh, sl; + int nstops = 0; + int refIter; + + data = nsvg__findGradientData(p, id); + if (data == NULL) return NULL; + + /* TODO: use ref to fill in all unset values too. */ + ref = data; + refIter = 0; + while (ref != NULL) { + NSVGgradientData* nextRef = NULL; + if (stops == NULL && ref->stops != NULL) { + stops = ref->stops; + nstops = ref->nstops; + break; + } + nextRef = nsvg__findGradientData(p, ref->ref); + if (nextRef == ref) break; /* prevent infite loops on malformed data */ + ref = nextRef; + refIter++; + if (refIter > 32) break; /* prevent infite loops on malformed data */ + } + if (stops == NULL) return NULL; + + grad = (NSVGgradient*)NANOSVG_malloc(sizeof(NSVGgradient) + sizeof(NSVGgradientStop)*(nstops-1)); + if (grad == NULL) return NULL; + + /* The shape width and height. */ + if (data->units == NSVG_OBJECT_SPACE) { + ox = localBounds[0]; + oy = localBounds[1]; + sw = localBounds[2] - localBounds[0]; + sh = localBounds[3] - localBounds[1]; + } else { + ox = nsvg__actualOrigX(p); + oy = nsvg__actualOrigY(p); + sw = nsvg__actualWidth(p); + sh = nsvg__actualHeight(p); + } + sl = sqrtf(sw*sw + sh*sh) / sqrtf(2.0f); + + if (data->type == NSVG_PAINT_LINEAR_GRADIENT) { + float x1, y1, x2, y2, dx, dy; + x1 = nsvg__convertToPixels(p, data->linear.x1, ox, sw); + y1 = nsvg__convertToPixels(p, data->linear.y1, oy, sh); + x2 = nsvg__convertToPixels(p, data->linear.x2, ox, sw); + y2 = nsvg__convertToPixels(p, data->linear.y2, oy, sh); + /* Calculate transform aligned to the line */ + dx = x2 - x1; + dy = y2 - y1; + grad->xform[0] = dy; grad->xform[1] = -dx; + grad->xform[2] = dx; grad->xform[3] = dy; + grad->xform[4] = x1; grad->xform[5] = y1; + } else { + float cx, cy, fx, fy, r; + cx = nsvg__convertToPixels(p, data->radial.cx, ox, sw); + cy = nsvg__convertToPixels(p, data->radial.cy, oy, sh); + fx = nsvg__convertToPixels(p, data->radial.fx, ox, sw); + fy = nsvg__convertToPixels(p, data->radial.fy, oy, sh); + r = nsvg__convertToPixels(p, data->radial.r, 0, sl); + /* Calculate transform aligned to the circle */ + grad->xform[0] = r; grad->xform[1] = 0; + grad->xform[2] = 0; grad->xform[3] = r; + grad->xform[4] = cx; grad->xform[5] = cy; + grad->fx = fx / r; + grad->fy = fy / r; + } + + nsvg__xformMultiply(grad->xform, data->xform); + nsvg__xformMultiply(grad->xform, attr->xform); + + grad->spread = data->spread; + memcpy(grad->stops, stops, nstops*sizeof(NSVGgradientStop)); + grad->nstops = nstops; + + *paintType = data->type; + + return grad; +} + +static float nsvg__getAverageScale(float* t) +{ + float sx = sqrtf(t[0]*t[0] + t[2]*t[2]); + float sy = sqrtf(t[1]*t[1] + t[3]*t[3]); + return (sx + sy) * 0.5f; +} + +static void nsvg__getLocalBounds(float* bounds, NSVGshape *shape, float* xform) +{ + NSVGpath* path; + float curve[4*2], curveBounds[4]; + int i, first = 1; + for (path = shape->paths; path != NULL; path = path->next) { + nsvg__xformPoint(&curve[0], &curve[1], path->pts[0], path->pts[1], xform); + for (i = 0; i < path->npts-1; i += 3) { + nsvg__xformPoint(&curve[2], &curve[3], path->pts[(i+1)*2], path->pts[(i+1)*2+1], xform); + nsvg__xformPoint(&curve[4], &curve[5], path->pts[(i+2)*2], path->pts[(i+2)*2+1], xform); + nsvg__xformPoint(&curve[6], &curve[7], path->pts[(i+3)*2], path->pts[(i+3)*2+1], xform); + nsvg__curveBounds(curveBounds, curve); + if (first) { + bounds[0] = curveBounds[0]; + bounds[1] = curveBounds[1]; + bounds[2] = curveBounds[2]; + bounds[3] = curveBounds[3]; + first = 0; + } else { + bounds[0] = nsvg__minf(bounds[0], curveBounds[0]); + bounds[1] = nsvg__minf(bounds[1], curveBounds[1]); + bounds[2] = nsvg__maxf(bounds[2], curveBounds[2]); + bounds[3] = nsvg__maxf(bounds[3], curveBounds[3]); + } + curve[0] = curve[6]; + curve[1] = curve[7]; + } + } +} + +static void nsvg__addShape(NSVGparser* p) +{ + NSVGattrib* attr = nsvg__getAttr(p); + float scale = 1.0f; + NSVGshape* shape; + NSVGpath* path; + int i; + + if (p->plist == NULL) + return; + + shape = (NSVGshape*)NANOSVG_malloc(sizeof(NSVGshape)); + if (shape == NULL) goto error; + memset(shape, 0, sizeof(NSVGshape)); + + memcpy(shape->id, attr->id, sizeof shape->id); + scale = nsvg__getAverageScale(attr->xform); + shape->strokeWidth = attr->strokeWidth * scale; + shape->strokeDashOffset = attr->strokeDashOffset * scale; + shape->strokeDashCount = (char)attr->strokeDashCount; + for (i = 0; i < attr->strokeDashCount; i++) + shape->strokeDashArray[i] = attr->strokeDashArray[i] * scale; + shape->strokeLineJoin = attr->strokeLineJoin; + shape->strokeLineCap = attr->strokeLineCap; + shape->miterLimit = attr->miterLimit; + shape->fillRule = attr->fillRule; + shape->opacity = attr->opacity; + + shape->paths = p->plist; + p->plist = NULL; + + /* Calculate shape bounds */ + shape->bounds[0] = shape->paths->bounds[0]; + shape->bounds[1] = shape->paths->bounds[1]; + shape->bounds[2] = shape->paths->bounds[2]; + shape->bounds[3] = shape->paths->bounds[3]; + for (path = shape->paths->next; path != NULL; path = path->next) { + shape->bounds[0] = nsvg__minf(shape->bounds[0], path->bounds[0]); + shape->bounds[1] = nsvg__minf(shape->bounds[1], path->bounds[1]); + shape->bounds[2] = nsvg__maxf(shape->bounds[2], path->bounds[2]); + shape->bounds[3] = nsvg__maxf(shape->bounds[3], path->bounds[3]); + } + + /* Set fill */ + if (attr->hasFill == 0) { + shape->fill.type = NSVG_PAINT_NONE; + } else if (attr->hasFill == 1) { + shape->fill.type = NSVG_PAINT_COLOR; + shape->fill.color = attr->fillColor; + shape->fill.color |= (unsigned int)(attr->fillOpacity*255) << 24; + } else if (attr->hasFill == 2) { + float inv[6], localBounds[4]; + nsvg__xformInverse(inv, attr->xform); + nsvg__getLocalBounds(localBounds, shape, inv); + shape->fill.gradient = nsvg__createGradient(p, attr->fillGradient, localBounds, &shape->fill.type); + if (shape->fill.gradient == NULL) { + shape->fill.type = NSVG_PAINT_NONE; + } + } + + /* Set stroke */ + if (attr->hasStroke == 0) { + shape->stroke.type = NSVG_PAINT_NONE; + } else if (attr->hasStroke == 1) { + shape->stroke.type = NSVG_PAINT_COLOR; + shape->stroke.color = attr->strokeColor; + shape->stroke.color |= (unsigned int)(attr->strokeOpacity*255) << 24; + } else if (attr->hasStroke == 2) { + float inv[6], localBounds[4]; + nsvg__xformInverse(inv, attr->xform); + nsvg__getLocalBounds(localBounds, shape, inv); + shape->stroke.gradient = nsvg__createGradient(p, attr->strokeGradient, localBounds, &shape->stroke.type); + if (shape->stroke.gradient == NULL) + shape->stroke.type = NSVG_PAINT_NONE; + } + + /* Set flags */ + shape->flags = ((attr->visible & NSVG_VIS_DISPLAY) && (attr->visible & NSVG_VIS_VISIBLE) ? NSVG_FLAGS_VISIBLE : 0x00); + + /* Add to tail */ + if (p->image->shapes == NULL) + p->image->shapes = shape; + else + p->shapesTail->next = shape; + p->shapesTail = shape; + + return; + +error: + if (shape) NANOSVG_free(shape); +} + +static void nsvg__addPath(NSVGparser* p, char closed) +{ + NSVGattrib* attr = nsvg__getAttr(p); + NSVGpath* path = NULL; + float bounds[4]; + float* curve; + int i; + + if (p->npts < 4) + return; + + if (closed) + nsvg__lineTo(p, p->pts[0], p->pts[1]); + + /* Expect 1 + N*3 points (N = number of cubic bezier segments). */ + if ((p->npts % 3) != 1) + return; + + path = (NSVGpath*)NANOSVG_malloc(sizeof(NSVGpath)); + if (path == NULL) goto error; + memset(path, 0, sizeof(NSVGpath)); + + path->pts = (float*)NANOSVG_malloc(p->npts*2*sizeof(float)); + if (path->pts == NULL) goto error; + path->closed = closed; + path->npts = p->npts; + + /* Transform path. */ + for (i = 0; i < p->npts; ++i) + nsvg__xformPoint(&path->pts[i*2], &path->pts[i*2+1], p->pts[i*2], p->pts[i*2+1], attr->xform); + + /* Find bounds */ + for (i = 0; i < path->npts-1; i += 3) { + curve = &path->pts[i*2]; + nsvg__curveBounds(bounds, curve); + if (i == 0) { + path->bounds[0] = bounds[0]; + path->bounds[1] = bounds[1]; + path->bounds[2] = bounds[2]; + path->bounds[3] = bounds[3]; + } else { + path->bounds[0] = nsvg__minf(path->bounds[0], bounds[0]); + path->bounds[1] = nsvg__minf(path->bounds[1], bounds[1]); + path->bounds[2] = nsvg__maxf(path->bounds[2], bounds[2]); + path->bounds[3] = nsvg__maxf(path->bounds[3], bounds[3]); + } + } + + path->next = p->plist; + p->plist = path; + + return; + +error: + if (path != NULL) { + if (path->pts != NULL) NANOSVG_free(path->pts); + NANOSVG_free(path); + } +} + +/* We roll our own string to float because the std library one uses locale and messes things up. */ +static double nsvg__atof(const char* s) +{ + char* cur = (char*)s; + char* end = NULL; + double res = 0.0, sign = 1.0; +#if defined(_MSC_VER) && (_MSC_VER == 1200) + __int64 intPart = 0, fracPart = 0; +#else + long long intPart = 0, fracPart = 0; +#endif + char hasIntPart = 0, hasFracPart = 0; + + /* Parse optional sign */ + if (*cur == '+') { + cur++; + } else if (*cur == '-') { + sign = -1; + cur++; + } + + /* Parse integer part */ + if (nsvg__isdigit(*cur)) { + /* Parse digit sequence */ +#if defined(_MSC_VER) && (_MSC_VER == 1200) + intPart = strtol(cur, &end, 10); +#else + intPart = strtoll(cur, &end, 10); +#endif + if (cur != end) { + res = (double)intPart; + hasIntPart = 1; + cur = end; + } + } + + /* Parse fractional part. */ + if (*cur == '.') { + cur++; /* Skip '.' */ + if (nsvg__isdigit(*cur)) { + /* Parse digit sequence */ +#if defined(_MSC_VER) && (_MSC_VER == 1200) + fracPart = strtol(cur, &end, 10); +#else + fracPart = strtoll(cur, &end, 10); +#endif + if (cur != end) { + res += (double)fracPart / pow(10.0, (double)(end - cur)); + hasFracPart = 1; + cur = end; + } + } + } + + /* A valid number should have integer or fractional part. */ + if (!hasIntPart && !hasFracPart) + return 0.0; + + /* Parse optional exponent */ + if (*cur == 'e' || *cur == 'E') { + int expPart = 0; + cur++; /* skip 'E' */ + expPart = strtol(cur, &end, 10); /* Parse digit sequence with sign */ + if (cur != end) { + res *= pow(10.0, (double)expPart); + } + } + + return res * sign; +} + + +static const char* nsvg__parseNumber(const char* s, char* it, const int size) +{ + const int last = size-1; + int i = 0; + + /* sign */ + if (*s == '-' || *s == '+') { + if (i < last) it[i++] = *s; + s++; + } + /* integer part */ + while (*s && nsvg__isdigit(*s)) { + if (i < last) it[i++] = *s; + s++; + } + if (*s == '.') { + /* decimal point */ + if (i < last) it[i++] = *s; + s++; + /* fraction part */ + while (*s && nsvg__isdigit(*s)) { + if (i < last) it[i++] = *s; + s++; + } + } + /* exponent */ + if (*s == 'e' || *s == 'E') { + if (i < last) it[i++] = *s; + s++; + if (*s == '-' || *s == '+') { + if (i < last) it[i++] = *s; + s++; + } + while (*s && nsvg__isdigit(*s)) { + if (i < last) it[i++] = *s; + s++; + } + } + it[i] = '\0'; + + return s; +} + +static const char* nsvg__getNextPathItem(const char* s, char* it) +{ + it[0] = '\0'; + /* Skip white spaces and commas */ + while (*s && (nsvg__isspace(*s) || *s == ',')) s++; + if (!*s) return s; + if (*s == '-' || *s == '+' || *s == '.' || nsvg__isdigit(*s)) { + s = nsvg__parseNumber(s, it, 64); + } else { + /* Parse command */ + it[0] = *s++; + it[1] = '\0'; + return s; + } + + return s; +} + +static unsigned int nsvg__parseColorHex(const char* str) +{ + unsigned int c = 0, r = 0, g = 0, b = 0; + int n = 0; + str++; /* skip # */ + /* Calculate number of characters. */ + while(str[n] && !nsvg__isspace(str[n])) + n++; + if (n == 6) { + sscanf(str, "%x", &c); + } else if (n == 3) { + sscanf(str, "%x", &c); + c = (c&0xf) | ((c&0xf0) << 4) | ((c&0xf00) << 8); + c |= c<<4; + } + r = (c >> 16) & 0xff; + g = (c >> 8) & 0xff; + b = c & 0xff; + return NSVG_RGB(r,g,b); +} + +static unsigned int nsvg__parseColorRGB(const char* str) +{ + int r = -1, g = -1, b = -1; + char s1[32]="", s2[32]=""; + sscanf(str + 4, "%d%[%%, \t]%d%[%%, \t]%d", &r, s1, &g, s2, &b); + if (strchr(s1, '%')) { + return NSVG_RGB((r*255)/100,(g*255)/100,(b*255)/100); + } else { + return NSVG_RGB(r,g,b); + } +} + +typedef struct NSVGNamedColor { + const char* name; + unsigned int color; +} NSVGNamedColor; + +NSVGNamedColor nsvg__colors[] = { + + { "red", NSVG_RGB(255, 0, 0) }, + { "green", NSVG_RGB( 0, 128, 0) }, + { "blue", NSVG_RGB( 0, 0, 255) }, + { "yellow", NSVG_RGB(255, 255, 0) }, + { "cyan", NSVG_RGB( 0, 255, 255) }, + { "magenta", NSVG_RGB(255, 0, 255) }, + { "black", NSVG_RGB( 0, 0, 0) }, + { "grey", NSVG_RGB(128, 128, 128) }, + { "gray", NSVG_RGB(128, 128, 128) }, + { "white", NSVG_RGB(255, 255, 255) }, + +#ifdef NANOSVG_ALL_COLOR_KEYWORDS + { "aliceblue", NSVG_RGB(240, 248, 255) }, + { "antiquewhite", NSVG_RGB(250, 235, 215) }, + { "aqua", NSVG_RGB( 0, 255, 255) }, + { "aquamarine", NSVG_RGB(127, 255, 212) }, + { "azure", NSVG_RGB(240, 255, 255) }, + { "beige", NSVG_RGB(245, 245, 220) }, + { "bisque", NSVG_RGB(255, 228, 196) }, + { "blanchedalmond", NSVG_RGB(255, 235, 205) }, + { "blueviolet", NSVG_RGB(138, 43, 226) }, + { "brown", NSVG_RGB(165, 42, 42) }, + { "burlywood", NSVG_RGB(222, 184, 135) }, + { "cadetblue", NSVG_RGB( 95, 158, 160) }, + { "chartreuse", NSVG_RGB(127, 255, 0) }, + { "chocolate", NSVG_RGB(210, 105, 30) }, + { "coral", NSVG_RGB(255, 127, 80) }, + { "cornflowerblue", NSVG_RGB(100, 149, 237) }, + { "cornsilk", NSVG_RGB(255, 248, 220) }, + { "crimson", NSVG_RGB(220, 20, 60) }, + { "darkblue", NSVG_RGB( 0, 0, 139) }, + { "darkcyan", NSVG_RGB( 0, 139, 139) }, + { "darkgoldenrod", NSVG_RGB(184, 134, 11) }, + { "darkgray", NSVG_RGB(169, 169, 169) }, + { "darkgreen", NSVG_RGB( 0, 100, 0) }, + { "darkgrey", NSVG_RGB(169, 169, 169) }, + { "darkkhaki", NSVG_RGB(189, 183, 107) }, + { "darkmagenta", NSVG_RGB(139, 0, 139) }, + { "darkolivegreen", NSVG_RGB( 85, 107, 47) }, + { "darkorange", NSVG_RGB(255, 140, 0) }, + { "darkorchid", NSVG_RGB(153, 50, 204) }, + { "darkred", NSVG_RGB(139, 0, 0) }, + { "darksalmon", NSVG_RGB(233, 150, 122) }, + { "darkseagreen", NSVG_RGB(143, 188, 143) }, + { "darkslateblue", NSVG_RGB( 72, 61, 139) }, + { "darkslategray", NSVG_RGB( 47, 79, 79) }, + { "darkslategrey", NSVG_RGB( 47, 79, 79) }, + { "darkturquoise", NSVG_RGB( 0, 206, 209) }, + { "darkviolet", NSVG_RGB(148, 0, 211) }, + { "deeppink", NSVG_RGB(255, 20, 147) }, + { "deepskyblue", NSVG_RGB( 0, 191, 255) }, + { "dimgray", NSVG_RGB(105, 105, 105) }, + { "dimgrey", NSVG_RGB(105, 105, 105) }, + { "dodgerblue", NSVG_RGB( 30, 144, 255) }, + { "firebrick", NSVG_RGB(178, 34, 34) }, + { "floralwhite", NSVG_RGB(255, 250, 240) }, + { "forestgreen", NSVG_RGB( 34, 139, 34) }, + { "fuchsia", NSVG_RGB(255, 0, 255) }, + { "gainsboro", NSVG_RGB(220, 220, 220) }, + { "ghostwhite", NSVG_RGB(248, 248, 255) }, + { "gold", NSVG_RGB(255, 215, 0) }, + { "goldenrod", NSVG_RGB(218, 165, 32) }, + { "greenyellow", NSVG_RGB(173, 255, 47) }, + { "honeydew", NSVG_RGB(240, 255, 240) }, + { "hotpink", NSVG_RGB(255, 105, 180) }, + { "indianred", NSVG_RGB(205, 92, 92) }, + { "indigo", NSVG_RGB( 75, 0, 130) }, + { "ivory", NSVG_RGB(255, 255, 240) }, + { "khaki", NSVG_RGB(240, 230, 140) }, + { "lavender", NSVG_RGB(230, 230, 250) }, + { "lavenderblush", NSVG_RGB(255, 240, 245) }, + { "lawngreen", NSVG_RGB(124, 252, 0) }, + { "lemonchiffon", NSVG_RGB(255, 250, 205) }, + { "lightblue", NSVG_RGB(173, 216, 230) }, + { "lightcoral", NSVG_RGB(240, 128, 128) }, + { "lightcyan", NSVG_RGB(224, 255, 255) }, + { "lightgoldenrodyellow", NSVG_RGB(250, 250, 210) }, + { "lightgray", NSVG_RGB(211, 211, 211) }, + { "lightgreen", NSVG_RGB(144, 238, 144) }, + { "lightgrey", NSVG_RGB(211, 211, 211) }, + { "lightpink", NSVG_RGB(255, 182, 193) }, + { "lightsalmon", NSVG_RGB(255, 160, 122) }, + { "lightseagreen", NSVG_RGB( 32, 178, 170) }, + { "lightskyblue", NSVG_RGB(135, 206, 250) }, + { "lightslategray", NSVG_RGB(119, 136, 153) }, + { "lightslategrey", NSVG_RGB(119, 136, 153) }, + { "lightsteelblue", NSVG_RGB(176, 196, 222) }, + { "lightyellow", NSVG_RGB(255, 255, 224) }, + { "lime", NSVG_RGB( 0, 255, 0) }, + { "limegreen", NSVG_RGB( 50, 205, 50) }, + { "linen", NSVG_RGB(250, 240, 230) }, + { "maroon", NSVG_RGB(128, 0, 0) }, + { "mediumaquamarine", NSVG_RGB(102, 205, 170) }, + { "mediumblue", NSVG_RGB( 0, 0, 205) }, + { "mediumorchid", NSVG_RGB(186, 85, 211) }, + { "mediumpurple", NSVG_RGB(147, 112, 219) }, + { "mediumseagreen", NSVG_RGB( 60, 179, 113) }, + { "mediumslateblue", NSVG_RGB(123, 104, 238) }, + { "mediumspringgreen", NSVG_RGB( 0, 250, 154) }, + { "mediumturquoise", NSVG_RGB( 72, 209, 204) }, + { "mediumvioletred", NSVG_RGB(199, 21, 133) }, + { "midnightblue", NSVG_RGB( 25, 25, 112) }, + { "mintcream", NSVG_RGB(245, 255, 250) }, + { "mistyrose", NSVG_RGB(255, 228, 225) }, + { "moccasin", NSVG_RGB(255, 228, 181) }, + { "navajowhite", NSVG_RGB(255, 222, 173) }, + { "navy", NSVG_RGB( 0, 0, 128) }, + { "oldlace", NSVG_RGB(253, 245, 230) }, + { "olive", NSVG_RGB(128, 128, 0) }, + { "olivedrab", NSVG_RGB(107, 142, 35) }, + { "orange", NSVG_RGB(255, 165, 0) }, + { "orangered", NSVG_RGB(255, 69, 0) }, + { "orchid", NSVG_RGB(218, 112, 214) }, + { "palegoldenrod", NSVG_RGB(238, 232, 170) }, + { "palegreen", NSVG_RGB(152, 251, 152) }, + { "paleturquoise", NSVG_RGB(175, 238, 238) }, + { "palevioletred", NSVG_RGB(219, 112, 147) }, + { "papayawhip", NSVG_RGB(255, 239, 213) }, + { "peachpuff", NSVG_RGB(255, 218, 185) }, + { "peru", NSVG_RGB(205, 133, 63) }, + { "pink", NSVG_RGB(255, 192, 203) }, + { "plum", NSVG_RGB(221, 160, 221) }, + { "powderblue", NSVG_RGB(176, 224, 230) }, + { "purple", NSVG_RGB(128, 0, 128) }, + { "rosybrown", NSVG_RGB(188, 143, 143) }, + { "royalblue", NSVG_RGB( 65, 105, 225) }, + { "saddlebrown", NSVG_RGB(139, 69, 19) }, + { "salmon", NSVG_RGB(250, 128, 114) }, + { "sandybrown", NSVG_RGB(244, 164, 96) }, + { "seagreen", NSVG_RGB( 46, 139, 87) }, + { "seashell", NSVG_RGB(255, 245, 238) }, + { "sienna", NSVG_RGB(160, 82, 45) }, + { "silver", NSVG_RGB(192, 192, 192) }, + { "skyblue", NSVG_RGB(135, 206, 235) }, + { "slateblue", NSVG_RGB(106, 90, 205) }, + { "slategray", NSVG_RGB(112, 128, 144) }, + { "slategrey", NSVG_RGB(112, 128, 144) }, + { "snow", NSVG_RGB(255, 250, 250) }, + { "springgreen", NSVG_RGB( 0, 255, 127) }, + { "steelblue", NSVG_RGB( 70, 130, 180) }, + { "tan", NSVG_RGB(210, 180, 140) }, + { "teal", NSVG_RGB( 0, 128, 128) }, + { "thistle", NSVG_RGB(216, 191, 216) }, + { "tomato", NSVG_RGB(255, 99, 71) }, + { "turquoise", NSVG_RGB( 64, 224, 208) }, + { "violet", NSVG_RGB(238, 130, 238) }, + { "wheat", NSVG_RGB(245, 222, 179) }, + { "whitesmoke", NSVG_RGB(245, 245, 245) }, + { "yellowgreen", NSVG_RGB(154, 205, 50) }, +#endif +}; + +static unsigned int nsvg__parseColorName(const char* str) +{ + int i, ncolors = sizeof(nsvg__colors) / sizeof(NSVGNamedColor); + + for (i = 0; i < ncolors; i++) { + if (strcmp(nsvg__colors[i].name, str) == 0) { + return nsvg__colors[i].color; + } + } + + return NSVG_RGB(128, 128, 128); +} + +static unsigned int nsvg__parseColor(const char* str) +{ + size_t len = 0; + while(*str == ' ') ++str; + len = strlen(str); + if (len >= 1 && *str == '#') + return nsvg__parseColorHex(str); + else if (len >= 4 && str[0] == 'r' && str[1] == 'g' && str[2] == 'b' && str[3] == '(') + return nsvg__parseColorRGB(str); + return nsvg__parseColorName(str); +} + +static float nsvg__parseOpacity(const char* str) +{ + float val = 0; + sscanf(str, "%f", &val); + if (val < 0.0f) val = 0.0f; + if (val > 1.0f) val = 1.0f; + return val; +} + +static float nsvg__parseMiterLimit(const char* str) +{ + float val = 0; + sscanf(str, "%f", &val); + if (val < 0.0f) val = 0.0f; + return val; +} + +static int nsvg__parseUnits(const char* units) +{ + if (units[0] == 'p' && units[1] == 'x') + return NSVG_UNITS_PX; + else if (units[0] == 'p' && units[1] == 't') + return NSVG_UNITS_PT; + else if (units[0] == 'p' && units[1] == 'c') + return NSVG_UNITS_PC; + else if (units[0] == 'm' && units[1] == 'm') + return NSVG_UNITS_MM; + else if (units[0] == 'c' && units[1] == 'm') + return NSVG_UNITS_CM; + else if (units[0] == 'i' && units[1] == 'n') + return NSVG_UNITS_IN; + else if (units[0] == '%') + return NSVG_UNITS_PERCENT; + else if (units[0] == 'e' && units[1] == 'm') + return NSVG_UNITS_EM; + else if (units[0] == 'e' && units[1] == 'x') + return NSVG_UNITS_EX; + return NSVG_UNITS_USER; +} + +static int nsvg__isCoordinate(const char* s) +{ + /* optional sign */ + if (*s == '-' || *s == '+') + s++; + /* must have at least one digit, or start by a dot */ + return (nsvg__isdigit(*s) || *s == '.'); +} + +static NSVGcoordinate nsvg__parseCoordinateRaw(const char* str) +{ + NSVGcoordinate coord = {0, NSVG_UNITS_USER}; + char units[32]=""; + sscanf(str, "%f%s", &coord.value, units); + coord.units = nsvg__parseUnits(units); + return coord; +} + +static NSVGcoordinate nsvg__coord(float v, int units) +{ + NSVGcoordinate coord = {v, units}; + return coord; +} + +static float nsvg__parseCoordinate(NSVGparser* p, const char* str, float orig, float length) +{ + NSVGcoordinate coord = nsvg__parseCoordinateRaw(str); + return nsvg__convertToPixels(p, coord, orig, length); +} + +static int nsvg__parseTransformArgs(const char* str, float* args, int maxNa, int* na) +{ + const char* end; + const char* ptr; + char it[64]; + + *na = 0; + ptr = str; + while (*ptr && *ptr != '(') ++ptr; + if (*ptr == 0) + return 1; + end = ptr; + while (*end && *end != ')') ++end; + if (*end == 0) + return 1; + + while (ptr < end) { + if (*ptr == '-' || *ptr == '+' || *ptr == '.' || nsvg__isdigit(*ptr)) { + if (*na >= maxNa) return 0; + ptr = nsvg__parseNumber(ptr, it, 64); + args[(*na)++] = (float)nsvg__atof(it); + } else { + ++ptr; + } + } + return (int)(end - str); +} + + +static int nsvg__parseMatrix(float* xform, const char* str) +{ + float t[6]; + int na = 0; + int len = nsvg__parseTransformArgs(str, t, 6, &na); + if (na != 6) return len; + memcpy(xform, t, sizeof(float)*6); + return len; +} + +static int nsvg__parseTranslate(float* xform, const char* str) +{ + float args[2]; + float t[6]; + int na = 0; + int len = nsvg__parseTransformArgs(str, args, 2, &na); + if (na == 1) args[1] = 0.0; + + nsvg__xformSetTranslation(t, args[0], args[1]); + memcpy(xform, t, sizeof(float)*6); + return len; +} + +static int nsvg__parseScale(float* xform, const char* str) +{ + float args[2]; + int na = 0; + float t[6]; + int len = nsvg__parseTransformArgs(str, args, 2, &na); + if (na == 1) args[1] = args[0]; + nsvg__xformSetScale(t, args[0], args[1]); + memcpy(xform, t, sizeof(float)*6); + return len; +} + +static int nsvg__parseSkewX(float* xform, const char* str) +{ + float args[1]; + int na = 0; + float t[6]; + int len = nsvg__parseTransformArgs(str, args, 1, &na); + nsvg__xformSetSkewX(t, args[0]/180.0f*NSVG_PI); + memcpy(xform, t, sizeof(float)*6); + return len; +} + +static int nsvg__parseSkewY(float* xform, const char* str) +{ + float args[1]; + int na = 0; + float t[6]; + int len = nsvg__parseTransformArgs(str, args, 1, &na); + nsvg__xformSetSkewY(t, args[0]/180.0f*NSVG_PI); + memcpy(xform, t, sizeof(float)*6); + return len; +} + +static int nsvg__parseRotate(float* xform, const char* str) +{ + float args[3]; + int na = 0; + float m[6]; + float t[6]; + int len = nsvg__parseTransformArgs(str, args, 3, &na); + if (na == 1) + args[1] = args[2] = 0.0f; + nsvg__xformIdentity(m); + + if (na > 1) { + nsvg__xformSetTranslation(t, -args[1], -args[2]); + nsvg__xformMultiply(m, t); + } + + nsvg__xformSetRotation(t, args[0]/180.0f*NSVG_PI); + nsvg__xformMultiply(m, t); + + if (na > 1) { + nsvg__xformSetTranslation(t, args[1], args[2]); + nsvg__xformMultiply(m, t); + } + + memcpy(xform, m, sizeof(float)*6); + + return len; +} + +static void nsvg__parseTransform(float* xform, const char* str) +{ + float t[6]; + int len; + nsvg__xformIdentity(xform); + while (*str) + { + if (strncmp(str, "matrix", 6) == 0) + len = nsvg__parseMatrix(t, str); + else if (strncmp(str, "translate", 9) == 0) + len = nsvg__parseTranslate(t, str); + else if (strncmp(str, "scale", 5) == 0) + len = nsvg__parseScale(t, str); + else if (strncmp(str, "rotate", 6) == 0) + len = nsvg__parseRotate(t, str); + else if (strncmp(str, "skewX", 5) == 0) + len = nsvg__parseSkewX(t, str); + else if (strncmp(str, "skewY", 5) == 0) + len = nsvg__parseSkewY(t, str); + else{ + ++str; + continue; + } + if (len != 0) { + str += len; + } else { + ++str; + continue; + } + + nsvg__xformPremultiply(xform, t); + } +} + +static void nsvg__parseUrl(char* id, const char* str) +{ + int i = 0; + str += 4; /* "url("; */ + if (*str == '#') + str++; + while (i < 63 && *str != ')') { + id[i] = *str++; + i++; + } + id[i] = '\0'; +} + +static char nsvg__parseLineCap(const char* str) +{ + if (strcmp(str, "butt") == 0) + return NSVG_CAP_BUTT; + else if (strcmp(str, "round") == 0) + return NSVG_CAP_ROUND; + else if (strcmp(str, "square") == 0) + return NSVG_CAP_SQUARE; + /* TODO: handle inherit. */ + return NSVG_CAP_BUTT; +} + +static char nsvg__parseLineJoin(const char* str) +{ + if (strcmp(str, "miter") == 0) + return NSVG_JOIN_MITER; + else if (strcmp(str, "round") == 0) + return NSVG_JOIN_ROUND; + else if (strcmp(str, "bevel") == 0) + return NSVG_JOIN_BEVEL; + /* TODO: handle inherit. */ + return NSVG_JOIN_MITER; +} + +static char nsvg__parseFillRule(const char* str) +{ + if (strcmp(str, "nonzero") == 0) + return NSVG_FILLRULE_NONZERO; + else if (strcmp(str, "evenodd") == 0) + return NSVG_FILLRULE_EVENODD; + /* TODO: handle inherit. */ + return NSVG_FILLRULE_NONZERO; +} + +static const char* nsvg__getNextDashItem(const char* s, char* it) +{ + int n = 0; + it[0] = '\0'; + /* Skip white spaces and commas */ + while (*s && (nsvg__isspace(*s) || *s == ',')) s++; + /* Advance until whitespace, comma or end. */ + while (*s && (!nsvg__isspace(*s) && *s != ',')) { + if (n < 63) + it[n++] = *s; + s++; + } + it[n++] = '\0'; + return s; +} + +static int nsvg__parseStrokeDashArray(NSVGparser* p, const char* str, float* strokeDashArray) +{ + char item[64]; + int count = 0, i; + float sum = 0.0f; + + /* Handle "none" */ + if (str[0] == 'n') + return 0; + + /* Parse dashes */ + while (*str) { + str = nsvg__getNextDashItem(str, item); + if (!*item) break; + if (count < NSVG_MAX_DASHES) + strokeDashArray[count++] = fabsf(nsvg__parseCoordinate(p, item, 0.0f, nsvg__actualLength(p))); + } + + for (i = 0; i < count; i++) + sum += strokeDashArray[i]; + if (sum <= 1e-6f) + count = 0; + + return count; +} + +static void nsvg__parseStyle(NSVGparser* p, const char* str); + +static int nsvg__parseAttr(NSVGparser* p, const char* name, const char* value) +{ + float xform[6]; + NSVGattrib* attr = nsvg__getAttr(p); + if (!attr) return 0; + + if (strcmp(name, "style") == 0) { + nsvg__parseStyle(p, value); + } else if (strcmp(name, "display") == 0) { + if (strcmp(value, "none") == 0) + attr->visible &= ~NSVG_VIS_DISPLAY; + /* Don't reset ->visible on display:inline, one display:none hides the whole subtree */ + + } else if (strcmp(name, "visibility") == 0) { + if (strcmp(value, "hidden") == 0) { + attr->visible &= ~NSVG_VIS_VISIBLE; + } else if (strcmp(value, "visible") == 0) { + attr->visible |= NSVG_VIS_VISIBLE; + } + } else if (strcmp(name, "fill") == 0) { + if (strcmp(value, "none") == 0) { + attr->hasFill = 0; + } else if (strncmp(value, "url(", 4) == 0) { + attr->hasFill = 2; + nsvg__parseUrl(attr->fillGradient, value); + } else { + attr->hasFill = 1; + attr->fillColor = nsvg__parseColor(value); + } + } else if (strcmp(name, "opacity") == 0) { + attr->opacity = nsvg__parseOpacity(value); + } else if (strcmp(name, "fill-opacity") == 0) { + attr->fillOpacity = nsvg__parseOpacity(value); + } else if (strcmp(name, "stroke") == 0) { + if (strcmp(value, "none") == 0) { + attr->hasStroke = 0; + } else if (strncmp(value, "url(", 4) == 0) { + attr->hasStroke = 2; + nsvg__parseUrl(attr->strokeGradient, value); + } else { + attr->hasStroke = 1; + attr->strokeColor = nsvg__parseColor(value); + } + } else if (strcmp(name, "stroke-width") == 0) { + attr->strokeWidth = nsvg__parseCoordinate(p, value, 0.0f, nsvg__actualLength(p)); + } else if (strcmp(name, "stroke-dasharray") == 0) { + attr->strokeDashCount = nsvg__parseStrokeDashArray(p, value, attr->strokeDashArray); + } else if (strcmp(name, "stroke-dashoffset") == 0) { + attr->strokeDashOffset = nsvg__parseCoordinate(p, value, 0.0f, nsvg__actualLength(p)); + } else if (strcmp(name, "stroke-opacity") == 0) { + attr->strokeOpacity = nsvg__parseOpacity(value); + } else if (strcmp(name, "stroke-linecap") == 0) { + attr->strokeLineCap = nsvg__parseLineCap(value); + } else if (strcmp(name, "stroke-linejoin") == 0) { + attr->strokeLineJoin = nsvg__parseLineJoin(value); + } else if (strcmp(name, "stroke-miterlimit") == 0) { + attr->miterLimit = nsvg__parseMiterLimit(value); + } else if (strcmp(name, "fill-rule") == 0) { + attr->fillRule = nsvg__parseFillRule(value); + } else if (strcmp(name, "font-size") == 0) { + attr->fontSize = nsvg__parseCoordinate(p, value, 0.0f, nsvg__actualLength(p)); + } else if (strcmp(name, "transform") == 0) { + nsvg__parseTransform(xform, value); + nsvg__xformPremultiply(attr->xform, xform); + } else if (strcmp(name, "stop-color") == 0) { + attr->stopColor = nsvg__parseColor(value); + } else if (strcmp(name, "stop-opacity") == 0) { + attr->stopOpacity = nsvg__parseOpacity(value); + } else if (strcmp(name, "offset") == 0) { + attr->stopOffset = nsvg__parseCoordinate(p, value, 0.0f, 1.0f); + } else if (strcmp(name, "id") == 0) { + strncpy(attr->id, value, 63); + attr->id[63] = '\0'; + } else if (strcmp(name, "class") == 0) { + NSVGstyles* style = p->styles; + while (style) { + if (strcmp(style->name + 1, value) == 0) { + break; + } + style = style->next; + } + if (style) { + nsvg__parseStyle(p, style->description); + } + } else { + return 0; + } + return 1; +} + +static int nsvg__parseNameValue(NSVGparser* p, const char* start, const char* end) +{ + const char* str; + const char* val; + char name[512]; + char value[512]; + int n; + + str = start; + while (str < end && *str != ':') ++str; + + val = str; + + /* Right Trim */ + while (str > start && (*str == ':' || nsvg__isspace(*str))) --str; + ++str; + + n = (int)(str - start); + if (n > 511) n = 511; + if (n) memcpy(name, start, n); + name[n] = 0; + + while (val < end && (*val == ':' || nsvg__isspace(*val))) ++val; + + n = (int)(end - val); + if (n > 511) n = 511; + if (n) memcpy(value, val, n); + value[n] = 0; + + return nsvg__parseAttr(p, name, value); +} + +static void nsvg__parseStyle(NSVGparser* p, const char* str) +{ + const char* start; + const char* end; + + while (*str) { + /* Left Trim */ + while(*str && nsvg__isspace(*str)) ++str; + start = str; + while(*str && *str != ';') ++str; + end = str; + + /* Right Trim */ + while (end > start && (*end == ';' || nsvg__isspace(*end))) --end; + ++end; + + nsvg__parseNameValue(p, start, end); + if (*str) ++str; + } +} + +static void nsvg__parseAttribs(NSVGparser* p, const char** attr) +{ + int i; + for (i = 0; attr[i]; i += 2) + { + if (strcmp(attr[i], "style") == 0) + nsvg__parseStyle(p, attr[i + 1]); + else + nsvg__parseAttr(p, attr[i], attr[i + 1]); + } +} + +static int nsvg__getArgsPerElement(char cmd) +{ + switch (cmd) { + case 'v': + case 'V': + case 'h': + case 'H': + return 1; + case 'm': + case 'M': + case 'l': + case 'L': + case 't': + case 'T': + return 2; + case 'q': + case 'Q': + case 's': + case 'S': + return 4; + case 'c': + case 'C': + return 6; + case 'a': + case 'A': + return 7; + case 'z': + case 'Z': + return 0; + } + return -1; +} + +static void nsvg__pathMoveTo(NSVGparser* p, float* cpx, float* cpy, float* args, int rel) +{ + if (rel) { + *cpx += args[0]; + *cpy += args[1]; + } else { + *cpx = args[0]; + *cpy = args[1]; + } + nsvg__moveTo(p, *cpx, *cpy); +} + +static void nsvg__pathLineTo(NSVGparser* p, float* cpx, float* cpy, float* args, int rel) +{ + if (rel) { + *cpx += args[0]; + *cpy += args[1]; + } else { + *cpx = args[0]; + *cpy = args[1]; + } + nsvg__lineTo(p, *cpx, *cpy); +} + +static void nsvg__pathHLineTo(NSVGparser* p, float* cpx, float* cpy, float* args, int rel) +{ + if (rel) + *cpx += args[0]; + else + *cpx = args[0]; + nsvg__lineTo(p, *cpx, *cpy); +} + +static void nsvg__pathVLineTo(NSVGparser* p, float* cpx, float* cpy, float* args, int rel) +{ + if (rel) + *cpy += args[0]; + else + *cpy = args[0]; + nsvg__lineTo(p, *cpx, *cpy); +} + +static void nsvg__pathCubicBezTo(NSVGparser* p, float* cpx, float* cpy, + float* cpx2, float* cpy2, float* args, int rel) +{ + float x2, y2, cx1, cy1, cx2, cy2; + + if (rel) { + cx1 = *cpx + args[0]; + cy1 = *cpy + args[1]; + cx2 = *cpx + args[2]; + cy2 = *cpy + args[3]; + x2 = *cpx + args[4]; + y2 = *cpy + args[5]; + } else { + cx1 = args[0]; + cy1 = args[1]; + cx2 = args[2]; + cy2 = args[3]; + x2 = args[4]; + y2 = args[5]; + } + + nsvg__cubicBezTo(p, cx1,cy1, cx2,cy2, x2,y2); + + *cpx2 = cx2; + *cpy2 = cy2; + *cpx = x2; + *cpy = y2; +} + +static void nsvg__pathCubicBezShortTo(NSVGparser* p, float* cpx, float* cpy, + float* cpx2, float* cpy2, float* args, int rel) +{ + float x1, y1, x2, y2, cx1, cy1, cx2, cy2; + + x1 = *cpx; + y1 = *cpy; + if (rel) { + cx2 = *cpx + args[0]; + cy2 = *cpy + args[1]; + x2 = *cpx + args[2]; + y2 = *cpy + args[3]; + } else { + cx2 = args[0]; + cy2 = args[1]; + x2 = args[2]; + y2 = args[3]; + } + + cx1 = 2*x1 - *cpx2; + cy1 = 2*y1 - *cpy2; + + nsvg__cubicBezTo(p, cx1,cy1, cx2,cy2, x2,y2); + + *cpx2 = cx2; + *cpy2 = cy2; + *cpx = x2; + *cpy = y2; +} + +static void nsvg__pathQuadBezTo(NSVGparser* p, float* cpx, float* cpy, + float* cpx2, float* cpy2, float* args, int rel) +{ + float x1, y1, x2, y2, cx, cy; + float cx1, cy1, cx2, cy2; + + x1 = *cpx; + y1 = *cpy; + if (rel) { + cx = *cpx + args[0]; + cy = *cpy + args[1]; + x2 = *cpx + args[2]; + y2 = *cpy + args[3]; + } else { + cx = args[0]; + cy = args[1]; + x2 = args[2]; + y2 = args[3]; + } + + /* Convert to cubic bezier */ + cx1 = x1 + 2.0f/3.0f*(cx - x1); + cy1 = y1 + 2.0f/3.0f*(cy - y1); + cx2 = x2 + 2.0f/3.0f*(cx - x2); + cy2 = y2 + 2.0f/3.0f*(cy - y2); + + nsvg__cubicBezTo(p, cx1,cy1, cx2,cy2, x2,y2); + + *cpx2 = cx; + *cpy2 = cy; + *cpx = x2; + *cpy = y2; +} + +static void nsvg__pathQuadBezShortTo(NSVGparser* p, float* cpx, float* cpy, + float* cpx2, float* cpy2, float* args, int rel) +{ + float x1, y1, x2, y2, cx, cy; + float cx1, cy1, cx2, cy2; + + x1 = *cpx; + y1 = *cpy; + if (rel) { + x2 = *cpx + args[0]; + y2 = *cpy + args[1]; + } else { + x2 = args[0]; + y2 = args[1]; + } + + cx = 2*x1 - *cpx2; + cy = 2*y1 - *cpy2; + + /* Convert to cubix bezier */ + cx1 = x1 + 2.0f/3.0f*(cx - x1); + cy1 = y1 + 2.0f/3.0f*(cy - y1); + cx2 = x2 + 2.0f/3.0f*(cx - x2); + cy2 = y2 + 2.0f/3.0f*(cy - y2); + + nsvg__cubicBezTo(p, cx1,cy1, cx2,cy2, x2,y2); + + *cpx2 = cx; + *cpy2 = cy; + *cpx = x2; + *cpy = y2; +} + +static float nsvg__sqr(float x) { return x*x; } +static float nsvg__vmag(float x, float y) { return sqrtf(x*x + y*y); } + +static float nsvg__vecrat(float ux, float uy, float vx, float vy) +{ + return (ux*vx + uy*vy) / (nsvg__vmag(ux,uy) * nsvg__vmag(vx,vy)); +} + +static float nsvg__vecang(float ux, float uy, float vx, float vy) +{ + float r = nsvg__vecrat(ux,uy, vx,vy); + if (r < -1.0f) r = -1.0f; + if (r > 1.0f) r = 1.0f; + return ((ux*vy < uy*vx) ? -1.0f : 1.0f) * acosf(r); +} + +static void nsvg__pathArcTo(NSVGparser* p, float* cpx, float* cpy, float* args, int rel) +{ + /* Ported from canvg (https://code.google.com/p/canvg/) */ + float rx, ry, rotx; + float x1, y1, x2, y2, cx, cy, dx, dy, d; + float x1p, y1p, cxp, cyp, s, sa, sb; + float ux, uy, vx, vy, a1, da; + float x, y, tanx, tany, a, px = 0, py = 0, ptanx = 0, ptany = 0, t[6]; + float sinrx, cosrx; + int fa, fs; + int i, ndivs; + float hda, kappa; + + rx = fabsf(args[0]); /* y radius */ + ry = fabsf(args[1]); /* x radius */ + rotx = args[2] / 180.0f * NSVG_PI; /* x rotation angle */ + fa = fabsf(args[3]) > 1e-6 ? 1 : 0; /* Large arc */ + fs = fabsf(args[4]) > 1e-6 ? 1 : 0; /* Sweep direction */ + x1 = *cpx; /* start point */ + y1 = *cpy; + if (rel) { /* end point */ + x2 = *cpx + args[5]; + y2 = *cpy + args[6]; + } else { + x2 = args[5]; + y2 = args[6]; + } + + dx = x1 - x2; + dy = y1 - y2; + d = sqrtf(dx*dx + dy*dy); + if (d < 1e-6f || rx < 1e-6f || ry < 1e-6f) { + /* The arc degenerates to a line */ + nsvg__lineTo(p, x2, y2); + *cpx = x2; + *cpy = y2; + return; + } + + sinrx = sinf(rotx); + cosrx = cosf(rotx); + + /* Convert to center point parameterization. */ + /* http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes */ + /* 1) Compute x1', y1' */ + x1p = cosrx * dx / 2.0f + sinrx * dy / 2.0f; + y1p = -sinrx * dx / 2.0f + cosrx * dy / 2.0f; + d = nsvg__sqr(x1p)/nsvg__sqr(rx) + nsvg__sqr(y1p)/nsvg__sqr(ry); + if (d > 1) { + d = sqrtf(d); + rx *= d; + ry *= d; + } + /* 2) Compute cx', cy' */ + s = 0.0f; + sa = nsvg__sqr(rx)*nsvg__sqr(ry) - nsvg__sqr(rx)*nsvg__sqr(y1p) - nsvg__sqr(ry)*nsvg__sqr(x1p); + sb = nsvg__sqr(rx)*nsvg__sqr(y1p) + nsvg__sqr(ry)*nsvg__sqr(x1p); + if (sa < 0.0f) sa = 0.0f; + if (sb > 0.0f) + s = sqrtf(sa / sb); + if (fa == fs) + s = -s; + cxp = s * rx * y1p / ry; + cyp = s * -ry * x1p / rx; + + /* 3) Compute cx,cy from cx',cy' */ + cx = (x1 + x2)/2.0f + cosrx*cxp - sinrx*cyp; + cy = (y1 + y2)/2.0f + sinrx*cxp + cosrx*cyp; + + /* 4) Calculate theta1, and delta theta. */ + ux = (x1p - cxp) / rx; + uy = (y1p - cyp) / ry; + vx = (-x1p - cxp) / rx; + vy = (-y1p - cyp) / ry; + a1 = nsvg__vecang(1.0f,0.0f, ux,uy); /* Initial angle */ + da = nsvg__vecang(ux,uy, vx,vy); /* Delta angle */ + +/* if (vecrat(ux,uy,vx,vy) <= -1.0f) da = NSVG_PI; */ +/* if (vecrat(ux,uy,vx,vy) >= 1.0f) da = 0; */ + + if (fs == 0 && da > 0) + da -= 2 * NSVG_PI; + else if (fs == 1 && da < 0) + da += 2 * NSVG_PI; + + /* Approximate the arc using cubic spline segments. */ + t[0] = cosrx; t[1] = sinrx; + t[2] = -sinrx; t[3] = cosrx; + t[4] = cx; t[5] = cy; + + /* Split arc into max 90 degree segments. */ + /* The loop assumes an iteration per end point (including start and end), this +1. */ + ndivs = (int)(fabsf(da) / (NSVG_PI*0.5f) + 1.0f); + hda = (da / (float)ndivs) / 2.0f; + /* Fix for ticket #179: division by 0: avoid cotangens around 0 (infinite) */ + if ((hda < 1e-3f) && (hda > -1e-3f)) + hda *= 0.5f; + else + hda = (1.0f - cosf(hda)) / sinf(hda); + kappa = fabsf(4.0f / 3.0f * hda); + if (da < 0.0f) + kappa = -kappa; + + for (i = 0; i <= ndivs; i++) { + a = a1 + da * ((float)i/(float)ndivs); + dx = cosf(a); + dy = sinf(a); + nsvg__xformPoint(&x, &y, dx*rx, dy*ry, t); /* position */ + nsvg__xformVec(&tanx, &tany, -dy*rx * kappa, dx*ry * kappa, t); /* tangent */ + if (i > 0) + nsvg__cubicBezTo(p, px+ptanx,py+ptany, x-tanx, y-tany, x, y); + px = x; + py = y; + ptanx = tanx; + ptany = tany; + } + + *cpx = x2; + *cpy = y2; +} + +static void nsvg__parsePath(NSVGparser* p, const char** attr) +{ + const char* s = NULL; + char cmd = '\0'; + float args[10]; + int nargs; + int rargs = 0; + char initPoint; + float cpx, cpy, cpx2, cpy2; + const char* tmp[4]; + char closedFlag; + int i; + char item[64]; + + for (i = 0; attr[i]; i += 2) { + if (strcmp(attr[i], "d") == 0) { + s = attr[i + 1]; + } else { + tmp[0] = attr[i]; + tmp[1] = attr[i + 1]; + tmp[2] = 0; + tmp[3] = 0; + nsvg__parseAttribs(p, tmp); + } + } + + if (s) { + nsvg__resetPath(p); + cpx = 0; cpy = 0; + cpx2 = 0; cpy2 = 0; + initPoint = 0; + closedFlag = 0; + nargs = 0; + + while (*s) { + s = nsvg__getNextPathItem(s, item); + if (!*item) break; + if (cmd != '\0' && nsvg__isCoordinate(item)) { + if (nargs < 10) + args[nargs++] = (float)nsvg__atof(item); + if (nargs >= rargs) { + switch (cmd) { + case 'm': + case 'M': + nsvg__pathMoveTo(p, &cpx, &cpy, args, cmd == 'm' ? 1 : 0); + /* Moveto can be followed by multiple coordinate pairs, */ + /* which should be treated as linetos. */ + cmd = (cmd == 'm') ? 'l' : 'L'; + rargs = nsvg__getArgsPerElement(cmd); + cpx2 = cpx; cpy2 = cpy; + initPoint = 1; + break; + case 'l': + case 'L': + nsvg__pathLineTo(p, &cpx, &cpy, args, cmd == 'l' ? 1 : 0); + cpx2 = cpx; cpy2 = cpy; + break; + case 'H': + case 'h': + nsvg__pathHLineTo(p, &cpx, &cpy, args, cmd == 'h' ? 1 : 0); + cpx2 = cpx; cpy2 = cpy; + break; + case 'V': + case 'v': + nsvg__pathVLineTo(p, &cpx, &cpy, args, cmd == 'v' ? 1 : 0); + cpx2 = cpx; cpy2 = cpy; + break; + case 'C': + case 'c': + nsvg__pathCubicBezTo(p, &cpx, &cpy, &cpx2, &cpy2, args, cmd == 'c' ? 1 : 0); + break; + case 'S': + case 's': + nsvg__pathCubicBezShortTo(p, &cpx, &cpy, &cpx2, &cpy2, args, cmd == 's' ? 1 : 0); + break; + case 'Q': + case 'q': + nsvg__pathQuadBezTo(p, &cpx, &cpy, &cpx2, &cpy2, args, cmd == 'q' ? 1 : 0); + break; + case 'T': + case 't': + nsvg__pathQuadBezShortTo(p, &cpx, &cpy, &cpx2, &cpy2, args, cmd == 't' ? 1 : 0); + break; + case 'A': + case 'a': + nsvg__pathArcTo(p, &cpx, &cpy, args, cmd == 'a' ? 1 : 0); + cpx2 = cpx; cpy2 = cpy; + break; + default: + if (nargs >= 2) { + cpx = args[nargs-2]; + cpy = args[nargs-1]; + cpx2 = cpx; cpy2 = cpy; + } + break; + } + nargs = 0; + } + } else { + cmd = item[0]; + if (cmd == 'M' || cmd == 'm') { + /* Commit path. */ + if (p->npts > 0) + nsvg__addPath(p, closedFlag); + /* Start new subpath. */ + nsvg__resetPath(p); + closedFlag = 0; + nargs = 0; + } else if (initPoint == 0) { + /* Do not allow other commands until initial point has been set (moveTo called once). */ + cmd = '\0'; + } + if (cmd == 'Z' || cmd == 'z') { + closedFlag = 1; + /* Commit path. */ + if (p->npts > 0) { + /* Move current point to first point */ + cpx = p->pts[0]; + cpy = p->pts[1]; + cpx2 = cpx; cpy2 = cpy; + nsvg__addPath(p, closedFlag); + } + /* Start new subpath. */ + nsvg__resetPath(p); + nsvg__moveTo(p, cpx, cpy); + closedFlag = 0; + nargs = 0; + } + rargs = nsvg__getArgsPerElement(cmd); + if (rargs == -1) { + /* Command not recognized */ + cmd = '\0'; + rargs = 0; + } + } + } + /* Commit path. */ + if (p->npts) + nsvg__addPath(p, closedFlag); + } + + nsvg__addShape(p); +} + +static void nsvg__parseRect(NSVGparser* p, const char** attr) +{ + float x = 0.0f; + float y = 0.0f; + float w = 0.0f; + float h = 0.0f; + float rx = -1.0f; /* marks not set */ + float ry = -1.0f; + int i; + + for (i = 0; attr[i]; i += 2) { + if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { + if (strcmp(attr[i], "x") == 0) x = nsvg__parseCoordinate(p, attr[i+1], nsvg__actualOrigX(p), nsvg__actualWidth(p)); + if (strcmp(attr[i], "y") == 0) y = nsvg__parseCoordinate(p, attr[i+1], nsvg__actualOrigY(p), nsvg__actualHeight(p)); + if (strcmp(attr[i], "width") == 0) w = nsvg__parseCoordinate(p, attr[i+1], 0.0f, nsvg__actualWidth(p)); + if (strcmp(attr[i], "height") == 0) h = nsvg__parseCoordinate(p, attr[i+1], 0.0f, nsvg__actualHeight(p)); + if (strcmp(attr[i], "rx") == 0) rx = fabsf(nsvg__parseCoordinate(p, attr[i+1], 0.0f, nsvg__actualWidth(p))); + if (strcmp(attr[i], "ry") == 0) ry = fabsf(nsvg__parseCoordinate(p, attr[i+1], 0.0f, nsvg__actualHeight(p))); + } + } + + if (rx < 0.0f && ry > 0.0f) rx = ry; + if (ry < 0.0f && rx > 0.0f) ry = rx; + if (rx < 0.0f) rx = 0.0f; + if (ry < 0.0f) ry = 0.0f; + if (rx > w/2.0f) rx = w/2.0f; + if (ry > h/2.0f) ry = h/2.0f; + + if (w != 0.0f && h != 0.0f) { + nsvg__resetPath(p); + + if (rx < 0.00001f || ry < 0.0001f) { + nsvg__moveTo(p, x, y); + nsvg__lineTo(p, x+w, y); + nsvg__lineTo(p, x+w, y+h); + nsvg__lineTo(p, x, y+h); + } else { + /* Rounded rectangle */ + nsvg__moveTo(p, x+rx, y); + nsvg__lineTo(p, x+w-rx, y); + nsvg__cubicBezTo(p, x+w-rx*(1-NSVG_KAPPA90), y, x+w, y+ry*(1-NSVG_KAPPA90), x+w, y+ry); + nsvg__lineTo(p, x+w, y+h-ry); + nsvg__cubicBezTo(p, x+w, y+h-ry*(1-NSVG_KAPPA90), x+w-rx*(1-NSVG_KAPPA90), y+h, x+w-rx, y+h); + nsvg__lineTo(p, x+rx, y+h); + nsvg__cubicBezTo(p, x+rx*(1-NSVG_KAPPA90), y+h, x, y+h-ry*(1-NSVG_KAPPA90), x, y+h-ry); + nsvg__lineTo(p, x, y+ry); + nsvg__cubicBezTo(p, x, y+ry*(1-NSVG_KAPPA90), x+rx*(1-NSVG_KAPPA90), y, x+rx, y); + } + + nsvg__addPath(p, 1); + + nsvg__addShape(p); + } +} + +static void nsvg__parseCircle(NSVGparser* p, const char** attr) +{ + float cx = 0.0f; + float cy = 0.0f; + float r = 0.0f; + int i; + + for (i = 0; attr[i]; i += 2) { + if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { + if (strcmp(attr[i], "cx") == 0) cx = nsvg__parseCoordinate(p, attr[i+1], nsvg__actualOrigX(p), nsvg__actualWidth(p)); + if (strcmp(attr[i], "cy") == 0) cy = nsvg__parseCoordinate(p, attr[i+1], nsvg__actualOrigY(p), nsvg__actualHeight(p)); + if (strcmp(attr[i], "r") == 0) r = fabsf(nsvg__parseCoordinate(p, attr[i+1], 0.0f, nsvg__actualLength(p))); + } + } + + if (r > 0.0f) { + nsvg__resetPath(p); + + nsvg__moveTo(p, cx+r, cy); + nsvg__cubicBezTo(p, cx+r, cy+r*NSVG_KAPPA90, cx+r*NSVG_KAPPA90, cy+r, cx, cy+r); + nsvg__cubicBezTo(p, cx-r*NSVG_KAPPA90, cy+r, cx-r, cy+r*NSVG_KAPPA90, cx-r, cy); + nsvg__cubicBezTo(p, cx-r, cy-r*NSVG_KAPPA90, cx-r*NSVG_KAPPA90, cy-r, cx, cy-r); + nsvg__cubicBezTo(p, cx+r*NSVG_KAPPA90, cy-r, cx+r, cy-r*NSVG_KAPPA90, cx+r, cy); + + nsvg__addPath(p, 1); + + nsvg__addShape(p); + } +} + +static void nsvg__parseEllipse(NSVGparser* p, const char** attr) +{ + float cx = 0.0f; + float cy = 0.0f; + float rx = 0.0f; + float ry = 0.0f; + int i; + + for (i = 0; attr[i]; i += 2) { + if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { + if (strcmp(attr[i], "cx") == 0) cx = nsvg__parseCoordinate(p, attr[i+1], nsvg__actualOrigX(p), nsvg__actualWidth(p)); + if (strcmp(attr[i], "cy") == 0) cy = nsvg__parseCoordinate(p, attr[i+1], nsvg__actualOrigY(p), nsvg__actualHeight(p)); + if (strcmp(attr[i], "rx") == 0) rx = fabsf(nsvg__parseCoordinate(p, attr[i+1], 0.0f, nsvg__actualWidth(p))); + if (strcmp(attr[i], "ry") == 0) ry = fabsf(nsvg__parseCoordinate(p, attr[i+1], 0.0f, nsvg__actualHeight(p))); + } + } + + if (rx > 0.0f && ry > 0.0f) { + + nsvg__resetPath(p); + + nsvg__moveTo(p, cx+rx, cy); + nsvg__cubicBezTo(p, cx+rx, cy+ry*NSVG_KAPPA90, cx+rx*NSVG_KAPPA90, cy+ry, cx, cy+ry); + nsvg__cubicBezTo(p, cx-rx*NSVG_KAPPA90, cy+ry, cx-rx, cy+ry*NSVG_KAPPA90, cx-rx, cy); + nsvg__cubicBezTo(p, cx-rx, cy-ry*NSVG_KAPPA90, cx-rx*NSVG_KAPPA90, cy-ry, cx, cy-ry); + nsvg__cubicBezTo(p, cx+rx*NSVG_KAPPA90, cy-ry, cx+rx, cy-ry*NSVG_KAPPA90, cx+rx, cy); + + nsvg__addPath(p, 1); + + nsvg__addShape(p); + } +} + +static void nsvg__parseLine(NSVGparser* p, const char** attr) +{ + float x1 = 0.0; + float y1 = 0.0; + float x2 = 0.0; + float y2 = 0.0; + int i; + + for (i = 0; attr[i]; i += 2) { + if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { + if (strcmp(attr[i], "x1") == 0) x1 = nsvg__parseCoordinate(p, attr[i + 1], nsvg__actualOrigX(p), nsvg__actualWidth(p)); + if (strcmp(attr[i], "y1") == 0) y1 = nsvg__parseCoordinate(p, attr[i + 1], nsvg__actualOrigY(p), nsvg__actualHeight(p)); + if (strcmp(attr[i], "x2") == 0) x2 = nsvg__parseCoordinate(p, attr[i + 1], nsvg__actualOrigX(p), nsvg__actualWidth(p)); + if (strcmp(attr[i], "y2") == 0) y2 = nsvg__parseCoordinate(p, attr[i + 1], nsvg__actualOrigY(p), nsvg__actualHeight(p)); + } + } + + nsvg__resetPath(p); + + nsvg__moveTo(p, x1, y1); + nsvg__lineTo(p, x2, y2); + + nsvg__addPath(p, 0); + + nsvg__addShape(p); +} + +static void nsvg__parsePoly(NSVGparser* p, const char** attr, int closeFlag) +{ + int i; + const char* s; + float args[2]; + int nargs, npts = 0; + char item[64]; + + nsvg__resetPath(p); + + for (i = 0; attr[i]; i += 2) { + if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { + if (strcmp(attr[i], "points") == 0) { + s = attr[i + 1]; + nargs = 0; + while (*s) { + s = nsvg__getNextPathItem(s, item); + args[nargs++] = (float)nsvg__atof(item); + if (nargs >= 2) { + if (npts == 0) + nsvg__moveTo(p, args[0], args[1]); + else + nsvg__lineTo(p, args[0], args[1]); + nargs = 0; + npts++; + } + } + } + } + } + + nsvg__addPath(p, (char)closeFlag); + + nsvg__addShape(p); +} + +static void nsvg__parseSVG(NSVGparser* p, const char** attr) +{ + int i; + for (i = 0; attr[i]; i += 2) { + if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { + if (strcmp(attr[i], "width") == 0) { + p->image->width = nsvg__parseCoordinate(p, attr[i + 1], 0.0f, 0.0f); + } else if (strcmp(attr[i], "height") == 0) { + p->image->height = nsvg__parseCoordinate(p, attr[i + 1], 0.0f, 0.0f); + } else if (strcmp(attr[i], "viewBox") == 0) { + sscanf(attr[i + 1], "%f%*[%%, \t]%f%*[%%, \t]%f%*[%%, \t]%f", &p->viewMinx, &p->viewMiny, &p->viewWidth, &p->viewHeight); + } else if (strcmp(attr[i], "preserveAspectRatio") == 0) { + if (strstr(attr[i + 1], "none") != 0) { + /* No uniform scaling */ + p->alignType = NSVG_ALIGN_NONE; + } else { + /* Parse X align */ + if (strstr(attr[i + 1], "xMin") != 0) + p->alignX = NSVG_ALIGN_MIN; + else if (strstr(attr[i + 1], "xMid") != 0) + p->alignX = NSVG_ALIGN_MID; + else if (strstr(attr[i + 1], "xMax") != 0) + p->alignX = NSVG_ALIGN_MAX; + /* Parse X align */ + if (strstr(attr[i + 1], "yMin") != 0) + p->alignY = NSVG_ALIGN_MIN; + else if (strstr(attr[i + 1], "yMid") != 0) + p->alignY = NSVG_ALIGN_MID; + else if (strstr(attr[i + 1], "yMax") != 0) + p->alignY = NSVG_ALIGN_MAX; + /* Parse meet/slice */ + p->alignType = NSVG_ALIGN_MEET; + if (strstr(attr[i + 1], "slice") != 0) + p->alignType = NSVG_ALIGN_SLICE; + } + } + } + } +} + +static void nsvg__parseGradient(NSVGparser* p, const char** attr, char type) +{ + int i; + NSVGgradientData* grad = (NSVGgradientData*)NANOSVG_malloc(sizeof(NSVGgradientData)); + if (grad == NULL) return; + memset(grad, 0, sizeof(NSVGgradientData)); + grad->units = NSVG_OBJECT_SPACE; + grad->type = type; + if (grad->type == NSVG_PAINT_LINEAR_GRADIENT) { + grad->linear.x1 = nsvg__coord(0.0f, NSVG_UNITS_PERCENT); + grad->linear.y1 = nsvg__coord(0.0f, NSVG_UNITS_PERCENT); + grad->linear.x2 = nsvg__coord(100.0f, NSVG_UNITS_PERCENT); + grad->linear.y2 = nsvg__coord(0.0f, NSVG_UNITS_PERCENT); + } else if (grad->type == NSVG_PAINT_RADIAL_GRADIENT) { + grad->radial.cx = nsvg__coord(50.0f, NSVG_UNITS_PERCENT); + grad->radial.cy = nsvg__coord(50.0f, NSVG_UNITS_PERCENT); + grad->radial.r = nsvg__coord(50.0f, NSVG_UNITS_PERCENT); + } + + nsvg__xformIdentity(grad->xform); + + for (i = 0; attr[i]; i += 2) { + if (strcmp(attr[i], "id") == 0) { + strncpy(grad->id, attr[i+1], 63); + grad->id[63] = '\0'; + } else if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { + if (strcmp(attr[i], "gradientUnits") == 0) { + if (strcmp(attr[i+1], "objectBoundingBox") == 0) + grad->units = NSVG_OBJECT_SPACE; + else + grad->units = NSVG_USER_SPACE; + } else if (strcmp(attr[i], "gradientTransform") == 0) { + nsvg__parseTransform(grad->xform, attr[i + 1]); + } else if (strcmp(attr[i], "cx") == 0) { + grad->radial.cx = nsvg__parseCoordinateRaw(attr[i + 1]); + } else if (strcmp(attr[i], "cy") == 0) { + grad->radial.cy = nsvg__parseCoordinateRaw(attr[i + 1]); + } else if (strcmp(attr[i], "r") == 0) { + grad->radial.r = nsvg__parseCoordinateRaw(attr[i + 1]); + } else if (strcmp(attr[i], "fx") == 0) { + grad->radial.fx = nsvg__parseCoordinateRaw(attr[i + 1]); + } else if (strcmp(attr[i], "fy") == 0) { + grad->radial.fy = nsvg__parseCoordinateRaw(attr[i + 1]); + } else if (strcmp(attr[i], "x1") == 0) { + grad->linear.x1 = nsvg__parseCoordinateRaw(attr[i + 1]); + } else if (strcmp(attr[i], "y1") == 0) { + grad->linear.y1 = nsvg__parseCoordinateRaw(attr[i + 1]); + } else if (strcmp(attr[i], "x2") == 0) { + grad->linear.x2 = nsvg__parseCoordinateRaw(attr[i + 1]); + } else if (strcmp(attr[i], "y2") == 0) { + grad->linear.y2 = nsvg__parseCoordinateRaw(attr[i + 1]); + } else if (strcmp(attr[i], "spreadMethod") == 0) { + if (strcmp(attr[i+1], "pad") == 0) + grad->spread = NSVG_SPREAD_PAD; + else if (strcmp(attr[i+1], "reflect") == 0) + grad->spread = NSVG_SPREAD_REFLECT; + else if (strcmp(attr[i+1], "repeat") == 0) + grad->spread = NSVG_SPREAD_REPEAT; + } else if (strcmp(attr[i], "xlink:href") == 0) { + const char *href = attr[i+1]; + strncpy(grad->ref, href+1, 62); + grad->ref[62] = '\0'; + } + } + } + + grad->next = p->gradients; + p->gradients = grad; +} + +static void nsvg__parseGradientStop(NSVGparser* p, const char** attr) +{ + NSVGattrib* curAttr = nsvg__getAttr(p); + NSVGgradientData* grad; + NSVGgradientStop* stop; + int i, idx; + + curAttr->stopOffset = 0; + curAttr->stopColor = 0; + curAttr->stopOpacity = 1.0f; + + for (i = 0; attr[i]; i += 2) { + nsvg__parseAttr(p, attr[i], attr[i + 1]); + } + + /* Add stop to the last gradient. */ + grad = p->gradients; + if (grad == NULL) return; + + grad->nstops++; + grad->stops = (NSVGgradientStop*)NANOSVG_realloc(grad->stops, sizeof(NSVGgradientStop)*grad->nstops); + if (grad->stops == NULL) return; + + /* Insert */ + idx = grad->nstops-1; + for (i = 0; i < grad->nstops-1; i++) { + if (curAttr->stopOffset < grad->stops[i].offset) { + idx = i; + break; + } + } + if (idx != grad->nstops-1) { + for (i = grad->nstops-1; i > idx; i--) + grad->stops[i] = grad->stops[i-1]; + } + + stop = &grad->stops[idx]; + stop->color = curAttr->stopColor; + stop->color |= (unsigned int)(curAttr->stopOpacity*255) << 24; + stop->offset = curAttr->stopOffset; +} + +static void nsvg__startElement(void* ud, const char* el, const char** attr) +{ + NSVGparser* p = (NSVGparser*)ud; + + if (p->defsFlag) { + /* Skip everything but gradients in defs */ + if (strcmp(el, "linearGradient") == 0) { + nsvg__parseGradient(p, attr, NSVG_PAINT_LINEAR_GRADIENT); + } else if (strcmp(el, "radialGradient") == 0) { + nsvg__parseGradient(p, attr, NSVG_PAINT_RADIAL_GRADIENT); + } else if (strcmp(el, "stop") == 0) { + nsvg__parseGradientStop(p, attr); + } + return; + } + + if (strcmp(el, "g") == 0) { + nsvg__pushAttr(p); + nsvg__parseAttribs(p, attr); + } else if (strcmp(el, "path") == 0) { + if (p->pathFlag) /* Do not allow nested paths. */ + return; + nsvg__pushAttr(p); + nsvg__parsePath(p, attr); + nsvg__popAttr(p); + } else if (strcmp(el, "rect") == 0) { + nsvg__pushAttr(p); + nsvg__parseRect(p, attr); + nsvg__popAttr(p); + } else if (strcmp(el, "circle") == 0) { + nsvg__pushAttr(p); + nsvg__parseCircle(p, attr); + nsvg__popAttr(p); + } else if (strcmp(el, "ellipse") == 0) { + nsvg__pushAttr(p); + nsvg__parseEllipse(p, attr); + nsvg__popAttr(p); + } else if (strcmp(el, "line") == 0) { + nsvg__pushAttr(p); + nsvg__parseLine(p, attr); + nsvg__popAttr(p); + } else if (strcmp(el, "polyline") == 0) { + nsvg__pushAttr(p); + nsvg__parsePoly(p, attr, 0); + nsvg__popAttr(p); + } else if (strcmp(el, "polygon") == 0) { + nsvg__pushAttr(p); + nsvg__parsePoly(p, attr, 1); + nsvg__popAttr(p); + } else if (strcmp(el, "linearGradient") == 0) { + nsvg__parseGradient(p, attr, NSVG_PAINT_LINEAR_GRADIENT); + } else if (strcmp(el, "radialGradient") == 0) { + nsvg__parseGradient(p, attr, NSVG_PAINT_RADIAL_GRADIENT); + } else if (strcmp(el, "stop") == 0) { + nsvg__parseGradientStop(p, attr); + } else if (strcmp(el, "defs") == 0) { + p->defsFlag = 1; + } else if (strcmp(el, "svg") == 0) { + nsvg__parseSVG(p, attr); + } else if (strcmp(el, "style") == 0) { + p->styleFlag = 1; + } +} + +static void nsvg__endElement(void* ud, const char* el) +{ + NSVGparser* p = (NSVGparser*)ud; + + if (strcmp(el, "g") == 0) { + nsvg__popAttr(p); + } else if (strcmp(el, "path") == 0) { + p->pathFlag = 0; + } else if (strcmp(el, "defs") == 0) { + p->defsFlag = 0; + } else if (strcmp(el, "style") == 0) { + p->styleFlag = 0; + } +} + +static char *nsvg__strndup(const char *s, size_t n) +{ + char *result; + size_t len = strlen(s); + + if (n < len) + len = n; + + result = (char*)NANOSVG_malloc(len+1); + if (!result) + return 0; + + result[len] = '\0'; + return (char *)memcpy(result, s, len); +} + +static void nsvg__content(void* ud, const char* s) +{ + NSVGparser* p = (NSVGparser*)ud; + if (p->styleFlag) { + + int state = 0; + const char* start = NULL; + while (*s) { + char c = *s; + if (nsvg__isspace(c) || c == '{') { + if (state == 1) { + NSVGstyles* next = p->styles; + + p->styles = (NSVGstyles*)NANOSVG_malloc(sizeof(NSVGstyles)); + p->styles->next = next; + p->styles->name = nsvg__strndup(start, (size_t)(s - start)); + start = s + 1; + state = 2; + } + } else if (state == 2 && c == '}') { + p->styles->description = nsvg__strndup(start, (size_t)(s - start)); + state = 0; + } + else if (state == 0) { + start = s; + state = 1; + } + s++; + /* + if (*s == '{' && state == NSVG_XML_CONTENT) { + // Start of a tag + *s++ = '\0'; + nsvg__parseContent(mark, contentCb, ud); + mark = s; + state = NSVG_XML_TAG; + } + else if (*s == '>' && state == NSVG_XML_TAG) { + // Start of a content or new tag. + *s++ = '\0'; + nsvg__parseElement(mark, startelCb, endelCb, ud); + mark = s; + state = NSVG_XML_CONTENT; + } + else { + s++; + } + */ + } + + } +} + +static void nsvg__imageBounds(NSVGparser* p, float* bounds) +{ + NSVGshape* shape; + shape = p->image->shapes; + if (shape == NULL) { + bounds[0] = bounds[1] = bounds[2] = bounds[3] = 0.0; + return; + } + bounds[0] = shape->bounds[0]; + bounds[1] = shape->bounds[1]; + bounds[2] = shape->bounds[2]; + bounds[3] = shape->bounds[3]; + for (shape = shape->next; shape != NULL; shape = shape->next) { + bounds[0] = nsvg__minf(bounds[0], shape->bounds[0]); + bounds[1] = nsvg__minf(bounds[1], shape->bounds[1]); + bounds[2] = nsvg__maxf(bounds[2], shape->bounds[2]); + bounds[3] = nsvg__maxf(bounds[3], shape->bounds[3]); + } +} + +static float nsvg__viewAlign(float content, float container, int type) +{ + if (type == NSVG_ALIGN_MIN) + return 0; + else if (type == NSVG_ALIGN_MAX) + return container - content; + /* mid */ + return (container - content) * 0.5f; +} + +static void nsvg__scaleGradient(NSVGgradient* grad, float tx, float ty, float sx, float sy) +{ + float t[6]; + nsvg__xformSetTranslation(t, tx, ty); + nsvg__xformMultiply (grad->xform, t); + + nsvg__xformSetScale(t, sx, sy); + nsvg__xformMultiply (grad->xform, t); +} + +static void nsvg__scaleToViewbox(NSVGparser* p, const char* units) +{ + NSVGshape* shape; + NSVGpath* path; + float tx, ty, sx, sy, us, bounds[4], t[6], avgs; + int i; + float* pt; + + /* Guess image size if not set completely. */ + nsvg__imageBounds(p, bounds); + + if (p->viewWidth == 0) { + if (p->image->width > 0) { + p->viewWidth = p->image->width; + } else { + p->viewMinx = bounds[0]; + p->viewWidth = bounds[2] - bounds[0]; + } + } + if (p->viewHeight == 0) { + if (p->image->height > 0) { + p->viewHeight = p->image->height; + } else { + p->viewMiny = bounds[1]; + p->viewHeight = bounds[3] - bounds[1]; + } + } + if (p->image->width == 0) + p->image->width = p->viewWidth; + if (p->image->height == 0) + p->image->height = p->viewHeight; + + tx = -p->viewMinx; + ty = -p->viewMiny; + sx = p->viewWidth > 0 ? p->image->width / p->viewWidth : 0; + sy = p->viewHeight > 0 ? p->image->height / p->viewHeight : 0; + /* Unit scaling */ + us = 1.0f / nsvg__convertToPixels(p, nsvg__coord(1.0f, nsvg__parseUnits(units)), 0.0f, 1.0f); + + /* Fix aspect ratio */ + if (p->alignType == NSVG_ALIGN_MEET) { + /* fit whole image into viewbox */ + sx = sy = nsvg__minf(sx, sy); + tx += nsvg__viewAlign(p->viewWidth*sx, p->image->width, p->alignX) / sx; + ty += nsvg__viewAlign(p->viewHeight*sy, p->image->height, p->alignY) / sy; + } else if (p->alignType == NSVG_ALIGN_SLICE) { + /* fill whole viewbox with image */ + sx = sy = nsvg__maxf(sx, sy); + tx += nsvg__viewAlign(p->viewWidth*sx, p->image->width, p->alignX) / sx; + ty += nsvg__viewAlign(p->viewHeight*sy, p->image->height, p->alignY) / sy; + } + + /* Transform */ + sx *= us; + sy *= us; + avgs = (sx+sy) / 2.0f; + for (shape = p->image->shapes; shape != NULL; shape = shape->next) { + shape->bounds[0] = (shape->bounds[0] + tx) * sx; + shape->bounds[1] = (shape->bounds[1] + ty) * sy; + shape->bounds[2] = (shape->bounds[2] + tx) * sx; + shape->bounds[3] = (shape->bounds[3] + ty) * sy; + for (path = shape->paths; path != NULL; path = path->next) { + path->bounds[0] = (path->bounds[0] + tx) * sx; + path->bounds[1] = (path->bounds[1] + ty) * sy; + path->bounds[2] = (path->bounds[2] + tx) * sx; + path->bounds[3] = (path->bounds[3] + ty) * sy; + for (i =0; i < path->npts; i++) { + pt = &path->pts[i*2]; + pt[0] = (pt[0] + tx) * sx; + pt[1] = (pt[1] + ty) * sy; + } + } + + if (shape->fill.type == NSVG_PAINT_LINEAR_GRADIENT || shape->fill.type == NSVG_PAINT_RADIAL_GRADIENT) { + nsvg__scaleGradient(shape->fill.gradient, tx,ty, sx,sy); + memcpy(t, shape->fill.gradient->xform, sizeof(float)*6); + nsvg__xformInverse(shape->fill.gradient->xform, t); + } + if (shape->stroke.type == NSVG_PAINT_LINEAR_GRADIENT || shape->stroke.type == NSVG_PAINT_RADIAL_GRADIENT) { + nsvg__scaleGradient(shape->stroke.gradient, tx,ty, sx,sy); + memcpy(t, shape->stroke.gradient->xform, sizeof(float)*6); + nsvg__xformInverse(shape->stroke.gradient->xform, t); + } + + shape->strokeWidth *= avgs; + shape->strokeDashOffset *= avgs; + for (i = 0; i < shape->strokeDashCount; i++) + shape->strokeDashArray[i] *= avgs; + } +} + +NANOSVG_SCOPE +NSVGimage* nsvgParse(char* input, const char* units, float dpi) +{ + NSVGparser* p; + NSVGimage* ret = 0; + + p = nsvg__createParser(); + if (p == NULL) { + return NULL; + } + p->dpi = dpi; + + nsvg__parseXML(input, nsvg__startElement, nsvg__endElement, nsvg__content, p); + + /* Scale to viewBox */ + nsvg__scaleToViewbox(p, units); + + ret = p->image; + p->image = NULL; + + nsvg__deleteParser(p); + + return ret; +} + +NANOSVG_SCOPE +NSVGimage* nsvgParseFromFile(const char* filename, const char* units, float dpi) +{ + FILE* fp = NULL; + size_t size; + char* data = NULL; + NSVGimage* image = NULL; + + fp = fopen(filename, "rb"); + if (!fp) goto error; + fseek(fp, 0, SEEK_END); + size = ftell(fp); + fseek(fp, 0, SEEK_SET); + data = (char*)NANOSVG_malloc(size+1); + if (data == NULL) goto error; + if (fread(data, 1, size, fp) != size) goto error; + data[size] = '\0'; /* Must be null terminated. */ + fclose(fp); + image = nsvgParse(data, units, dpi); + NANOSVG_free(data); + + return image; + +error: + if (fp) fclose(fp); + if (data) NANOSVG_free(data); + if (image) nsvgDelete(image); + return NULL; +} + +NANOSVG_SCOPE +void nsvgDelete(NSVGimage* image) +{ + NSVGshape *snext, *shape; + if (image == NULL) return; + shape = image->shapes; + while (shape != NULL) { + snext = shape->next; + nsvg__deletePaths(shape->paths); + nsvg__deletePaint(&shape->fill); + nsvg__deletePaint(&shape->stroke); + NANOSVG_free(shape); + shape = snext; + } + NANOSVG_free(image); +} + +#endif diff -Nru saods9-8.2+repack/tksvg/generic/nanosvgrast.h saods9-8.3+repack/tksvg/generic/nanosvgrast.h --- saods9-8.2+repack/tksvg/generic/nanosvgrast.h 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/generic/nanosvgrast.h 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,1469 @@ +/* + * Copyright (c) 2013-14 Mikko Mononen memon@inside.org + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + * The polygon rasterization is heavily based on stb_truetype rasterizer + * by Sean Barrett - http://nothings.org/ + * + */ + +#ifndef NANOSVGRAST_H +#define NANOSVGRAST_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef NANOSVG_SCOPE +#define NANOSVG_SCOPE +#endif + +#ifndef NANOSVG_malloc +#define NANOSVG_malloc malloc +#endif + +#ifndef NANOSVG_realloc +#define NANOSVG_realloc realloc +#endif + +#ifndef NANOSVG_free +#define NANOSVG_free free +#endif + +typedef struct NSVGrasterizer NSVGrasterizer; + +/* Example Usage: + // Load SVG + struct SNVGImage* image = nsvgParseFromFile("test.svg."); + + // Create rasterizer (can be used to render multiple images). + struct NSVGrasterizer* rast = nsvgCreateRasterizer(); + // Allocate memory for image + unsigned char* img = malloc(w*h*4); + // Rasterize + nsvgRasterize(rast, image, 0,0,1, img, w, h, w*4); +*/ + +/* Allocated rasterizer context. */ +NANOSVG_SCOPE NSVGrasterizer* nsvgCreateRasterizer(void); + +/* Rasterizes SVG image, returns RGBA image (non-premultiplied alpha) + * r - pointer to rasterizer context + * image - pointer to image to rasterize + * tx,ty - image offset (applied after scaling) + * scale - image scale + * dst - pointer to destination image data, 4 bytes per pixel (RGBA) + * w - width of the image to render + * h - height of the image to render + * stride - number of bytes per scaleline in the destination buffer +NANOSVG_SCOPE void nsvgRasterize(NSVGrasterizer* r, + NSVGimage* image, float tx, float ty, float scale, + unsigned char* dst, int w, int h, int stride); + */ + +/* Deletes rasterizer context. */ +NANOSVG_SCOPE void nsvgDeleteRasterizer(NSVGrasterizer*); + + +#ifdef __cplusplus +} +#endif + +#endif /* NANOSVGRAST_H */ + +#ifdef NANOSVGRAST_IMPLEMENTATION + +#include + +#define NSVG__SUBSAMPLES 5 +#define NSVG__FIXSHIFT 10 +#define NSVG__FIX (1 << NSVG__FIXSHIFT) +#define NSVG__FIXMASK (NSVG__FIX-1) +#define NSVG__MEMPAGE_SIZE 1024 + +typedef struct NSVGedge { + float x0,y0, x1,y1; + int dir; + struct NSVGedge* next; +} NSVGedge; + +typedef struct NSVGpoint { + float x, y; + float dx, dy; + float len; + float dmx, dmy; + unsigned char flags; +} NSVGpoint; + +typedef struct NSVGactiveEdge { + int x,dx; + float ey; + int dir; + struct NSVGactiveEdge *next; +} NSVGactiveEdge; + +typedef struct NSVGmemPage { + unsigned char mem[NSVG__MEMPAGE_SIZE]; + int size; + struct NSVGmemPage* next; +} NSVGmemPage; + +typedef struct NSVGcachedPaint { + char type; + char spread; + float xform[6]; + unsigned int colors[256]; +} NSVGcachedPaint; + +struct NSVGrasterizer +{ + float px, py; + + float tessTol; + float distTol; + + NSVGedge* edges; + int nedges; + int cedges; + + NSVGpoint* points; + int npoints; + int cpoints; + + NSVGpoint* points2; + int npoints2; + int cpoints2; + + NSVGactiveEdge* freelist; + NSVGmemPage* pages; + NSVGmemPage* curpage; + + unsigned char* scanline; + int cscanline; + + unsigned char* bitmap; + int width, height, stride; +}; + +NANOSVG_SCOPE +NSVGrasterizer* nsvgCreateRasterizer(void) +{ + NSVGrasterizer* r = (NSVGrasterizer*)NANOSVG_malloc(sizeof(NSVGrasterizer)); + if (r == NULL) goto error; + memset(r, 0, sizeof(NSVGrasterizer)); + + r->tessTol = 0.25f; + r->distTol = 0.01f; + + return r; + +error: + nsvgDeleteRasterizer(r); + return NULL; +} + +NANOSVG_SCOPE +void nsvgDeleteRasterizer(NSVGrasterizer* r) +{ + NSVGmemPage* p; + + if (r == NULL) return; + + p = r->pages; + while (p != NULL) { + NSVGmemPage* next = p->next; + NANOSVG_free(p); + p = next; + } + + if (r->edges) NANOSVG_free(r->edges); + if (r->points) NANOSVG_free(r->points); + if (r->points2) NANOSVG_free(r->points2); + if (r->scanline) NANOSVG_free(r->scanline); + + NANOSVG_free(r); +} + +static NSVGmemPage* nsvg__nextPage(NSVGrasterizer* r, NSVGmemPage* cur) +{ + NSVGmemPage *newp; + + /* If using existing chain, return the next page in chain */ + if (cur != NULL && cur->next != NULL) { + return cur->next; + } + + /* Alloc new page */ + newp = (NSVGmemPage*)NANOSVG_malloc(sizeof(NSVGmemPage)); + if (newp == NULL) return NULL; + memset(newp, 0, sizeof(NSVGmemPage)); + + /* Add to linked list */ + if (cur != NULL) + cur->next = newp; + else + r->pages = newp; + + return newp; +} + +static void nsvg__resetPool(NSVGrasterizer* r) +{ + NSVGmemPage* p = r->pages; + while (p != NULL) { + p->size = 0; + p = p->next; + } + r->curpage = r->pages; +} + +static unsigned char* nsvg__alloc(NSVGrasterizer* r, int size) +{ + unsigned char* buf; + if (size > NSVG__MEMPAGE_SIZE) return NULL; + if (r->curpage == NULL || r->curpage->size+size > NSVG__MEMPAGE_SIZE) { + r->curpage = nsvg__nextPage(r, r->curpage); + } + buf = &r->curpage->mem[r->curpage->size]; + r->curpage->size += size; + return buf; +} + +static int nsvg__ptEquals(float x1, float y1, float x2, float y2, float tol) +{ + float dx = x2 - x1; + float dy = y2 - y1; + return dx*dx + dy*dy < tol*tol; +} + +static void nsvg__addPathPoint(NSVGrasterizer* r, float x, float y, int flags) +{ + NSVGpoint* pt; + + if (r->npoints > 0) { + pt = &r->points[r->npoints-1]; + if (nsvg__ptEquals(pt->x,pt->y, x,y, r->distTol)) { + pt->flags = (unsigned char)(pt->flags | flags); + return; + } + } + + if (r->npoints+1 > r->cpoints) { + r->cpoints = r->cpoints > 0 ? r->cpoints * 2 : 64; + r->points = (NSVGpoint*)NANOSVG_realloc(r->points, sizeof(NSVGpoint) * r->cpoints); + if (r->points == NULL) return; + } + + pt = &r->points[r->npoints]; + pt->x = x; + pt->y = y; + pt->flags = (unsigned char)flags; + r->npoints++; +} + +static void nsvg__appendPathPoint(NSVGrasterizer* r, NSVGpoint pt) +{ + if (r->npoints+1 > r->cpoints) { + r->cpoints = r->cpoints > 0 ? r->cpoints * 2 : 64; + r->points = (NSVGpoint*)NANOSVG_realloc(r->points, sizeof(NSVGpoint) * r->cpoints); + if (r->points == NULL) return; + } + r->points[r->npoints] = pt; + r->npoints++; +} + +static void nsvg__duplicatePoints(NSVGrasterizer* r) +{ + if (r->npoints > r->cpoints2) { + r->cpoints2 = r->npoints; + r->points2 = (NSVGpoint*)NANOSVG_realloc(r->points2, sizeof(NSVGpoint) * r->cpoints2); + if (r->points2 == NULL) return; + } + + memcpy(r->points2, r->points, sizeof(NSVGpoint) * r->npoints); + r->npoints2 = r->npoints; +} + +static void nsvg__addEdge(NSVGrasterizer* r, float x0, float y0, float x1, float y1) +{ + NSVGedge* e; + + /* Skip horizontal edges */ + if (y0 == y1) + return; + + if (r->nedges+1 > r->cedges) { + r->cedges = r->cedges > 0 ? r->cedges * 2 : 64; + r->edges = (NSVGedge*)NANOSVG_realloc(r->edges, sizeof(NSVGedge) * r->cedges); + if (r->edges == NULL) return; + } + + e = &r->edges[r->nedges]; + r->nedges++; + + if (y0 < y1) { + e->x0 = x0; + e->y0 = y0; + e->x1 = x1; + e->y1 = y1; + e->dir = 1; + } else { + e->x0 = x1; + e->y0 = y1; + e->x1 = x0; + e->y1 = y0; + e->dir = -1; + } +} + +static float nsvg__normalize(float *x, float* y) +{ + float d = sqrtf((*x)*(*x) + (*y)*(*y)); + if (d > 1e-6f) { + float id = 1.0f / d; + *x *= id; + *y *= id; + } + return d; +} + +static float nsvg__absf(float x) { return x < 0 ? -x : x; } + +static void nsvg__flattenCubicBez(NSVGrasterizer* r, + float x1, float y1, float x2, float y2, + float x3, float y3, float x4, float y4, + int level, int type) +{ + float x12,y12,x23,y23,x34,y34,x123,y123,x234,y234,x1234,y1234; + float dx,dy,d2,d3; + + if (level > 10) return; + + x12 = (x1+x2)*0.5f; + y12 = (y1+y2)*0.5f; + x23 = (x2+x3)*0.5f; + y23 = (y2+y3)*0.5f; + x34 = (x3+x4)*0.5f; + y34 = (y3+y4)*0.5f; + x123 = (x12+x23)*0.5f; + y123 = (y12+y23)*0.5f; + + dx = x4 - x1; + dy = y4 - y1; + d2 = nsvg__absf(((x2 - x4) * dy - (y2 - y4) * dx)); + d3 = nsvg__absf(((x3 - x4) * dy - (y3 - y4) * dx)); + + if ((d2 + d3)*(d2 + d3) < r->tessTol * (dx*dx + dy*dy)) { + nsvg__addPathPoint(r, x4, y4, type); + return; + } + + x234 = (x23+x34)*0.5f; + y234 = (y23+y34)*0.5f; + x1234 = (x123+x234)*0.5f; + y1234 = (y123+y234)*0.5f; + + nsvg__flattenCubicBez(r, x1,y1, x12,y12, x123,y123, x1234,y1234, level+1, 0); + nsvg__flattenCubicBez(r, x1234,y1234, x234,y234, x34,y34, x4,y4, level+1, type); +} + +static void nsvg__flattenShape(NSVGrasterizer* r, NSVGshape* shape, float scale) +{ + int i, j; + NSVGpath* path; + + for (path = shape->paths; path != NULL; path = path->next) { + r->npoints = 0; + /* Flatten path */ + nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, 0); + for (i = 0; i < path->npts-1; i += 3) { + float* p = &path->pts[i*2]; + nsvg__flattenCubicBez(r, p[0]*scale,p[1]*scale, p[2]*scale,p[3]*scale, p[4]*scale,p[5]*scale, p[6]*scale,p[7]*scale, 0, 0); + } + /* Close path */ + nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, 0); + /* Build edges */ + for (i = 0, j = r->npoints-1; i < r->npoints; j = i++) + nsvg__addEdge(r, r->points[j].x, r->points[j].y, r->points[i].x, r->points[i].y); + } +} + +enum NSVGpointFlags +{ + NSVG_PT_CORNER = 0x01, + NSVG_PT_BEVEL = 0x02, + NSVG_PT_LEFT = 0x04 +}; + +static void nsvg__initClosed(NSVGpoint* left, NSVGpoint* right, NSVGpoint* p0, NSVGpoint* p1, float lineWidth) +{ + float w = lineWidth * 0.5f; + float dx = p1->x - p0->x; + float dy = p1->y - p0->y; + float len = nsvg__normalize(&dx, &dy); + float px = p0->x + dx*len*0.5f, py = p0->y + dy*len*0.5f; + float dlx = dy, dly = -dx; + float lx = px - dlx*w, ly = py - dly*w; + float rx = px + dlx*w, ry = py + dly*w; + left->x = lx; left->y = ly; + right->x = rx; right->y = ry; +} + +static void nsvg__buttCap(NSVGrasterizer* r, NSVGpoint* left, NSVGpoint* right, NSVGpoint* p, float dx, float dy, float lineWidth, int connect) +{ + float w = lineWidth * 0.5f; + float px = p->x, py = p->y; + float dlx = dy, dly = -dx; + float lx = px - dlx*w, ly = py - dly*w; + float rx = px + dlx*w, ry = py + dly*w; + + nsvg__addEdge(r, lx, ly, rx, ry); + + if (connect) { + nsvg__addEdge(r, left->x, left->y, lx, ly); + nsvg__addEdge(r, rx, ry, right->x, right->y); + } + left->x = lx; left->y = ly; + right->x = rx; right->y = ry; +} + +static void nsvg__squareCap(NSVGrasterizer* r, NSVGpoint* left, NSVGpoint* right, NSVGpoint* p, float dx, float dy, float lineWidth, int connect) +{ + float w = lineWidth * 0.5f; + float px = p->x - dx*w, py = p->y - dy*w; + float dlx = dy, dly = -dx; + float lx = px - dlx*w, ly = py - dly*w; + float rx = px + dlx*w, ry = py + dly*w; + + nsvg__addEdge(r, lx, ly, rx, ry); + + if (connect) { + nsvg__addEdge(r, left->x, left->y, lx, ly); + nsvg__addEdge(r, rx, ry, right->x, right->y); + } + left->x = lx; left->y = ly; + right->x = rx; right->y = ry; +} + +#ifndef NSVG_PI +#define NSVG_PI (3.14159265358979323846264338327f) +#endif + +static void nsvg__roundCap(NSVGrasterizer* r, NSVGpoint* left, NSVGpoint* right, NSVGpoint* p, float dx, float dy, float lineWidth, int ncap, int connect) +{ + int i; + float w = lineWidth * 0.5f; + float px = p->x, py = p->y; + float dlx = dy, dly = -dx; + float lx = 0, ly = 0, rx = 0, ry = 0, prevx = 0, prevy = 0; + + for (i = 0; i < ncap; i++) { + float a = (float)i/(float)(ncap-1)*NSVG_PI; + float ax = cosf(a) * w, ay = sinf(a) * w; + float x = px - dlx*ax - dx*ay; + float y = py - dly*ax - dy*ay; + + if (i > 0) + nsvg__addEdge(r, prevx, prevy, x, y); + + prevx = x; + prevy = y; + + if (i == 0) { + lx = x; ly = y; + } else if (i == ncap-1) { + rx = x; ry = y; + } + } + + if (connect) { + nsvg__addEdge(r, left->x, left->y, lx, ly); + nsvg__addEdge(r, rx, ry, right->x, right->y); + } + + left->x = lx; left->y = ly; + right->x = rx; right->y = ry; +} + +static void nsvg__bevelJoin(NSVGrasterizer* r, NSVGpoint* left, NSVGpoint* right, NSVGpoint* p0, NSVGpoint* p1, float lineWidth) +{ + float w = lineWidth * 0.5f; + float dlx0 = p0->dy, dly0 = -p0->dx; + float dlx1 = p1->dy, dly1 = -p1->dx; + float lx0 = p1->x - (dlx0 * w), ly0 = p1->y - (dly0 * w); + float rx0 = p1->x + (dlx0 * w), ry0 = p1->y + (dly0 * w); + float lx1 = p1->x - (dlx1 * w), ly1 = p1->y - (dly1 * w); + float rx1 = p1->x + (dlx1 * w), ry1 = p1->y + (dly1 * w); + + nsvg__addEdge(r, lx0, ly0, left->x, left->y); + nsvg__addEdge(r, lx1, ly1, lx0, ly0); + + nsvg__addEdge(r, right->x, right->y, rx0, ry0); + nsvg__addEdge(r, rx0, ry0, rx1, ry1); + + left->x = lx1; left->y = ly1; + right->x = rx1; right->y = ry1; +} + +static void nsvg__miterJoin(NSVGrasterizer* r, NSVGpoint* left, NSVGpoint* right, NSVGpoint* p0, NSVGpoint* p1, float lineWidth) +{ + float w = lineWidth * 0.5f; + float dlx0 = p0->dy, dly0 = -p0->dx; + float dlx1 = p1->dy, dly1 = -p1->dx; + float lx0, rx0, lx1, rx1; + float ly0, ry0, ly1, ry1; + + if (p1->flags & NSVG_PT_LEFT) { + lx0 = lx1 = p1->x - p1->dmx * w; + ly0 = ly1 = p1->y - p1->dmy * w; + nsvg__addEdge(r, lx1, ly1, left->x, left->y); + + rx0 = p1->x + (dlx0 * w); + ry0 = p1->y + (dly0 * w); + rx1 = p1->x + (dlx1 * w); + ry1 = p1->y + (dly1 * w); + nsvg__addEdge(r, right->x, right->y, rx0, ry0); + nsvg__addEdge(r, rx0, ry0, rx1, ry1); + } else { + lx0 = p1->x - (dlx0 * w); + ly0 = p1->y - (dly0 * w); + lx1 = p1->x - (dlx1 * w); + ly1 = p1->y - (dly1 * w); + nsvg__addEdge(r, lx0, ly0, left->x, left->y); + nsvg__addEdge(r, lx1, ly1, lx0, ly0); + + rx0 = rx1 = p1->x + p1->dmx * w; + ry0 = ry1 = p1->y + p1->dmy * w; + nsvg__addEdge(r, right->x, right->y, rx1, ry1); + } + + left->x = lx1; left->y = ly1; + right->x = rx1; right->y = ry1; +} + +static void nsvg__roundJoin(NSVGrasterizer* r, NSVGpoint* left, NSVGpoint* right, NSVGpoint* p0, NSVGpoint* p1, float lineWidth, int ncap) +{ + int i, n; + float w = lineWidth * 0.5f; + float dlx0 = p0->dy, dly0 = -p0->dx; + float dlx1 = p1->dy, dly1 = -p1->dx; + float a0 = atan2f(dly0, dlx0); + float a1 = atan2f(dly1, dlx1); + float da = a1 - a0; + float lx, ly, rx, ry; + + if (da < NSVG_PI) da += NSVG_PI*2; + if (da > NSVG_PI) da -= NSVG_PI*2; + + n = (int)ceilf((nsvg__absf(da) / NSVG_PI) * (float)ncap); + if (n < 2) n = 2; + if (n > ncap) n = ncap; + + lx = left->x; + ly = left->y; + rx = right->x; + ry = right->y; + + for (i = 0; i < n; i++) { + float u = (float)i/(float)(n-1); + float a = a0 + u*da; + float ax = cosf(a) * w, ay = sinf(a) * w; + float lx1 = p1->x - ax, ly1 = p1->y - ay; + float rx1 = p1->x + ax, ry1 = p1->y + ay; + + nsvg__addEdge(r, lx1, ly1, lx, ly); + nsvg__addEdge(r, rx, ry, rx1, ry1); + + lx = lx1; ly = ly1; + rx = rx1; ry = ry1; + } + + left->x = lx; left->y = ly; + right->x = rx; right->y = ry; +} + +static void nsvg__straightJoin(NSVGrasterizer* r, NSVGpoint* left, NSVGpoint* right, NSVGpoint* p1, float lineWidth) +{ + float w = lineWidth * 0.5f; + float lx = p1->x - (p1->dmx * w), ly = p1->y - (p1->dmy * w); + float rx = p1->x + (p1->dmx * w), ry = p1->y + (p1->dmy * w); + + nsvg__addEdge(r, lx, ly, left->x, left->y); + nsvg__addEdge(r, right->x, right->y, rx, ry); + + left->x = lx; left->y = ly; + right->x = rx; right->y = ry; +} + +static int nsvg__curveDivs(float r, float arc, float tol) +{ + float da = acosf(r / (r + tol)) * 2.0f; + int divs = (int)ceilf(arc / da); + if (divs < 2) divs = 2; + return divs; +} + +static void nsvg__expandStroke(NSVGrasterizer* r, NSVGpoint* points, int npoints, int closed, int lineJoin, int lineCap, float lineWidth) +{ + int ncap = nsvg__curveDivs(lineWidth*0.5f, NSVG_PI, r->tessTol); /* Calculate divisions per half circle. */ + NSVGpoint left = {0,0,0,0,0,0,0,0}, right = {0,0,0,0,0,0,0,0}, firstLeft = {0,0,0,0,0,0,0,0}, firstRight = {0,0,0,0,0,0,0,0}; + NSVGpoint* p0, *p1; + int j, s, e; + + /* Build stroke edges */ + if (closed) { + /* Looping */ + p0 = &points[npoints-1]; + p1 = &points[0]; + s = 0; + e = npoints; + } else { + /* Add cap */ + p0 = &points[0]; + p1 = &points[1]; + s = 1; + e = npoints-1; + } + + if (closed) { + nsvg__initClosed(&left, &right, p0, p1, lineWidth); + firstLeft = left; + firstRight = right; + } else { + /* Add cap */ + float dx = p1->x - p0->x; + float dy = p1->y - p0->y; + nsvg__normalize(&dx, &dy); + if (lineCap == NSVG_CAP_BUTT) + nsvg__buttCap(r, &left, &right, p0, dx, dy, lineWidth, 0); + else if (lineCap == NSVG_CAP_SQUARE) + nsvg__squareCap(r, &left, &right, p0, dx, dy, lineWidth, 0); + else if (lineCap == NSVG_CAP_ROUND) + nsvg__roundCap(r, &left, &right, p0, dx, dy, lineWidth, ncap, 0); + } + + for (j = s; j < e; ++j) { + if (p1->flags & NSVG_PT_CORNER) { + if (lineJoin == NSVG_JOIN_ROUND) + nsvg__roundJoin(r, &left, &right, p0, p1, lineWidth, ncap); + else if (lineJoin == NSVG_JOIN_BEVEL || (p1->flags & NSVG_PT_BEVEL)) + nsvg__bevelJoin(r, &left, &right, p0, p1, lineWidth); + else + nsvg__miterJoin(r, &left, &right, p0, p1, lineWidth); + } else { + nsvg__straightJoin(r, &left, &right, p1, lineWidth); + } + p0 = p1++; + } + + if (closed) { + /* Loop it */ + nsvg__addEdge(r, firstLeft.x, firstLeft.y, left.x, left.y); + nsvg__addEdge(r, right.x, right.y, firstRight.x, firstRight.y); + } else { + /* Add cap */ + float dx = p1->x - p0->x; + float dy = p1->y - p0->y; + nsvg__normalize(&dx, &dy); + if (lineCap == NSVG_CAP_BUTT) + nsvg__buttCap(r, &right, &left, p1, -dx, -dy, lineWidth, 1); + else if (lineCap == NSVG_CAP_SQUARE) + nsvg__squareCap(r, &right, &left, p1, -dx, -dy, lineWidth, 1); + else if (lineCap == NSVG_CAP_ROUND) + nsvg__roundCap(r, &right, &left, p1, -dx, -dy, lineWidth, ncap, 1); + } +} + +static void nsvg__prepareStroke(NSVGrasterizer* r, float miterLimit, int lineJoin) +{ + int i, j; + NSVGpoint* p0, *p1; + + p0 = &r->points[r->npoints-1]; + p1 = &r->points[0]; + for (i = 0; i < r->npoints; i++) { + /* Calculate segment direction and length */ + p0->dx = p1->x - p0->x; + p0->dy = p1->y - p0->y; + p0->len = nsvg__normalize(&p0->dx, &p0->dy); + /* Advance */ + p0 = p1++; + } + + /* calculate joins */ + p0 = &r->points[r->npoints-1]; + p1 = &r->points[0]; + for (j = 0; j < r->npoints; j++) { + float dlx0, dly0, dlx1, dly1, dmr2, cross; + dlx0 = p0->dy; + dly0 = -p0->dx; + dlx1 = p1->dy; + dly1 = -p1->dx; + /* Calculate extrusions */ + p1->dmx = (dlx0 + dlx1) * 0.5f; + p1->dmy = (dly0 + dly1) * 0.5f; + dmr2 = p1->dmx*p1->dmx + p1->dmy*p1->dmy; + if (dmr2 > 0.000001f) { + float s2 = 1.0f / dmr2; + if (s2 > 600.0f) { + s2 = 600.0f; + } + p1->dmx *= s2; + p1->dmy *= s2; + } + + /* Clear flags, but keep the corner. */ + p1->flags = (p1->flags & NSVG_PT_CORNER) ? NSVG_PT_CORNER : 0; + + /* Keep track of left turns. */ + cross = p1->dx * p0->dy - p0->dx * p1->dy; + if (cross > 0.0f) + p1->flags |= NSVG_PT_LEFT; + + /* Check to see if the corner needs to be beveled. */ + if (p1->flags & NSVG_PT_CORNER) { + if ((dmr2 * miterLimit*miterLimit) < 1.0f || lineJoin == NSVG_JOIN_BEVEL || lineJoin == NSVG_JOIN_ROUND) { + p1->flags |= NSVG_PT_BEVEL; + } + } + + p0 = p1++; + } +} + +static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float scale) +{ + int i, j, closed; + NSVGpath* path; + NSVGpoint* p0, *p1; + float miterLimit = shape->miterLimit; + int lineJoin = shape->strokeLineJoin; + int lineCap = shape->strokeLineCap; + float lineWidth = shape->strokeWidth * scale; + + for (path = shape->paths; path != NULL; path = path->next) { + /* Flatten path */ + r->npoints = 0; + nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, NSVG_PT_CORNER); + for (i = 0; i < path->npts-1; i += 3) { + float* p = &path->pts[i*2]; + nsvg__flattenCubicBez(r, p[0]*scale,p[1]*scale, p[2]*scale,p[3]*scale, p[4]*scale,p[5]*scale, p[6]*scale,p[7]*scale, 0, NSVG_PT_CORNER); + } + if (r->npoints < 2) + continue; + + closed = path->closed; + + /* If the first and last points are the same, remove the last, mark as closed path. */ + p0 = &r->points[r->npoints-1]; + p1 = &r->points[0]; + if (nsvg__ptEquals(p0->x,p0->y, p1->x,p1->y, r->distTol)) { + r->npoints--; + p0 = &r->points[r->npoints-1]; + closed = 1; + } + + if (shape->strokeDashCount > 0) { + int idash = 0, dashState = 1; + float totalDist = 0, dashLen, allDashLen, dashOffset; + NSVGpoint cur; + + if (closed) + nsvg__appendPathPoint(r, r->points[0]); + + /* Duplicate points -> points2. */ + nsvg__duplicatePoints(r); + + r->npoints = 0; + cur = r->points2[0]; + nsvg__appendPathPoint(r, cur); + + /* Figure out dash offset. */ + allDashLen = 0; + for (j = 0; j < shape->strokeDashCount; j++) + allDashLen += shape->strokeDashArray[j]; + if (shape->strokeDashCount & 1) + allDashLen *= 2.0f; + /* Find location inside pattern */ + dashOffset = fmodf(shape->strokeDashOffset, allDashLen); + if (dashOffset < 0.0f) + dashOffset += allDashLen; + + while (dashOffset > shape->strokeDashArray[idash]) { + dashOffset -= shape->strokeDashArray[idash]; + idash = (idash + 1) % shape->strokeDashCount; + } + dashLen = (shape->strokeDashArray[idash] - dashOffset) * scale; + + for (j = 1; j < r->npoints2; ) { + float dx = r->points2[j].x - cur.x; + float dy = r->points2[j].y - cur.y; + float dist = sqrtf(dx*dx + dy*dy); + + if ((totalDist + dist) > dashLen) { + /* Calculate intermediate point */ + float d = (dashLen - totalDist) / dist; + float x = cur.x + dx * d; + float y = cur.y + dy * d; + nsvg__addPathPoint(r, x, y, NSVG_PT_CORNER); + + /* Stroke */ + if (r->npoints > 1 && dashState) { + nsvg__prepareStroke(r, miterLimit, lineJoin); + nsvg__expandStroke(r, r->points, r->npoints, 0, lineJoin, lineCap, lineWidth); + } + /* Advance dash pattern */ + dashState = !dashState; + idash = (idash+1) % shape->strokeDashCount; + dashLen = shape->strokeDashArray[idash] * scale; + /* Restart */ + cur.x = x; + cur.y = y; + cur.flags = NSVG_PT_CORNER; + totalDist = 0.0f; + r->npoints = 0; + nsvg__appendPathPoint(r, cur); + } else { + totalDist += dist; + cur = r->points2[j]; + nsvg__appendPathPoint(r, cur); + j++; + } + } + /* Stroke any leftover path */ + if (r->npoints > 1 && dashState) + nsvg__expandStroke(r, r->points, r->npoints, 0, lineJoin, lineCap, lineWidth); + } else { + nsvg__prepareStroke(r, miterLimit, lineJoin); + nsvg__expandStroke(r, r->points, r->npoints, closed, lineJoin, lineCap, lineWidth); + } + } +} + +static int nsvg__cmpEdge(const void *p, const void *q) +{ + const NSVGedge* a = (const NSVGedge*)p; + const NSVGedge* b = (const NSVGedge*)q; + + if (a->y0 < b->y0) return -1; + if (a->y0 > b->y0) return 1; + return 0; +} + + +static NSVGactiveEdge* nsvg__addActive(NSVGrasterizer* r, NSVGedge* e, float startPoint) +{ + NSVGactiveEdge* z; + float dxdy; + + if (r->freelist != NULL) { + /* Restore from freelist. */ + z = r->freelist; + r->freelist = z->next; + } else { + /* Alloc new edge. */ + z = (NSVGactiveEdge*)nsvg__alloc(r, sizeof(NSVGactiveEdge)); + if (z == NULL) return NULL; + } + + dxdy = (e->x1 - e->x0) / (e->y1 - e->y0); +/* STBTT_assert(e->y0 <= start_point); */ + /* round dx down to avoid going too far */ + if (dxdy < 0) + z->dx = (int)(-floorf(NSVG__FIX * -dxdy)); + else + z->dx = (int)floorf(NSVG__FIX * dxdy); + z->x = (int)floorf(NSVG__FIX * (e->x0 + dxdy * (startPoint - e->y0))); +/* z->x -= off_x * FIX; */ + z->ey = e->y1; + z->next = 0; + z->dir = e->dir; + + return z; +} + +static void nsvg__freeActive(NSVGrasterizer* r, NSVGactiveEdge* z) +{ + z->next = r->freelist; + r->freelist = z; +} + +static void nsvg__fillScanline(unsigned char* scanline, int len, int x0, int x1, int maxWeight, int* xmin, int* xmax) +{ + int i = x0 >> NSVG__FIXSHIFT; + int j = x1 >> NSVG__FIXSHIFT; + if (i < *xmin) *xmin = i; + if (j > *xmax) *xmax = j; + if (i < len && j >= 0) { + if (i == j) { + /* x0,x1 are the same pixel, so compute combined coverage */ + scanline[i] = (unsigned char)(scanline[i] + ((x1 - x0) * maxWeight >> NSVG__FIXSHIFT)); + } else { + if (i >= 0) /* add antialiasing for x0 */ + scanline[i] = (unsigned char)(scanline[i] + (((NSVG__FIX - (x0 & NSVG__FIXMASK)) * maxWeight) >> NSVG__FIXSHIFT)); + else + i = -1; /* clip */ + + if (j < len) /* add antialiasing for x1 */ + scanline[j] = (unsigned char)(scanline[j] + (((x1 & NSVG__FIXMASK) * maxWeight) >> NSVG__FIXSHIFT)); + else + j = len; /* clip */ + + for (++i; i < j; ++i) /* fill pixels between x0 and x1 */ + scanline[i] = (unsigned char)(scanline[i] + maxWeight); + } + } +} + +/* note: this routine clips fills that extend off the edges... ideally this + * wouldn't happen, but it could happen if the truetype glyph bounding boxes + * are wrong, or if the user supplies a too-small bitmap + */ +static void nsvg__fillActiveEdges(unsigned char* scanline, int len, NSVGactiveEdge* e, int maxWeight, int* xmin, int* xmax, char fillRule) +{ + /* non-zero winding fill */ + int x0 = 0, w = 0; + + if (fillRule == NSVG_FILLRULE_NONZERO) { + /* Non-zero */ + while (e != NULL) { + if (w == 0) { + /* if we're currently at zero, we need to record the edge start point */ + x0 = e->x; w += e->dir; + } else { + int x1 = e->x; w += e->dir; + /* if we went to zero, we need to draw */ + if (w == 0) + nsvg__fillScanline(scanline, len, x0, x1, maxWeight, xmin, xmax); + } + e = e->next; + } + } else if (fillRule == NSVG_FILLRULE_EVENODD) { + /* Even-odd */ + while (e != NULL) { + if (w == 0) { + /* if we're currently at zero, we need to record the edge start point */ + x0 = e->x; w = 1; + } else { + int x1 = e->x; w = 0; + nsvg__fillScanline(scanline, len, x0, x1, maxWeight, xmin, xmax); + } + e = e->next; + } + } +} + +static float nsvg__clampf(float a, float mn, float mx) { return a < mn ? mn : (a > mx ? mx : a); } + +static unsigned int nsvg__RGBA(unsigned char r, unsigned char g, unsigned char b, unsigned char a) +{ + return (r) | (g << 8) | (b << 16) | (a << 24); +} + +static unsigned int nsvg__lerpRGBA(unsigned int c0, unsigned int c1, float u) +{ + int iu = (int)(nsvg__clampf(u, 0.0f, 1.0f) * 256.0f); + int r = (((c0) & 0xff)*(256-iu) + (((c1) & 0xff)*iu)) >> 8; + int g = (((c0>>8) & 0xff)*(256-iu) + (((c1>>8) & 0xff)*iu)) >> 8; + int b = (((c0>>16) & 0xff)*(256-iu) + (((c1>>16) & 0xff)*iu)) >> 8; + int a = (((c0>>24) & 0xff)*(256-iu) + (((c1>>24) & 0xff)*iu)) >> 8; + return nsvg__RGBA((unsigned char)r, (unsigned char)g, (unsigned char)b, (unsigned char)a); +} + +static unsigned int nsvg__applyOpacity(unsigned int c, float u) +{ + int iu = (int)(nsvg__clampf(u, 0.0f, 1.0f) * 256.0f); + int r = (c) & 0xff; + int g = (c>>8) & 0xff; + int b = (c>>16) & 0xff; + int a = (((c>>24) & 0xff)*iu) >> 8; + return nsvg__RGBA((unsigned char)r, (unsigned char)g, (unsigned char)b, (unsigned char)a); +} + +static inline int nsvg__div255(int x) +{ + return ((x+1) * 257) >> 16; +} + +static void nsvg__scanlineSolid(unsigned char* dst, int count, unsigned char* cover, int x, int y, + float tx, float ty, float scale, NSVGcachedPaint* cache) +{ + + if (cache->type == NSVG_PAINT_COLOR) { + int i, cr, cg, cb, ca; + cr = cache->colors[0] & 0xff; + cg = (cache->colors[0] >> 8) & 0xff; + cb = (cache->colors[0] >> 16) & 0xff; + ca = (cache->colors[0] >> 24) & 0xff; + + for (i = 0; i < count; i++) { + int r,g,b; + int a = nsvg__div255((int)cover[0] * ca); + int ia = 255 - a; + /* Premultiply */ + r = nsvg__div255(cr * a); + g = nsvg__div255(cg * a); + b = nsvg__div255(cb * a); + + /* Blend over */ + r += nsvg__div255(ia * (int)dst[0]); + g += nsvg__div255(ia * (int)dst[1]); + b += nsvg__div255(ia * (int)dst[2]); + a += nsvg__div255(ia * (int)dst[3]); + + dst[0] = (unsigned char)r; + dst[1] = (unsigned char)g; + dst[2] = (unsigned char)b; + dst[3] = (unsigned char)a; + + cover++; + dst += 4; + } + } else if (cache->type == NSVG_PAINT_LINEAR_GRADIENT) { + /* TODO: spread modes. */ + /* TODO: plenty of opportunities to optimize. */ + float fx, fy, dx, gy; + float* t = cache->xform; + int i, cr, cg, cb, ca; + unsigned int c; + + fx = ((float)x - tx) / scale; + fy = ((float)y - ty) / scale; + dx = 1.0f / scale; + + for (i = 0; i < count; i++) { + int r,g,b,a,ia; + gy = fx*t[1] + fy*t[3] + t[5]; + c = cache->colors[(int)nsvg__clampf(gy*255.0f, 0, 255.0f)]; + cr = (c) & 0xff; + cg = (c >> 8) & 0xff; + cb = (c >> 16) & 0xff; + ca = (c >> 24) & 0xff; + + a = nsvg__div255((int)cover[0] * ca); + ia = 255 - a; + + /* Premultiply */ + r = nsvg__div255(cr * a); + g = nsvg__div255(cg * a); + b = nsvg__div255(cb * a); + + /* Blend over */ + r += nsvg__div255(ia * (int)dst[0]); + g += nsvg__div255(ia * (int)dst[1]); + b += nsvg__div255(ia * (int)dst[2]); + a += nsvg__div255(ia * (int)dst[3]); + + dst[0] = (unsigned char)r; + dst[1] = (unsigned char)g; + dst[2] = (unsigned char)b; + dst[3] = (unsigned char)a; + + cover++; + dst += 4; + fx += dx; + } + } else if (cache->type == NSVG_PAINT_RADIAL_GRADIENT) { + /* TODO: spread modes. */ + /* TODO: plenty of opportunities to optimize. */ + /* TODO: focus (fx,fy) */ + float fx, fy, dx, gx, gy, gd; + float* t = cache->xform; + int i, cr, cg, cb, ca; + unsigned int c; + + fx = ((float)x - tx) / scale; + fy = ((float)y - ty) / scale; + dx = 1.0f / scale; + + for (i = 0; i < count; i++) { + int r,g,b,a,ia; + gx = fx*t[0] + fy*t[2] + t[4]; + gy = fx*t[1] + fy*t[3] + t[5]; + gd = sqrtf(gx*gx + gy*gy); + c = cache->colors[(int)nsvg__clampf(gd*255.0f, 0, 255.0f)]; + cr = (c) & 0xff; + cg = (c >> 8) & 0xff; + cb = (c >> 16) & 0xff; + ca = (c >> 24) & 0xff; + + a = nsvg__div255((int)cover[0] * ca); + ia = 255 - a; + + /* Premultiply */ + r = nsvg__div255(cr * a); + g = nsvg__div255(cg * a); + b = nsvg__div255(cb * a); + + /* Blend over */ + r += nsvg__div255(ia * (int)dst[0]); + g += nsvg__div255(ia * (int)dst[1]); + b += nsvg__div255(ia * (int)dst[2]); + a += nsvg__div255(ia * (int)dst[3]); + + dst[0] = (unsigned char)r; + dst[1] = (unsigned char)g; + dst[2] = (unsigned char)b; + dst[3] = (unsigned char)a; + + cover++; + dst += 4; + fx += dx; + } + } +} + +static void nsvg__rasterizeSortedEdges(NSVGrasterizer *r, float tx, float ty, float scale, NSVGcachedPaint* cache, char fillRule) +{ + NSVGactiveEdge *active = NULL; + int y, s; + int e = 0; + int maxWeight = (255 / NSVG__SUBSAMPLES); /* weight per vertical scanline */ + int xmin, xmax; + + for (y = 0; y < r->height; y++) { + memset(r->scanline, 0, r->width); + xmin = r->width; + xmax = 0; + for (s = 0; s < NSVG__SUBSAMPLES; ++s) { + /* find center of pixel for this scanline */ + float scany = (float)(y*NSVG__SUBSAMPLES + s) + 0.5f; + NSVGactiveEdge **step = &active; + + /* update all active edges; */ + /* remove all active edges that terminate before the center of this scanline */ + while (*step) { + NSVGactiveEdge *z = *step; + if (z->ey <= scany) { + *step = z->next; /* delete from list */ +/* NSVG__assert(z->valid); */ + nsvg__freeActive(r, z); + } else { + z->x += z->dx; /* advance to position for current scanline */ + step = &((*step)->next); /* advance through list */ + } + } + + /* resort the list if needed */ + for (;;) { + int changed = 0; + step = &active; + while (*step && (*step)->next) { + if ((*step)->x > (*step)->next->x) { + NSVGactiveEdge* t = *step; + NSVGactiveEdge* q = t->next; + t->next = q->next; + q->next = t; + *step = q; + changed = 1; + } + step = &(*step)->next; + } + if (!changed) break; + } + + /* insert all edges that start before the center of this scanline -- omit ones that also end on this scanline */ + while (e < r->nedges && r->edges[e].y0 <= scany) { + if (r->edges[e].y1 > scany) { + NSVGactiveEdge* z = nsvg__addActive(r, &r->edges[e], scany); + if (z == NULL) break; + /* find insertion point */ + if (active == NULL) { + active = z; + } else if (z->x < active->x) { + /* insert at front */ + z->next = active; + active = z; + } else { + /* find thing to insert AFTER */ + NSVGactiveEdge* p = active; + while (p->next && p->next->x < z->x) + p = p->next; + /* at this point, p->next->x is NOT < z->x */ + z->next = p->next; + p->next = z; + } + } + e++; + } + + /* now process all active edges in non-zero fashion */ + if (active != NULL) + nsvg__fillActiveEdges(r->scanline, r->width, active, maxWeight, &xmin, &xmax, fillRule); + } + /* Blit */ + if (xmin < 0) xmin = 0; + if (xmax > r->width-1) xmax = r->width-1; + if (xmin <= xmax) { + nsvg__scanlineSolid(&r->bitmap[y * r->stride] + xmin*4, xmax-xmin+1, &r->scanline[xmin], xmin, y, tx,ty, scale, cache); + } + } + +} + +static void nsvg__unpremultiplyAlpha(unsigned char* image, int w, int h, int stride) +{ + int x,y; + + /* Unpremultiply */ + for (y = 0; y < h; y++) { + unsigned char *row = &image[y*stride]; + for (x = 0; x < w; x++) { + int r = row[0], g = row[1], b = row[2], a = row[3]; + if (a != 0) { + row[0] = (unsigned char)(r*255/a); + row[1] = (unsigned char)(g*255/a); + row[2] = (unsigned char)(b*255/a); + } + row += 4; + } + } + + /* Defringe */ + for (y = 0; y < h; y++) { + unsigned char *row = &image[y*stride]; + for (x = 0; x < w; x++) { + int r = 0, g = 0, b = 0, a = row[3], n = 0; + if (a == 0) { + if (x-1 > 0 && row[-1] != 0) { + r += row[-4]; + g += row[-3]; + b += row[-2]; + n++; + } + if (x+1 < w && row[7] != 0) { + r += row[4]; + g += row[5]; + b += row[6]; + n++; + } + if (y-1 > 0 && row[-stride+3] != 0) { + r += row[-stride]; + g += row[-stride+1]; + b += row[-stride+2]; + n++; + } + if (y+1 < h && row[stride+3] != 0) { + r += row[stride]; + g += row[stride+1]; + b += row[stride+2]; + n++; + } + if (n > 0) { + row[0] = (unsigned char)(r/n); + row[1] = (unsigned char)(g/n); + row[2] = (unsigned char)(b/n); + } + } + row += 4; + } + } +} + + +static void nsvg__initPaint(NSVGcachedPaint* cache, NSVGpaint* paint, float opacity) +{ + int i, j; + NSVGgradient* grad; + + cache->type = paint->type; + + if (paint->type == NSVG_PAINT_COLOR) { + cache->colors[0] = nsvg__applyOpacity(paint->color, opacity); + return; + } + + grad = paint->gradient; + + cache->spread = grad->spread; + memcpy(cache->xform, grad->xform, sizeof(float)*6); + + if (grad->nstops == 0) { + for (i = 0; i < 256; i++) + cache->colors[i] = 0; + } if (grad->nstops == 1) { + for (i = 0; i < 256; i++) + cache->colors[i] = nsvg__applyOpacity(grad->stops[i].color, opacity); + } else { + unsigned int ca, cb = 0; + float ua, ub, du, u; + int ia, ib, count; + + ca = nsvg__applyOpacity(grad->stops[0].color, opacity); + ua = nsvg__clampf(grad->stops[0].offset, 0, 1); + ub = nsvg__clampf(grad->stops[grad->nstops-1].offset, ua, 1); + ia = (int)(ua * 255.0f); + ib = (int)(ub * 255.0f); + for (i = 0; i < ia; i++) { + cache->colors[i] = ca; + } + + for (i = 0; i < grad->nstops-1; i++) { + ca = nsvg__applyOpacity(grad->stops[i].color, opacity); + cb = nsvg__applyOpacity(grad->stops[i+1].color, opacity); + ua = nsvg__clampf(grad->stops[i].offset, 0, 1); + ub = nsvg__clampf(grad->stops[i+1].offset, 0, 1); + ia = (int)(ua * 255.0f); + ib = (int)(ub * 255.0f); + count = ib - ia; + if (count <= 0) continue; + u = 0; + du = 1.0f / (float)count; + for (j = 0; j < count; j++) { + cache->colors[ia+j] = nsvg__lerpRGBA(ca,cb,u); + u += du; + } + } + + for (i = ib; i < 256; i++) + cache->colors[i] = cb; + } + +} + +/* +static void dumpEdges(NSVGrasterizer* r, const char* name) +{ + float xmin = 0, xmax = 0, ymin = 0, ymax = 0; + NSVGedge *e = NULL; + int i; + if (r->nedges == 0) return; + FILE* fp = fopen(name, "w"); + if (fp == NULL) return; + + xmin = xmax = r->edges[0].x0; + ymin = ymax = r->edges[0].y0; + for (i = 0; i < r->nedges; i++) { + e = &r->edges[i]; + xmin = nsvg__minf(xmin, e->x0); + xmin = nsvg__minf(xmin, e->x1); + xmax = nsvg__maxf(xmax, e->x0); + xmax = nsvg__maxf(xmax, e->x1); + ymin = nsvg__minf(ymin, e->y0); + ymin = nsvg__minf(ymin, e->y1); + ymax = nsvg__maxf(ymax, e->y0); + ymax = nsvg__maxf(ymax, e->y1); + } + + fprintf(fp, "", xmin, ymin, (xmax - xmin), (ymax - ymin)); + + for (i = 0; i < r->nedges; i++) { + e = &r->edges[i]; + fprintf(fp ,"", e->x0,e->y0, e->x1,e->y1); + } + + for (i = 0; i < r->npoints; i++) { + if (i+1 < r->npoints) + fprintf(fp ,"", r->points[i].x, r->points[i].y, r->points[i+1].x, r->points[i+1].y); + fprintf(fp ,"", r->points[i].x, r->points[i].y, r->points[i].flags == 0 ? "#f00" : "#0f0"); + } + + fprintf(fp, ""); + fclose(fp); +} +*/ + +NANOSVG_SCOPE +void nsvgRasterize(NSVGrasterizer* r, + NSVGimage* image, float tx, float ty, float scale, + unsigned char* dst, int w, int h, int stride) +{ + NSVGshape *shape = NULL; + NSVGedge *e = NULL; + NSVGcachedPaint cache; + int i; + + r->bitmap = dst; + r->width = w; + r->height = h; + r->stride = stride; + + if (w > r->cscanline) { + r->cscanline = w; + r->scanline = (unsigned char*)NANOSVG_realloc(r->scanline, w); + if (r->scanline == NULL) return; + } + + for (i = 0; i < h; i++) + memset(&dst[i*stride], 0, w*4); + + for (shape = image->shapes; shape != NULL; shape = shape->next) { + if (!(shape->flags & NSVG_FLAGS_VISIBLE)) + continue; + + if (shape->fill.type != NSVG_PAINT_NONE) { + nsvg__resetPool(r); + r->freelist = NULL; + r->nedges = 0; + + nsvg__flattenShape(r, shape, scale); + + /* Scale and translate edges */ + for (i = 0; i < r->nedges; i++) { + e = &r->edges[i]; + e->x0 = tx + e->x0; + e->y0 = (ty + e->y0) * NSVG__SUBSAMPLES; + e->x1 = tx + e->x1; + e->y1 = (ty + e->y1) * NSVG__SUBSAMPLES; + } + + /* Rasterize edges */ + qsort(r->edges, r->nedges, sizeof(NSVGedge), nsvg__cmpEdge); + + /* now, traverse the scanlines and find the intersections on each scanline, use non-zero rule */ + nsvg__initPaint(&cache, &shape->fill, shape->opacity); + + nsvg__rasterizeSortedEdges(r, tx,ty,scale, &cache, shape->fillRule); + } + if (shape->stroke.type != NSVG_PAINT_NONE && (shape->strokeWidth * scale) > 0.01f) { + nsvg__resetPool(r); + r->freelist = NULL; + r->nedges = 0; + + nsvg__flattenShapeStroke(r, shape, scale); + +/* dumpEdges(r, "edge.svg"); */ + + /* Scale and translate edges */ + for (i = 0; i < r->nedges; i++) { + e = &r->edges[i]; + e->x0 = tx + e->x0; + e->y0 = (ty + e->y0) * NSVG__SUBSAMPLES; + e->x1 = tx + e->x1; + e->y1 = (ty + e->y1) * NSVG__SUBSAMPLES; + } + + /* Rasterize edges */ + qsort(r->edges, r->nedges, sizeof(NSVGedge), nsvg__cmpEdge); + + /* now, traverse the scanlines and find the intersections on each scanline, use non-zero rule */ + nsvg__initPaint(&cache, &shape->stroke, shape->opacity); + + nsvg__rasterizeSortedEdges(r, tx,ty,scale, &cache, NSVG_FILLRULE_NONZERO); + } + } + + nsvg__unpremultiplyAlpha(dst, w, h, stride); + + r->bitmap = NULL; + r->width = 0; + r->height = 0; + r->stride = 0; +} + +#endif diff -Nru saods9-8.2+repack/tksvg/generic/tkImgSVG.c saods9-8.3+repack/tksvg/generic/tkImgSVG.c --- saods9-8.2+repack/tksvg/generic/tkImgSVG.c 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/generic/tkImgSVG.c 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,932 @@ +/* + * tkImgSVGnano.c + * + * A photo file handler for SVG files. + * + * Copyright (c) 2013-14 Mikko Mononen memon@inside.org + * Copyright (c) 2018 Christian Gollwitzer auriocus@gmx.de + * Copyright (c) 2018 Christian Werner https://www.androwish.org/ + * Copyright (c) 2018 Rene Zaumseil r.zaumseil@freenet.de + * + * See the file "license.terms" for information on usage and redistribution of + * this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * This handler is build using the original nanosvg library files from + * https://github.com/memononen/nanosvg + * + */ + +/* vim: set ts=8 sts=4 sw=4 : */ + +#include +#ifndef MODULE_SCOPE +#define MODULE_SCOPE extern +#endif +#include +#include +#include +#ifdef _MSC_VER +#define strcasecmp _stricmp +#endif +#include +#include +#define NANOSVG_malloc ckalloc +#define NANOSVG_realloc ckrealloc +#define NANOSVG_free ckfree +#define NANOSVG_SCOPE MODULE_SCOPE +#define NANOSVG_ALL_COLOR_KEYWORDS +#define NANOSVG_IMPLEMENTATION +#include "nanosvg.h" +#define NANOSVGRAST_IMPLEMENTATION +#include "nanosvgrast.h" +#include + +/* Adoption to use the original tk core file */ +#define TkGetStringFromObj Tcl_GetStringFromObj +#ifndef TkSizeT +#define TkSizeT int +#endif +#ifndef TCL_IO_FAILURE +#define TCL_IO_FAILURE (-1) +#endif + +/* Additional parameters to nsvgRasterize() */ + +typedef struct { + double scale; + int scaleToHeight; + int scaleToWidth; +} RastOpts; + +/* + * Per interp cache of last NSVGimage which was matched to + * be immediately rasterized after the match. This helps to + * eliminate double parsing of the SVG file/string. + */ + +typedef struct { + /* A poiner to remember if it is the same svn image (data) + * It is a Tcl_Channel if image created by -file option + * or a Tcl_Obj, if image is created with the -data option + */ + ClientData dataOrChan; + Tcl_DString formatString; + NSVGimage *nsvgImage; + RastOpts ropts; +} NSVGcache; + +static const void * MemMem(const void *haystack, size_t haysize, + const void *needle, size_t needlen); +static int FileMatchSVG(Tcl_Channel chan, const char *fileName, + Tcl_Obj *format, int *widthPtr, int *heightPtr, + Tcl_Interp *interp); +static int FileReadSVG(Tcl_Interp *interp, Tcl_Channel chan, + const char *fileName, Tcl_Obj *format, + Tk_PhotoHandle imageHandle, int destX, int destY, + int width, int height, int srcX, int srcY); +static int StringMatchSVG(Tcl_Obj *dataObj, Tcl_Obj *format, + int *widthPtr, int *heightPtr, Tcl_Interp *interp); +static int StringReadSVG(Tcl_Interp *interp, Tcl_Obj *dataObj, + Tcl_Obj *format, Tk_PhotoHandle imageHandle, + int destX, int destY, int width, int height, + int srcX, int srcY); +static NSVGimage * ParseSVGWithOptions(Tcl_Interp *interp, + const char *input, TkSizeT length, Tcl_Obj *format, + RastOpts *ropts); +static int RasterizeSVG(Tcl_Interp *interp, + Tk_PhotoHandle imageHandle, NSVGimage *nsvgImage, + int destX, int destY, int width, int height, + int srcX, int srcY, RastOpts *ropts); +static double GetScaleFromParameters(NSVGimage *nsvgImage, + RastOpts *ropts, int *widthPtr, int *heightPtr); +static NSVGcache * GetCachePtr(Tcl_Interp *interp); +static int CacheSVG(Tcl_Interp *interp, ClientData dataOrChan, + Tcl_Obj *formatObj, NSVGimage *nsvgImage, + RastOpts *ropts); +static NSVGimage * GetCachedSVG(Tcl_Interp *interp, ClientData dataOrChan, + Tcl_Obj *formatObj, RastOpts *ropts); +static void CleanCache(Tcl_Interp *interp); +static void FreeCache(ClientData clientData, Tcl_Interp *interp); + +/* + * The format record for the SVG nano file format: + */ + +Tk_PhotoImageFormat tkImgFmtSVGnano = { + "svg", /* name */ + FileMatchSVG, /* fileMatchProc */ + StringMatchSVG, /* stringMatchProc */ + FileReadSVG, /* fileReadProc */ + StringReadSVG, /* stringReadProc */ + NULL, /* fileWriteProc */ + NULL, /* stringWriteProc */ + NULL +}; + +/* + *---------------------------------------------------------------------- + * + * MemMem -- + * + * Like strstr() but operating on memory buffers with sizes. + * + *---------------------------------------------------------------------- + */ + +static const void * +MemMem(const void *haystack, size_t haylen, + const void *needle, size_t needlen) +{ + const void *hayend, *second, *p; + unsigned char first; + + if ((needlen <= 0) || (haylen < needlen)) { + return NULL; + } + hayend = (const void *) ((char *) haystack + haylen - needlen); + first = ((char *) needle)[0]; + second = (const void *) ((char *) needle + 1); + needlen -= 1; + while (haystack < hayend) { + p = memchr(haystack, first, (char *) hayend - (char *) haystack); + if (p == NULL) { + break; + } + if (needlen == 0) { + return p; + } + haystack = (const void *) ((char *) p + 1); + if (memcmp(second, haystack, needlen) == 0) { + return p; + } + } + return NULL; +} + +/* + *---------------------------------------------------------------------- + * + * FileMatchSVG -- + * + * This function is invoked by the photo image type to see if a file + * contains image data in SVG format. + * + * Results: + * The return value is >0 if the file can be successfully parsed, + * and 0 otherwise. + * + * Side effects: + * The file is saved in the internal cache for further use. + * + *---------------------------------------------------------------------- + */ + +static int +FileMatchSVG( + Tcl_Channel chan, + const char *fileName, + Tcl_Obj *formatObj, + int *widthPtr, int *heightPtr, + Tcl_Interp *interp) +{ + TkSizeT length; + Tcl_Obj *dataObj = Tcl_NewObj(); + const char *data; + RastOpts ropts; + NSVGimage *nsvgImage; + (void)fileName; + + CleanCache(interp); + if (Tcl_ReadChars(chan, dataObj, 4096, 0) == TCL_IO_FAILURE) { + /* in case of an error reading the file */ + Tcl_DecrRefCount(dataObj); + return 0; + } + data = TkGetStringFromObj(dataObj, &length); + /* should have a '' in the first 4k */ + if ((memchr(data, '>', length) == NULL) || + (MemMem(data, length, "0 if the file can be successfully parsed, + * and 0 otherwise. + * + * Side effects: + * The file is saved in the internal cache for further use. + * + *---------------------------------------------------------------------- + */ + +static int +StringMatchSVG( + Tcl_Obj *dataObj, + Tcl_Obj *formatObj, + int *widthPtr, int *heightPtr, + Tcl_Interp *interp) +{ + TkSizeT length, testLength; + const char *data; + RastOpts ropts; + NSVGimage *nsvgImage; + + CleanCache(interp); + data = TkGetStringFromObj(dataObj, &length); + /* should have a '' in the first 4k */ + testLength = (length > 4096) ? 4096 : length; + if ((memchr(data, '>', testLength) == NULL) || + (MemMem(data, testLength, "scale = 1.0; + ropts->scaleToHeight = 0; + ropts->scaleToWidth = 0; + if ((formatObj != NULL) && + Tcl_ListObjGetElements(interp, formatObj, &objc, &objv) != TCL_OK) { + goto error; + } + for (; objc > 0 ; objc--, objv++) { + int optIndex; + + /* + * Ignore the "svg" part of the format specification. + */ + + if (!strcasecmp(Tcl_GetString(objv[0]), "svg")) { + continue; + } + + if (Tcl_GetIndexFromObjStruct(interp, objv[0], fmtOptions, + sizeof(char *), "option", 0, &optIndex) == TCL_ERROR) { + goto error; + } + + if (objc < 2) { + ckfree(inputCopy); + inputCopy = NULL; + Tcl_WrongNumArgs(interp, 1, objv, "value"); + goto error; + } + + objc--; + objv++; + + /* + * check that only one scale option is given + */ + switch ((enum fmtOptionsEnum)optIndex) { + case OPT_SCALE: + case OPT_SCALE_TO_HEIGHT: + case OPT_SCALE_TO_WIDTH: + if ( parameterScaleSeen ) { + Tcl_SetObjResult(interp, Tcl_NewStringObj( + "only one of -scale, -scaletoheight, -scaletowidth may be given", -1)); + Tcl_SetErrorCode(interp, "TK", "IMAGE", "SVG", "BAD_SCALE", + NULL); + goto error; + } + parameterScaleSeen = 1; + break; + default: + break; + } + + /* + * Decode parameters + */ + switch ((enum fmtOptionsEnum) optIndex) { + case OPT_DPI: + if (Tcl_GetDoubleFromObj(interp, objv[0], &dpi) == TCL_ERROR) { + goto error; + } + if (dpi < 0.0) { + Tcl_SetObjResult(interp, Tcl_NewStringObj( + "-dpi value must be positive", -1)); + Tcl_SetErrorCode(interp, "TK", "IMAGE", "SVG", "BAD_DPI", + NULL); + goto error; + } + break; + case OPT_SCALE: + if (Tcl_GetDoubleFromObj(interp, objv[0], &ropts->scale) == + TCL_ERROR) { + goto error; + } + if (ropts->scale <= 0.0) { + Tcl_SetObjResult(interp, Tcl_NewStringObj( + "-scale value must be positive", -1)); + Tcl_SetErrorCode(interp, "TK", "IMAGE", "SVG", "BAD_SCALE", + NULL); + goto error; + } + break; + case OPT_SCALE_TO_HEIGHT: + if (Tcl_GetIntFromObj(interp, objv[0], &ropts->scaleToHeight) == + TCL_ERROR) { + goto error; + } + if (ropts->scaleToHeight <= 0) { + Tcl_SetObjResult(interp, Tcl_NewStringObj( + "-scaletoheight value must be positive", -1)); + Tcl_SetErrorCode(interp, "TK", "IMAGE", "SVG", "BAD_SCALE", + NULL); + goto error; + } + break; + case OPT_SCALE_TO_WIDTH: + if (Tcl_GetIntFromObj(interp, objv[0], &ropts->scaleToWidth) == + TCL_ERROR) { + goto error; + } + if (ropts->scaleToWidth <= 0) { + Tcl_SetObjResult(interp, Tcl_NewStringObj( + "-scaletowidth value must be positive", -1)); + Tcl_SetErrorCode(interp, "TK", "IMAGE", "SVG", "BAD_SCALE", + NULL); + goto error; + } + break; + } + } + + nsvgImage = nsvgParse(inputCopy, "px", (float) dpi); + if (nsvgImage == NULL) { + Tcl_SetObjResult(interp, Tcl_NewStringObj("cannot parse SVG image", -1)); + Tcl_SetErrorCode(interp, "TK", "IMAGE", "SVG", "PARSE_ERROR", NULL); + goto error; + } + ckfree(inputCopy); + return nsvgImage; + +error: + if (inputCopy != NULL) { + ckfree(inputCopy); + } + return NULL; +} + +/* + *---------------------------------------------------------------------- + * + * RasterizeSVG -- + * + * This function is called to rasterize the given nsvgImage and + * fill the imageHandle with data. + * + * Results: + * A standard TCL completion code. If TCL_ERROR is returned then an error + * message is left in the interp's result. + * + * + * Side effects: + * On error the given nsvgImage will be deleted. + * + *---------------------------------------------------------------------- + */ + +static int +RasterizeSVG( + Tcl_Interp *interp, + Tk_PhotoHandle imageHandle, + NSVGimage *nsvgImage, + int destX, int destY, + int width, int height, + int srcX, int srcY, + RastOpts *ropts) +{ + int w, h, c; + NSVGrasterizer *rast; + unsigned char *imgData; + Tk_PhotoImageBlock svgblock; + double scale; + Tcl_WideUInt wh; + (void)srcX; + (void)srcY; + + scale = GetScaleFromParameters(nsvgImage, ropts, &w, &h); + + rast = nsvgCreateRasterizer(); + if (rast == NULL) { + Tcl_SetObjResult(interp, Tcl_NewStringObj("cannot initialize rasterizer", -1)); + Tcl_SetErrorCode(interp, "TK", "IMAGE", "SVG", "RASTERIZER_ERROR", + NULL); + goto cleanAST; + } + + /* Tk Ticket [822330269b] Check potential int overflow in following ckalloc */ + wh = (Tcl_WideUInt)w * (Tcl_WideUInt)h; + if ( w < 0 || h < 0 || wh > INT_MAX / 4) { + Tcl_SetObjResult(interp, Tcl_NewStringObj("image size overflow", -1)); + Tcl_SetErrorCode(interp, "TK", "IMAGE", "SVG", "IMAGE_SIZE_OVERFLOW", NULL); + goto cleanRAST; + } + + imgData = (unsigned char *)attemptckalloc(wh * 4); + if (imgData == NULL) { + Tcl_SetObjResult(interp, Tcl_NewStringObj("cannot alloc image buffer", -1)); + Tcl_SetErrorCode(interp, "TK", "IMAGE", "SVG", "OUT_OF_MEMORY", NULL); + goto cleanRAST; + } + nsvgRasterize(rast, nsvgImage, 0, 0, + (float) scale, imgData, w, h, w * 4); + /* transfer the data to a photo block */ + svgblock.pixelPtr = imgData; + svgblock.width = w; + svgblock.height = h; + svgblock.pitch = w * 4; + svgblock.pixelSize = 4; + for (c = 0; c <= 3; c++) { + svgblock.offset[c] = c; + } + if (Tk_PhotoExpand(interp, imageHandle, + destX + width, destY + height) != TCL_OK) { + goto cleanRAST; + } + if (Tk_PhotoPutBlock(interp, imageHandle, &svgblock, destX, destY, + width, height, TK_PHOTO_COMPOSITE_SET) != TCL_OK) { + goto cleanimg; + } + ckfree(imgData); + nsvgDeleteRasterizer(rast); + nsvgDelete(nsvgImage); + return TCL_OK; + +cleanimg: + ckfree(imgData); + +cleanRAST: + nsvgDeleteRasterizer(rast); + +cleanAST: + nsvgDelete(nsvgImage); + return TCL_ERROR; +} + +/* + *---------------------------------------------------------------------- + * + * GetScaleFromParameters -- + * + * Get the scale value from the already parsed parameters -scale, + * -scaletoheight and -scaletowidth. + * + * The image width and height is also returned. + * + * Results: + * The evaluated or configured scale value, or 0.0 on failure + * + * Side effects: + * heightPtr and widthPtr are set to height and width of the image. + * + *---------------------------------------------------------------------- + */ + +static double +GetScaleFromParameters( + NSVGimage *nsvgImage, + RastOpts *ropts, + int *widthPtr, + int *heightPtr) +{ + double scale; + int width, height; + + if ((nsvgImage->width == 0.0) || (nsvgImage->height == 0.0)) { + width = height = 0; + scale = 1.0; + } else if (ropts->scaleToHeight > 0) { + /* + * Fixed height + */ + height = ropts->scaleToHeight; + scale = height / nsvgImage->height; + width = (int) ceil(nsvgImage->width * scale); + } else if (ropts->scaleToWidth > 0) { + /* + * Fixed width + */ + width = ropts->scaleToWidth; + scale = width / nsvgImage->width; + height = (int) ceil(nsvgImage->height * scale); + } else { + /* + * Scale factor + */ + scale = ropts->scale; + width = (int) ceil(nsvgImage->width * scale); + height = (int) ceil(nsvgImage->height * scale); + } + + *heightPtr = height; + *widthPtr = width; + return scale; +} + +/* + *---------------------------------------------------------------------- + * + * GetCachePtr -- + * + * This function is called to get the per interpreter used + * svg image cache. + * + * Results: + * Return a pointer to the used cache. + * + * Side effects: + * Initialize the cache on the first call. + * + *---------------------------------------------------------------------- + */ + +static NSVGcache * +GetCachePtr( + Tcl_Interp *interp +) { + NSVGcache *cachePtr = (NSVGcache *)Tcl_GetAssocData(interp, "tksvgnano", NULL); + if (cachePtr == NULL) { + cachePtr = (NSVGcache *)ckalloc(sizeof(NSVGcache)); + cachePtr->dataOrChan = NULL; + Tcl_DStringInit(&cachePtr->formatString); + cachePtr->nsvgImage = NULL; + Tcl_SetAssocData(interp, "tksvgnano", FreeCache, cachePtr); + } + return cachePtr; +} + +/* + *---------------------------------------------------------------------- + * + * CacheSVG -- + * + * Add the given svg image informations to the cache for further usage. + * + * Results: + * Return 1 on success, and 0 otherwise. + * + * Side effects: + * + *---------------------------------------------------------------------- + */ + +static int +CacheSVG( + Tcl_Interp *interp, + ClientData dataOrChan, + Tcl_Obj *formatObj, + NSVGimage *nsvgImage, + RastOpts *ropts) +{ + TkSizeT length; + const char *data; + NSVGcache *cachePtr = GetCachePtr(interp); + + if (cachePtr != NULL) { + cachePtr->dataOrChan = dataOrChan; + if (formatObj != NULL) { + data = TkGetStringFromObj(formatObj, &length); + Tcl_DStringAppend(&cachePtr->formatString, data, length); + } + cachePtr->nsvgImage = nsvgImage; + cachePtr->ropts = *ropts; + return 1; + } + return 0; +} + +/* + *---------------------------------------------------------------------- + * + * GetCachedSVG -- + * + * Try to get the NSVGimage from the internal cache. + * + * Results: + * Return the found NSVGimage on success, and NULL otherwise. + * + * Side effects: + * Calls the CleanCache() function. + * + *---------------------------------------------------------------------- + */ + +static NSVGimage * +GetCachedSVG( + Tcl_Interp *interp, + ClientData dataOrChan, + Tcl_Obj *formatObj, + RastOpts *ropts) +{ + TkSizeT length; + const char *data; + NSVGcache *cachePtr = GetCachePtr(interp); + NSVGimage *nsvgImage = NULL; + + if ((cachePtr != NULL) && (cachePtr->nsvgImage != NULL) && + (cachePtr->dataOrChan == dataOrChan)) { + if (formatObj != NULL) { + data = TkGetStringFromObj(formatObj, &length); + if (strcmp(data, Tcl_DStringValue(&cachePtr->formatString)) == 0) { + nsvgImage = cachePtr->nsvgImage; + *ropts = cachePtr->ropts; + cachePtr->nsvgImage = NULL; + } + } else if (Tcl_DStringLength(&cachePtr->formatString) == 0) { + nsvgImage = cachePtr->nsvgImage; + *ropts = cachePtr->ropts; + cachePtr->nsvgImage = NULL; + } + } + CleanCache(interp); + return nsvgImage; +} + +/* + *---------------------------------------------------------------------- + * + * CleanCache -- + * + * Reset the cache and delete the saved image in it. + * + * Results: + * + * Side effects: + * + *---------------------------------------------------------------------- + */ + +static void +CleanCache(Tcl_Interp *interp) +{ + NSVGcache *cachePtr = GetCachePtr(interp); + + if (cachePtr != NULL) { + cachePtr->dataOrChan = NULL; + Tcl_DStringSetLength(&cachePtr->formatString, 0); + if (cachePtr->nsvgImage != NULL) { + nsvgDelete(cachePtr->nsvgImage); + cachePtr->nsvgImage = NULL; + } + } +} + +/* + *---------------------------------------------------------------------- + * + * FreeCache -- + * + * This function is called to clean up the internal cache data. + * + * Results: + * + * Side effects: + * Existing image data in the cache and the cache will be deleted. + * + *---------------------------------------------------------------------- + */ + +static void +FreeCache(ClientData clientData, Tcl_Interp *interp) +{ + NSVGcache *cachePtr = (NSVGcache *)clientData; + (void)interp; + + Tcl_DStringFree(&cachePtr->formatString); + if (cachePtr->nsvgImage != NULL) { + nsvgDelete(cachePtr->nsvgImage); + } + ckfree(cachePtr); +} + + +int DLLEXPORT +Tksvg_Init(Tcl_Interp *interp) +{ + if (interp == NULL) { + return TCL_ERROR; + } +#ifdef USE_TCL_STUBS + if (Tcl_InitStubs(interp, TCL_VERSION, 0) == NULL) { + return TCL_ERROR; + } +#else + if (Tcl_PkgRequire(interp, "Tcl", TCL_VERSION, 0) == NULL) { + return TCL_ERROR; + } +#endif +#ifdef USE_TK_STUBS + if (Tk_InitStubs(interp, TCL_VERSION, 0) == NULL) { + return TCL_ERROR; + } +#else + if (Tcl_PkgRequire(interp, "Tk", TK_VERSION, 0) == NULL) { + return TCL_ERROR; + } +#endif + Tk_CreatePhotoImageFormat(&tkImgFmtSVGnano); + Tcl_PkgProvide(interp, PACKAGE_NAME, PACKAGE_VERSION); + return TCL_OK; +} \ No newline at end of file diff -Nru saods9-8.2+repack/tksvg/.gitignore saods9-8.3+repack/tksvg/.gitignore --- saods9-8.2+repack/tksvg/.gitignore 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/.gitignore 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,3 @@ +win/Release* +win/nmakehlp.out +win/versions.vc \ No newline at end of file diff -Nru saods9-8.2+repack/tksvg/license.terms saods9-8.3+repack/tksvg/license.terms --- saods9-8.2+repack/tksvg/license.terms 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/license.terms 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,40 @@ +This software is copyrighted by the Regents of the University of +California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState +Corporation and other parties. The following terms apply to all files +associated with the software unless explicitly disclaimed in +individual files. + +The authors hereby grant permission to use, copy, modify, distribute, +and license this software and its documentation for any purpose, provided +that existing copyright notices are retained in all copies and that this +notice is included verbatim in any distributions. No written agreement, +license, or royalty fee is required for any of the authorized uses. +Modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided that +the new terms are clearly indicated on the first page of each file where +they apply. + +IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +MODIFICATIONS. + +GOVERNMENT USE: If you are acquiring this software on behalf of the +U.S. government, the Government shall have only "Restricted Rights" +in the software and related documentation as defined in the Federal +Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you +are acquiring the software on behalf of the Department of Defense, the +software shall be classified as "Commercial Computer Software" and the +Government shall have only "Restricted Rights" as defined in Clause +252.227-7014 (b) (3) of DFARs. Notwithstanding the foregoing, the +authors grant the U.S. Government and others acting in its behalf +permission to use and distribute the software in accordance with the +terms specified in this license. diff -Nru saods9-8.2+repack/tksvg/Makefile.in saods9-8.3+repack/tksvg/Makefile.in --- saods9-8.2+repack/tksvg/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/Makefile.in 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,458 @@ +# Makefile.in -- +# +# This file is a Makefile for Sample TEA Extension. If it has the name +# "Makefile.in" then it is a template for a Makefile; to generate the +# actual Makefile, run "./configure", which is a configuration script +# generated by the "autoconf" program (constructs like "@foo@" will get +# replaced in the actual Makefile. +# +# Copyright (c) 1999 Scriptics Corporation. +# Copyright (c) 2002-2005 ActiveState Corporation. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. + +#======================================================================== +# Add additional lines to handle any additional AC_SUBST cases that +# have been added in a customized configure script. +#======================================================================== + +#SAMPLE_NEW_VAR = @SAMPLE_NEW_VAR@ + +#======================================================================== +# Nothing of the variables below this line should need to be changed. +# Please check the TARGETS section below to make sure the make targets +# are correct. +#======================================================================== + +#======================================================================== +# The names of the source files is defined in the configure script. +# The object files are used for linking into the final library. +# This will be used when a dist target is added to the Makefile. +# It is not important to specify the directory, as long as it is the +# $(srcdir) or in the generic, win or unix subdirectory. +#======================================================================== + +PKG_SOURCES = @PKG_SOURCES@ +PKG_OBJECTS = @PKG_OBJECTS@ + +PKG_STUB_SOURCES = @PKG_STUB_SOURCES@ +PKG_STUB_OBJECTS = @PKG_STUB_OBJECTS@ + +#======================================================================== +# PKG_TCL_SOURCES identifies Tcl runtime files that are associated with +# this package that need to be installed, if any. +#======================================================================== + +PKG_TCL_SOURCES = @PKG_TCL_SOURCES@ + +#======================================================================== +# This is a list of public header files to be installed, if any. +#======================================================================== + +PKG_HEADERS = @PKG_HEADERS@ + +#======================================================================== +# "PKG_LIB_FILE" refers to the library (dynamic or static as per +# configuration options) composed of the named objects. +#======================================================================== + +PKG_LIB_FILE = @PKG_LIB_FILE@ +PKG_STUB_LIB_FILE = @PKG_STUB_LIB_FILE@ + +lib_BINARIES = $(PKG_LIB_FILE) +BINARIES = $(lib_BINARIES) + +SHELL = @SHELL@ + +srcdir = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +libdir = @libdir@ +includedir = @includedir@ +datarootdir = @datarootdir@ +datadir = @datadir@ +mandir = @mandir@ + +DESTDIR = + +PKG_DIR = $(PACKAGE_NAME)$(PACKAGE_VERSION) +pkgdatadir = $(datadir)/$(PKG_DIR) +pkglibdir = $(libdir)/$(PKG_DIR) +pkgincludedir = $(includedir)/$(PKG_DIR) + +top_builddir = @abs_top_builddir@ + +INSTALL_OPTIONS = +INSTALL = @INSTALL@ $(INSTALL_OPTIONS) +INSTALL_DATA_DIR = ${INSTALL} -d -m 755 +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_LIBRARY = ${INSTALL_DATA} + +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +CC = @CC@ +CFLAGS_DEFAULT = @CFLAGS_DEFAULT@ +CFLAGS_WARNING = @CFLAGS_WARNING@ +EXEEXT = @EXEEXT@ +LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@ +MAKE_LIB = @MAKE_LIB@ +MAKE_SHARED_LIB = @MAKE_SHARED_LIB@ +MAKE_STATIC_LIB = @MAKE_STATIC_LIB@ +MAKE_STUB_LIB = @MAKE_STUB_LIB@ +OBJEXT = @OBJEXT@ +RANLIB = @RANLIB@ +RANLIB_STUB = @RANLIB_STUB@ +SHLIB_CFLAGS = @SHLIB_CFLAGS@ +SHLIB_LD = @SHLIB_LD@ +SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ +STLIB_LD = @STLIB_LD@ +#TCL_DEFS = @TCL_DEFS@ +TCL_BIN_DIR = @TCL_BIN_DIR@ +TCL_SRC_DIR = @TCL_SRC_DIR@ +#TK_BIN_DIR = @TK_BIN_DIR@ +#TK_SRC_DIR = @TK_SRC_DIR@ + +# Not used, but retained for reference of what libs Tcl required +#TCL_LIBS = @TCL_LIBS@ + +#======================================================================== +# TCLLIBPATH seeds the auto_path in Tcl's init.tcl so we can test our +# package without installing. The other environment variables allow us +# to test against an uninstalled Tcl. Add special env vars that you +# require for testing here (like TCLX_LIBRARY). +#======================================================================== + +EXTRA_PATH = $(top_builddir):$(TCL_BIN_DIR) +#EXTRA_PATH = $(top_builddir):$(TCL_BIN_DIR):$(TK_BIN_DIR) +TCLLIBPATH = $(top_builddir) +TCLSH_ENV = TCL_LIBRARY=`@CYGPATH@ $(TCL_SRC_DIR)/library` +PKG_ENV = @LD_LIBRARY_PATH_VAR@="$(EXTRA_PATH):$(@LD_LIBRARY_PATH_VAR@)" \ + PATH="$(EXTRA_PATH):$(PATH)" \ + TCLLIBPATH="$(TCLLIBPATH)" + +TCLSH_PROG = @TCLSH_PROG@ +TCLSH = $(TCLSH_ENV) $(PKG_ENV) $(TCLSH_PROG) + +#WISH_ENV = TK_LIBRARY=`@CYGPATH@ $(TK_SRC_DIR)/library` +#WISH_PROG = @WISH_PROG@ +#WISH = $(TCLSH_ENV) $(WISH_ENV) $(PKG_ENV) $(WISH_PROG) + +SHARED_BUILD = @SHARED_BUILD@ + +#INCLUDES = @PKG_INCLUDES@ @TCL_INCLUDES@ +INCLUDES = @PKG_INCLUDES@ @TCL_INCLUDES@ @TK_INCLUDES@ @TK_XINCLUDES@ + +PKG_CFLAGS = @PKG_CFLAGS@ + +# TCL_DEFS is not strictly need here, but if you remove it, then you +# must make sure that configure.ac checks for the necessary components +# that your library may use. TCL_DEFS can actually be a problem if +# you do not compile with a similar machine setup as the Tcl core was +# compiled with. +#DEFS = $(TCL_DEFS) @DEFS@ $(PKG_CFLAGS) +DEFS = @DEFS@ $(PKG_CFLAGS) + +# Move pkgIndex.tcl to 'BINARIES' var if it is generated in the Makefile +CONFIG_CLEAN_FILES = Makefile pkgIndex.tcl +CLEANFILES = @CLEANFILES@ + +CPPFLAGS = @CPPFLAGS@ +LIBS = @PKG_LIBS@ @LIBS@ +AR = @AR@ +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS_DEFAULT) $(CFLAGS_WARNING) $(SHLIB_CFLAGS) $(CFLAGS) + +GDB = gdb +VALGRIND = valgrind +VALGRINDARGS = --tool=memcheck --num-callers=8 --leak-resolution=high \ + --leak-check=yes --show-reachable=yes -v + +.SUFFIXES: .c .$(OBJEXT) + +#======================================================================== +# Start of user-definable TARGETS section +#======================================================================== + +#======================================================================== +# TEA TARGETS. Please note that the "libraries:" target refers to platform +# independent files, and the "binaries:" target includes executable programs and +# platform-dependent libraries. Modify these targets so that they install +# the various pieces of your package. The make and install rules +# for the BINARIES that you specified above have already been done. +#======================================================================== + +all: binaries libraries doc + +#======================================================================== +# The binaries target builds executable programs, Windows .dll's, unix +# shared/static libraries, and any other platform-dependent files. +# The list of targets to build for "binaries:" is specified at the top +# of the Makefile, in the "BINARIES" variable. +#======================================================================== + +binaries: $(BINARIES) + +libraries: + +#======================================================================== +# Your doc target should differentiate from doc builds (by the developer) +# and doc installs (see install-doc), which just install the docs on the +# end user machine when building from source. +#======================================================================== + +doc: + @echo "If you have documentation to create, place the commands to" + @echo "build the docs in the 'doc:' target. For example:" + @echo " xml2nroff sample.xml > sample.n" + @echo " xml2html sample.xml > sample.html" + +install: all install-binaries install-libraries #install-doc + +install-binaries: binaries install-lib-binaries install-bin-binaries + +#======================================================================== +# This rule installs platform-independent files, such as header files. +# The list=...; for p in $$list handles the empty list case x-platform. +#======================================================================== + +install-libraries: libraries + @$(INSTALL_DATA_DIR) $(DESTDIR)$(includedir) + @echo "Installing header files in $(DESTDIR)$(includedir)" + @list='$(PKG_HEADERS)'; for i in $$list; do \ + echo "Installing $(srcdir)/$$i" ; \ + $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(includedir) ; \ + done; + +#======================================================================== +# Install documentation. Unix manpages should go in the $(mandir) +# directory. +#======================================================================== + +install-doc: doc + @$(INSTALL_DATA_DIR) $(DESTDIR)$(mandir)/mann + @echo "Installing documentation in $(DESTDIR)$(mandir)" + @list='$(srcdir)/doc/*.n'; for i in $$list; do \ + echo "Installing $$i"; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/mann ; \ + done + +test: binaries libraries + $(TCLSH) `@CYGPATH@ $(srcdir)/tests/all.tcl` $(TESTFLAGS) \ + -load "package ifneeded $(PACKAGE_NAME) $(PACKAGE_VERSION) \ + [list load `@CYGPATH@ $(PKG_LIB_FILE)` $(PACKAGE_NAME)]" + +shell: binaries libraries + @$(TCLSH) $(SCRIPT) + +gdb: + $(TCLSH_ENV) $(PKG_ENV) $(GDB) $(TCLSH_PROG) $(SCRIPT) + +gdb-test: binaries libraries + $(TCLSH_ENV) $(PKG_ENV) $(GDB) \ + --args $(TCLSH_PROG) `@CYGPATH@ $(srcdir)/tests/all.tcl` \ + $(TESTFLAGS) -singleproc 1 \ + -load "package ifneeded $(PACKAGE_NAME) $(PACKAGE_VERSION) \ + [list load `@CYGPATH@ $(PKG_LIB_FILE)` $(PACKAGE_NAME)]" + +valgrind: binaries libraries + $(TCLSH_ENV) $(PKG_ENV) $(VALGRIND) $(VALGRINDARGS) $(TCLSH_PROG) \ + `@CYGPATH@ $(srcdir)/tests/all.tcl` $(TESTFLAGS) + +valgrindshell: binaries libraries + $(TCLSH_ENV) $(PKG_ENV) $(VALGRIND) $(VALGRINDARGS) $(TCLSH_PROG) $(SCRIPT) + +depend: + +#======================================================================== +# $(PKG_LIB_FILE) should be listed as part of the BINARIES variable +# mentioned above. That will ensure that this target is built when you +# run "make binaries". +# +# The $(PKG_OBJECTS) objects are created and linked into the final +# library. In most cases these object files will correspond to the +# source files above. +#======================================================================== + +$(PKG_LIB_FILE): $(PKG_OBJECTS) + -rm -f $(PKG_LIB_FILE) + ${MAKE_LIB} + $(RANLIB) $(PKG_LIB_FILE) + +$(PKG_STUB_LIB_FILE): $(PKG_STUB_OBJECTS) + -rm -f $(PKG_STUB_LIB_FILE) + ${MAKE_STUB_LIB} + $(RANLIB_STUB) $(PKG_STUB_LIB_FILE) + +#======================================================================== +# We need to enumerate the list of .c to .o lines here. +# +# In the following lines, $(srcdir) refers to the toplevel directory +# containing your extension. If your sources are in a subdirectory, +# you will have to modify the paths to reflect this: +# +# sample.$(OBJEXT): $(srcdir)/generic/sample.c +# $(COMPILE) -c `@CYGPATH@ $(srcdir)/generic/sample.c` -o $@ +# +# Setting the VPATH variable to a list of paths will cause the makefile +# to look into these paths when resolving .c to .obj dependencies. +# As necessary, add $(srcdir):$(srcdir)/compat:.... +#======================================================================== + +VPATH = $(srcdir):$(srcdir)/generic:$(srcdir)/unix:$(srcdir)/win:$(srcdir)/macosx + +.c.@OBJEXT@: + $(COMPILE) -c `@CYGPATH@ $<` -o $@ + +#======================================================================== +# Distribution creation +# You may need to tweak this target to make it work correctly. +#======================================================================== + +#COMPRESS = tar cvf $(PKG_DIR).tar $(PKG_DIR); compress $(PKG_DIR).tar +COMPRESS = tar zcvf $(PKG_DIR).tar.gz $(PKG_DIR) +DIST_ROOT = /tmp/dist +DIST_DIR = $(DIST_ROOT)/$(PKG_DIR) + +DIST_INSTALL_DATA = CPPROG='cp -p' $(INSTALL) -m 644 +DIST_INSTALL_SCRIPT = CPPROG='cp -p' $(INSTALL) -m 755 + +dist-clean: + rm -rf $(DIST_DIR) $(DIST_ROOT)/$(PKG_DIR).tar.* + +dist: dist-clean + $(INSTALL_DATA_DIR) $(DIST_DIR) + + # TEA files + $(DIST_INSTALL_DATA) $(srcdir)/Makefile.in \ + $(srcdir)/aclocal.m4 $(srcdir)/configure.ac \ + $(DIST_DIR)/ + $(DIST_INSTALL_SCRIPT) $(srcdir)/configure $(DIST_DIR)/ + + $(INSTALL_DATA_DIR) $(DIST_DIR)/tclconfig + $(DIST_INSTALL_DATA) $(srcdir)/tclconfig/README.txt \ + $(srcdir)/tclconfig/tcl.m4 $(srcdir)/tclconfig/install-sh \ + $(DIST_DIR)/tclconfig/ + + # Extension files + $(DIST_INSTALL_DATA) \ + $(srcdir)/ChangeLog \ + $(srcdir)/README.sha \ + $(srcdir)/license.terms \ + $(srcdir)/README \ + $(srcdir)/pkgIndex.tcl.in \ + $(DIST_DIR)/ + + list='demos doc generic library mac tests unix win'; \ + for p in $$list; do \ + if test -d $(srcdir)/$$p ; then \ + $(INSTALL_DATA_DIR) $(DIST_DIR)/$$p; \ + $(DIST_INSTALL_DATA) $(srcdir)/$$p/* $(DIST_DIR)/$$p/; \ + fi; \ + done + + (cd $(DIST_ROOT); $(COMPRESS);) + +#======================================================================== +# End of user-definable section +#======================================================================== + +#======================================================================== +# Don't modify the file to clean here. Instead, set the "CLEANFILES" +# variable in configure.ac +#======================================================================== + +clean: + -test -z "$(BINARIES)" || rm -f $(BINARIES) + -rm -f *.$(OBJEXT) core *.core + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean: clean + -rm -f *.tab.c + -rm -f $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log config.status + +#======================================================================== +# Install binary object libraries. On Windows this includes both .dll and +# .lib files. Because the .lib files are not explicitly listed anywhere, +# we need to deduce their existence from the .dll file of the same name. +# Library files go into the lib directory. +# In addition, this will generate the pkgIndex.tcl +# file in the install location (assuming it can find a usable tclsh shell) +# +# You should not have to modify this target. +#======================================================================== + +install-lib-binaries: binaries + @$(INSTALL_DATA_DIR) $(DESTDIR)$(pkglibdir) + @list='$(lib_BINARIES)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_LIBRARY) $$p $(DESTDIR)$(pkglibdir)/$$p"; \ + $(INSTALL_LIBRARY) $$p $(DESTDIR)$(pkglibdir)/$$p; \ + ext=`echo $$p|sed -e "s/.*\.//"`; \ + if test "x$$ext" = "xdll"; then \ + lib=`basename $$p|sed -e 's/.[^.]*$$//'`.lib; \ + if test -f $$lib; then \ + echo " $(INSTALL_DATA) $$lib $(DESTDIR)$(pkglibdir)/$$lib"; \ + $(INSTALL_DATA) $$lib $(DESTDIR)$(pkglibdir)/$$lib; \ + fi; \ + fi; \ + fi; \ + done + @list='$(PKG_TCL_SOURCES)'; for p in $$list; do \ + if test -f $(srcdir)/$$p; then \ + destp=`basename $$p`; \ + echo " Install $$destp $(DESTDIR)$(pkglibdir)/$$destp"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkglibdir)/$$destp; \ + fi; \ + done + @if test "x$(SHARED_BUILD)" = "x1"; then \ + echo " Install pkgIndex.tcl $(DESTDIR)$(pkglibdir)"; \ + $(INSTALL_DATA) pkgIndex.tcl $(DESTDIR)$(pkglibdir); \ + fi + $(INSTALL_DATA) tksvgConfig.sh $(DESTDIR)$(libdir) + +#======================================================================== +# Install binary executables (e.g. .exe files and dependent .dll files) +# This is for files that must go in the bin directory (located next to +# wish and tclsh), like dependent .dll files on Windows. +# +# You should not have to modify this target, except to define bin_BINARIES +# above if necessary. +#======================================================================== + +install-bin-binaries: binaries + @$(INSTALL_DATA_DIR) $(DESTDIR)$(bindir) + @list='$(bin_BINARIES)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$p"; \ + $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$p; \ + fi; \ + done + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +uninstall-binaries: + list='$(lib_BINARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(pkglibdir)/$$p; \ + done + list='$(PKG_TCL_SOURCES)'; for p in $$list; do \ + p=`basename $$p`; \ + rm -f $(DESTDIR)$(pkglibdir)/$$p; \ + done + list='$(bin_BINARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(bindir)/$$p; \ + done + +.PHONY: all binaries clean depend distclean doc install libraries test +.PHONY: gdb gdb-test valgrind valgrindshell + +# 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 saods9-8.2+repack/tksvg/orb.svg saods9-8.3+repack/tksvg/orb.svg --- saods9-8.2+repack/tksvg/orb.svg 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/orb.svg 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff -Nru saods9-8.2+repack/tksvg/pkgIndex.tcl.in saods9-8.3+repack/tksvg/pkgIndex.tcl.in --- saods9-8.2+repack/tksvg/pkgIndex.tcl.in 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/pkgIndex.tcl.in 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,5 @@ +# +# Tcl package index file +# +package ifneeded @PACKAGE_NAME@ @PACKAGE_VERSION@ \ + [list load [file join $dir @PKG_LIB_FILE@] @PACKAGE_NAME@] diff -Nru saods9-8.2+repack/tksvg/README.md saods9-8.3+repack/tksvg/README.md --- saods9-8.2+repack/tksvg/README.md 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/README.md 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,12 @@ +tksvg +====== + +This package adds support to read the SVG image format from Tk. +The actual code to parse and raster the SVG comes from nanosvg. + +Example usage: + + package require tksvg + set img [image create photo -file orb.svg] + pack [label .l -image $img] + diff -Nru saods9-8.2+repack/tksvg/tclconfig/ChangeLog saods9-8.3+repack/tksvg/tclconfig/ChangeLog --- saods9-8.2+repack/tksvg/tclconfig/ChangeLog 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/tclconfig/ChangeLog 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,1003 @@ +2016-03-11 Sean Woods + *tcl.m4 Fixed the search for Tcl and Wish shells under MinGW. Static builds and threaded builds + get an "s" or "t" added to the name. + +2015-08-28 Jan Nijtmans + + * tcl.m4: Rfe [00189c4afc]: Allow semi-static UCRT build on + Windows with VC 14.0 + +2013-10-08 Jan Nijtmans + + * tcl.m4: Bug [172223e008]: Wrong filename in + --disable-shared compile on MinGW + +2013-10-04 Jan Nijtmans + + * tcl.m4: stub library is no longer linked with msvcrt??.dll. + +2013-10-01 Jan Nijtmans + + * tcl.m4: Workaround for MinGW bug #2065: "gcc --shared" links + with libgcc_s_dw2-1.dll when using 64-bit division in C + +2013-07-04 Jan Nijtmans + + * tcl.m4: Bug [3324676]: AC_PROG_INSTALL incompat, + Bug [3606445]: Unneeded -DHAVE_NO_SEH=1 when not building on Windows + +2013-07-02 Jan Nijtmans + + * tcl.m4: Bug [32afa6e256]: dirent64 check is incorrect in tcl.m4 + (thanks to Brian Griffin) + +2013-06-20 Jan Nijtmans + + * tcl.m4: Use X11/Xlib.h for checking where X11 can be found + in stead of X11/XIntrinsic.h. Suggested by Pietro Cerutti. + +2013-06-04 Jan Nijtmans + + * tcl.m4: Eliminate NO_VIZ macro as current + zlib uses HAVE_HIDDEN in stead. One more last-moment + fix for FreeBSD by Pietro Cerutti + +2013-05-19 Jan Nijtmans + + * tcl.m4: Fix for FreeBSD, and remove support for old + FreeBSD versions. Patch by Pietro Cerutti + +2013-03-12 Jan Nijtmans + + * tcl.m4: Patch by Andrew Shadura, providing better support for + * three architectures they have in Debian. + +2012-08-07 Stuart Cassoff + + * tcl.m4: Added "-DNDEBUG" to CFLAGS_DEFAULT + when building with --disable-symbols. + +2012-08-07 Stuart Cassoff + + * tcl.m4: [Bug 3555058]: Checkin [30736d63f0] broke + CFLAGS_DEFAULT, LDFLAGS_DEFAULT + +2012-08-07 Stuart Cassoff + + * tcl.m4: [Bug 3511806]: Checkin [30736d63f0] broke CFLAGS + +2012-08-07 Jan Nijtmans + + * tcl.m4: [Bug 3511806]: Checkin [30736d63f0] broke CFLAGS + +2012-07-25 Jan Nijtmans + + * tcl.m4: My previous commit (2012-04-03) broke the ActiveTcl + build for AMD64, because of the quotes in "C://AMD64/cl.exe". + It turns out that the AC_TRY_COMPILE macro cannot handle that. + +2012-07-22 Stuart Cassoff + + * tcl.m4: Tidy: consistency, spelling, phrasing, whitespace. + No functional change. + +2012-04-03 Jan Nijtmans + + * tcl.m4: [Bug 3511806] Compiler checks too early + This change allows to build the cygwin and mingw32 ports of + Tcl/Tk extensions to build out-of-the-box using a native or + cross-compiler, e.g. on Cygwin, Linux or Darwin. + +2011-04-02 Jan Nijtmans + + * install-sh: Fix issue with library stripping in install-sh + (backported from kevin_walzer's patch from Tcl 8.6 trunk) + +2011-04-05 Andreas Kupries + + * tcl.m4: Applied patch by Jeff Lawson. Nicer error message when + tclConfig.sh was not found. + +2010-12-15 Stuart Cassoff + + * install-sh: Upgrade to newer install-sh and use it. + * tcl.m4: + +2010-12-14 Stuart Cassoff + + * tcl.m4: Better building on OpenBSD. + +2010-12-14 Jan Nijtmans + + * tcl.m4: when using gcc, don't try to determine Win64 SDK + +2010-12-12 Jan Nijtmans + + * tcl.m4: Determine correctly a cross-compiler-windres + +2010-11-23 Jan Nijtmans + + * tcl.m4: add some cross-compile support, borrowed from Tcl 8.6 + +2010-09-16 Jeff Hobbs + + * tcl.m4: correct HP-UX LDFLAGS (only used when building big shell) + +2010-09-14 Jeff Hobbs + + * tcl.m4: add extra if check for .manifest file generation + Add notice about package name and version being built. + +2010-09-09 Jan Nijtmans + + * tcl.m4: [FREQ #3058486] TEA_LOAD_CONFIG doesn't set all BUILD_ vars + Slightly related: defining BUILD_$1 on all platforms - not only win - + allows the -fvisibility feature to be used in extensions as well, at + least if you compile against tcl >= 8.5. + +2010-08-26 Jeff Hobbs + + * tcl.m4: ensure safe quoting for autoheader usage + +2010-08-19 Jeff Hobbs + + * tcl.m4: add TEA_ADD_CLEANFILES macro to make adding cleanfiles + easier, and add *.exp to CLEANFILES Windows default. + (TEA_MAKE_LIB): Enhanced to check for MSVC that requires manifests + and auto-embed it into proj DLL via MAKE_SHARED_LIB. Also define + VC_MANIFEST_EMBED_DLL and VC_MANIFEST_EMBED_EXE that do the same + magic in case it is needed for extended TEA projects. + +2010-08-16 Jeff Hobbs + + *** Bump to TEA_VERSION 3.9 *** + If upgrading from TEA_VERSION 3.8, copy over tcl.m4, change + TEA_INIT to use 3.9 and reconfigure (ac-2.59+). + BUILD_${PACKAGE_NAME} will be auto-defined on Windows for + correct setting of TCL_STORAGE_CLASS. + TEA_LOAD_CONFIG users should remove the SHLIB_LD_LIBS setting done + in configure.in (LIBS will be automagically populated by + TEA_LOAD_CONFIG). + TEA_EXPORT_CONFIG has been added for ${pkg}Config.sh creators + SHLIB_LD_FLAGS was deprecated a while ago, remove it if it is + still in your Makefile.in. + + * tcl.m4: add /usr/lib64 to set of auto-search dirs. [Bug 1230554] + Auto-define BUILD_$PACKAGE_NAME so users don't need to. This + needs to correspond with $pkg.h define magic for TCL_STORAGE_CLASS. + Auto-define CLEANFILES. Users can expand it. + (SHLIB_LD_LIBS): define to '${LIBS}' default and change it only if + necessary. Platforms not using this may simply not work or have + very funky linkers. + (TEA_LOAD_CONFIG): When loading config for another extension, + auto-add stub libraries found with TEA_ADD_LIBS. Eases + configure.in for modules like itk and img::*. + (TEA_EXPORT_CONFIG): Add standardized function for exporting a + ${pkg}Config.sh. See use by img::* and itcl. + +2010-08-12 Jeff Hobbs + + *** Bump to TEA_VERSION 3.8 *** + If upgrading from TEA_VERSION 3.7, copy over tcl.m4, change + TEA_INIT to use 3.8 and reconfigure (ac-2.59+). + No other changes should be necessary. + + * tcl.m4: remove more vestigial bits from removed platforms. + Add back SCO_SV-3.2*. + Remove use of DL_LIBS and DL_OBJS and related baggage - these are + only needed by the core to support 'load'. + Allow for macosx in TEA_ADD_SOURCES. + Correct check for found_xincludes=no in TEA_PATH_UNIX_X. + +2010-08-11 Jeff Hobbs + + * tcl.m4: remove the following old platform configurations: + UNIX_SV*|UnixWare-5*, SunOS-4.*, SINIX*5.4*, SCO_SV-3.2*, + OSF1-1.*, NEXTSTEP-*, NetBSD-1.*|FreeBSD-[[1-2]].*, MP-RAS-*, + IRIX-5.*, HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*, dgux*, + BSD/OS-2.1*|BSD/OS-3* + (AIX): drop AIX-pre4 support and use of ldAix, use -bexpall/-brtl + +2010-07-05 Jan Nijtmans + + * tcl.m4: [Patch #1055668] removal of exported internals from + tclInt.h (EXTERN macro) + +2010-04-14 Jan Nijtmans + + * tcl.m4 - Backport a lot of quoting fixes from tcl8.6/unix/tcl.m4 + - Fix determination of CYGPATH for CYGWIN + With those fixes, itcl and tdbc compile fine with CYGWIN + +2010-04-06 Jan Nijtmans + + * install-sh [Bug 2982540] configure and install* script files + should always have LF + +2010-02-19 Stuart Cassoff + + * tcl.m4: Correct compiler/linker flags for threaded builds on + OpenBSD. + +2010-01-19 Jan Nijtmans + + * tcl.m4: Detect CYGWIN variant: win32 or unix + +2010-01-03 Donal K. Fellows + + * unix/tcl.m4 (TEA_CONFIG_CFLAGS): [Tcl Bug 1636685]: Use the + configuration for modern FreeBSD suggested by the FreeBSD porter. + +2009-10-22 Jan Nijtmans + + * tcl.m4: [Tcl Patch #2883533] tcl.m4 support for Haiku OS + +2009-04-27 Jeff Hobbs + + * tcl.m4 (TEA_CONFIG_CFLAGS): harden the check to add _r to CC on + AIX with threads. + +2009-04-10 Daniel Steffen + + * tcl.m4 (Darwin): check for 64-bit TkAqua. + +2009-03-26 Jan Nijtmans + + * tclconfig/tcl.m4: Adapt LDFLAGS and LD_SEARCH_FLAGS + together with SHLIB_LD definition to unbreak building on HPUX. + +2009-03-20 Andreas Kupries + + * tclconfig/tcl.m4: Changed SHLIB_LD definition to unbreak + building on HPUX. + +2009-03-16 Joe English + + * tcl.m4(TEA_PUBLIC_TK_HEADERS): Look at ${TK_INCLUDE_SPEC} + (found in tkConfig.sh) when trying to guess where tk.h might be + [Patch 1960628]. + +2009-03-11 Joe English + + * tcl.m4: Allow ${SHLIB_SUFFIX} to be overridden at + configure-time [Patch 1960628]. Also fix some comment typos, + and an uninitialized variable bug-waiting-to-happen. + +2008-12-21 Jan Nijtmans + + * tcl.m4: [Bug 2073255] Tcl_GetString(NULL) doesn't crash on HP-UX + (this bug report was for Tcl, but holds for TEA as well.) + +2008-12-20 Daniel Steffen + + * tcl.m4: sync with tdbc tcl.m4 changes + (SunOS-5.11): Sun cc SHLIB_LD: use LDFLAGS_DEFAULT instead of LDFLAGS + +2008-12-02 Jeff Hobbs + + *** Bump to TEA_VERSION 3.7 *** + + * tcl.m4: in private header check, check for Port.h instead + of Int.h to ensure all private headers are available. + +2008-11-04 Daniel Steffen + + * tcl.m4 (Darwin): sync TEA_PRIVATE_TK_HEADERS handling of + Tk.framework PrivateHeaders with TEA_PRIVATE_TCL_HEADERS. + +2008-11-04 Jeff Hobbs + + * tcl.m4 (TEA_PATH_TCLCONFIG, TEA_PATH_TKCONFIG): exit with error + when tclConfig.sh cannot be found. [Bug #1997760] + (TEA_PRIVATE_TCL_HEADERS, TEA_PRIVATE_TK_HEADERS): allow for + finding the headers installed in the public areas, e.g. a result of + make install-private-headers. [Bug #1631922] + +2008-08-12 Daniel Steffen + + * tcl.m4 (Darwin): link shlib with current and compatiblity version + flags; look for libX11.dylib when searching for X11 libraries. + +2008-06-12 Daniel Steffen + + * tcl.m4 (SunOS-5.11): fix 64bit amd64 support with gcc & Sun cc. + +2008-03-27 Daniel Steffen + + * tcl.m4 (SunOS-5.1x): fix 64bit support for Sun cc. [Bug 1921166] + +2008-02-01 Donal K. Fellows + + * tcl.m4 (TEA_CONFIG_CFLAGS): Updated to work at least in part with + more modern VC versions. Currently just made the linker flags more + flexible; more work may be needed. + +2007-10-26 Daniel Steffen + + * tcl.m4 (Darwin): add support for 64-bit X11. + +2007-10-23 Jeff Hobbs + + *** Tagged tea-3-branch to start TEA 4 development on HEAD *** + +2007-09-17 Joe English + + * tcl.m4: use '${CC} -shared' instead of 'ld -Bshareable' + to build shared libraries on current NetBSDs [Bug 1749251]. + +2007-09-15 Daniel Steffen + + * tcl.m4: replace all direct references to compiler by ${CC} to + enable CC overriding at configure & make time. + (SunOS-5.1x): replace direct use of '/usr/ccs/bin/ld' in SHLIB_LD by + 'cc' compiler driver. + +2007-08-08 Jeff Hobbs + + * tcl.m4: check Ttk dir for Tk private headers (8.5). + Add some comments to other bits. + +2007-06-25 Jeff Hobbs + + * tcl.m4 (TEA_PROG_TCLSH, TEA_PROG_WISH): move where / is added. + +2007-06-13 Jeff Hobbs + + * tcl.m4: fix --with-tkinclude alignment. [Bug 1506111] + +2007-06-06 Daniel Steffen + + * tcl.m4 (Darwin): fix 64bit arch removal in fat 32&64bit builds. + +2007-05-18 Donal K. Fellows + + * tcl.m4: Added quoting so that paths with spaces cause fewer + problems. + +2007-03-07 Daniel Steffen + + * tcl.m4 (Darwin): s/CFLAGS/CPPFLAGS/ in -mmacosx-version-min check. + +2007-02-15 Jeff Hobbs + + * tcl.m4: correct private header check to search in generic subdir + +2007-02-09 Jeff Hobbs + + *** Bump to TEA_VERSION 3.6 *** + + * tcl.m4: correct -d to -f + (TEA_CONFIG_CFLAGS): SHLIB_SUFFIX is .so on HP ia64 [Bug 1615058] + +2007-02-08 Jeff Hobbs + + * tcl.m4 (TEA_PRIVATE_TCL_HEADERS, TEA_PRIVATE_TK_HEADERS): check + that the dirs actually have private headers. [Bug 1631922] + +2007-02-04 Daniel Steffen + + * tcl.m4: add caching to -pipe check. + +2007-01-25 Daniel Steffen + + * tcl.m4: integrate CPPFLAGS into CFLAGS as late as possible and + move (rather than duplicate) -isysroot flags from CFLAGS to CPPFLAGS to + avoid errors about multiple -isysroot flags from some older gcc builds. + +2006-01-19 Daniel Steffen + + * tcl.m4: ensure CPPFLAGS env var is used when set. [Bug 1586861] + (Darwin): add -isysroot and -mmacosx-version-min flags to CPPFLAGS when + present in CFLAGS to avoid discrepancies between what headers configure + sees during preprocessing tests and compiling tests. + +2006-12-19 Daniel Steffen + + * tcl.m4 (Darwin): --enable-64bit: verify linking with 64bit -arch flag + succeeds before enabling 64bit build. + +2006-12-16 Daniel Steffen + + * tcl.m4 (Linux): fix previous change to use makefile variable + LDFLAGS_DEFAULT instead of LDFLAGS in SHLIB_LD, to ensure linker + flags in sampleextension Makefile are picked up. + +2006-11-26 Daniel Steffen + + * tcl.m4 (Linux): --enable-64bit support. [Patch 1597389], [Bug 1230558] + +2006-08-18 Daniel Steffen + + * tcl.m4 (Darwin): add support for --enable-64bit on x86_64, for + universal builds including x86_64 and for use of -mmacosx-version-min + instead of MACOSX_DEPLOYMENT_TARGET. For Tk extensions, remove 64-bit + arch flags from CFLAGS like in the Tk configure, as neither TkAqua nor + TkX11 can be built for 64-bit at present. + +2006-03-28 Jeff Hobbs + + * tcl.m4: []-quote AC_DEFUN functions. + (TEA_PATH_TKCONFIG): Fixed Windows-specific check for tkConfig.sh. + (TEA_MAKE_LIB): Prepend 'lib' for Windows-gcc configs. + +2006-03-07 Joe English + + * tcl.m4: Set SHLIB_LD_FLAGS='${LIBS}' on NetBSD, + as per the other *BSD variants [Bug 1334613]. + +2006-01-25 Jeff Hobbs + + *** Bump to TEA version 3.5 *** + + * tcl.m4: keep LD_SEARCH_FLAGS and CC_SEARCH_FLAGS synchronous + with core tcl.m4 meaning. + +2006-01-24 Daniel Steffen + + * tcl.m4 (Darwin): use makefile variable LDFLAGS_DEFAULT instead of + LDFLAGS in SHLIB_LD, to ensure linker flags in sampleextension Makefile + are picked up. [Bug 1403343] + +2006-01-23 Jeff Hobbs + + * tcl.m4: add C:/Tcl/lib and C:/Progra~1/Tcl/lib dirs to check for + *Config.sh on Windows. [Bug 1407544] + +2006-01-23 Daniel Steffen + + * tcl.m4 (Darwin): for Tk extensions, remove -arch ppc64 from CFLAGS + like in the Tk configure, as neither TkAqua nor TkX11 can be built for + 64bit at present (no 64bit GUI libraries). + +2006-01-22 Jeff Hobbs + + * tcl.m4: restore system=windows on Windows. + Remove error if 'ar' isn't found (it may not be on Windows). + Do not add -lxnet or define _XOPEN_SOURCE on HP-UX by default. + Ensure the C|LDFLAGS_DEFAULT gets the fully sub'd value at + configure time. + +2006-01-10 Daniel Steffen + + * tcl.m4: add caching, use AC_CACHE_CHECK instead of AC_CACHE_VAL + where possible, consistent message quoting, sync relevant + tcl/unix/tcl.m4 HEAD changes and gratuitous formatting differences + (notably sunc removal of support for for ancient BSD's, IRIX 4, + RISCos and Ultrix by kennykb), Darwin improvements to + TEA_LOAD_*CONFIG to make linking work against Tcl/Tk frameworks + installed in arbitrary location, change TEA_PROG_* search order + (look in *_BIN_DIR parents before *_PREFIX). + +2006-01-05 Jeff Hobbs + + * tcl.m4: add dkf's system config refactor + +2006-01-04 Jeff Hobbs + + * tcl.m4: remove extraneous ' that causes bash 3.1 to choke + +2005-12-19 Joe English + + * tcl.m4 (TEA_PATH_TCLCONFIG &c): Look for tclConfig.sh &c + in ${libdir}, where they are installed by default [Patch #1377407]. + +2005-12-05 Don Porter + + * tcl.m4 (TEA_PUBLIC_*_HEADERS): Better support for finding + header files for uninstalled Tcl and Tk. + +2005-12-02 Jeff Hobbs + + * tcl.m4: correctly bump TEA_VERSION var to 3.4 + +2005-12-01 Daniel Steffen + + * unix/tcl.m4 (Darwin): fixed error when MACOSX_DEPLOYMENT_TARGET unset + +2005-11-29 Jeff Hobbs + + * tcl.m4: *** Bump to TEA version 3.4 *** + Add Windows x64 build support. + Remove TEA_PATH_NOSPACE and handle the problem with ""s where + necessary - the macro relied on TCLSH_PROG which didn't work for + cross-compiles. + +2005-11-27 Daniel Steffen + + * tcl.m4 (Darwin): add 64bit support, add CFLAGS to SHLIB_LD to + support passing -isysroot in env(CFLAGS) to configure (flag can't + be present twice, so can't be in both CFLAGS and LDFLAGS during + configure), don't use -prebind when deploying on 10.4. + (TEA_ENABLE_LANGINFO, TEA_TIME_HANDLER): add/fix caching. + +2005-10-30 Daniel Steffen + + * tcl.m4: fixed two tests for TEA_WINDOWINGSYSTEM = "aqua" that + should have been for `uname -s` = "Darwin" instead; added some + missing quoting. + (TEA_PROG_TCLSH, TEA_PROG_WISH): fix incorrect assumption that + install location of tclConfig.sh/tkConfig.sh allows to determine + the tclsh/wish install dir via ../bin. Indeed tcl/tk can be + configured with arbitrary --libdir and --bindir (independent of + prefix) and such a configuration is in fact standard with Darwin + framework builds. At least now also check ${TCL_PREFIX}/bin + resp. ${TK_PREFIX}/bin for presence of tclsh resp. wish (if tcl/tk + have been configured with arbitrary --bindir, this will still not + find them, for a general solution *Config.sh would need to contain + the values of bindir/libdir/includedir passed to configure). + +2005-10-07 Jeff Hobbs + + * tcl.m4: Fix Solaris 5.10 check and Solaris AMD64 64-bit builds. + +2005-10-04 Jeff Hobbs + + * tcl.m4 (TEA_PRIVATE_TCL_HEADERS): add / to finish sed macro + (TEA_ENABLE_THREADS): don't check for pthread_attr_setstacksize func + +2005-09-13 Jeff Hobbs + + * tcl.m4: *** Update to TEA version 3.3 *** + define TEA_WINDOWINGSYSTEM in TEA_LOAD_TKCONFIG. + Make --enable-threads the default (users can --disable-threads). + Improve AIX ${CC}_r fix to better check existing ${CC} value. + Do the appropriate evals to not require the *TOP_DIR_NATIVE vars + be set for extensions that use private headers. + Make aqua check for Xlib compat headers the same as win32. + +2005-07-26 Mo DeJong + + * tcl.m4 (TEA_PROG_TCLSH, TEA_BUILD_TCLSH, + TEA_PROG_WISH, TEA_BUILD_WISH): Remove + TEA_BUILD_TCLSH and TEA_BUILD_WISH because + of complaints that it broke the build when + only an installed version of Tcl was available + at extension build time. The TEA_PROG_TCLSH and + TEA_PROG_WISH macros will no longer search the + path at all. The build tclsh or installed + tclsh shell will now be found by TEA_PROG_TCLSH. + +2005-07-24 Mo DeJong + + * tcl.m4 (TEA_PROG_TCLSH, TEA_BUILD_TCLSH, + TEA_PROG_WISH, TEA_BUILD_WISH): + Split confused search for tclsh on PATH and + build and install locations into two macros. + TEA_PROG_TCLSH and TEA_PROG_WISH search the + system PATH for an installed tclsh or wish. + The TEA_BUILD_TCLSH and TEA_BUILD_WISH + macros determine the name of tclsh or + wish in the Tcl or Tk build directory even + if tclsh or wish has not yet been built. + [Tcl bug 1160114] + [Tcl patch 1244153] + +2005-06-23 Daniel Steffen + + * tcl.m4 (TEA_PRIVATE_TK_HEADERS): add ${TK_SRC_DIR}/macosx to + TK_INCLUDES when building against TkAqua. + + * tcl.m4 (TEA_PATH_X): fixed missing comma in AC_DEFINE + + * tcl.m4: changes to better support framework builds of Tcl and Tk out + of the box: search framework install locations for *Config.sh, and if in + presence of a framework build, use the framework's Headers and + PrivateHeaders directories for public and private includes. [FR 947735] + +2005-06-18 Daniel Steffen + + * tcl.m4 (Darwin): add -headerpad_max_install_names to LDFLAGS to + ensure we can always relocate binaries with install_name_tool. + +2005-06-04 Daniel Steffen + + * tcl.m4 (TEA_PATH_X): for TEA_WINDOWINGSYSTEM == aqua, check if xlib + compat headers are available in tkheaders location, otherwise add xlib + sourcedir to TK_XINCLUDES. + +2005-04-25 Daniel Steffen + + * tcl.m4: added AC_DEFINE* descriptions (from core tcl.m4) to allow + use with autoheader. + (Darwin): added configure checks for recently added linker flags + -single_module and -search_paths_first to allow building with older + tools (and on Mac OS X 10.1), use -single_module in SHLIB_LD. + (TEA_MISSING_POSIX_HEADERS): added caching of dirent.h check. + (TEA_BUGGY_STRTOD): added caching (sync with core tcl.m4). + +2005-03-24 Jeff Hobbs + + * tcl.m4 (TEA_TCL_64BIT_FLAGS): use Tcl header defaults for wide + int type only on Windows when __int64 is detected as valid. + +2005-03-24 Don Porter + + * README.txt: Update reference to "SC_* macros" to "TEA_* macros". + * tcl.m4: Incorporated recent improvements in SC_PATH_TCLCONFIG + and SC_PATH_TKCONFIG into TEA_PATH_TCLCONFIG and TEA_PATH_TKCONFIG. + Corrected search path in TEA_PATH_CONFIG and added + AC_SUBST($1_BIN_DIR) to TEA_LOAD_CONFIG so that packages that load + the configuration of another package can know where they loaded + it from. + +2005-03-18 Jeff Hobbs + + * tcl.m4 (TEA_CONFIG_CFLAGS): correct 2005-03-17 change to have + variant LD_SEARCH_FLAGS for gcc and cc builds. + + * tcl.m4 (TEA_PROG_TCLSH, TEA_PROG_WISH): correct x-compile check. + +2005-03-17 Jeff Hobbs + + * tcl.m4: Correct gcc build and HP-UX-11. + +2005-02-08 Jeff Hobbs + + * tcl.m4 (TEA_ADD_LIBS): don't touch lib args starting with -. + (TEA_CONFIG_CFLAGS): only define _DLL for CE in shared build. + (TEA_MAKE_LIB): set RANLIB* to : on Windows (it's not needed). + +2005-02-01 Jeff Hobbs + + * tcl.m4: redo of 2005-01-27 changes to correctly handle paths + with spaces. Win/CE and Win/64 builds now require a prebuilt + tclsh to handle conversion to short pathnames. This is done in + the new TEA_PATH_NOSPACE macro. For Win/CE|64, make CC just the + compiler and move the necessary includes to CFLAGS. + (TEA_CONFIG_CFLAGS): Add Solaris 64-bit gcc build support. + (TEA_PROG_TCLSH, TEA_PROG_WISH): Allow TCLSH_PROG and WISH_PROG to + be set in the env and prevent resetting. + (TEA_ADD_LIBS): On Windows using GCC (mingw), convert foo.lib + args to -lfoo, for use with mingw. + *** POTENTIAL INCOMPATABILITY *** + (TEA_CONFIG_CFLAGS): Fix AIX gcc builds to work out-of-box. + Bumped TEA to 3.2. + +2005-01-27 Jeff Hobbs + + * tcl.m4: remove cygpath calls to support msys. + Update base CE build assumption to "420,ARMV4,ARM,Pocket PC 2003". + Make STLIB_LD use $LINKBIN -lib. + +2005-01-25 Daniel Steffen + + * tcl.m4 (Darwin): fixed bug with static build linking to dynamic + library in /usr/lib etc instead of linking to static library earlier + in search path. [Tcl Bug 956908] + Removed obsolete references to Rhapsody. + +2004-12-29 Jeff Hobbs + + * tcl.m4: Updates for VC7 compatibility, fixing CFLAGS and LDFLAGS + options, using better default -O levels. [Bug 1092952, 1091967] + +2004-12-29 Joe English + + * tcl.m4: Do not use ${DBGX} suffix when building + shared libraries [patch #1081595, TIP #34] + +2004-09-07 Jeff Hobbs + + * tcl.m4 (TEA_CONFIG_CFLAGS): support eVC4 Win/CE builds + +2004-08-10 Jeff Hobbs + + * tcl.m4 (TEA_INIT, TEA_PREFIX): update handling of exec_prefix to + work around subdir configures since autoconf only propagates the + prefix (not exec_prefix). + +2004-07-23 Daniel Steffen + + * tcl.m4 (TEA_CONFIG_CFLAGS): Darwin section: brought inline with + Tcl 8.5 HEAD config, removed core specific & obsolete settings. + +2004-07-22 Jeff Hobbs + + * tcl.m4 (TEA_PATH_X): check in TK_DEFS for MAC_OSX_TK to see if + we are compiling on Aqua. Add TEA_WINDOWINGSYSTEM var that + reflects 'tk windowingsystem' value. + +2004-07-16 Jeff Hobbs + + * tcl.m4 (TEA_ENABLE_THREADS): force a threaded build when + building against a threaded core. + (CFLAGS_WARNING): Remove -Wconversion for gcc builds + (TEA_CONFIG_CFLAGS): Reorder configure.in for better 64-bit build + configuration, replacing EXTRA_CFLAGS with CFLAGS. [Bug #874058] + Update to latest Tcl 8.5 head config settings. + Call this TEA version 3.1. + +2004-04-29 Jeff Hobbs + + * tcl.m4 (TEA_TCL_64BIT_FLAGS): replace AC_TRY_RUN test with + AC_TRY_COMPILE for the long vs. long long check. (kenny) + +2004-04-26 Jeff Hobbs + + * tcl.m4 (TEA_TCL_64BIT_FLAGS): update against core tcl.m4 to + define TCL_WIDE_INT_IS_LONG if 'using long'. + +2004-03-19 Jeff Hobbs + + * tcl.m4: correct Windows builds getting LDFLAGS info in MAKE_LIB + +2004-02-11 Jeff Hobbs + + * tcl.m4: correct TCL_INCLUDES for private headers on Windows - it + doesn't need the eval. + +2004-02-10 Jeff Hobbs + + * tcl.m4: don't require TK_INCLUDES and TCL_INCLUDES to have the + DIR_NATIVE vars defined when using private headers on unix. + Allow $... to TEA_ADD_SOURCES for constructs like + TEA_ADD_SOURCES([\$(WIN_OBJECTS)]), that allow the developer to + place more in the Makefile.in. + tkUnixPort.h checks for HAVE_LIMITS_H, so do both HAVE and + CHECK on limits.h + +2003-12-10 Jeff Hobbs + + * Makefile.in: added TEA_ADD_LIBS, TEA_ADD_INCLUDES and + * configure: TEA_ADD_CFLAGS to configurable parameters with + * configure.in: PKG_* equivs in the Makefile. This allows the + * tclconfig/tcl.m4: user to worry less about actual magic VAR names. + Corrected Makefile.in to note that TEA_ADD_TCL_SOURCES requires + exact file names. + +2003-12-09 Jeff Hobbs + + * tcl.m4: updated OpenBSD support based on [Patch #775246] (cassoff) + +2003-12-05 Jeff Hobbs + + * configure: + * configure.in: + * Makefile.in (VPATH): readd $(srcdir) to front of VPATH as the + first part of VPATH can get chopped off. + Change .c.$(OBJEXT) rule to .c.@OBJEXT@ to support more makes. + * tclconfig/tcl.m4: add TEA_ADD_STUB_SOURCES to support libstub + generation and TEA_ADD_TCL_SOURCES to replace RUNTIME_SOURCES as + the way the user specifies library files. + +2003-12-03 Jeff Hobbs + + * configure: Update of TEA spec to (hopefully) simplify + * configure.in: some aspects of TEA by making use of more + * Makefile.in: AC 2.5x features. Use PACKAGE_NAME (instead + * generic/tclsample.c: of PACKAGE) and PACKAGE_VERSION (instead of + * tclconfig/tcl.m4: VERSION) arguments to AC_INIT as the TEA + package name and version. + Provide a version argument to TEA_INIT - starting with 3.0. + Drop all use of interior shell substs that older makefiles didn't + like. Use PKG_* naming convention instead. + Move specification of source files and public headers into + configure.in with TEA_ADD_SOURCES and TEA_ADD_HEADERS. These will + be munged during ./configure into the right obj file names (no + $(SOURCES:.c=.obj) needed). + There is almost nothing that should be touched in Makefile.in now + for the developer. May want to add a TEA_ADD_TCL_SOURCES for the + RUNTIME_SOURCES that remains. + Use SHLID_LD_FLAGS (instead of SHLID_LDFLAGS) as Tcl does. + Only specify the user requested LDFLAGS/CFLAGS in the Makefile, + don't mention the _OPTIMIZE/_DEBUG variants. + +2003-10-15 Jeff Hobbs + + * tcl.m4: create a TEA_SETUP_COMPILER_CC the precedes the + TEA_SETUP_COMPILER macro. They are split so the check for CC + occurs before any use of CC. Also add AC_PROG_CPP to the compiler + checks. + +2003-10-06 Jeff Hobbs + + * tcl.m4: Updated for autoconf 2.5x prereq. + Where TCL_WIDE_INT_TYPE would be __int64, defer to the code checks + in tcl.h, which also handles TCL_LL_MODIFIER* properly. + +2003-04-22 Jeff Hobbs + + * tcl.m4: correct default setting of ARCH for WinCE builds. + Correct \ escaping for CE sed macros. + +2003-04-10 Jeff Hobbs + + * tcl.m4: replace $(syscal) construct with older `syscall` for + systems where sh != bash. + +2003-04-09 Jeff Hobbs + + * tcl.m4 (TEA_WITH_CELIB): add --enable-wince and --with-celib + options for Windows/CE compilation support. Requires the + Microsoft eMbedded SDK and Keuchel's celib emulation layer. + +2003-02-18 Jeff Hobbs + + * tcl.m4 (TEA_ENABLE_THREADS): Make sure -lpthread gets passed on + the link line when checking for the pthread_attr_setstacksize + symbol. (dejong) + + * tcl.m4 (TEA_SETUP_COMPILER): added default calls to + TEA_TCL_EARLY_FLAGS, TEA_TCL_64BIT_FLAGS, + TEA_MISSING_POSIX_HEADERS and TEA_BUGGY_STRTOD. + +2003-02-14 Jeff Hobbs + + * tcl.m4: correct HP-UX ia64 --enable-64bit build flags + +2003-01-29 Jeff Hobbs + + * tcl.m4: check $prefix/lib as well as $exec_prefix/lib when + looking for tcl|tkConfig.sh, as this check is done before we would + set exec_prefix when the user does not define it. + +2003-01-21 Mo DeJong + + * tcl.m4 (TEA_CONFIG_CFLAGS): Fix build support + for mingw, the previous implementation would + use VC++ when compiling with mingw gcc. Don't + pass -fPIC since gcc always compiles pic code + under win32. Change some hard coded cases + of gcc to ${CC}. + +2002-10-15 Jeff Hobbs + + * tcl.m4: move the CFLAGS definition from TEA_ENABLE_SHARED to + TEA_MAKE_LIB because setting too early confuses other AC_* macros. + Correct the HP-11 SHLIB_LD_LIBS setting. + + * tcl.m4: add the CFLAGS definition into TEA_ENABLE_SHARED and + make it pick up the env CFLAGS at configure time. + +2002-10-09 Jeff Hobbs + + * tcl.m4: add --enable-symbols=mem option to enable TCL_MEM_DEBUG. + Improved AIX 64-bit build support, allow it on AIX-4 as well. + Enable 64-bit HP-11 compilation with gcc. + Enable 64-bit IRIX64-6 cc build support. + Correct FreeBSD thread library linkage. + Add OSF1 static build support. + Improve SunOS-5 shared build SHLIB_LD macro. + +2002-07-20 Zoran Vasiljevic + + * tcl.m4: Added MINGW32 to list of systems checked for Windows build. + Also, fixes some indentation issues with "--with-XXX" options. + +2002-04-23 Jeff Hobbs + + * tcl.m4 (TEA_ENABLE_THREADS): added USE_THREAD_ALLOC define to + use new threaded allocatory by default on Unix for Tcl 8.4. + (TEA_CONFIG_CFLAGS): corrected LD_SEARCH_FLAGS for FreeBSD-3+. + +2002-04-22 Jeff Hobbs + + * tcl.m4 (TEA_SETUP_COMPILER): removed call to AC_CYGWIN so that + we can use autoconf 2.5x as well as 2.13. This prevents us from + being able to warn against the use of cygwin gcc at configure + time, but allows autoconf 2.5x, which is what is shipped with most + newer systems. + +2002-04-11 Jeff Hobbs + + * tcl.m4: Enabled COFF as well as CV style debug info with + --enable-symbols to allow Dr. Watson users to see function info. + More info on debugging levels can be obtained at: + http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp + +2002-04-03 Jeff Hobbs + + * tcl.m4: change all SC_* macros to TEA_*. The SC_ was for + Scriptics, which is no more. TEA represents a better, independent + prefix that won't need changing. + Added preliminary mingw gcc support. [Patch #538772] + Added TEA_PREFIX macro that handles defaulting the prefix and + exec_prefix vars to those used by Tcl if none were specified. + Added TEA_SETUP_COMPILER macro that encompasses the AC_PROG_CC + check and several other basic AC_PROG checks needed for making + executables. This greatly simplifies user's configure.in files. + Collapsed AIX-5 defines into AIX-* with extra checks for doing the + ELF stuff on AIX-5-ia64. + Updated TEA_ENABLE_THREADS to take an optional arg to allow + switching it on by default (for Thread) and add sanity checking to + warn the user if configuring threads incompatibly. + +2002-03-29 Jeff Hobbs + + * tcl.m4: made sure that SHLIB_LDFLAGS was set to LDFLAGS_DEFAULT. + Removed --enable-64bit support for AIX-4 because it wasn't correct. + Added -MT or -MD Windows linker switches to properly support + symbols-enabled builds. + +2002-03-28 Jeff Hobbs + + * tcl.m4: called AC_MSG_ERROR when SC_TEA_INIT wasn't called first + instead of calling it as that inlines it each time in shell code. + Changed Windows CFLAGS_OPTIMIZE to use -O2 instead of -Oti. + Noted TCL_LIB_VERSIONS_OK=nodots for Windows builds. + A few changes to support itcl (and perhaps others): + Added support for making your own stub libraries to SC_MAKE_LIB. + New SC_PATH_CONFIG and SC_LOAD_CONFIG that take a package name arg + and find that ${pkg}Config.sh file. itk uses this for itcl. + +2002-03-27 Jeff Hobbs + + * tcl.m4: made SC_LOAD_TKCONFIG recognize when working with a Tk + build dir setup. + Added EXTRA_CFLAGS and SHLIB_LD_LIBS substs to SC_CONFIG_CFLAGS. + Added XLIBSW onto LIBS when it is defined. + Remove TCL_LIBS from MAKE_LIB and correctly use SHLIB_LD_LIBS + instead to not rely as much on tclConfig.sh cached info. + Add TK_BIN_DIR to paths to find wish in SC_PROG_WISH. + These move towards making TEA much more independent of *Config.sh. + +2002-03-19 Jeff Hobbs + + * tcl.m4: corrected forgotten (UN)SHARED_LIB_SUFFIX and + SHLIB_SUFFIX defines for Win. + (SC_PATH_X): made this only do the check on unix platforms. + +2002-03-12 Jeff Hobbs + + * README.txt: updated to reflect fewer files + +2002-03-06 Jeff Hobbs + + * config.guess (removed): + * config.sub (removed): removed unnecessary files + + * installFile.tcl (removed): + * mkinstalldirs (removed): these aren't really necessary for + making TEA work + + * tcl.m4 (SC_PUBLIC_TCL_HEADERS, SC_PUBLIC_TK_HEADERS): don't + check /usr(/local)/include for includes on Windows when not using + gcc + +2002-03-05 Jeff Hobbs + + * tcl.m4: added warnings on Windows, removed RELPATH define and + added TCL_LIBS to MAKE_LIB macro. + + This import represents 2.0.0, or a new start at attempting to + make TEA much easier for C extension developers. + + **** moved from tclpro project to core tcl project, **** + **** renamed to 'tclconfig' **** + +2001-03-15 Karl Lehenbauer + + * installFile.tcl: Added updating of the modification time of + the target file whether we overwrote it or decided that it + hadn't changed. This was necessary for us to be able to + determine whether or not a module install touched the file. + +2001-03-08 Karl Lehenbauer + + * installFile.tcl: Added support for converting new-style (1.1+) + Cygnus drive paths to Tcl-style. + +2001-01-15 + + * tcl.m4: Added FreeBSD clause. + +2001-01-03 + + * tcl.m4: Fixed typo in SC_LIB_SPEC where it is checking + for exec-prefix. + +2000-12-01 + + * tcl.m4: Concatenated most of the Ajuba acsite.m4 file + so we don't need to modify the autoconf installation. + * config.guess: + * config.sub: + * installFile.tcl: + Added files from the itcl config subdirectory, + which should go away. + +2000-7-29 + + * Fixed the use of TCL_SRC_DIR and TK_SRC_DIR within + TCL_PRIVATE_INCLUDES and TK_PRIVATE_INCLUDES to match their recent + change from $(srcdir) to $(srcdir)/.. diff -Nru saods9-8.2+repack/tksvg/tclconfig/install-sh saods9-8.3+repack/tksvg/tclconfig/install-sh --- saods9-8.2+repack/tksvg/tclconfig/install-sh 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/tclconfig/install-sh 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,528 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2011-04-20.01; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +no_target_directory= + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -S $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -S) stripcmd="$stripprog $2" + shift;; + + -t) dst_arg=$2 + shift;; + + -T) no_target_directory=true;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names starting with `-'. + case $src in + -*) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + + dst=$dst_arg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst;; + esac + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + -*) prefix='./';; + *) prefix='';; + esac + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test -z "$d" && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob set +f && + + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff -Nru saods9-8.2+repack/tksvg/tclconfig/README.txt saods9-8.3+repack/tksvg/tclconfig/README.txt --- saods9-8.2+repack/tksvg/tclconfig/README.txt 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/tclconfig/README.txt 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,26 @@ +These files comprise the basic building blocks for a Tcl Extension +Architecture (TEA) extension. For more information on TEA see: + + http://www.tcl.tk/doc/tea/ + +This package is part of the Tcl project at SourceForge, and latest +sources should be available there: + + http://tcl.sourceforge.net/ + +This package is a freely available open source package. You can do +virtually anything you like with it, such as modifying it, redistributing +it, and selling it either in whole or in part. + +CONTENTS +======== +The following is a short description of the files you will find in +the sample extension. + +README.txt This file + +install-sh Program used for copying binaries and script files + to their install locations. + +tcl.m4 Collection of Tcl autoconf macros. Included by a package's + aclocal.m4 to define TEA_* macros. diff -Nru saods9-8.2+repack/tksvg/tclconfig/tcl.m4 saods9-8.3+repack/tksvg/tclconfig/tcl.m4 --- saods9-8.2+repack/tksvg/tclconfig/tcl.m4 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/tclconfig/tcl.m4 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,4176 @@ +# tcl.m4 -- +# +# This file provides a set of autoconf macros to help TEA-enable +# a Tcl extension. +# +# Copyright (c) 1999-2000 Ajuba Solutions. +# Copyright (c) 2002-2005 ActiveState Corporation. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. + +AC_PREREQ(2.57) + +# Possible values for key variables defined: +# +# TEA_WINDOWINGSYSTEM - win32 aqua x11 (mirrors 'tk windowingsystem') +# TEA_PLATFORM - windows unix +# TEA_TK_EXTENSION - True if this is a Tk extension +# + +#------------------------------------------------------------------------ +# TEA_PATH_TCLCONFIG -- +# +# Locate the tclConfig.sh file and perform a sanity check on +# the Tcl compile flags +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --with-tcl=... +# +# Defines the following vars: +# TCL_BIN_DIR Full path to the directory containing +# the tclConfig.sh file +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_PATH_TCLCONFIG], [ + dnl TEA specific: Make sure we are initialized + AC_REQUIRE([TEA_INIT]) + # + # Ok, lets find the tcl configuration + # First, look for one uninstalled. + # the alternative search directory is invoked by --with-tcl + # + + if test x"${no_tcl}" = x ; then + # we reset no_tcl in case something fails here + no_tcl=true + AC_ARG_WITH(tcl, + AC_HELP_STRING([--with-tcl], + [directory containing tcl configuration (tclConfig.sh)]), + with_tclconfig="${withval}") + AC_MSG_CHECKING([for Tcl configuration]) + AC_CACHE_VAL(ac_cv_c_tclconfig,[ + + # First check to see if --with-tcl was specified. + if test x"${with_tclconfig}" != x ; then + case "${with_tclconfig}" in + */tclConfig.sh ) + if test -f "${with_tclconfig}"; then + AC_MSG_WARN([--with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself]) + with_tclconfig="`echo "${with_tclconfig}" | sed 's!/tclConfig\.sh$!!'`" + fi ;; + esac + if test -f "${with_tclconfig}/tclConfig.sh" ; then + ac_cv_c_tclconfig="`(cd "${with_tclconfig}"; pwd)`" + else + AC_MSG_ERROR([${with_tclconfig} directory doesn't contain tclConfig.sh]) + fi + fi + + # then check for a private Tcl installation + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in \ + ../tcl \ + `ls -dr ../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr ../tcl[[8-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ../tcl[[8-9]].[[0-9]]* 2>/dev/null` \ + ../../tcl \ + `ls -dr ../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr ../../tcl[[8-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ../../tcl[[8-9]].[[0-9]]* 2>/dev/null` \ + ../../../tcl \ + `ls -dr ../../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr ../../../tcl[[8-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ../../../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do + if test "${TEA_PLATFORM}" = "windows" \ + -a -f "$i/win/tclConfig.sh" ; then + ac_cv_c_tclconfig="`(cd $i/win; pwd)`" + break + fi + if test -f "$i/unix/tclConfig.sh" ; then + ac_cv_c_tclconfig="`(cd $i/unix; pwd)`" + break + fi + done + fi + + # on Darwin, check in Framework installation locations + if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tclconfig}" = x ; then + for i in `ls -d ~/Library/Frameworks 2>/dev/null` \ + `ls -d /Library/Frameworks 2>/dev/null` \ + `ls -d /Network/Library/Frameworks 2>/dev/null` \ + `ls -d /System/Library/Frameworks 2>/dev/null` \ + `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Library/Frameworks/Tcl.framework 2>/dev/null` \ + `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Network/Library/Frameworks/Tcl.framework 2>/dev/null` \ + `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Tcl.framework 2>/dev/null` \ + ; do + if test -f "$i/Tcl.framework/tclConfig.sh" ; then + ac_cv_c_tclconfig="`(cd $i/Tcl.framework; pwd)`" + break + fi + done + fi + + # TEA specific: on Windows, check in common installation locations + if test "${TEA_PLATFORM}" = "windows" \ + -a x"${ac_cv_c_tclconfig}" = x ; then + for i in `ls -d C:/Tcl/lib 2>/dev/null` \ + `ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \ + ; do + if test -f "$i/tclConfig.sh" ; then + ac_cv_c_tclconfig="`(cd $i; pwd)`" + break + fi + done + fi + + # check in a few common install locations + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in `ls -d ${libdir} 2>/dev/null` \ + `ls -d ${exec_prefix}/lib 2>/dev/null` \ + `ls -d ${prefix}/lib 2>/dev/null` \ + `ls -d /usr/local/lib 2>/dev/null` \ + `ls -d /usr/contrib/lib 2>/dev/null` \ + `ls -d /usr/pkg/lib 2>/dev/null` \ + `ls -d /usr/lib 2>/dev/null` \ + `ls -d /usr/lib64 2>/dev/null` \ + `ls -d /usr/lib/tcl8.6 2>/dev/null` \ + `ls -d /usr/lib/tcl8.5 2>/dev/null` \ + `ls -d /usr/local/lib/tcl8.6 2>/dev/null` \ + `ls -d /usr/local/lib/tcl8.5 2>/dev/null` \ + `ls -d /usr/local/lib/tcl/tcl8.6 2>/dev/null` \ + `ls -d /usr/local/lib/tcl/tcl8.5 2>/dev/null` \ + ; do + if test -f "$i/tclConfig.sh" ; then + ac_cv_c_tclconfig="`(cd $i; pwd)`" + break + fi + done + fi + + # check in a few other private locations + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in \ + ${srcdir}/../tcl \ + `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do + if test "${TEA_PLATFORM}" = "windows" \ + -a -f "$i/win/tclConfig.sh" ; then + ac_cv_c_tclconfig="`(cd $i/win; pwd)`" + break + fi + if test -f "$i/unix/tclConfig.sh" ; then + ac_cv_c_tclconfig="`(cd $i/unix; pwd)`" + break + fi + done + fi + ]) + + if test x"${ac_cv_c_tclconfig}" = x ; then + TCL_BIN_DIR="# no Tcl configs found" + AC_MSG_ERROR([Can't find Tcl configuration definitions. Use --with-tcl to specify a directory containing tclConfig.sh]) + else + no_tcl= + TCL_BIN_DIR="${ac_cv_c_tclconfig}" + AC_MSG_RESULT([found ${TCL_BIN_DIR}/tclConfig.sh]) + fi + fi +]) + +#------------------------------------------------------------------------ +# TEA_PATH_TKCONFIG -- +# +# Locate the tkConfig.sh file +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --with-tk=... +# +# Defines the following vars: +# TK_BIN_DIR Full path to the directory containing +# the tkConfig.sh file +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_PATH_TKCONFIG], [ + # + # Ok, lets find the tk configuration + # First, look for one uninstalled. + # the alternative search directory is invoked by --with-tk + # + + if test x"${no_tk}" = x ; then + # we reset no_tk in case something fails here + no_tk=true + AC_ARG_WITH(tk, + AC_HELP_STRING([--with-tk], + [directory containing tk configuration (tkConfig.sh)]), + with_tkconfig="${withval}") + AC_MSG_CHECKING([for Tk configuration]) + AC_CACHE_VAL(ac_cv_c_tkconfig,[ + + # First check to see if --with-tkconfig was specified. + if test x"${with_tkconfig}" != x ; then + case "${with_tkconfig}" in + */tkConfig.sh ) + if test -f "${with_tkconfig}"; then + AC_MSG_WARN([--with-tk argument should refer to directory containing tkConfig.sh, not to tkConfig.sh itself]) + with_tkconfig="`echo "${with_tkconfig}" | sed 's!/tkConfig\.sh$!!'`" + fi ;; + esac + if test -f "${with_tkconfig}/tkConfig.sh" ; then + ac_cv_c_tkconfig="`(cd "${with_tkconfig}"; pwd)`" + else + AC_MSG_ERROR([${with_tkconfig} directory doesn't contain tkConfig.sh]) + fi + fi + + # then check for a private Tk library + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in \ + ../tk \ + `ls -dr ../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr ../tk[[8-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ../tk[[8-9]].[[0-9]]* 2>/dev/null` \ + ../../tk \ + `ls -dr ../../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr ../../tk[[8-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ../../tk[[8-9]].[[0-9]]* 2>/dev/null` \ + ../../../tk \ + `ls -dr ../../../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr ../../../tk[[8-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ../../../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do + if test "${TEA_PLATFORM}" = "windows" \ + -a -f "$i/win/tkConfig.sh" ; then + ac_cv_c_tkconfig="`(cd $i/win; pwd)`" + break + fi + if test -f "$i/unix/tkConfig.sh" ; then + ac_cv_c_tkconfig="`(cd $i/unix; pwd)`" + break + fi + done + fi + + # on Darwin, check in Framework installation locations + if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tkconfig}" = x ; then + for i in `ls -d ~/Library/Frameworks 2>/dev/null` \ + `ls -d /Library/Frameworks 2>/dev/null` \ + `ls -d /Network/Library/Frameworks 2>/dev/null` \ + `ls -d /System/Library/Frameworks 2>/dev/null` \ + `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Library/Frameworks/Tcl.framework 2>/dev/null` \ + `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Network/Library/Frameworks/Tcl.framework 2>/dev/null` \ + `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Tcl.framework 2>/dev/null` \ + ; do + if test -f "$i/Tk.framework/tkConfig.sh" ; then + ac_cv_c_tkconfig="`(cd $i/Tk.framework; pwd)`" + break + fi + done + fi + + # check in a few common install locations + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in `ls -d ${libdir} 2>/dev/null` \ + `ls -d ${exec_prefix}/lib 2>/dev/null` \ + `ls -d ${prefix}/lib 2>/dev/null` \ + `ls -d /usr/local/lib 2>/dev/null` \ + `ls -d /usr/contrib/lib 2>/dev/null` \ + `ls -d /usr/pkg/lib 2>/dev/null` \ + `ls -d /usr/lib 2>/dev/null` \ + `ls -d /usr/lib64 2>/dev/null` \ + `ls -d /usr/lib/tk8.6 2>/dev/null` \ + `ls -d /usr/lib/tk8.5 2>/dev/null` \ + `ls -d /usr/local/lib/tk8.6 2>/dev/null` \ + `ls -d /usr/local/lib/tk8.5 2>/dev/null` \ + `ls -d /usr/local/lib/tcl/tk8.6 2>/dev/null` \ + `ls -d /usr/local/lib/tcl/tk8.5 2>/dev/null` \ + ; do + if test -f "$i/tkConfig.sh" ; then + ac_cv_c_tkconfig="`(cd $i; pwd)`" + break + fi + done + fi + + # TEA specific: on Windows, check in common installation locations + if test "${TEA_PLATFORM}" = "windows" \ + -a x"${ac_cv_c_tkconfig}" = x ; then + for i in `ls -d C:/Tcl/lib 2>/dev/null` \ + `ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \ + ; do + if test -f "$i/tkConfig.sh" ; then + ac_cv_c_tkconfig="`(cd $i; pwd)`" + break + fi + done + fi + + # check in a few other private locations + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in \ + ${srcdir}/../tk \ + `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do + if test "${TEA_PLATFORM}" = "windows" \ + -a -f "$i/win/tkConfig.sh" ; then + ac_cv_c_tkconfig="`(cd $i/win; pwd)`" + break + fi + if test -f "$i/unix/tkConfig.sh" ; then + ac_cv_c_tkconfig="`(cd $i/unix; pwd)`" + break + fi + done + fi + ]) + + if test x"${ac_cv_c_tkconfig}" = x ; then + TK_BIN_DIR="# no Tk configs found" + AC_MSG_ERROR([Can't find Tk configuration definitions. Use --with-tk to specify a directory containing tkConfig.sh]) + else + no_tk= + TK_BIN_DIR="${ac_cv_c_tkconfig}" + AC_MSG_RESULT([found ${TK_BIN_DIR}/tkConfig.sh]) + fi + fi +]) + +#------------------------------------------------------------------------ +# TEA_LOAD_TCLCONFIG -- +# +# Load the tclConfig.sh file +# +# Arguments: +# +# Requires the following vars to be set: +# TCL_BIN_DIR +# +# Results: +# +# Substitutes the following vars: +# TCL_BIN_DIR +# TCL_SRC_DIR +# TCL_LIB_FILE +# TCL_ZIP_FILE +# TCL_ZIPFS_SUPPORT +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_LOAD_TCLCONFIG], [ + AC_MSG_CHECKING([for existence of ${TCL_BIN_DIR}/tclConfig.sh]) + + if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then + AC_MSG_RESULT([loading]) + . "${TCL_BIN_DIR}/tclConfig.sh" + else + AC_MSG_RESULT([could not find ${TCL_BIN_DIR}/tclConfig.sh]) + fi + + # eval is required to do the TCL_DBGX substitution + eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\"" + eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\"" + + # If the TCL_BIN_DIR is the build directory (not the install directory), + # then set the common variable name to the value of the build variables. + # For example, the variable TCL_LIB_SPEC will be set to the value + # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC + # instead of TCL_BUILD_LIB_SPEC since it will work with both an + # installed and uninstalled version of Tcl. + if test -f "${TCL_BIN_DIR}/Makefile" ; then + TCL_LIB_SPEC="${TCL_BUILD_LIB_SPEC}" + TCL_STUB_LIB_SPEC="${TCL_BUILD_STUB_LIB_SPEC}" + TCL_STUB_LIB_PATH="${TCL_BUILD_STUB_LIB_PATH}" + elif test "`uname -s`" = "Darwin"; then + # If Tcl was built as a framework, attempt to use the libraries + # from the framework at the given location so that linking works + # against Tcl.framework installed in an arbitrary location. + case ${TCL_DEFS} in + *TCL_FRAMEWORK*) + if test -f "${TCL_BIN_DIR}/${TCL_LIB_FILE}"; then + for i in "`cd "${TCL_BIN_DIR}"; pwd`" \ + "`cd "${TCL_BIN_DIR}"/../..; pwd`"; do + if test "`basename "$i"`" = "${TCL_LIB_FILE}.framework"; then + TCL_LIB_SPEC="-F`dirname "$i" | sed -e 's/ /\\\\ /g'` -framework ${TCL_LIB_FILE}" + break + fi + done + fi + if test -f "${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"; then + TCL_STUB_LIB_SPEC="-L`echo "${TCL_BIN_DIR}" | sed -e 's/ /\\\\ /g'` ${TCL_STUB_LIB_FLAG}" + TCL_STUB_LIB_PATH="${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}" + fi + ;; + esac + fi + + # eval is required to do the TCL_DBGX substitution + eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\"" + eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\"" + eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\"" + eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\"" + + AC_SUBST(TCL_VERSION) + AC_SUBST(TCL_PATCH_LEVEL) + AC_SUBST(TCL_BIN_DIR) + AC_SUBST(TCL_SRC_DIR) + + AC_SUBST(TCL_LIB_FILE) + AC_SUBST(TCL_LIB_FLAG) + AC_SUBST(TCL_LIB_SPEC) + + AC_SUBST(TCL_STUB_LIB_FILE) + AC_SUBST(TCL_STUB_LIB_FLAG) + AC_SUBST(TCL_STUB_LIB_SPEC) + + AC_MSG_CHECKING([platform]) + hold_cc=$CC; CC="$TCL_CC" + AC_TRY_COMPILE(,[ + #ifdef _WIN32 + #error win32 + #endif + ], [ + TEA_PLATFORM="unix" + CYGPATH=echo + ], [ + TEA_PLATFORM="windows" + AC_CHECK_PROG(CYGPATH, cygpath, cygpath -m, echo) ] + ) + CC=$hold_cc + AC_MSG_RESULT($TEA_PLATFORM) + + # The BUILD_$pkg is to define the correct extern storage class + # handling when making this package + AC_DEFINE_UNQUOTED(BUILD_${PACKAGE_NAME}, [], + [Building extension source?]) + # Do this here as we have fully defined TEA_PLATFORM now + if test "${TEA_PLATFORM}" = "windows" ; then + EXEEXT=".exe" + CLEANFILES="$CLEANFILES *.lib *.dll *.pdb *.exp" + fi + + # TEA specific: + AC_SUBST(CLEANFILES) + AC_SUBST(TCL_LIBS) + AC_SUBST(TCL_DEFS) + AC_SUBST(TCL_EXTRA_CFLAGS) + AC_SUBST(TCL_LD_FLAGS) + AC_SUBST(TCL_SHLIB_LD_LIBS) +]) + +#------------------------------------------------------------------------ +# TEA_LOAD_TKCONFIG -- +# +# Load the tkConfig.sh file +# +# Arguments: +# +# Requires the following vars to be set: +# TK_BIN_DIR +# +# Results: +# +# Sets the following vars that should be in tkConfig.sh: +# TK_BIN_DIR +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_LOAD_TKCONFIG], [ + AC_MSG_CHECKING([for existence of ${TK_BIN_DIR}/tkConfig.sh]) + + if test -f "${TK_BIN_DIR}/tkConfig.sh" ; then + AC_MSG_RESULT([loading]) + . "${TK_BIN_DIR}/tkConfig.sh" + else + AC_MSG_RESULT([could not find ${TK_BIN_DIR}/tkConfig.sh]) + fi + + # eval is required to do the TK_DBGX substitution + eval "TK_LIB_FILE=\"${TK_LIB_FILE}\"" + eval "TK_STUB_LIB_FILE=\"${TK_STUB_LIB_FILE}\"" + + # If the TK_BIN_DIR is the build directory (not the install directory), + # then set the common variable name to the value of the build variables. + # For example, the variable TK_LIB_SPEC will be set to the value + # of TK_BUILD_LIB_SPEC. An extension should make use of TK_LIB_SPEC + # instead of TK_BUILD_LIB_SPEC since it will work with both an + # installed and uninstalled version of Tcl. + if test -f "${TK_BIN_DIR}/Makefile" ; then + TK_LIB_SPEC="${TK_BUILD_LIB_SPEC}" + TK_STUB_LIB_SPEC="${TK_BUILD_STUB_LIB_SPEC}" + TK_STUB_LIB_PATH="${TK_BUILD_STUB_LIB_PATH}" + elif test "`uname -s`" = "Darwin"; then + # If Tk was built as a framework, attempt to use the libraries + # from the framework at the given location so that linking works + # against Tk.framework installed in an arbitrary location. + case ${TK_DEFS} in + *TK_FRAMEWORK*) + if test -f "${TK_BIN_DIR}/${TK_LIB_FILE}"; then + for i in "`cd "${TK_BIN_DIR}"; pwd`" \ + "`cd "${TK_BIN_DIR}"/../..; pwd`"; do + if test "`basename "$i"`" = "${TK_LIB_FILE}.framework"; then + TK_LIB_SPEC="-F`dirname "$i" | sed -e 's/ /\\\\ /g'` -framework ${TK_LIB_FILE}" + break + fi + done + fi + if test -f "${TK_BIN_DIR}/${TK_STUB_LIB_FILE}"; then + TK_STUB_LIB_SPEC="-L` echo "${TK_BIN_DIR}" | sed -e 's/ /\\\\ /g'` ${TK_STUB_LIB_FLAG}" + TK_STUB_LIB_PATH="${TK_BIN_DIR}/${TK_STUB_LIB_FILE}" + fi + ;; + esac + fi + + # eval is required to do the TK_DBGX substitution + eval "TK_LIB_FLAG=\"${TK_LIB_FLAG}\"" + eval "TK_LIB_SPEC=\"${TK_LIB_SPEC}\"" + eval "TK_STUB_LIB_FLAG=\"${TK_STUB_LIB_FLAG}\"" + eval "TK_STUB_LIB_SPEC=\"${TK_STUB_LIB_SPEC}\"" + + # TEA specific: Ensure windowingsystem is defined + if test "${TEA_PLATFORM}" = "unix" ; then + case ${TK_DEFS} in + *MAC_OSX_TK*) + AC_DEFINE(MAC_OSX_TK, 1, [Are we building against Mac OS X TkAqua?]) + TEA_WINDOWINGSYSTEM="aqua" + ;; + *) + TEA_WINDOWINGSYSTEM="x11" + ;; + esac + elif test "${TEA_PLATFORM}" = "windows" ; then + TEA_WINDOWINGSYSTEM="win32" + fi + + AC_SUBST(TK_VERSION) + AC_SUBST(TK_BIN_DIR) + AC_SUBST(TK_SRC_DIR) + + AC_SUBST(TK_LIB_FILE) + AC_SUBST(TK_LIB_FLAG) + AC_SUBST(TK_LIB_SPEC) + + AC_SUBST(TK_STUB_LIB_FILE) + AC_SUBST(TK_STUB_LIB_FLAG) + AC_SUBST(TK_STUB_LIB_SPEC) + + # TEA specific: + AC_SUBST(TK_LIBS) + AC_SUBST(TK_XINCLUDES) +]) + +#------------------------------------------------------------------------ +# TEA_PROG_TCLSH +# Determine the fully qualified path name of the tclsh executable +# in the Tcl build directory or the tclsh installed in a bin +# directory. This macro will correctly determine the name +# of the tclsh executable even if tclsh has not yet been +# built in the build directory. The tclsh found is always +# associated with a tclConfig.sh file. This tclsh should be used +# only for running extension test cases. It should never be +# or generation of files (like pkgIndex.tcl) at build time. +# +# Arguments: +# none +# +# Results: +# Substitutes the following vars: +# TCLSH_PROG +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_PROG_TCLSH], [ + AC_MSG_CHECKING([for tclsh]) + if test -f "${TCL_BIN_DIR}/Makefile" ; then + # tclConfig.sh is in Tcl build directory + if test "${TEA_PLATFORM}" = "windows"; then + if test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" ; then + TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" + elif test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}s${EXEEXT}" ; then + TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}s${EXEEXT}" + elif test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}t${EXEEXT}" ; then + TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}t${EXEEXT}" + elif test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}st${EXEEXT}" ; then + TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}st${EXEEXT}" + fi + else + TCLSH_PROG="${TCL_BIN_DIR}/tclsh" + fi + else + # tclConfig.sh is in install location + if test "${TEA_PLATFORM}" = "windows"; then + TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" + else + TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${TCL_DBGX}" + fi + list="`ls -d ${TCL_BIN_DIR}/../bin 2>/dev/null` \ + `ls -d ${TCL_BIN_DIR}/.. 2>/dev/null` \ + `ls -d ${TCL_PREFIX}/bin 2>/dev/null`" + for i in $list ; do + if test -f "$i/${TCLSH_PROG}" ; then + REAL_TCL_BIN_DIR="`cd "$i"; pwd`/" + break + fi + done + TCLSH_PROG="${REAL_TCL_BIN_DIR}${TCLSH_PROG}" + fi + AC_MSG_RESULT([${TCLSH_PROG}]) + AC_SUBST(TCLSH_PROG) +]) + +#------------------------------------------------------------------------ +# TEA_PROG_WISH +# Determine the fully qualified path name of the wish executable +# in the Tk build directory or the wish installed in a bin +# directory. This macro will correctly determine the name +# of the wish executable even if wish has not yet been +# built in the build directory. The wish found is always +# associated with a tkConfig.sh file. This wish should be used +# only for running extension test cases. It should never be +# or generation of files (like pkgIndex.tcl) at build time. +# +# Arguments: +# none +# +# Results: +# Substitutes the following vars: +# WISH_PROG +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_PROG_WISH], [ + AC_MSG_CHECKING([for wish]) + if test -f "${TK_BIN_DIR}/Makefile" ; then + # tkConfig.sh is in Tk build directory + if test "${TEA_PLATFORM}" = "windows"; then + if test -f "${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}${EXEEXT}" ; then + WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}${EXEEXT}" + elif test -f "${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}s${EXEEXT}" ; then + WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}$s{EXEEXT}" + elif test -f "${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}t${EXEEXT}" ; then + WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}t${EXEEXT}" + elif test -f "${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}st${EXEEXT}" ; then + WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}st${EXEEXT}" + fi + else + WISH_PROG="${TK_BIN_DIR}/wish" + fi + else + # tkConfig.sh is in install location + if test "${TEA_PLATFORM}" = "windows"; then + WISH_PROG="wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}${EXEEXT}" + else + WISH_PROG="wish${TK_MAJOR_VERSION}.${TK_MINOR_VERSION}${TK_DBGX}" + fi + list="`ls -d ${TK_BIN_DIR}/../bin 2>/dev/null` \ + `ls -d ${TK_BIN_DIR}/.. 2>/dev/null` \ + `ls -d ${TK_PREFIX}/bin 2>/dev/null`" + for i in $list ; do + if test -f "$i/${WISH_PROG}" ; then + REAL_TK_BIN_DIR="`cd "$i"; pwd`/" + break + fi + done + WISH_PROG="${REAL_TK_BIN_DIR}${WISH_PROG}" + fi + AC_MSG_RESULT([${WISH_PROG}]) + AC_SUBST(WISH_PROG) +]) + +#------------------------------------------------------------------------ +# TEA_ENABLE_SHARED -- +# +# Allows the building of shared libraries +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --enable-shared=yes|no +# --enable-stubs=yes|no +# +# Defines the following vars: +# STATIC_BUILD Used for building import/export libraries +# on Windows. +# +# Sets the following vars: +# SHARED_BUILD Value of 1 or 0 +# STUBS_BUILD Value if 1 or 0 +# USE_TCL_STUBS Value true: if SHARED_BUILD or --enable-stubs +# USE_TCLOO_STUBS Value true: if SHARED_BUILD or --enable-stubs +# USE_TK_STUBS Value true: if SHARED_BUILD or --enable-stubs +# AND TEA_WINDOWING_SYSTEM != "" +#------------------------------------------------------------------------ +AC_DEFUN([TEA_ENABLE_SHARED], [ + AC_MSG_CHECKING([how to build libraries]) + AC_ARG_ENABLE(shared, + AC_HELP_STRING([--enable-shared], + [build and link with shared libraries (default: on)]), + [shared_ok=$enableval], [shared_ok=yes]) + + if test "${enable_shared+set}" = set; then + enableval="$enable_shared" + shared_ok=$enableval + else + shared_ok=yes + fi + + AC_ARG_ENABLE(stubs, + AC_HELP_STRING([--enable-stubs], + [build and link with stub libraries. Always true for shared builds (default: on)]), + [stubs_ok=$enableval], [stubs_ok=yes]) + + if test "${enable_stubs+set}" = set; then + enableval="$enable_stubs" + stubs_ok=$enableval + else + stubs_ok=yes + fi + + # Stubs are always enabled for shared builds + if test "$shared_ok" = "yes" ; then + AC_MSG_RESULT([shared]) + SHARED_BUILD=1 + STUBS_BUILD=1 + else + AC_MSG_RESULT([static]) + SHARED_BUILD=0 + AC_DEFINE(STATIC_BUILD, 1, [This a static build]) + if test "$stubs_ok" = "yes" ; then + STUBS_BUILD=1 + else + STUBS_BUILD=0 + fi + fi + if test "${STUBS_BUILD}" = "1" ; then + AC_DEFINE(USE_TCL_STUBS, 1, [Use Tcl stubs]) + AC_DEFINE(USE_TCLOO_STUBS, 1, [Use TclOO stubs]) + if test "${TEA_WINDOWINGSYSTEM}" != ""; then + AC_DEFINE(USE_TK_STUBS, 1, [Use Tk stubs]) + fi + fi + + AC_SUBST(SHARED_BUILD) + AC_SUBST(STUBS_BUILD) +]) + +#------------------------------------------------------------------------ +# TEA_ENABLE_THREADS -- +# +# Specify if thread support should be enabled. If "yes" is specified +# as an arg (optional), threads are enabled by default, "no" means +# threads are disabled. "yes" is the default. +# +# TCL_THREADS is checked so that if you are compiling an extension +# against a threaded core, your extension must be compiled threaded +# as well. +# +# Note that it is legal to have a thread enabled extension run in a +# threaded or non-threaded Tcl core, but a non-threaded extension may +# only run in a non-threaded Tcl core. +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --enable-threads +# +# Sets the following vars: +# THREADS_LIBS Thread library(s) +# +# Defines the following vars: +# TCL_THREADS +# _REENTRANT +# _THREAD_SAFE +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_ENABLE_THREADS], [ + AC_ARG_ENABLE(threads, + AC_HELP_STRING([--enable-threads], + [build with threads (default: on)]), + [tcl_ok=$enableval], [tcl_ok=yes]) + + if test "${enable_threads+set}" = set; then + enableval="$enable_threads" + tcl_ok=$enableval + else + tcl_ok=yes + fi + + if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then + TCL_THREADS=1 + + if test "${TEA_PLATFORM}" != "windows" ; then + # We are always OK on Windows, so check what this platform wants: + + # USE_THREAD_ALLOC tells us to try the special thread-based + # allocator that significantly reduces lock contention + AC_DEFINE(USE_THREAD_ALLOC, 1, + [Do we want to use the threaded memory allocator?]) + AC_DEFINE(_REENTRANT, 1, [Do we want the reentrant OS API?]) + if test "`uname -s`" = "SunOS" ; then + AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1, + [Do we really want to follow the standard? Yes we do!]) + fi + AC_DEFINE(_THREAD_SAFE, 1, [Do we want the thread-safe OS API?]) + AC_CHECK_LIB(pthread,pthread_mutex_init,tcl_ok=yes,tcl_ok=no) + if test "$tcl_ok" = "no"; then + # Check a little harder for __pthread_mutex_init in the same + # library, as some systems hide it there until pthread.h is + # defined. We could alternatively do an AC_TRY_COMPILE with + # pthread.h, but that will work with libpthread really doesn't + # exist, like AIX 4.2. [Bug: 4359] + AC_CHECK_LIB(pthread, __pthread_mutex_init, + tcl_ok=yes, tcl_ok=no) + fi + + if test "$tcl_ok" = "yes"; then + # The space is needed + THREADS_LIBS=" -lpthread" + else + AC_CHECK_LIB(pthreads, pthread_mutex_init, + tcl_ok=yes, tcl_ok=no) + if test "$tcl_ok" = "yes"; then + # The space is needed + THREADS_LIBS=" -lpthreads" + else + AC_CHECK_LIB(c, pthread_mutex_init, + tcl_ok=yes, tcl_ok=no) + if test "$tcl_ok" = "no"; then + AC_CHECK_LIB(c_r, pthread_mutex_init, + tcl_ok=yes, tcl_ok=no) + if test "$tcl_ok" = "yes"; then + # The space is needed + THREADS_LIBS=" -pthread" + else + TCL_THREADS=0 + AC_MSG_WARN([Do not know how to find pthread lib on your system - thread support disabled]) + fi + fi + fi + fi + fi + else + TCL_THREADS=0 + fi + # Do checking message here to not mess up interleaved configure output + AC_MSG_CHECKING([for building with threads]) + if test "${TCL_THREADS}" = 1; then + AC_DEFINE(TCL_THREADS, 1, [Are we building with threads enabled?]) + AC_MSG_RESULT([yes (default)]) + else + AC_MSG_RESULT([no]) + fi + # TCL_THREADS sanity checking. See if our request for building with + # threads is the same as the way Tcl was built. If not, warn the user. + case ${TCL_DEFS} in + *THREADS=1*) + if test "${TCL_THREADS}" = "0"; then + AC_MSG_WARN([ + Building ${PACKAGE_NAME} without threads enabled, but building against Tcl + that IS thread-enabled. It is recommended to use --enable-threads.]) + fi + ;; + esac + AC_SUBST(TCL_THREADS) +]) + +#------------------------------------------------------------------------ +# TEA_ENABLE_SYMBOLS -- +# +# Specify if debugging symbols should be used. +# Memory (TCL_MEM_DEBUG) debugging can also be enabled. +# +# Arguments: +# none +# +# TEA varies from core Tcl in that C|LDFLAGS_DEFAULT receives +# the value of C|LDFLAGS_OPTIMIZE|DEBUG already substituted. +# Requires the following vars to be set in the Makefile: +# CFLAGS_DEFAULT +# LDFLAGS_DEFAULT +# +# Results: +# +# Adds the following arguments to configure: +# --enable-symbols +# +# Defines the following vars: +# CFLAGS_DEFAULT Sets to $(CFLAGS_DEBUG) if true +# Sets to "$(CFLAGS_OPTIMIZE) -DNDEBUG" if false +# LDFLAGS_DEFAULT Sets to $(LDFLAGS_DEBUG) if true +# Sets to $(LDFLAGS_OPTIMIZE) if false +# DBGX Formerly used as debug library extension; +# always blank now. +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_ENABLE_SYMBOLS], [ + dnl TEA specific: Make sure we are initialized + AC_REQUIRE([TEA_CONFIG_CFLAGS]) + AC_MSG_CHECKING([for build with symbols]) + AC_ARG_ENABLE(symbols, + AC_HELP_STRING([--enable-symbols], + [build with debugging symbols (default: off)]), + [tcl_ok=$enableval], [tcl_ok=no]) + DBGX="" + if test "$tcl_ok" = "no"; then + CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE} -DNDEBUG" + LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}" + AC_MSG_RESULT([no]) + else + CFLAGS_DEFAULT="${CFLAGS_DEBUG}" + LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}" + if test "$tcl_ok" = "yes"; then + AC_MSG_RESULT([yes (standard debugging)]) + fi + fi + # TEA specific: + if test "${TEA_PLATFORM}" != "windows" ; then + LDFLAGS_DEFAULT="${LDFLAGS}" + fi + AC_SUBST(CFLAGS_DEFAULT) + AC_SUBST(LDFLAGS_DEFAULT) + AC_SUBST(TCL_DBGX) + + if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then + AC_DEFINE(TCL_MEM_DEBUG, 1, [Is memory debugging enabled?]) + fi + + if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then + if test "$tcl_ok" = "all"; then + AC_MSG_RESULT([enabled symbols mem debugging]) + else + AC_MSG_RESULT([enabled $tcl_ok debugging]) + fi + fi +]) + +#------------------------------------------------------------------------ +# TEA_ENABLE_LANGINFO -- +# +# Allows use of modern nl_langinfo check for better l10n. +# This is only relevant for Unix. +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --enable-langinfo=yes|no (default is yes) +# +# Defines the following vars: +# HAVE_LANGINFO Triggers use of nl_langinfo if defined. +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_ENABLE_LANGINFO], [ + AC_ARG_ENABLE(langinfo, + AC_HELP_STRING([--enable-langinfo], + [use nl_langinfo if possible to determine encoding at startup, otherwise use old heuristic (default: on)]), + [langinfo_ok=$enableval], [langinfo_ok=yes]) + + HAVE_LANGINFO=0 + if test "$langinfo_ok" = "yes"; then + AC_CHECK_HEADER(langinfo.h,[langinfo_ok=yes],[langinfo_ok=no]) + fi + AC_MSG_CHECKING([whether to use nl_langinfo]) + if test "$langinfo_ok" = "yes"; then + AC_CACHE_VAL(tcl_cv_langinfo_h, [ + AC_TRY_COMPILE([#include ], [nl_langinfo(CODESET);], + [tcl_cv_langinfo_h=yes],[tcl_cv_langinfo_h=no])]) + AC_MSG_RESULT([$tcl_cv_langinfo_h]) + if test $tcl_cv_langinfo_h = yes; then + AC_DEFINE(HAVE_LANGINFO, 1, [Do we have nl_langinfo()?]) + fi + else + AC_MSG_RESULT([$langinfo_ok]) + fi +]) + +#-------------------------------------------------------------------- +# TEA_CONFIG_SYSTEM +# +# Determine what the system is (some things cannot be easily checked +# on a feature-driven basis, alas). This can usually be done via the +# "uname" command. +# +# Arguments: +# none +# +# Results: +# Defines the following var: +# +# system - System/platform/version identification code. +#-------------------------------------------------------------------- + +AC_DEFUN([TEA_CONFIG_SYSTEM], [ + AC_CACHE_CHECK([system version], tcl_cv_sys_version, [ + # TEA specific: + if test "${TEA_PLATFORM}" = "windows" ; then + tcl_cv_sys_version=windows + else + tcl_cv_sys_version=`uname -s`-`uname -r` + if test "$?" -ne 0 ; then + AC_MSG_WARN([can't find uname command]) + tcl_cv_sys_version=unknown + else + if test "`uname -s`" = "AIX" ; then + tcl_cv_sys_version=AIX-`uname -v`.`uname -r` + fi + fi + fi + ]) + system=$tcl_cv_sys_version +]) + +#-------------------------------------------------------------------- +# TEA_CONFIG_CFLAGS +# +# Try to determine the proper flags to pass to the compiler +# for building shared libraries and other such nonsense. +# +# Arguments: +# none +# +# Results: +# +# Defines and substitutes the following vars: +# +# DL_OBJS, DL_LIBS - removed for TEA, only needed by core. +# LDFLAGS - Flags to pass to the compiler when linking object +# files into an executable application binary such +# as tclsh. +# LD_SEARCH_FLAGS-Flags to pass to ld, such as "-R /usr/local/tcl/lib", +# that tell the run-time dynamic linker where to look +# for shared libraries such as libtcl.so. Depends on +# the variable LIB_RUNTIME_DIR in the Makefile. Could +# be the same as CC_SEARCH_FLAGS if ${CC} is used to link. +# CC_SEARCH_FLAGS-Flags to pass to ${CC}, such as "-Wl,-rpath,/usr/local/tcl/lib", +# that tell the run-time dynamic linker where to look +# for shared libraries such as libtcl.so. Depends on +# the variable LIB_RUNTIME_DIR in the Makefile. +# SHLIB_CFLAGS - Flags to pass to cc when compiling the components +# of a shared library (may request position-independent +# code, among other things). +# SHLIB_LD - Base command to use for combining object files +# into a shared library. +# SHLIB_LD_LIBS - Dependent libraries for the linker to scan when +# creating shared libraries. This symbol typically +# goes at the end of the "ld" commands that build +# shared libraries. The value of the symbol defaults to +# "${LIBS}" if all of the dependent libraries should +# be specified when creating a shared library. If +# dependent libraries should not be specified (as on +# SunOS 4.x, where they cause the link to fail, or in +# general if Tcl and Tk aren't themselves shared +# libraries), then this symbol has an empty string +# as its value. +# SHLIB_SUFFIX - Suffix to use for the names of dynamically loadable +# extensions. An empty string means we don't know how +# to use shared libraries on this platform. +# LIB_SUFFIX - Specifies everything that comes after the "libfoo" +# in a static or shared library name, using the $PACKAGE_VERSION variable +# to put the version in the right place. This is used +# by platforms that need non-standard library names. +# Examples: ${PACKAGE_VERSION}.so.1.1 on NetBSD, since it needs +# to have a version after the .so, and ${PACKAGE_VERSION}.a +# on AIX, since a shared library needs to have +# a .a extension whereas shared objects for loadable +# extensions have a .so extension. Defaults to +# ${PACKAGE_VERSION}${SHLIB_SUFFIX}. +# CFLAGS_DEBUG - +# Flags used when running the compiler in debug mode +# CFLAGS_OPTIMIZE - +# Flags used when running the compiler in optimize mode +# CFLAGS - Additional CFLAGS added as necessary (usually 64-bit) +#-------------------------------------------------------------------- + +AC_DEFUN([TEA_CONFIG_CFLAGS], [ + dnl TEA specific: Make sure we are initialized + AC_REQUIRE([TEA_INIT]) + + # Step 0.a: Enable 64 bit support? + + AC_MSG_CHECKING([if 64bit support is requested]) + AC_ARG_ENABLE(64bit, + AC_HELP_STRING([--enable-64bit], + [enable 64bit support (default: off)]), + [do64bit=$enableval], [do64bit=no]) + AC_MSG_RESULT([$do64bit]) + + # Step 0.b: Enable Solaris 64 bit VIS support? + + AC_MSG_CHECKING([if 64bit Sparc VIS support is requested]) + AC_ARG_ENABLE(64bit-vis, + AC_HELP_STRING([--enable-64bit-vis], + [enable 64bit Sparc VIS support (default: off)]), + [do64bitVIS=$enableval], [do64bitVIS=no]) + AC_MSG_RESULT([$do64bitVIS]) + # Force 64bit on with VIS + AS_IF([test "$do64bitVIS" = "yes"], [do64bit=yes]) + + # Step 0.c: Check if visibility support is available. Do this here so + # that platform specific alternatives can be used below if this fails. + + AC_CACHE_CHECK([if compiler supports visibility "hidden"], + tcl_cv_cc_visibility_hidden, [ + hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror" + AC_TRY_LINK([ + extern __attribute__((__visibility__("hidden"))) void f(void); + void f(void) {}], [f();], tcl_cv_cc_visibility_hidden=yes, + tcl_cv_cc_visibility_hidden=no) + CFLAGS=$hold_cflags]) + AS_IF([test $tcl_cv_cc_visibility_hidden = yes], [ + AC_DEFINE(MODULE_SCOPE, + [extern __attribute__((__visibility__("hidden")))], + [Compiler support for module scope symbols]) + AC_DEFINE(HAVE_HIDDEN, [1], [Compiler support for module scope symbols]) + ]) + + # Step 0.d: Disable -rpath support? + + AC_MSG_CHECKING([if rpath support is requested]) + AC_ARG_ENABLE(rpath, + AC_HELP_STRING([--disable-rpath], + [disable rpath support (default: on)]), + [doRpath=$enableval], [doRpath=yes]) + AC_MSG_RESULT([$doRpath]) + + # TEA specific: Cross-compiling options for Windows/CE builds? + + AS_IF([test "${TEA_PLATFORM}" = windows], [ + AC_MSG_CHECKING([if Windows/CE build is requested]) + AC_ARG_ENABLE(wince, + AC_HELP_STRING([--enable-wince], + [enable Win/CE support (where applicable)]), + [doWince=$enableval], [doWince=no]) + AC_MSG_RESULT([$doWince]) + ]) + + # Set the variable "system" to hold the name and version number + # for the system. + + TEA_CONFIG_SYSTEM + + # Require ranlib early so we can override it in special cases below. + + AC_REQUIRE([AC_PROG_RANLIB]) + + # Set configuration options based on system name and version. + # This is similar to Tcl's unix/tcl.m4 except that we've added a + # "windows" case and removed some core-only vars. + + do64bit_ok=no + # default to '{$LIBS}' and set to "" on per-platform necessary basis + SHLIB_LD_LIBS='${LIBS}' + # When ld needs options to work in 64-bit mode, put them in + # LDFLAGS_ARCH so they eventually end up in LDFLAGS even if [load] + # is disabled by the user. [Bug 1016796] + LDFLAGS_ARCH="" + UNSHARED_LIB_SUFFIX="" + # TEA specific: use PACKAGE_VERSION instead of VERSION + TCL_TRIM_DOTS='`echo ${PACKAGE_VERSION} | tr -d .`' + ECHO_VERSION='`echo ${PACKAGE_VERSION}`' + TCL_LIB_VERSIONS_OK=ok + CFLAGS_DEBUG=-g + AS_IF([test "$GCC" = yes], [ + CFLAGS_OPTIMIZE=-O2 + CFLAGS_WARNING="-Wall" + ], [ + CFLAGS_OPTIMIZE=-O + CFLAGS_WARNING="" + ]) + AC_CHECK_TOOL(AR, ar) + STLIB_LD='${AR} cr' + LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH" + AS_IF([test "x$SHLIB_VERSION" = x],[SHLIB_VERSION=""],[SHLIB_VERSION=".$SHLIB_VERSION"]) + case $system in + # TEA specific: + windows) + # This is a 2-stage check to make sure we have the 64-bit SDK + # We have to know where the SDK is installed. + # This magic is based on MS Platform SDK for Win2003 SP1 - hobbs + # MACHINE is IX86 for LINK, but this is used by the manifest, + # which requires x86|amd64|ia64. + MACHINE="X86" + if test "$do64bit" != "no" ; then + if test "x${MSSDK}x" = "xx" ; then + MSSDK="C:/Progra~1/Microsoft Platform SDK" + fi + MSSDK=`echo "$MSSDK" | sed -e 's!\\\!/!g'` + PATH64="" + case "$do64bit" in + amd64|x64|yes) + MACHINE="AMD64" ; # default to AMD64 64-bit build + PATH64="${MSSDK}/Bin/Win64/x86/AMD64" + ;; + ia64) + MACHINE="IA64" + PATH64="${MSSDK}/Bin/Win64" + ;; + esac + if test "$GCC" != "yes" -a ! -d "${PATH64}" ; then + AC_MSG_WARN([Could not find 64-bit $MACHINE SDK to enable 64bit mode]) + AC_MSG_WARN([Ensure latest Platform SDK is installed]) + do64bit="no" + else + AC_MSG_RESULT([ Using 64-bit $MACHINE mode]) + do64bit_ok="yes" + fi + fi + + if test "$doWince" != "no" ; then + if test "$do64bit" != "no" ; then + AC_MSG_ERROR([Windows/CE and 64-bit builds incompatible]) + fi + if test "$GCC" = "yes" ; then + AC_MSG_ERROR([Windows/CE and GCC builds incompatible]) + fi + TEA_PATH_CELIB + # Set defaults for common evc4/PPC2003 setup + # Currently Tcl requires 300+, possibly 420+ for sockets + CEVERSION=420; # could be 211 300 301 400 420 ... + TARGETCPU=ARMV4; # could be ARMV4 ARM MIPS SH3 X86 ... + ARCH=ARM; # could be ARM MIPS X86EM ... + PLATFORM="Pocket PC 2003"; # or "Pocket PC 2002" + if test "$doWince" != "yes"; then + # If !yes then the user specified something + # Reset ARCH to allow user to skip specifying it + ARCH= + eval `echo $doWince | awk -F, '{ \ + if (length([$]1)) { printf "CEVERSION=\"%s\"\n", [$]1; \ + if ([$]1 < 400) { printf "PLATFORM=\"Pocket PC 2002\"\n" } }; \ + if (length([$]2)) { printf "TARGETCPU=\"%s\"\n", toupper([$]2) }; \ + if (length([$]3)) { printf "ARCH=\"%s\"\n", toupper([$]3) }; \ + if (length([$]4)) { printf "PLATFORM=\"%s\"\n", [$]4 }; \ + }'` + if test "x${ARCH}" = "x" ; then + ARCH=$TARGETCPU; + fi + fi + OSVERSION=WCE$CEVERSION; + if test "x${WCEROOT}" = "x" ; then + WCEROOT="C:/Program Files/Microsoft eMbedded C++ 4.0" + if test ! -d "${WCEROOT}" ; then + WCEROOT="C:/Program Files/Microsoft eMbedded Tools" + fi + fi + if test "x${SDKROOT}" = "x" ; then + SDKROOT="C:/Program Files/Windows CE Tools" + if test ! -d "${SDKROOT}" ; then + SDKROOT="C:/Windows CE Tools" + fi + fi + WCEROOT=`echo "$WCEROOT" | sed -e 's!\\\!/!g'` + SDKROOT=`echo "$SDKROOT" | sed -e 's!\\\!/!g'` + if test ! -d "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" \ + -o ! -d "${WCEROOT}/EVC/${OSVERSION}/bin"; then + AC_MSG_ERROR([could not find PocketPC SDK or target compiler to enable WinCE mode [$CEVERSION,$TARGETCPU,$ARCH,$PLATFORM]]) + doWince="no" + else + # We could PATH_NOSPACE these, but that's not important, + # as long as we quote them when used. + CEINCLUDE="${SDKROOT}/${OSVERSION}/${PLATFORM}/include" + if test -d "${CEINCLUDE}/${TARGETCPU}" ; then + CEINCLUDE="${CEINCLUDE}/${TARGETCPU}" + fi + CELIBPATH="${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" + fi + fi + + if test "$GCC" != "yes" ; then + if test "${SHARED_BUILD}" = "0" ; then + runtime=-MT + else + runtime=-MD + fi + case "x`echo \${VisualStudioVersion}`" in + x1[[4-9]]*) + lflags="${lflags} -nodefaultlib:libucrt.lib" + TEA_ADD_LIBS([ucrt.lib]) + ;; + *) + ;; + esac + + if test "$do64bit" != "no" ; then + # All this magic is necessary for the Win64 SDK RC1 - hobbs + CC="\"${PATH64}/cl.exe\"" + CFLAGS="${CFLAGS} -I\"${MSSDK}/Include\" -I\"${MSSDK}/Include/crt\" -I\"${MSSDK}/Include/crt/sys\"" + RC="\"${MSSDK}/bin/rc.exe\"" + lflags="${lflags} -nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\"" + LINKBIN="\"${PATH64}/link.exe\"" + CFLAGS_DEBUG="-nologo -Zi -Od -W3 ${runtime}d" + CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}" + # Avoid 'unresolved external symbol __security_cookie' + # errors, c.f. http://support.microsoft.com/?id=894573 + TEA_ADD_LIBS([bufferoverflowU.lib]) + elif test "$doWince" != "no" ; then + CEBINROOT="${WCEROOT}/EVC/${OSVERSION}/bin" + if test "${TARGETCPU}" = "X86"; then + CC="\"${CEBINROOT}/cl.exe\"" + else + CC="\"${CEBINROOT}/cl${ARCH}.exe\"" + fi + CFLAGS="$CFLAGS -I\"${CELIB_DIR}/inc\" -I\"${CEINCLUDE}\"" + RC="\"${WCEROOT}/Common/EVC/bin/rc.exe\"" + arch=`echo ${ARCH} | awk '{print tolower([$]0)}'` + defs="${ARCH} _${ARCH}_ ${arch} PALM_SIZE _MT _WINDOWS" + if test "${SHARED_BUILD}" = "1" ; then + # Static CE builds require static celib as well + defs="${defs} _DLL" + fi + for i in $defs ; do + AC_DEFINE_UNQUOTED($i, 1, [WinCE def ]$i) + done + AC_DEFINE_UNQUOTED(_WIN32_WCE, $CEVERSION, [_WIN32_WCE version]) + AC_DEFINE_UNQUOTED(UNDER_CE, $CEVERSION, [UNDER_CE version]) + CFLAGS_DEBUG="-nologo -Zi -Od" + CFLAGS_OPTIMIZE="-nologo -Ox" + lversion=`echo ${CEVERSION} | sed -e 's/\(.\)\(..\)/\1\.\2/'` + lflags="${lflags} -MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo" + LINKBIN="\"${CEBINROOT}/link.exe\"" + AC_SUBST(CELIB_DIR) + else + RC="rc" + lflags="${lflags} -nologo" + LINKBIN="link" + CFLAGS_DEBUG="-nologo -Z7 -Od -W3 -WX ${runtime}d" + CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}" + fi + fi + + if test "$GCC" = "yes"; then + # mingw gcc mode + AC_CHECK_TOOL(RC, windres) + CFLAGS_DEBUG="-g" + CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" + SHLIB_LD='${CC} -shared' + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' + LDFLAGS_CONSOLE="-wl,--subsystem,console ${lflags}" + LDFLAGS_WINDOW="-wl,--subsystem,windows ${lflags}" + + AC_CACHE_CHECK(for cross-compile version of gcc, + ac_cv_cross, + AC_TRY_COMPILE([ + #ifdef _WIN32 + #error cross-compiler + #endif + ], [], + ac_cv_cross=yes, + ac_cv_cross=no) + ) + if test "$ac_cv_cross" = "yes"; then + case "$do64bit" in + amd64|x64|yes) + CC="x86_64-w64-mingw32-gcc" + LD="x86_64-w64-mingw32-ld" + AR="x86_64-w64-mingw32-ar" + RANLIB="x86_64-w64-mingw32-ranlib" + RC="x86_64-w64-mingw32-windres" + ;; + *) + CC="i686-w64-mingw32-gcc" + LD="i686-w64-mingw32-ld" + AR="i686-w64-mingw32-ar" + RANLIB="i686-w64-mingw32-ranlib" + RC="i686-w64-mingw32-windres" + ;; + esac + fi + + else + SHLIB_LD="${LINKBIN} -dll ${lflags}" + # link -lib only works when -lib is the first arg + STLIB_LD="${LINKBIN} -lib ${lflags}" + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.lib' + PATHTYPE=-w + # For information on what debugtype is most useful, see: + # http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp + # and also + # http://msdn2.microsoft.com/en-us/library/y0zzbyt4%28VS.80%29.aspx + # This essentially turns it all on. + LDFLAGS_DEBUG="-debug -debugtype:cv" + LDFLAGS_OPTIMIZE="-release" + if test "$doWince" != "no" ; then + LDFLAGS_CONSOLE="-link ${lflags}" + LDFLAGS_WINDOW=${LDFLAGS_CONSOLE} + else + LDFLAGS_CONSOLE="-link -subsystem:console ${lflags}" + LDFLAGS_WINDOW="-link -subsystem:windows ${lflags}" + fi + fi + + SHLIB_SUFFIX=".dll" + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.dll' + + TCL_LIB_VERSIONS_OK=nodots + ;; + AIX-*) + AS_IF([test "${TCL_THREADS}" = "1" -a "$GCC" != "yes"], [ + # AIX requires the _r compiler when gcc isn't being used + case "${CC}" in + *_r|*_r\ *) + # ok ... + ;; + *) + # Make sure only first arg gets _r + CC=`echo "$CC" | sed -e 's/^\([[^ ]]*\)/\1_r/'` + ;; + esac + AC_MSG_RESULT([Using $CC for compiling with threads]) + ]) + LIBS="$LIBS -lc" + SHLIB_CFLAGS="" + SHLIB_SUFFIX=".so" + + LD_LIBRARY_PATH_VAR="LIBPATH" + + # Check to enable 64-bit flags for compiler/linker + AS_IF([test "$do64bit" = yes], [ + AS_IF([test "$GCC" = yes], [ + AC_MSG_WARN([64bit mode not supported with GCC on $system]) + ], [ + do64bit_ok=yes + CFLAGS="$CFLAGS -q64" + LDFLAGS_ARCH="-q64" + RANLIB="${RANLIB} -X64" + AR="${AR} -X64" + SHLIB_LD_FLAGS="-b64" + ]) + ]) + + AS_IF([test "`uname -m`" = ia64], [ + # AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC + SHLIB_LD="/usr/ccs/bin/ld -G -z text" + AS_IF([test "$GCC" = yes], [ + CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' + ], [ + CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}' + ]) + LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' + ], [ + AS_IF([test "$GCC" = yes], [ + SHLIB_LD='${CC} -shared -Wl,-bexpall' + ], [ + SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bexpall -H512 -T512 -bnoentry" + LDFLAGS="$LDFLAGS -brtl" + ]) + SHLIB_LD="${SHLIB_LD} ${SHLIB_LD_FLAGS}" + CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + ]) + ;; + BeOS*) + SHLIB_CFLAGS="-fPIC" + SHLIB_LD='${CC} -nostart' + SHLIB_SUFFIX=".so" + + #----------------------------------------------------------- + # Check for inet_ntoa in -lbind, for BeOS (which also needs + # -lsocket, even if the network functions are in -lnet which + # is always linked to, for compatibility. + #----------------------------------------------------------- + AC_CHECK_LIB(bind, inet_ntoa, [LIBS="$LIBS -lbind -lsocket"]) + ;; + BSD/OS-4.*) + SHLIB_CFLAGS="-export-dynamic -fPIC" + SHLIB_LD='${CC} -shared' + SHLIB_SUFFIX=".so" + LDFLAGS="$LDFLAGS -export-dynamic" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + CYGWIN_*) + SHLIB_CFLAGS="" + SHLIB_LD='${CC} -shared' + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,--out-implib,\$[@].a" + SHLIB_SUFFIX=".dll" + EXEEXT=".exe" + do64bit_ok=yes + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + Haiku*) + LDFLAGS="$LDFLAGS -Wl,--export-dynamic" + SHLIB_CFLAGS="-fPIC" + SHLIB_SUFFIX=".so" + SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS} -shared' + AC_CHECK_LIB(network, inet_ntoa, [LIBS="$LIBS -lnetwork"]) + ;; + HP-UX-*.11.*) + # Use updated header definitions where possible + AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Do we want to use the XOPEN network library?]) + # TEA specific: Needed by Tcl, but not most extensions + #AC_DEFINE(_XOPEN_SOURCE, 1, [Do we want to use the XOPEN network library?]) + #LIBS="$LIBS -lxnet" # Use the XOPEN network library + + AS_IF([test "`uname -m`" = ia64], [ + SHLIB_SUFFIX=".so" + # Use newer C++ library for C++ extensions + #if test "$GCC" != "yes" ; then + # CPPFLAGS="-AA" + #fi + ], [ + SHLIB_SUFFIX=".sl" + ]) + AC_CHECK_LIB(dld, shl_load, tcl_ok=yes, tcl_ok=no) + AS_IF([test "$tcl_ok" = yes], [ + LDFLAGS="$LDFLAGS -Wl,-E" + CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.' + LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.' + LD_LIBRARY_PATH_VAR="SHLIB_PATH" + ]) + AS_IF([test "$GCC" = yes], [ + SHLIB_LD='${CC} -shared' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + ], [ + CFLAGS="$CFLAGS -z" + # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc + #CFLAGS="$CFLAGS +DAportable" + SHLIB_CFLAGS="+z" + SHLIB_LD="ld -b" + ]) + + # Check to enable 64-bit flags for compiler/linker + AS_IF([test "$do64bit" = "yes"], [ + AS_IF([test "$GCC" = yes], [ + case `${CC} -dumpmachine` in + hppa64*) + # 64-bit gcc in use. Fix flags for GNU ld. + do64bit_ok=yes + SHLIB_LD='${CC} -shared' + AS_IF([test $doRpath = yes], [ + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + ;; + *) + AC_MSG_WARN([64bit mode not supported with GCC on $system]) + ;; + esac + ], [ + do64bit_ok=yes + CFLAGS="$CFLAGS +DD64" + LDFLAGS_ARCH="+DD64" + ]) + ]) ;; + IRIX-6.*) + SHLIB_CFLAGS="" + SHLIB_LD="ld -n32 -shared -rdata_shared" + SHLIB_SUFFIX=".so" + AS_IF([test $doRpath = yes], [ + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}']) + AS_IF([test "$GCC" = yes], [ + CFLAGS="$CFLAGS -mabi=n32" + LDFLAGS="$LDFLAGS -mabi=n32" + ], [ + case $system in + IRIX-6.3) + # Use to build 6.2 compatible binaries on 6.3. + CFLAGS="$CFLAGS -n32 -D_OLD_TERMIOS" + ;; + *) + CFLAGS="$CFLAGS -n32" + ;; + esac + LDFLAGS="$LDFLAGS -n32" + ]) + ;; + IRIX64-6.*) + SHLIB_CFLAGS="" + SHLIB_LD="ld -n32 -shared -rdata_shared" + SHLIB_SUFFIX=".so" + AS_IF([test $doRpath = yes], [ + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}']) + + # Check to enable 64-bit flags for compiler/linker + + AS_IF([test "$do64bit" = yes], [ + AS_IF([test "$GCC" = yes], [ + AC_MSG_WARN([64bit mode not supported by gcc]) + ], [ + do64bit_ok=yes + SHLIB_LD="ld -64 -shared -rdata_shared" + CFLAGS="$CFLAGS -64" + LDFLAGS_ARCH="-64" + ]) + ]) + ;; + Linux*|GNU*|NetBSD-Debian) + SHLIB_CFLAGS="-fPIC" + SHLIB_SUFFIX=".so" + + # TEA specific: + CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" + + # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS + SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS_DEFAULT} -shared' + LDFLAGS="$LDFLAGS -Wl,--export-dynamic" + AS_IF([test $doRpath = yes], [ + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + AS_IF([test "`uname -m`" = "alpha"], [CFLAGS="$CFLAGS -mieee"]) + AS_IF([test $do64bit = yes], [ + AC_CACHE_CHECK([if compiler accepts -m64 flag], tcl_cv_cc_m64, [ + hold_cflags=$CFLAGS + CFLAGS="$CFLAGS -m64" + AC_TRY_LINK(,, tcl_cv_cc_m64=yes, tcl_cv_cc_m64=no) + CFLAGS=$hold_cflags]) + AS_IF([test $tcl_cv_cc_m64 = yes], [ + CFLAGS="$CFLAGS -m64" + do64bit_ok=yes + ]) + ]) + + # The combo of gcc + glibc has a bug related to inlining of + # functions like strtod(). The -fno-builtin flag should address + # this problem but it does not work. The -fno-inline flag is kind + # of overkill but it works. Disable inlining only when one of the + # files in compat/*.c is being linked in. + + AS_IF([test x"${USE_COMPAT}" != x],[CFLAGS="$CFLAGS -fno-inline"]) + ;; + Lynx*) + SHLIB_CFLAGS="-fPIC" + SHLIB_SUFFIX=".so" + CFLAGS_OPTIMIZE=-02 + SHLIB_LD='${CC} -shared' + LD_FLAGS="-Wl,--export-dynamic" + AS_IF([test $doRpath = yes], [ + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) + ;; + OpenBSD-*) + arch=`arch -s` + case "$arch" in + alpha|sparc64) + SHLIB_CFLAGS="-fPIC" + ;; + *) + SHLIB_CFLAGS="-fpic" + ;; + esac + SHLIB_LD='${CC} ${SHLIB_CFLAGS} -shared' + SHLIB_SUFFIX=".so" + AS_IF([test $doRpath = yes], [ + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so${SHLIB_VERSION}' + LDFLAGS="-Wl,-export-dynamic" + CFLAGS_OPTIMIZE="-O2" + AS_IF([test "${TCL_THREADS}" = "1"], [ + # On OpenBSD: Compile with -pthread + # Don't link with -lpthread + LIBS=`echo $LIBS | sed s/-lpthread//` + CFLAGS="$CFLAGS -pthread" + ]) + # OpenBSD doesn't do version numbers with dots. + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' + TCL_LIB_VERSIONS_OK=nodots + ;; + NetBSD-*) + # NetBSD has ELF and can use 'cc -shared' to build shared libs + SHLIB_CFLAGS="-fPIC" + SHLIB_LD='${CC} ${SHLIB_CFLAGS} -shared' + SHLIB_SUFFIX=".so" + LDFLAGS="$LDFLAGS -export-dynamic" + AS_IF([test $doRpath = yes], [ + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + AS_IF([test "${TCL_THREADS}" = "1"], [ + # The -pthread needs to go in the CFLAGS, not LIBS + LIBS=`echo $LIBS | sed s/-pthread//` + CFLAGS="$CFLAGS -pthread" + LDFLAGS="$LDFLAGS -pthread" + ]) + ;; + DragonFly-*|FreeBSD-*) + # This configuration from FreeBSD Ports. + SHLIB_CFLAGS="-fPIC" + SHLIB_LD="${CC} -shared" + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,-soname,\$[@]" + SHLIB_SUFFIX=".so" + LDFLAGS="" + AS_IF([test $doRpath = yes], [ + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) + AS_IF([test "${TCL_THREADS}" = "1"], [ + # The -pthread needs to go in the LDFLAGS, not LIBS + LIBS=`echo $LIBS | sed s/-pthread//` + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LDFLAGS="$LDFLAGS $PTHREAD_LIBS"]) + case $system in + FreeBSD-3.*) + # Version numbers are dot-stripped by system policy. + TCL_TRIM_DOTS=`echo ${PACKAGE_VERSION} | tr -d .` + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1' + TCL_LIB_VERSIONS_OK=nodots + ;; + esac + ;; + Darwin-*) + CFLAGS_OPTIMIZE="-Os" + SHLIB_CFLAGS="-fno-common" + # To avoid discrepancies between what headers configure sees during + # preprocessing tests and compiling tests, move any -isysroot and + # -mmacosx-version-min flags from CFLAGS to CPPFLAGS: + CPPFLAGS="${CPPFLAGS} `echo " ${CFLAGS}" | \ + awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ + if ([$]i~/^(isysroot|mmacosx-version-min)/) print "-"[$]i}'`" + CFLAGS="`echo " ${CFLAGS}" | \ + awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ + if (!([$]i~/^(isysroot|mmacosx-version-min)/)) print "-"[$]i}'`" + AS_IF([test $do64bit = yes], [ + case `arch` in + ppc) + AC_CACHE_CHECK([if compiler accepts -arch ppc64 flag], + tcl_cv_cc_arch_ppc64, [ + hold_cflags=$CFLAGS + CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" + AC_TRY_LINK(,, tcl_cv_cc_arch_ppc64=yes, + tcl_cv_cc_arch_ppc64=no) + CFLAGS=$hold_cflags]) + AS_IF([test $tcl_cv_cc_arch_ppc64 = yes], [ + CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" + do64bit_ok=yes + ]);; + i386) + AC_CACHE_CHECK([if compiler accepts -arch x86_64 flag], + tcl_cv_cc_arch_x86_64, [ + hold_cflags=$CFLAGS + CFLAGS="$CFLAGS -arch x86_64" + AC_TRY_LINK(,, tcl_cv_cc_arch_x86_64=yes, + tcl_cv_cc_arch_x86_64=no) + CFLAGS=$hold_cflags]) + AS_IF([test $tcl_cv_cc_arch_x86_64 = yes], [ + CFLAGS="$CFLAGS -arch x86_64" + do64bit_ok=yes + ]);; + *) + AC_MSG_WARN([Don't know how enable 64-bit on architecture `arch`]);; + esac + ], [ + # Check for combined 32-bit and 64-bit fat build + AS_IF([echo "$CFLAGS " |grep -E -q -- '-arch (ppc64|x86_64) ' \ + && echo "$CFLAGS " |grep -E -q -- '-arch (ppc|i386) '], [ + fat_32_64=yes]) + ]) + # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS + SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS_DEFAULT}' + AC_CACHE_CHECK([if ld accepts -single_module flag], tcl_cv_ld_single_module, [ + hold_ldflags=$LDFLAGS + LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module" + AC_TRY_LINK(, [int i;], tcl_cv_ld_single_module=yes, tcl_cv_ld_single_module=no) + LDFLAGS=$hold_ldflags]) + AS_IF([test $tcl_cv_ld_single_module = yes], [ + SHLIB_LD="${SHLIB_LD} -Wl,-single_module" + ]) + # TEA specific: link shlib with current and compatibility version flags + vers=`echo ${PACKAGE_VERSION} | sed -e 's/^\([[0-9]]\{1,5\}\)\(\(\.[[0-9]]\{1,3\}\)\{0,2\}\).*$/\1\2/p' -e d` + SHLIB_LD="${SHLIB_LD} -current_version ${vers:-0} -compatibility_version ${vers:-0}" + SHLIB_SUFFIX=".dylib" + # Don't use -prebind when building for Mac OS X 10.4 or later only: + AS_IF([test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int([$]2)}'`" -lt 4 -a \ + "`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int([$]2)}'`" -lt 4], [ + LDFLAGS="$LDFLAGS -prebind"]) + LDFLAGS="$LDFLAGS -headerpad_max_install_names" + AC_CACHE_CHECK([if ld accepts -search_paths_first flag], + tcl_cv_ld_search_paths_first, [ + hold_ldflags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-search_paths_first" + AC_TRY_LINK(, [int i;], tcl_cv_ld_search_paths_first=yes, + tcl_cv_ld_search_paths_first=no) + LDFLAGS=$hold_ldflags]) + AS_IF([test $tcl_cv_ld_search_paths_first = yes], [ + LDFLAGS="$LDFLAGS -Wl,-search_paths_first" + ]) + AS_IF([test "$tcl_cv_cc_visibility_hidden" != yes], [ + AC_DEFINE(MODULE_SCOPE, [__private_extern__], + [Compiler support for module scope symbols]) + tcl_cv_cc_visibility_hidden=yes + ]) + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH" + # TEA specific: for combined 32 & 64 bit fat builds of Tk + # extensions, verify that 64-bit build is possible. + AS_IF([test "$fat_32_64" = yes && test -n "${TK_BIN_DIR}"], [ + AS_IF([test "${TEA_WINDOWINGSYSTEM}" = x11], [ + AC_CACHE_CHECK([for 64-bit X11], tcl_cv_lib_x11_64, [ + for v in CFLAGS CPPFLAGS LDFLAGS; do + eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' + done + CPPFLAGS="$CPPFLAGS -I/usr/X11R6/include" + LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -lX11" + AC_TRY_LINK([#include ], [XrmInitialize();], + tcl_cv_lib_x11_64=yes, tcl_cv_lib_x11_64=no) + for v in CFLAGS CPPFLAGS LDFLAGS; do + eval $v'="$hold_'$v'"' + done]) + ]) + AS_IF([test "${TEA_WINDOWINGSYSTEM}" = aqua], [ + AC_CACHE_CHECK([for 64-bit Tk], tcl_cv_lib_tk_64, [ + for v in CFLAGS CPPFLAGS LDFLAGS; do + eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' + done + CPPFLAGS="$CPPFLAGS -DUSE_TCL_STUBS=1 -DUSE_TK_STUBS=1 ${TCL_INCLUDES} ${TK_INCLUDES}" + LDFLAGS="$LDFLAGS ${TCL_STUB_LIB_SPEC} ${TK_STUB_LIB_SPEC}" + AC_TRY_LINK([#include ], [Tk_InitStubs(NULL, "", 0);], + tcl_cv_lib_tk_64=yes, tcl_cv_lib_tk_64=no) + for v in CFLAGS CPPFLAGS LDFLAGS; do + eval $v'="$hold_'$v'"' + done]) + ]) + # remove 64-bit arch flags from CFLAGS et al. if configuration + # does not support 64-bit. + AS_IF([test "$tcl_cv_lib_tk_64" = no -o "$tcl_cv_lib_x11_64" = no], [ + AC_MSG_NOTICE([Removing 64-bit architectures from compiler & linker flags]) + for v in CFLAGS CPPFLAGS LDFLAGS; do + eval $v'="`echo "$'$v' "|sed -e "s/-arch ppc64 / /g" -e "s/-arch x86_64 / /g"`"' + done]) + ]) + ;; + OS/390-*) + CFLAGS_OPTIMIZE="" # Optimizer is buggy + AC_DEFINE(_OE_SOCKETS, 1, # needed in sys/socket.h + [Should OS/390 do the right thing with sockets?]) + ;; + OSF1-V*) + # Digital OSF/1 + SHLIB_CFLAGS="" + AS_IF([test "$SHARED_BUILD" = 1], [ + SHLIB_LD='ld -shared -expect_unresolved "*"' + ], [ + SHLIB_LD='ld -non_shared -expect_unresolved "*"' + ]) + SHLIB_SUFFIX=".so" + AS_IF([test $doRpath = yes], [ + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}']) + AS_IF([test "$GCC" = yes], [CFLAGS="$CFLAGS -mieee"], [ + CFLAGS="$CFLAGS -DHAVE_TZSET -std1 -ieee"]) + # see pthread_intro(3) for pthread support on osf1, k.furukawa + AS_IF([test "${TCL_THREADS}" = 1], [ + CFLAGS="$CFLAGS -DHAVE_PTHREAD_ATTR_SETSTACKSIZE" + CFLAGS="$CFLAGS -DTCL_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64" + LIBS=`echo $LIBS | sed s/-lpthreads//` + AS_IF([test "$GCC" = yes], [ + LIBS="$LIBS -lpthread -lmach -lexc" + ], [ + CFLAGS="$CFLAGS -pthread" + LDFLAGS="$LDFLAGS -pthread" + ]) + ]) + ;; + QNX-6*) + # QNX RTP + # This may work for all QNX, but it was only reported for v6. + SHLIB_CFLAGS="-fPIC" + SHLIB_LD="ld -Bshareable -x" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + SCO_SV-3.2*) + AS_IF([test "$GCC" = yes], [ + SHLIB_CFLAGS="-fPIC -melf" + LDFLAGS="$LDFLAGS -melf -Wl,-Bexport" + ], [ + SHLIB_CFLAGS="-Kpic -belf" + LDFLAGS="$LDFLAGS -belf -Wl,-Bexport" + ]) + SHLIB_LD="ld -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + SunOS-5.[[0-6]]) + # Careful to not let 5.10+ fall into this case + + # Note: If _REENTRANT isn't defined, then Solaris + # won't define thread-safe library routines. + + AC_DEFINE(_REENTRANT, 1, [Do we want the reentrant OS API?]) + AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1, + [Do we really want to follow the standard? Yes we do!]) + + SHLIB_CFLAGS="-KPIC" + SHLIB_SUFFIX=".so" + AS_IF([test "$GCC" = yes], [ + SHLIB_LD='${CC} -shared' + CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + ], [ + SHLIB_LD="/usr/ccs/bin/ld -G -z text" + CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + ]) + ;; + SunOS-5*) + # Note: If _REENTRANT isn't defined, then Solaris + # won't define thread-safe library routines. + + AC_DEFINE(_REENTRANT, 1, [Do we want the reentrant OS API?]) + AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1, + [Do we really want to follow the standard? Yes we do!]) + + SHLIB_CFLAGS="-KPIC" + + # Check to enable 64-bit flags for compiler/linker + AS_IF([test "$do64bit" = yes], [ + arch=`isainfo` + AS_IF([test "$arch" = "sparcv9 sparc"], [ + AS_IF([test "$GCC" = yes], [ + AS_IF([test "`${CC} -dumpversion | awk -F. '{print [$]1}'`" -lt 3], [ + AC_MSG_WARN([64bit mode not supported with GCC < 3.2 on $system]) + ], [ + do64bit_ok=yes + CFLAGS="$CFLAGS -m64 -mcpu=v9" + LDFLAGS="$LDFLAGS -m64 -mcpu=v9" + SHLIB_CFLAGS="-fPIC" + ]) + ], [ + do64bit_ok=yes + AS_IF([test "$do64bitVIS" = yes], [ + CFLAGS="$CFLAGS -xarch=v9a" + LDFLAGS_ARCH="-xarch=v9a" + ], [ + CFLAGS="$CFLAGS -xarch=v9" + LDFLAGS_ARCH="-xarch=v9" + ]) + # Solaris 64 uses this as well + #LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64" + ]) + ], [AS_IF([test "$arch" = "amd64 i386"], [ + AS_IF([test "$GCC" = yes], [ + case $system in + SunOS-5.1[[1-9]]*|SunOS-5.[[2-9]][[0-9]]*) + do64bit_ok=yes + CFLAGS="$CFLAGS -m64" + LDFLAGS="$LDFLAGS -m64";; + *) + AC_MSG_WARN([64bit mode not supported with GCC on $system]);; + esac + ], [ + do64bit_ok=yes + case $system in + SunOS-5.1[[1-9]]*|SunOS-5.[[2-9]][[0-9]]*) + CFLAGS="$CFLAGS -m64" + LDFLAGS="$LDFLAGS -m64";; + *) + CFLAGS="$CFLAGS -xarch=amd64" + LDFLAGS="$LDFLAGS -xarch=amd64";; + esac + ]) + ], [AC_MSG_WARN([64bit mode not supported for $arch])])]) + ]) + + SHLIB_SUFFIX=".so" + AS_IF([test "$GCC" = yes], [ + SHLIB_LD='${CC} -shared' + CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + AS_IF([test "$do64bit_ok" = yes], [ + AS_IF([test "$arch" = "sparcv9 sparc"], [ + # We need to specify -static-libgcc or we need to + # add the path to the sparv9 libgcc. + # JH: static-libgcc is necessary for core Tcl, but may + # not be necessary for extensions. + SHLIB_LD="$SHLIB_LD -m64 -mcpu=v9 -static-libgcc" + # for finding sparcv9 libgcc, get the regular libgcc + # path, remove so name and append 'sparcv9' + #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..." + #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir" + ], [AS_IF([test "$arch" = "amd64 i386"], [ + # JH: static-libgcc is necessary for core Tcl, but may + # not be necessary for extensions. + SHLIB_LD="$SHLIB_LD -m64 -static-libgcc" + ])]) + ]) + ], [ + case $system in + SunOS-5.[[1-9]][[0-9]]*) + # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS + SHLIB_LD='${CC} -G -z text ${LDFLAGS_DEFAULT}';; + *) + SHLIB_LD='/usr/ccs/bin/ld -G -z text';; + esac + CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' + ]) + ;; + UNIX_SV* | UnixWare-5*) + SHLIB_CFLAGS="-KPIC" + SHLIB_LD='${CC} -G' + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers + # that don't grok the -Bexport option. Test that it does. + AC_CACHE_CHECK([for ld accepts -Bexport flag], tcl_cv_ld_Bexport, [ + hold_ldflags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-Bexport" + AC_TRY_LINK(, [int i;], tcl_cv_ld_Bexport=yes, tcl_cv_ld_Bexport=no) + LDFLAGS=$hold_ldflags]) + AS_IF([test $tcl_cv_ld_Bexport = yes], [ + LDFLAGS="$LDFLAGS -Wl,-Bexport" + ]) + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + esac + + AS_IF([test "$do64bit" = yes -a "$do64bit_ok" = no], [ + AC_MSG_WARN([64bit support being disabled -- don't know magic for this platform]) + ]) + +dnl # Add any CPPFLAGS set in the environment to our CFLAGS, but delay doing so +dnl # until the end of configure, as configure's compile and link tests use +dnl # both CPPFLAGS and CFLAGS (unlike our compile and link) but configure's +dnl # preprocessing tests use only CPPFLAGS. + AC_CONFIG_COMMANDS_PRE([CFLAGS="${CFLAGS} ${CPPFLAGS}"; CPPFLAGS=""]) + + # Add in the arch flags late to ensure it wasn't removed. + # Not necessary in TEA, but this is aligned with core + LDFLAGS="$LDFLAGS $LDFLAGS_ARCH" + + # If we're running gcc, then change the C flags for compiling shared + # libraries to the right flags for gcc, instead of those for the + # standard manufacturer compiler. + + AS_IF([test "$GCC" = yes], [ + case $system in + AIX-*) ;; + BSD/OS*) ;; + CYGWIN_*|MINGW32_*|MINGW64_*) ;; + IRIX*) ;; + NetBSD-*|DragonFly-*|FreeBSD-*|OpenBSD-*) ;; + Darwin-*) ;; + SCO_SV-3.2*) ;; + windows) ;; + *) SHLIB_CFLAGS="-fPIC" ;; + esac]) + + AS_IF([test "$tcl_cv_cc_visibility_hidden" != yes], [ + AC_DEFINE(MODULE_SCOPE, [extern], + [No Compiler support for module scope symbols]) + ]) + + AS_IF([test "$SHARED_LIB_SUFFIX" = ""], [ + # TEA specific: use PACKAGE_VERSION instead of VERSION + SHARED_LIB_SUFFIX='${PACKAGE_VERSION}${SHLIB_SUFFIX}']) + AS_IF([test "$UNSHARED_LIB_SUFFIX" = ""], [ + # TEA specific: use PACKAGE_VERSION instead of VERSION + UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a']) + + if test "${GCC}" = "yes" -a ${SHLIB_SUFFIX} = ".dll"; then + AC_CACHE_CHECK(for SEH support in compiler, + tcl_cv_seh, + AC_TRY_RUN([ +#define WIN32_LEAN_AND_MEAN +#include +#undef WIN32_LEAN_AND_MEAN + + int main(int argc, char** argv) { + int a, b = 0; + __try { + a = 666 / b; + } + __except (EXCEPTION_EXECUTE_HANDLER) { + return 0; + } + return 1; + } + ], + tcl_cv_seh=yes, + tcl_cv_seh=no, + tcl_cv_seh=no) + ) + if test "$tcl_cv_seh" = "no" ; then + AC_DEFINE(HAVE_NO_SEH, 1, + [Defined when mingw does not support SEH]) + fi + + # + # Check to see if the excpt.h include file provided contains the + # definition for EXCEPTION_DISPOSITION; if not, which is the case + # with Cygwin's version as of 2002-04-10, define it to be int, + # sufficient for getting the current code to work. + # + AC_CACHE_CHECK(for EXCEPTION_DISPOSITION support in include files, + tcl_cv_eh_disposition, + AC_TRY_COMPILE([ +# define WIN32_LEAN_AND_MEAN +# include +# undef WIN32_LEAN_AND_MEAN + ],[ + EXCEPTION_DISPOSITION x; + ], + tcl_cv_eh_disposition=yes, + tcl_cv_eh_disposition=no) + ) + if test "$tcl_cv_eh_disposition" = "no" ; then + AC_DEFINE(EXCEPTION_DISPOSITION, int, + [Defined when cygwin/mingw does not support EXCEPTION DISPOSITION]) + fi + + # Check to see if winnt.h defines CHAR, SHORT, and LONG + # even if VOID has already been #defined. The win32api + # used by mingw and cygwin is known to do this. + + AC_CACHE_CHECK(for winnt.h that ignores VOID define, + tcl_cv_winnt_ignore_void, + AC_TRY_COMPILE([ +#define VOID void +#define WIN32_LEAN_AND_MEAN +#include +#undef WIN32_LEAN_AND_MEAN + ], [ + CHAR c; + SHORT s; + LONG l; + ], + tcl_cv_winnt_ignore_void=yes, + tcl_cv_winnt_ignore_void=no) + ) + if test "$tcl_cv_winnt_ignore_void" = "yes" ; then + AC_DEFINE(HAVE_WINNT_IGNORE_VOID, 1, + [Defined when cygwin/mingw ignores VOID define in winnt.h]) + fi + fi + + # See if the compiler supports casting to a union type. + # This is used to stop gcc from printing a compiler + # warning when initializing a union member. + + AC_CACHE_CHECK(for cast to union support, + tcl_cv_cast_to_union, + AC_TRY_COMPILE([], + [ + union foo { int i; double d; }; + union foo f = (union foo) (int) 0; + ], + tcl_cv_cast_to_union=yes, + tcl_cv_cast_to_union=no) + ) + if test "$tcl_cv_cast_to_union" = "yes"; then + AC_DEFINE(HAVE_CAST_TO_UNION, 1, + [Defined when compiler supports casting to union type.]) + fi + + AC_SUBST(CFLAGS_DEBUG) + AC_SUBST(CFLAGS_OPTIMIZE) + AC_SUBST(CFLAGS_WARNING) + + AC_SUBST(STLIB_LD) + AC_SUBST(SHLIB_LD) + + AC_SUBST(SHLIB_LD_LIBS) + AC_SUBST(SHLIB_CFLAGS) + + AC_SUBST(LD_LIBRARY_PATH_VAR) + + # These must be called after we do the basic CFLAGS checks and + # verify any possible 64-bit or similar switches are necessary + TEA_TCL_EARLY_FLAGS + TEA_TCL_64BIT_FLAGS +]) + +#-------------------------------------------------------------------- +# TEA_SERIAL_PORT +# +# Determine which interface to use to talk to the serial port. +# Note that #include lines must begin in leftmost column for +# some compilers to recognize them as preprocessor directives, +# and some build environments have stdin not pointing at a +# pseudo-terminal (usually /dev/null instead.) +# +# Arguments: +# none +# +# Results: +# +# Defines only one of the following vars: +# HAVE_SYS_MODEM_H +# USE_TERMIOS +# USE_TERMIO +# USE_SGTTY +#-------------------------------------------------------------------- + +AC_DEFUN([TEA_SERIAL_PORT], [ + AC_CHECK_HEADERS(sys/modem.h) + AC_CACHE_CHECK([termios vs. termio vs. sgtty], tcl_cv_api_serial, [ + AC_TRY_RUN([ +#include + +int main() { + struct termios t; + if (tcgetattr(0, &t) == 0) { + cfsetospeed(&t, 0); + t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB; + return 0; + } + return 1; +}], tcl_cv_api_serial=termios, tcl_cv_api_serial=no, tcl_cv_api_serial=no) + if test $tcl_cv_api_serial = no ; then + AC_TRY_RUN([ +#include + +int main() { + struct termio t; + if (ioctl(0, TCGETA, &t) == 0) { + t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB; + return 0; + } + return 1; +}], tcl_cv_api_serial=termio, tcl_cv_api_serial=no, tcl_cv_api_serial=no) + fi + if test $tcl_cv_api_serial = no ; then + AC_TRY_RUN([ +#include + +int main() { + struct sgttyb t; + if (ioctl(0, TIOCGETP, &t) == 0) { + t.sg_ospeed = 0; + t.sg_flags |= ODDP | EVENP | RAW; + return 0; + } + return 1; +}], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=no, tcl_cv_api_serial=no) + fi + if test $tcl_cv_api_serial = no ; then + AC_TRY_RUN([ +#include +#include + +int main() { + struct termios t; + if (tcgetattr(0, &t) == 0 + || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { + cfsetospeed(&t, 0); + t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB; + return 0; + } + return 1; +}], tcl_cv_api_serial=termios, tcl_cv_api_serial=no, tcl_cv_api_serial=no) + fi + if test $tcl_cv_api_serial = no; then + AC_TRY_RUN([ +#include +#include + +int main() { + struct termio t; + if (ioctl(0, TCGETA, &t) == 0 + || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { + t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB; + return 0; + } + return 1; + }], tcl_cv_api_serial=termio, tcl_cv_api_serial=no, tcl_cv_api_serial=no) + fi + if test $tcl_cv_api_serial = no; then + AC_TRY_RUN([ +#include +#include + +int main() { + struct sgttyb t; + if (ioctl(0, TIOCGETP, &t) == 0 + || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { + t.sg_ospeed = 0; + t.sg_flags |= ODDP | EVENP | RAW; + return 0; + } + return 1; +}], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=none, tcl_cv_api_serial=none) + fi]) + case $tcl_cv_api_serial in + termios) AC_DEFINE(USE_TERMIOS, 1, [Use the termios API for serial lines]);; + termio) AC_DEFINE(USE_TERMIO, 1, [Use the termio API for serial lines]);; + sgtty) AC_DEFINE(USE_SGTTY, 1, [Use the sgtty API for serial lines]);; + esac +]) + +#-------------------------------------------------------------------- +# TEA_PATH_X +# +# Locate the X11 header files and the X11 library archive. Try +# the ac_path_x macro first, but if it doesn't find the X stuff +# (e.g. because there's no xmkmf program) then check through +# a list of possible directories. Under some conditions the +# autoconf macro will return an include directory that contains +# no include files, so double-check its result just to be safe. +# +# This should be called after TEA_CONFIG_CFLAGS as setting the +# LIBS line can confuse some configure macro magic. +# +# Arguments: +# none +# +# Results: +# +# Sets the following vars: +# XINCLUDES +# XLIBSW +# PKG_LIBS (appends to) +#-------------------------------------------------------------------- + +AC_DEFUN([TEA_PATH_X], [ + if test "${TEA_WINDOWINGSYSTEM}" = "x11" ; then + TEA_PATH_UNIX_X + fi +]) + +AC_DEFUN([TEA_PATH_UNIX_X], [ + AC_PATH_X + not_really_there="" + if test "$no_x" = ""; then + if test "$x_includes" = ""; then + AC_TRY_CPP([#include ], , not_really_there="yes") + else + if test ! -r $x_includes/X11/Xlib.h; then + not_really_there="yes" + fi + fi + fi + if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then + AC_MSG_CHECKING([for X11 header files]) + found_xincludes="no" + AC_TRY_CPP([#include ], found_xincludes="yes", found_xincludes="no") + if test "$found_xincludes" = "no"; then + dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/X11R6/include /usr/X11R5/include /usr/include/X11R5 /usr/include/X11R4 /usr/openwin/include /usr/X11/include /usr/sww/include" + for i in $dirs ; do + if test -r $i/X11/Xlib.h; then + AC_MSG_RESULT([$i]) + XINCLUDES=" -I$i" + found_xincludes="yes" + break + fi + done + fi + else + if test "$x_includes" != ""; then + XINCLUDES="-I$x_includes" + found_xincludes="yes" + fi + fi + if test "$found_xincludes" = "no"; then + AC_MSG_RESULT([couldn't find any!]) + fi + + if test "$no_x" = yes; then + AC_MSG_CHECKING([for X11 libraries]) + XLIBSW=nope + dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/X11R6/lib /usr/X11R5/lib /usr/lib/X11R5 /usr/lib/X11R4 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib" + for i in $dirs ; do + if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl -o -r $i/libX11.dylib; then + AC_MSG_RESULT([$i]) + XLIBSW="-L$i -lX11" + x_libraries="$i" + break + fi + done + else + if test "$x_libraries" = ""; then + XLIBSW=-lX11 + else + XLIBSW="-L$x_libraries -lX11" + fi + fi + if test "$XLIBSW" = nope ; then + AC_CHECK_LIB(Xwindow, XCreateWindow, XLIBSW=-lXwindow) + fi + if test "$XLIBSW" = nope ; then + AC_MSG_RESULT([could not find any! Using -lX11.]) + XLIBSW=-lX11 + fi + # TEA specific: + if test x"${XLIBSW}" != x ; then + PKG_LIBS="${PKG_LIBS} ${XLIBSW}" + fi +]) + +#-------------------------------------------------------------------- +# TEA_BLOCKING_STYLE +# +# The statements below check for systems where POSIX-style +# non-blocking I/O (O_NONBLOCK) doesn't work or is unimplemented. +# On these systems (mostly older ones), use the old BSD-style +# FIONBIO approach instead. +# +# Arguments: +# none +# +# Results: +# +# Defines some of the following vars: +# HAVE_SYS_IOCTL_H +# HAVE_SYS_FILIO_H +# USE_FIONBIO +# O_NONBLOCK +#-------------------------------------------------------------------- + +AC_DEFUN([TEA_BLOCKING_STYLE], [ + AC_CHECK_HEADERS(sys/ioctl.h) + AC_CHECK_HEADERS(sys/filio.h) + TEA_CONFIG_SYSTEM + AC_MSG_CHECKING([FIONBIO vs. O_NONBLOCK for nonblocking I/O]) + case $system in + OSF*) + AC_DEFINE(USE_FIONBIO, 1, [Should we use FIONBIO?]) + AC_MSG_RESULT([FIONBIO]) + ;; + *) + AC_MSG_RESULT([O_NONBLOCK]) + ;; + esac +]) + +#-------------------------------------------------------------------- +# TEA_TIME_HANDLER +# +# Checks how the system deals with time.h, what time structures +# are used on the system, and what fields the structures have. +# +# Arguments: +# none +# +# Results: +# +# Defines some of the following vars: +# USE_DELTA_FOR_TZ +# HAVE_TM_GMTOFF +# HAVE_TM_TZADJ +# HAVE_TIMEZONE_VAR +#-------------------------------------------------------------------- + +AC_DEFUN([TEA_TIME_HANDLER], [ + AC_CHECK_HEADERS(sys/time.h) + AC_HEADER_TIME + AC_STRUCT_TIMEZONE + + AC_CHECK_FUNCS(gmtime_r localtime_r) + + AC_CACHE_CHECK([tm_tzadj in struct tm], tcl_cv_member_tm_tzadj, [ + AC_TRY_COMPILE([#include ], [struct tm tm; tm.tm_tzadj;], + tcl_cv_member_tm_tzadj=yes, tcl_cv_member_tm_tzadj=no)]) + if test $tcl_cv_member_tm_tzadj = yes ; then + AC_DEFINE(HAVE_TM_TZADJ, 1, [Should we use the tm_tzadj field of struct tm?]) + fi + + AC_CACHE_CHECK([tm_gmtoff in struct tm], tcl_cv_member_tm_gmtoff, [ + AC_TRY_COMPILE([#include ], [struct tm tm; tm.tm_gmtoff;], + tcl_cv_member_tm_gmtoff=yes, tcl_cv_member_tm_gmtoff=no)]) + if test $tcl_cv_member_tm_gmtoff = yes ; then + AC_DEFINE(HAVE_TM_GMTOFF, 1, [Should we use the tm_gmtoff field of struct tm?]) + fi + + # + # Its important to include time.h in this check, as some systems + # (like convex) have timezone functions, etc. + # + AC_CACHE_CHECK([long timezone variable], tcl_cv_timezone_long, [ + AC_TRY_COMPILE([#include ], + [extern long timezone; + timezone += 1; + exit (0);], + tcl_cv_timezone_long=yes, tcl_cv_timezone_long=no)]) + if test $tcl_cv_timezone_long = yes ; then + AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?]) + else + # + # On some systems (eg IRIX 6.2), timezone is a time_t and not a long. + # + AC_CACHE_CHECK([time_t timezone variable], tcl_cv_timezone_time, [ + AC_TRY_COMPILE([#include ], + [extern time_t timezone; + timezone += 1; + exit (0);], + tcl_cv_timezone_time=yes, tcl_cv_timezone_time=no)]) + if test $tcl_cv_timezone_time = yes ; then + AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?]) + fi + fi +]) + +#-------------------------------------------------------------------- +# TEA_BUGGY_STRTOD +# +# Under Solaris 2.4, strtod returns the wrong value for the +# terminating character under some conditions. Check for this +# and if the problem exists use a substitute procedure +# "fixstrtod" (provided by Tcl) that corrects the error. +# Also, on Compaq's Tru64 Unix 5.0, +# strtod(" ") returns 0.0 instead of a failure to convert. +# +# Arguments: +# none +# +# Results: +# +# Might defines some of the following vars: +# strtod (=fixstrtod) +#-------------------------------------------------------------------- + +AC_DEFUN([TEA_BUGGY_STRTOD], [ + AC_CHECK_FUNC(strtod, tcl_strtod=1, tcl_strtod=0) + if test "$tcl_strtod" = 1; then + AC_CACHE_CHECK([for Solaris2.4/Tru64 strtod bugs], tcl_cv_strtod_buggy,[ + AC_TRY_RUN([ + extern double strtod(); + int main() { + char *infString="Inf", *nanString="NaN", *spaceString=" "; + char *term; + double value; + value = strtod(infString, &term); + if ((term != infString) && (term[-1] == 0)) { + exit(1); + } + value = strtod(nanString, &term); + if ((term != nanString) && (term[-1] == 0)) { + exit(1); + } + value = strtod(spaceString, &term); + if (term == (spaceString+1)) { + exit(1); + } + exit(0); + }], tcl_cv_strtod_buggy=ok, tcl_cv_strtod_buggy=buggy, + tcl_cv_strtod_buggy=buggy)]) + if test "$tcl_cv_strtod_buggy" = buggy; then + AC_LIBOBJ([fixstrtod]) + USE_COMPAT=1 + AC_DEFINE(strtod, fixstrtod, [Do we want to use the strtod() in compat?]) + fi + fi +]) + +#-------------------------------------------------------------------- +# TEA_TCL_EARLY_FLAGS +# +# Check for what flags are needed to be passed so the correct OS +# features are available. +# +# Arguments: +# None +# +# Results: +# +# Might define the following vars: +# _ISOC99_SOURCE +# _LARGEFILE64_SOURCE +# _LARGEFILE_SOURCE64 +#-------------------------------------------------------------------- + +AC_DEFUN([TEA_TCL_EARLY_FLAG],[ + AC_CACHE_VAL([tcl_cv_flag_]translit($1,[A-Z],[a-z]), + AC_TRY_COMPILE([$2], $3, [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no, + AC_TRY_COMPILE([[#define ]$1[ 1 +]$2], $3, + [tcl_cv_flag_]translit($1,[A-Z],[a-z])=yes, + [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no))) + if test ["x${tcl_cv_flag_]translit($1,[A-Z],[a-z])[}" = "xyes"] ; then + AC_DEFINE($1, 1, [Add the ]$1[ flag when building]) + tcl_flags="$tcl_flags $1" + fi +]) + +AC_DEFUN([TEA_TCL_EARLY_FLAGS],[ + AC_MSG_CHECKING([for required early compiler flags]) + tcl_flags="" + TEA_TCL_EARLY_FLAG(_ISOC99_SOURCE,[#include ], + [char *p = (char *)strtoll; char *q = (char *)strtoull;]) + TEA_TCL_EARLY_FLAG(_LARGEFILE64_SOURCE,[#include ], + [struct stat64 buf; int i = stat64("/", &buf);]) + TEA_TCL_EARLY_FLAG(_LARGEFILE_SOURCE64,[#include ], + [char *p = (char *)open64;]) + if test "x${tcl_flags}" = "x" ; then + AC_MSG_RESULT([none]) + else + AC_MSG_RESULT([${tcl_flags}]) + fi +]) + +#-------------------------------------------------------------------- +# TEA_TCL_64BIT_FLAGS +# +# Check for what is defined in the way of 64-bit features. +# +# Arguments: +# None +# +# Results: +# +# Might define the following vars: +# TCL_WIDE_INT_IS_LONG +# TCL_WIDE_INT_TYPE +# HAVE_STRUCT_DIRENT64 +# HAVE_STRUCT_STAT64 +# HAVE_TYPE_OFF64_T +#-------------------------------------------------------------------- + +AC_DEFUN([TEA_TCL_64BIT_FLAGS], [ + AC_MSG_CHECKING([for 64-bit integer type]) + AC_CACHE_VAL(tcl_cv_type_64bit,[ + tcl_cv_type_64bit=none + # See if the compiler knows natively about __int64 + AC_TRY_COMPILE(,[__int64 value = (__int64) 0;], + tcl_type_64bit=__int64, tcl_type_64bit="long long") + # See if we should use long anyway Note that we substitute in the + # type that is our current guess for a 64-bit type inside this check + # program, so it should be modified only carefully... + AC_TRY_COMPILE(,[switch (0) { + case 1: case (sizeof(]${tcl_type_64bit}[)==sizeof(long)): ; + }],tcl_cv_type_64bit=${tcl_type_64bit})]) + if test "${tcl_cv_type_64bit}" = none ; then + AC_DEFINE(TCL_WIDE_INT_IS_LONG, 1, [Are wide integers to be implemented with C 'long's?]) + AC_MSG_RESULT([using long]) + elif test "${tcl_cv_type_64bit}" = "__int64" \ + -a "${TEA_PLATFORM}" = "windows" ; then + # TEA specific: We actually want to use the default tcl.h checks in + # this case to handle both TCL_WIDE_INT_TYPE and TCL_LL_MODIFIER* + AC_MSG_RESULT([using Tcl header defaults]) + else + AC_DEFINE_UNQUOTED(TCL_WIDE_INT_TYPE,${tcl_cv_type_64bit}, + [What type should be used to define wide integers?]) + AC_MSG_RESULT([${tcl_cv_type_64bit}]) + + # Now check for auxiliary declarations + AC_CACHE_CHECK([for struct dirent64], tcl_cv_struct_dirent64,[ + AC_TRY_COMPILE([#include +#include ],[struct dirent64 p;], + tcl_cv_struct_dirent64=yes,tcl_cv_struct_dirent64=no)]) + if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then + AC_DEFINE(HAVE_STRUCT_DIRENT64, 1, [Is 'struct dirent64' in ?]) + fi + + AC_CACHE_CHECK([for struct stat64], tcl_cv_struct_stat64,[ + AC_TRY_COMPILE([#include ],[struct stat64 p; +], + tcl_cv_struct_stat64=yes,tcl_cv_struct_stat64=no)]) + if test "x${tcl_cv_struct_stat64}" = "xyes" ; then + AC_DEFINE(HAVE_STRUCT_STAT64, 1, [Is 'struct stat64' in ?]) + fi + + AC_CHECK_FUNCS(open64 lseek64) + AC_MSG_CHECKING([for off64_t]) + AC_CACHE_VAL(tcl_cv_type_off64_t,[ + AC_TRY_COMPILE([#include ],[off64_t offset; +], + tcl_cv_type_off64_t=yes,tcl_cv_type_off64_t=no)]) + dnl Define HAVE_TYPE_OFF64_T only when the off64_t type and the + dnl functions lseek64 and open64 are defined. + if test "x${tcl_cv_type_off64_t}" = "xyes" && \ + test "x${ac_cv_func_lseek64}" = "xyes" && \ + test "x${ac_cv_func_open64}" = "xyes" ; then + AC_DEFINE(HAVE_TYPE_OFF64_T, 1, [Is off64_t in ?]) + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + fi +]) + +## +## Here ends the standard Tcl configuration bits and starts the +## TEA specific functions +## + +#------------------------------------------------------------------------ +# TEA_INIT -- +# +# Init various Tcl Extension Architecture (TEA) variables. +# This should be the first called TEA_* macro. +# +# Arguments: +# none +# +# Results: +# +# Defines and substs the following vars: +# CYGPATH +# EXEEXT +# Defines only: +# TEA_VERSION +# TEA_INITED +# TEA_PLATFORM (windows or unix) +# +# "cygpath" is used on windows to generate native path names for include +# files. These variables should only be used with the compiler and linker +# since they generate native path names. +# +# EXEEXT +# Select the executable extension based on the host type. This +# is a lightweight replacement for AC_EXEEXT that doesn't require +# a compiler. +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_INIT], [ + TEA_VERSION="3.13" + + AC_MSG_CHECKING([TEA configuration]) + if test x"${PACKAGE_NAME}" = x ; then + AC_MSG_ERROR([ +The PACKAGE_NAME variable must be defined by your TEA configure.ac]) + fi + AC_MSG_RESULT([ok (TEA ${TEA_VERSION})]) + + # If the user did not set CFLAGS, set it now to keep macros + # like AC_PROG_CC and AC_TRY_COMPILE from adding "-g -O2". + if test "${CFLAGS+set}" != "set" ; then + CFLAGS="" + fi + + case "`uname -s`" in + *win32*|*WIN32*|*MINGW32_*|*MINGW64_*) + AC_CHECK_PROG(CYGPATH, cygpath, cygpath -m, echo) + EXEEXT=".exe" + TEA_PLATFORM="windows" + ;; + *CYGWIN_*) + EXEEXT=".exe" + # CYGPATH and TEA_PLATFORM are determined later in LOAD_TCLCONFIG + ;; + *) + CYGPATH=echo + # Maybe we are cross-compiling.... + case ${host_alias} in + *mingw32*) + EXEEXT=".exe" + TEA_PLATFORM="windows" + ;; + *) + EXEEXT="" + TEA_PLATFORM="unix" + ;; + esac + ;; + esac + + # Check if exec_prefix is set. If not use fall back to prefix. + # Note when adjusted, so that TEA_PREFIX can correct for this. + # This is needed for recursive configures, since autoconf propagates + # $prefix, but not $exec_prefix (doh!). + if test x$exec_prefix = xNONE ; then + exec_prefix_default=yes + exec_prefix=$prefix + fi + + AC_MSG_NOTICE([configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}]) + + AC_SUBST(EXEEXT) + AC_SUBST(CYGPATH) + + # This package name must be replaced statically for AC_SUBST to work + AC_SUBST(PKG_LIB_FILE) + # Substitute STUB_LIB_FILE in case package creates a stub library too. + AC_SUBST(PKG_STUB_LIB_FILE) + + # We AC_SUBST these here to ensure they are subst'ed, + # in case the user doesn't call TEA_ADD_... + AC_SUBST(PKG_STUB_SOURCES) + AC_SUBST(PKG_STUB_OBJECTS) + AC_SUBST(PKG_TCL_SOURCES) + AC_SUBST(PKG_HEADERS) + AC_SUBST(PKG_INCLUDES) + AC_SUBST(PKG_LIBS) + AC_SUBST(PKG_CFLAGS) + + # Configure the installer. + TEA_INSTALLER +]) + +#------------------------------------------------------------------------ +# TEA_ADD_SOURCES -- +# +# Specify one or more source files. Users should check for +# the right platform before adding to their list. +# It is not important to specify the directory, as long as it is +# in the generic, win or unix subdirectory of $(srcdir). +# +# Arguments: +# one or more file names +# +# Results: +# +# Defines and substs the following vars: +# PKG_SOURCES +# PKG_OBJECTS +#------------------------------------------------------------------------ +AC_DEFUN([TEA_ADD_SOURCES], [ + vars="$@" + for i in $vars; do + case $i in + [\$]*) + # allow $-var names + PKG_SOURCES="$PKG_SOURCES $i" + PKG_OBJECTS="$PKG_OBJECTS $i" + ;; + *) + # check for existence - allows for generic/win/unix VPATH + # To add more dirs here (like 'src'), you have to update VPATH + # in Makefile.in as well + if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ + -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ + -a ! -f "${srcdir}/macosx/$i" \ + ; then + AC_MSG_ERROR([could not find source file '$i']) + fi + PKG_SOURCES="$PKG_SOURCES $i" + # this assumes it is in a VPATH dir + i=`basename $i` + # handle user calling this before or after TEA_SETUP_COMPILER + if test x"${OBJEXT}" != x ; then + j="`echo $i | sed -e 's/\.[[^.]]*$//'`.${OBJEXT}" + else + j="`echo $i | sed -e 's/\.[[^.]]*$//'`.\${OBJEXT}" + fi + PKG_OBJECTS="$PKG_OBJECTS $j" + ;; + esac + done + AC_SUBST(PKG_SOURCES) + AC_SUBST(PKG_OBJECTS) +]) + +#------------------------------------------------------------------------ +# TEA_ADD_STUB_SOURCES -- +# +# Specify one or more source files. Users should check for +# the right platform before adding to their list. +# It is not important to specify the directory, as long as it is +# in the generic, win or unix subdirectory of $(srcdir). +# +# Arguments: +# one or more file names +# +# Results: +# +# Defines and substs the following vars: +# PKG_STUB_SOURCES +# PKG_STUB_OBJECTS +#------------------------------------------------------------------------ +AC_DEFUN([TEA_ADD_STUB_SOURCES], [ + vars="$@" + for i in $vars; do + # check for existence - allows for generic/win/unix VPATH + if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ + -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ + -a ! -f "${srcdir}/macosx/$i" \ + ; then + AC_MSG_ERROR([could not find stub source file '$i']) + fi + PKG_STUB_SOURCES="$PKG_STUB_SOURCES $i" + # this assumes it is in a VPATH dir + i=`basename $i` + # handle user calling this before or after TEA_SETUP_COMPILER + if test x"${OBJEXT}" != x ; then + j="`echo $i | sed -e 's/\.[[^.]]*$//'`.${OBJEXT}" + else + j="`echo $i | sed -e 's/\.[[^.]]*$//'`.\${OBJEXT}" + fi + PKG_STUB_OBJECTS="$PKG_STUB_OBJECTS $j" + done + AC_SUBST(PKG_STUB_SOURCES) + AC_SUBST(PKG_STUB_OBJECTS) +]) + +#------------------------------------------------------------------------ +# TEA_ADD_TCL_SOURCES -- +# +# Specify one or more Tcl source files. These should be platform +# independent runtime files. +# +# Arguments: +# one or more file names +# +# Results: +# +# Defines and substs the following vars: +# PKG_TCL_SOURCES +#------------------------------------------------------------------------ +AC_DEFUN([TEA_ADD_TCL_SOURCES], [ + vars="$@" + for i in $vars; do + # check for existence, be strict because it is installed + if test ! -f "${srcdir}/$i" ; then + AC_MSG_ERROR([could not find tcl source file '${srcdir}/$i']) + fi + PKG_TCL_SOURCES="$PKG_TCL_SOURCES $i" + done + AC_SUBST(PKG_TCL_SOURCES) +]) + +#------------------------------------------------------------------------ +# TEA_ADD_HEADERS -- +# +# Specify one or more source headers. Users should check for +# the right platform before adding to their list. +# +# Arguments: +# one or more file names +# +# Results: +# +# Defines and substs the following vars: +# PKG_HEADERS +#------------------------------------------------------------------------ +AC_DEFUN([TEA_ADD_HEADERS], [ + vars="$@" + for i in $vars; do + # check for existence, be strict because it is installed + if test ! -f "${srcdir}/$i" ; then + AC_MSG_ERROR([could not find header file '${srcdir}/$i']) + fi + PKG_HEADERS="$PKG_HEADERS $i" + done + AC_SUBST(PKG_HEADERS) +]) + +#------------------------------------------------------------------------ +# TEA_ADD_INCLUDES -- +# +# Specify one or more include dirs. Users should check for +# the right platform before adding to their list. +# +# Arguments: +# one or more file names +# +# Results: +# +# Defines and substs the following vars: +# PKG_INCLUDES +#------------------------------------------------------------------------ +AC_DEFUN([TEA_ADD_INCLUDES], [ + vars="$@" + for i in $vars; do + PKG_INCLUDES="$PKG_INCLUDES $i" + done + AC_SUBST(PKG_INCLUDES) +]) + +#------------------------------------------------------------------------ +# TEA_ADD_LIBS -- +# +# Specify one or more libraries. Users should check for +# the right platform before adding to their list. For Windows, +# libraries provided in "foo.lib" format will be converted to +# "-lfoo" when using GCC (mingw). +# +# Arguments: +# one or more file names +# +# Results: +# +# Defines and substs the following vars: +# PKG_LIBS +#------------------------------------------------------------------------ +AC_DEFUN([TEA_ADD_LIBS], [ + vars="$@" + for i in $vars; do + if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then + # Convert foo.lib to -lfoo for GCC. No-op if not *.lib + i=`echo "$i" | sed -e 's/^\([[^-]].*\)\.lib[$]/-l\1/i'` + fi + PKG_LIBS="$PKG_LIBS $i" + done + AC_SUBST(PKG_LIBS) +]) + +#------------------------------------------------------------------------ +# TEA_ADD_CFLAGS -- +# +# Specify one or more CFLAGS. Users should check for +# the right platform before adding to their list. +# +# Arguments: +# one or more file names +# +# Results: +# +# Defines and substs the following vars: +# PKG_CFLAGS +#------------------------------------------------------------------------ +AC_DEFUN([TEA_ADD_CFLAGS], [ + PKG_CFLAGS="$PKG_CFLAGS $@" + AC_SUBST(PKG_CFLAGS) +]) + +#------------------------------------------------------------------------ +# TEA_ADD_CLEANFILES -- +# +# Specify one or more CLEANFILES. +# +# Arguments: +# one or more file names to clean target +# +# Results: +# +# Appends to CLEANFILES, already defined for subst in LOAD_TCLCONFIG +#------------------------------------------------------------------------ +AC_DEFUN([TEA_ADD_CLEANFILES], [ + CLEANFILES="$CLEANFILES $@" +]) + +#------------------------------------------------------------------------ +# TEA_PREFIX -- +# +# Handle the --prefix=... option by defaulting to what Tcl gave +# +# Arguments: +# none +# +# Results: +# +# If --prefix or --exec-prefix was not specified, $prefix and +# $exec_prefix will be set to the values given to Tcl when it was +# configured. +#------------------------------------------------------------------------ +AC_DEFUN([TEA_PREFIX], [ + if test "${prefix}" = "NONE"; then + prefix_default=yes + if test x"${TCL_PREFIX}" != x; then + AC_MSG_NOTICE([--prefix defaulting to TCL_PREFIX ${TCL_PREFIX}]) + prefix=${TCL_PREFIX} + else + AC_MSG_NOTICE([--prefix defaulting to /usr/local]) + prefix=/usr/local + fi + fi + if test "${exec_prefix}" = "NONE" -a x"${prefix_default}" = x"yes" \ + -o x"${exec_prefix_default}" = x"yes" ; then + if test x"${TCL_EXEC_PREFIX}" != x; then + AC_MSG_NOTICE([--exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}]) + exec_prefix=${TCL_EXEC_PREFIX} + else + AC_MSG_NOTICE([--exec-prefix defaulting to ${prefix}]) + exec_prefix=$prefix + fi + fi +]) + +#------------------------------------------------------------------------ +# TEA_SETUP_COMPILER_CC -- +# +# Do compiler checks the way we want. This is just a replacement +# for AC_PROG_CC in TEA configure.ac files to make them cleaner. +# +# Arguments: +# none +# +# Results: +# +# Sets up CC var and other standard bits we need to make executables. +#------------------------------------------------------------------------ +AC_DEFUN([TEA_SETUP_COMPILER_CC], [ + # Don't put any macros that use the compiler (e.g. AC_TRY_COMPILE) + # in this macro, they need to go into TEA_SETUP_COMPILER instead. + + AC_PROG_CC + AC_PROG_CPP + + #-------------------------------------------------------------------- + # Checks to see if the make program sets the $MAKE variable. + #-------------------------------------------------------------------- + + AC_PROG_MAKE_SET + + #-------------------------------------------------------------------- + # Find ranlib + #-------------------------------------------------------------------- + + AC_CHECK_TOOL(RANLIB, ranlib) + + #-------------------------------------------------------------------- + # Determines the correct binary file extension (.o, .obj, .exe etc.) + #-------------------------------------------------------------------- + + AC_OBJEXT + AC_EXEEXT +]) + +#------------------------------------------------------------------------ +# TEA_SETUP_COMPILER -- +# +# Do compiler checks that use the compiler. This must go after +# TEA_SETUP_COMPILER_CC, which does the actual compiler check. +# +# Arguments: +# none +# +# Results: +# +# Sets up CC var and other standard bits we need to make executables. +#------------------------------------------------------------------------ +AC_DEFUN([TEA_SETUP_COMPILER], [ + # Any macros that use the compiler (e.g. AC_TRY_COMPILE) have to go here. + AC_REQUIRE([TEA_SETUP_COMPILER_CC]) + + #------------------------------------------------------------------------ + # If we're using GCC, see if the compiler understands -pipe. If so, use it. + # It makes compiling go faster. (This is only a performance feature.) + #------------------------------------------------------------------------ + + if test -z "$no_pipe" -a -n "$GCC"; then + AC_CACHE_CHECK([if the compiler understands -pipe], + tcl_cv_cc_pipe, [ + hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -pipe" + AC_TRY_COMPILE(,, tcl_cv_cc_pipe=yes, tcl_cv_cc_pipe=no) + CFLAGS=$hold_cflags]) + if test $tcl_cv_cc_pipe = yes; then + CFLAGS="$CFLAGS -pipe" + fi + fi + + #-------------------------------------------------------------------- + # Common compiler flag setup + #-------------------------------------------------------------------- + + AC_C_BIGENDIAN +]) + +#------------------------------------------------------------------------ +# TEA_MAKE_LIB -- +# +# Generate a line that can be used to build a shared/unshared library +# in a platform independent manner. +# +# Arguments: +# none +# +# Requires: +# +# Results: +# +# Defines the following vars: +# CFLAGS - Done late here to note disturb other AC macros +# MAKE_LIB - Command to execute to build the Tcl library; +# differs depending on whether or not Tcl is being +# compiled as a shared library. +# MAKE_SHARED_LIB Makefile rule for building a shared library +# MAKE_STATIC_LIB Makefile rule for building a static library +# MAKE_STUB_LIB Makefile rule for building a stub library +# VC_MANIFEST_EMBED_DLL Makefile rule for embedded VC manifest in DLL +# VC_MANIFEST_EMBED_EXE Makefile rule for embedded VC manifest in EXE +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_MAKE_LIB], [ + if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then + MAKE_STATIC_LIB="\${STLIB_LD} -out:\[$]@ \$(PKG_OBJECTS)" + MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LD_LIBS} \${LDFLAGS_DEFAULT} -out:\[$]@ \$(PKG_OBJECTS)" + AC_EGREP_CPP([manifest needed], [ +#if defined(_MSC_VER) && _MSC_VER >= 1400 +print("manifest needed") +#endif + ], [ + # Could do a CHECK_PROG for mt, but should always be with MSVC8+ + VC_MANIFEST_EMBED_DLL="if test -f \[$]@.manifest ; then mt.exe -nologo -manifest \[$]@.manifest -outputresource:\[$]@\;2 ; fi" + VC_MANIFEST_EMBED_EXE="if test -f \[$]@.manifest ; then mt.exe -nologo -manifest \[$]@.manifest -outputresource:\[$]@\;1 ; fi" + MAKE_SHARED_LIB="${MAKE_SHARED_LIB} ; ${VC_MANIFEST_EMBED_DLL}" + TEA_ADD_CLEANFILES([*.manifest]) + ]) + MAKE_STUB_LIB="\${STLIB_LD} -nodefaultlib -out:\[$]@ \$(PKG_STUB_OBJECTS)" + else + MAKE_STATIC_LIB="\${STLIB_LD} \[$]@ \$(PKG_OBJECTS)" + MAKE_SHARED_LIB="\${SHLIB_LD} -o \[$]@ \$(PKG_OBJECTS) \${SHLIB_LD_LIBS}" + MAKE_STUB_LIB="\${STLIB_LD} \[$]@ \$(PKG_STUB_OBJECTS)" + fi + + if test "${SHARED_BUILD}" = "1" ; then + MAKE_LIB="${MAKE_SHARED_LIB} " + else + MAKE_LIB="${MAKE_STATIC_LIB} " + fi + + #-------------------------------------------------------------------- + # Shared libraries and static libraries have different names. + # Use the double eval to make sure any variables in the suffix is + # substituted. (@@@ Might not be necessary anymore) + #-------------------------------------------------------------------- + + if test "${TEA_PLATFORM}" = "windows" ; then + if test "${SHARED_BUILD}" = "1" ; then + # We force the unresolved linking of symbols that are really in + # the private libraries of Tcl and Tk. + if test x"${TK_BIN_DIR}" != x ; then + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" + fi + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}`\"" + if test "$GCC" = "yes"; then + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc" + fi + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" + else + eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" + if test "$GCC" = "yes"; then + PKG_LIB_FILE=lib${PKG_LIB_FILE} + fi + fi + # Some packages build their own stubs libraries + eval eval "PKG_STUB_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}" + if test "$GCC" = "yes"; then + PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE} + fi + # These aren't needed on Windows (either MSVC or gcc) + RANLIB=: + RANLIB_STUB=: + else + RANLIB_STUB="${RANLIB}" + if test "${SHARED_BUILD}" = "1" ; then + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TCL_STUB_LIB_SPEC}" + if test x"${TK_BIN_DIR}" != x ; then + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}" + fi + eval eval "PKG_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" + RANLIB=: + else + eval eval "PKG_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" + fi + # Some packages build their own stubs libraries + eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}" + fi + + # These are escaped so that only CFLAGS is picked up at configure time. + # The other values will be substituted at make time. + CFLAGS="${CFLAGS} \${CFLAGS_DEFAULT} \${CFLAGS_WARNING}" + if test "${SHARED_BUILD}" = "1" ; then + CFLAGS="${CFLAGS} \${SHLIB_CFLAGS}" + fi + + AC_SUBST(MAKE_LIB) + AC_SUBST(MAKE_SHARED_LIB) + AC_SUBST(MAKE_STATIC_LIB) + AC_SUBST(MAKE_STUB_LIB) + AC_SUBST(RANLIB_STUB) + AC_SUBST(VC_MANIFEST_EMBED_DLL) + AC_SUBST(VC_MANIFEST_EMBED_EXE) +]) + +#------------------------------------------------------------------------ +# TEA_LIB_SPEC -- +# +# Compute the name of an existing object library located in libdir +# from the given base name and produce the appropriate linker flags. +# +# Arguments: +# basename The base name of the library without version +# numbers, extensions, or "lib" prefixes. +# extra_dir Extra directory in which to search for the +# library. This location is used first, then +# $prefix/$exec-prefix, then some defaults. +# +# Requires: +# TEA_INIT and TEA_PREFIX must be called first. +# +# Results: +# +# Defines the following vars: +# ${basename}_LIB_NAME The computed library name. +# ${basename}_LIB_SPEC The computed linker flags. +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_LIB_SPEC], [ + AC_MSG_CHECKING([for $1 library]) + + # Look in exec-prefix for the library (defined by TEA_PREFIX). + + tea_lib_name_dir="${exec_prefix}/lib" + + # Or in a user-specified location. + + if test x"$2" != x ; then + tea_extra_lib_dir=$2 + else + tea_extra_lib_dir=NONE + fi + + for i in \ + `ls -dr ${tea_extra_lib_dir}/$1[[0-9]]*.lib 2>/dev/null ` \ + `ls -dr ${tea_extra_lib_dir}/lib$1[[0-9]]* 2>/dev/null ` \ + `ls -dr ${tea_lib_name_dir}/$1[[0-9]]*.lib 2>/dev/null ` \ + `ls -dr ${tea_lib_name_dir}/lib$1[[0-9]]* 2>/dev/null ` \ + `ls -dr /usr/lib/$1[[0-9]]*.lib 2>/dev/null ` \ + `ls -dr /usr/lib/lib$1[[0-9]]* 2>/dev/null ` \ + `ls -dr /usr/lib64/$1[[0-9]]*.lib 2>/dev/null ` \ + `ls -dr /usr/lib64/lib$1[[0-9]]* 2>/dev/null ` \ + `ls -dr /usr/local/lib/$1[[0-9]]*.lib 2>/dev/null ` \ + `ls -dr /usr/local/lib/lib$1[[0-9]]* 2>/dev/null ` ; do + if test -f "$i" ; then + tea_lib_name_dir=`dirname $i` + $1_LIB_NAME=`basename $i` + $1_LIB_PATH_NAME=$i + break + fi + done + + if test "${TEA_PLATFORM}" = "windows"; then + $1_LIB_SPEC=\"`${CYGPATH} ${$1_LIB_PATH_NAME} 2>/dev/null`\" + else + # Strip off the leading "lib" and trailing ".a" or ".so" + + tea_lib_name_lib=`echo ${$1_LIB_NAME}|sed -e 's/^lib//' -e 's/\.[[^.]]*$//' -e 's/\.so.*//'` + $1_LIB_SPEC="-L${tea_lib_name_dir} -l${tea_lib_name_lib}" + fi + + if test "x${$1_LIB_NAME}" = x ; then + AC_MSG_ERROR([not found]) + else + AC_MSG_RESULT([${$1_LIB_SPEC}]) + fi +]) + +#------------------------------------------------------------------------ +# TEA_PRIVATE_TCL_HEADERS -- +# +# Locate the private Tcl include files +# +# Arguments: +# +# Requires: +# TCL_SRC_DIR Assumes that TEA_LOAD_TCLCONFIG has +# already been called. +# +# Results: +# +# Substitutes the following vars: +# TCL_TOP_DIR_NATIVE +# TCL_INCLUDES +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_PRIVATE_TCL_HEADERS], [ + # Allow for --with-tclinclude to take effect and define ${ac_cv_c_tclh} + AC_REQUIRE([TEA_PUBLIC_TCL_HEADERS]) + AC_MSG_CHECKING([for Tcl private include files]) + + TCL_SRC_DIR_NATIVE=`${CYGPATH} ${TCL_SRC_DIR}` + TCL_TOP_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}\" + + # Check to see if tclPort.h isn't already with the public headers + # Don't look for tclInt.h because that resides with tcl.h in the core + # sources, but the Port headers are in a different directory + if test "${TEA_PLATFORM}" = "windows" -a \ + -f "${ac_cv_c_tclh}/tclWinPort.h"; then + result="private headers found with public headers" + elif test "${TEA_PLATFORM}" = "unix" -a \ + -f "${ac_cv_c_tclh}/tclUnixPort.h"; then + result="private headers found with public headers" + else + TCL_GENERIC_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/generic\" + if test "${TEA_PLATFORM}" = "windows"; then + TCL_PLATFORM_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/win\" + else + TCL_PLATFORM_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/unix\" + fi + # Overwrite the previous TCL_INCLUDES as this should capture both + # public and private headers in the same set. + # We want to ensure these are substituted so as not to require + # any *_NATIVE vars be defined in the Makefile + TCL_INCLUDES="-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}" + if test "`uname -s`" = "Darwin"; then + # If Tcl was built as a framework, attempt to use + # the framework's Headers and PrivateHeaders directories + case ${TCL_DEFS} in + *TCL_FRAMEWORK*) + if test -d "${TCL_BIN_DIR}/Headers" -a \ + -d "${TCL_BIN_DIR}/PrivateHeaders"; then + TCL_INCLUDES="-I\"${TCL_BIN_DIR}/Headers\" -I\"${TCL_BIN_DIR}/PrivateHeaders\" ${TCL_INCLUDES}" + else + TCL_INCLUDES="${TCL_INCLUDES} ${TCL_INCLUDE_SPEC} `echo "${TCL_INCLUDE_SPEC}" | sed -e 's/Headers/PrivateHeaders/'`" + fi + ;; + esac + result="Using ${TCL_INCLUDES}" + else + if test ! -f "${TCL_SRC_DIR}/generic/tclInt.h" ; then + AC_MSG_ERROR([Cannot find private header tclInt.h in ${TCL_SRC_DIR}]) + fi + result="Using srcdir found in tclConfig.sh: ${TCL_SRC_DIR}" + fi + fi + + AC_SUBST(TCL_TOP_DIR_NATIVE) + + AC_SUBST(TCL_INCLUDES) + AC_MSG_RESULT([${result}]) +]) + +#------------------------------------------------------------------------ +# TEA_PUBLIC_TCL_HEADERS -- +# +# Locate the installed public Tcl header files +# +# Arguments: +# None. +# +# Requires: +# CYGPATH must be set +# +# Results: +# +# Adds a --with-tclinclude switch to configure. +# Result is cached. +# +# Substitutes the following vars: +# TCL_INCLUDES +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_PUBLIC_TCL_HEADERS], [ + AC_MSG_CHECKING([for Tcl public headers]) + + AC_ARG_WITH(tclinclude, [ --with-tclinclude directory containing the public Tcl header files], with_tclinclude=${withval}) + + AC_CACHE_VAL(ac_cv_c_tclh, [ + # Use the value from --with-tclinclude, if it was given + + if test x"${with_tclinclude}" != x ; then + if test -f "${with_tclinclude}/tcl.h" ; then + ac_cv_c_tclh=${with_tclinclude} + else + AC_MSG_ERROR([${with_tclinclude} directory does not contain tcl.h]) + fi + else + list="" + if test "`uname -s`" = "Darwin"; then + # If Tcl was built as a framework, attempt to use + # the framework's Headers directory + case ${TCL_DEFS} in + *TCL_FRAMEWORK*) + list="`ls -d ${TCL_BIN_DIR}/Headers 2>/dev/null`" + ;; + esac + fi + + # Look in the source dir only if Tcl is not installed, + # and in that situation, look there before installed locations. + if test -f "${TCL_BIN_DIR}/Makefile" ; then + list="$list `ls -d ${TCL_SRC_DIR}/generic 2>/dev/null`" + fi + + # Check order: pkg --prefix location, Tcl's --prefix location, + # relative to directory of tclConfig.sh. + + eval "temp_includedir=${includedir}" + list="$list \ + `ls -d ${temp_includedir} 2>/dev/null` \ + `ls -d ${TCL_PREFIX}/include 2>/dev/null` \ + `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`" + if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then + list="$list /usr/local/include /usr/include" + if test x"${TCL_INCLUDE_SPEC}" != x ; then + d=`echo "${TCL_INCLUDE_SPEC}" | sed -e 's/^-I//'` + list="$list `ls -d ${d} 2>/dev/null`" + fi + fi + for i in $list ; do + if test -f "$i/tcl.h" ; then + ac_cv_c_tclh=$i + break + fi + done + fi + ]) + + # Print a message based on how we determined the include path + + if test x"${ac_cv_c_tclh}" = x ; then + AC_MSG_ERROR([tcl.h not found. Please specify its location with --with-tclinclude]) + else + AC_MSG_RESULT([${ac_cv_c_tclh}]) + fi + + # Convert to a native path and substitute into the output files. + + INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tclh}` + + TCL_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\" + + AC_SUBST(TCL_INCLUDES) +]) + +#------------------------------------------------------------------------ +# TEA_PRIVATE_TK_HEADERS -- +# +# Locate the private Tk include files +# +# Arguments: +# +# Requires: +# TK_SRC_DIR Assumes that TEA_LOAD_TKCONFIG has +# already been called. +# +# Results: +# +# Substitutes the following vars: +# TK_INCLUDES +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_PRIVATE_TK_HEADERS], [ + # Allow for --with-tkinclude to take effect and define ${ac_cv_c_tkh} + AC_REQUIRE([TEA_PUBLIC_TK_HEADERS]) + AC_MSG_CHECKING([for Tk private include files]) + + TK_SRC_DIR_NATIVE=`${CYGPATH} ${TK_SRC_DIR}` + TK_TOP_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}\" + + # Check to see if tkPort.h isn't already with the public headers + # Don't look for tkInt.h because that resides with tk.h in the core + # sources, but the Port headers are in a different directory + if test "${TEA_PLATFORM}" = "windows" -a \ + -f "${ac_cv_c_tkh}/tkWinPort.h"; then + result="private headers found with public headers" + elif test "${TEA_PLATFORM}" = "unix" -a \ + -f "${ac_cv_c_tkh}/tkUnixPort.h"; then + result="private headers found with public headers" + else + TK_GENERIC_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/generic\" + TK_XLIB_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/xlib\" + if test "${TEA_PLATFORM}" = "windows"; then + TK_PLATFORM_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/win\" + else + TK_PLATFORM_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/unix\" + fi + # Overwrite the previous TK_INCLUDES as this should capture both + # public and private headers in the same set. + # We want to ensure these are substituted so as not to require + # any *_NATIVE vars be defined in the Makefile + TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE}" + # Detect and add ttk subdir + if test -d "${TK_SRC_DIR}/generic/ttk"; then + TK_INCLUDES="${TK_INCLUDES} -I\"${TK_SRC_DIR_NATIVE}/generic/ttk\"" + fi + if test "${TEA_WINDOWINGSYSTEM}" != "x11"; then + TK_INCLUDES="${TK_INCLUDES} -I\"${TK_XLIB_DIR_NATIVE}\"" + fi + if test "${TEA_WINDOWINGSYSTEM}" = "aqua"; then + TK_INCLUDES="${TK_INCLUDES} -I\"${TK_SRC_DIR_NATIVE}/macosx\"" + fi + if test "`uname -s`" = "Darwin"; then + # If Tk was built as a framework, attempt to use + # the framework's Headers and PrivateHeaders directories + case ${TK_DEFS} in + *TK_FRAMEWORK*) + if test -d "${TK_BIN_DIR}/Headers" -a \ + -d "${TK_BIN_DIR}/PrivateHeaders"; then + TK_INCLUDES="-I\"${TK_BIN_DIR}/Headers\" -I\"${TK_BIN_DIR}/PrivateHeaders\" ${TK_INCLUDES}" + else + TK_INCLUDES="${TK_INCLUDES} ${TK_INCLUDE_SPEC} `echo "${TK_INCLUDE_SPEC}" | sed -e 's/Headers/PrivateHeaders/'`" + fi + ;; + esac + result="Using ${TK_INCLUDES}" + else + if test ! -f "${TK_SRC_DIR}/generic/tkInt.h" ; then + AC_MSG_ERROR([Cannot find private header tkInt.h in ${TK_SRC_DIR}]) + fi + result="Using srcdir found in tkConfig.sh: ${TK_SRC_DIR}" + fi + fi + + AC_SUBST(TK_TOP_DIR_NATIVE) + AC_SUBST(TK_XLIB_DIR_NATIVE) + + AC_SUBST(TK_INCLUDES) + AC_MSG_RESULT([${result}]) +]) + +#------------------------------------------------------------------------ +# TEA_PUBLIC_TK_HEADERS -- +# +# Locate the installed public Tk header files +# +# Arguments: +# None. +# +# Requires: +# CYGPATH must be set +# +# Results: +# +# Adds a --with-tkinclude switch to configure. +# Result is cached. +# +# Substitutes the following vars: +# TK_INCLUDES +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_PUBLIC_TK_HEADERS], [ + AC_MSG_CHECKING([for Tk public headers]) + + AC_ARG_WITH(tkinclude, [ --with-tkinclude directory containing the public Tk header files], with_tkinclude=${withval}) + + AC_CACHE_VAL(ac_cv_c_tkh, [ + # Use the value from --with-tkinclude, if it was given + + if test x"${with_tkinclude}" != x ; then + if test -f "${with_tkinclude}/tk.h" ; then + ac_cv_c_tkh=${with_tkinclude} + else + AC_MSG_ERROR([${with_tkinclude} directory does not contain tk.h]) + fi + else + list="" + if test "`uname -s`" = "Darwin"; then + # If Tk was built as a framework, attempt to use + # the framework's Headers directory. + case ${TK_DEFS} in + *TK_FRAMEWORK*) + list="`ls -d ${TK_BIN_DIR}/Headers 2>/dev/null`" + ;; + esac + fi + + # Look in the source dir only if Tk is not installed, + # and in that situation, look there before installed locations. + if test -f "${TK_BIN_DIR}/Makefile" ; then + list="$list `ls -d ${TK_SRC_DIR}/generic 2>/dev/null`" + fi + + # Check order: pkg --prefix location, Tk's --prefix location, + # relative to directory of tkConfig.sh, Tcl's --prefix location, + # relative to directory of tclConfig.sh. + + eval "temp_includedir=${includedir}" + list="$list \ + `ls -d ${temp_includedir} 2>/dev/null` \ + `ls -d ${TK_PREFIX}/include 2>/dev/null` \ + `ls -d ${TK_BIN_DIR}/../include 2>/dev/null` \ + `ls -d ${TCL_PREFIX}/include 2>/dev/null` \ + `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`" + if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then + list="$list /usr/local/include /usr/include" + if test x"${TK_INCLUDE_SPEC}" != x ; then + d=`echo "${TK_INCLUDE_SPEC}" | sed -e 's/^-I//'` + list="$list `ls -d ${d} 2>/dev/null`" + fi + fi + for i in $list ; do + if test -f "$i/tk.h" ; then + ac_cv_c_tkh=$i + break + fi + done + fi + ]) + + # Print a message based on how we determined the include path + + if test x"${ac_cv_c_tkh}" = x ; then + AC_MSG_ERROR([tk.h not found. Please specify its location with --with-tkinclude]) + else + AC_MSG_RESULT([${ac_cv_c_tkh}]) + fi + + # Convert to a native path and substitute into the output files. + + INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tkh}` + + TK_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\" + + AC_SUBST(TK_INCLUDES) + + if test "${TEA_WINDOWINGSYSTEM}" != "x11"; then + # On Windows and Aqua, we need the X compat headers + AC_MSG_CHECKING([for X11 header files]) + if test ! -r "${INCLUDE_DIR_NATIVE}/X11/Xlib.h"; then + INCLUDE_DIR_NATIVE="`${CYGPATH} ${TK_SRC_DIR}/xlib`" + TK_XINCLUDES=-I\"${INCLUDE_DIR_NATIVE}\" + AC_SUBST(TK_XINCLUDES) + fi + AC_MSG_RESULT([${INCLUDE_DIR_NATIVE}]) + fi +]) + +#------------------------------------------------------------------------ +# TEA_PATH_CONFIG -- +# +# Locate the ${1}Config.sh file and perform a sanity check on +# the ${1} compile flags. These are used by packages like +# [incr Tk] that load *Config.sh files from more than Tcl and Tk. +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --with-$1=... +# +# Defines the following vars: +# $1_BIN_DIR Full path to the directory containing +# the $1Config.sh file +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_PATH_CONFIG], [ + # + # Ok, lets find the $1 configuration + # First, look for one uninstalled. + # the alternative search directory is invoked by --with-$1 + # + + if test x"${no_$1}" = x ; then + # we reset no_$1 in case something fails here + no_$1=true + AC_ARG_WITH($1, [ --with-$1 directory containing $1 configuration ($1Config.sh)], with_$1config=${withval}) + AC_MSG_CHECKING([for $1 configuration]) + AC_CACHE_VAL(ac_cv_c_$1config,[ + + # First check to see if --with-$1 was specified. + if test x"${with_$1config}" != x ; then + case ${with_$1config} in + */$1Config.sh ) + if test -f ${with_$1config}; then + AC_MSG_WARN([--with-$1 argument should refer to directory containing $1Config.sh, not to $1Config.sh itself]) + with_$1config=`echo ${with_$1config} | sed 's!/$1Config\.sh$!!'` + fi;; + esac + if test -f "${with_$1config}/$1Config.sh" ; then + ac_cv_c_$1config=`(cd ${with_$1config}; pwd)` + else + AC_MSG_ERROR([${with_$1config} directory doesn't contain $1Config.sh]) + fi + fi + + # then check for a private $1 installation + if test x"${ac_cv_c_$1config}" = x ; then + for i in \ + ../$1 \ + `ls -dr ../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \ + `ls -dr ../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \ + `ls -dr ../$1*[[0-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ../$1*[[0-9]].[[0-9]]* 2>/dev/null` \ + ../../$1 \ + `ls -dr ../../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \ + `ls -dr ../../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \ + `ls -dr ../../$1*[[0-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ../../$1*[[0-9]].[[0-9]]* 2>/dev/null` \ + ../../../$1 \ + `ls -dr ../../../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \ + `ls -dr ../../../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \ + `ls -dr ../../../$1*[[0-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ../../../$1*[[0-9]].[[0-9]]* 2>/dev/null` \ + ${srcdir}/../$1 \ + `ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \ + `ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \ + `ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]] 2>/dev/null` \ + `ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]]* 2>/dev/null` \ + ; do + if test -f "$i/$1Config.sh" ; then + ac_cv_c_$1config=`(cd $i; pwd)` + break + fi + if test -f "$i/unix/$1Config.sh" ; then + ac_cv_c_$1config=`(cd $i/unix; pwd)` + break + fi + done + fi + + # check in a few common install locations + if test x"${ac_cv_c_$1config}" = x ; then + for i in `ls -d ${libdir} 2>/dev/null` \ + `ls -d ${exec_prefix}/lib 2>/dev/null` \ + `ls -d ${prefix}/lib 2>/dev/null` \ + `ls -d /usr/local/lib 2>/dev/null` \ + `ls -d /usr/contrib/lib 2>/dev/null` \ + `ls -d /usr/pkg/lib 2>/dev/null` \ + `ls -d /usr/lib 2>/dev/null` \ + `ls -d /usr/lib64 2>/dev/null` \ + ; do + if test -f "$i/$1Config.sh" ; then + ac_cv_c_$1config=`(cd $i; pwd)` + break + fi + done + fi + ]) + + if test x"${ac_cv_c_$1config}" = x ; then + $1_BIN_DIR="# no $1 configs found" + AC_MSG_WARN([Cannot find $1 configuration definitions]) + exit 0 + else + no_$1= + $1_BIN_DIR=${ac_cv_c_$1config} + AC_MSG_RESULT([found $$1_BIN_DIR/$1Config.sh]) + fi + fi +]) + +#------------------------------------------------------------------------ +# TEA_LOAD_CONFIG -- +# +# Load the $1Config.sh file +# +# Arguments: +# +# Requires the following vars to be set: +# $1_BIN_DIR +# +# Results: +# +# Substitutes the following vars: +# $1_SRC_DIR +# $1_LIB_FILE +# $1_LIB_SPEC +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_LOAD_CONFIG], [ + AC_MSG_CHECKING([for existence of ${$1_BIN_DIR}/$1Config.sh]) + + if test -f "${$1_BIN_DIR}/$1Config.sh" ; then + AC_MSG_RESULT([loading]) + . "${$1_BIN_DIR}/$1Config.sh" + else + AC_MSG_RESULT([file not found]) + fi + + # + # If the $1_BIN_DIR is the build directory (not the install directory), + # then set the common variable name to the value of the build variables. + # For example, the variable $1_LIB_SPEC will be set to the value + # of $1_BUILD_LIB_SPEC. An extension should make use of $1_LIB_SPEC + # instead of $1_BUILD_LIB_SPEC since it will work with both an + # installed and uninstalled version of Tcl. + # + + if test -f "${$1_BIN_DIR}/Makefile" ; then + AC_MSG_WARN([Found Makefile - using build library specs for $1]) + $1_LIB_SPEC=${$1_BUILD_LIB_SPEC} + $1_STUB_LIB_SPEC=${$1_BUILD_STUB_LIB_SPEC} + $1_STUB_LIB_PATH=${$1_BUILD_STUB_LIB_PATH} + $1_INCLUDE_SPEC=${$1_BUILD_INCLUDE_SPEC} + $1_LIBRARY_PATH=${$1_LIBRARY_PATH} + fi + + AC_SUBST($1_VERSION) + AC_SUBST($1_BIN_DIR) + AC_SUBST($1_SRC_DIR) + + AC_SUBST($1_LIB_FILE) + AC_SUBST($1_LIB_SPEC) + + AC_SUBST($1_STUB_LIB_FILE) + AC_SUBST($1_STUB_LIB_SPEC) + AC_SUBST($1_STUB_LIB_PATH) + + # Allow the caller to prevent this auto-check by specifying any 2nd arg + AS_IF([test "x$2" = x], [ + # Check both upper and lower-case variants + # If a dev wanted non-stubs libs, this function could take an option + # to not use _STUB in the paths below + AS_IF([test "x${$1_STUB_LIB_SPEC}" = x], + [TEA_LOAD_CONFIG_LIB(translit($1,[a-z],[A-Z])_STUB)], + [TEA_LOAD_CONFIG_LIB($1_STUB)]) + ]) +]) + +#------------------------------------------------------------------------ +# TEA_LOAD_CONFIG_LIB -- +# +# Helper function to load correct library from another extension's +# ${PACKAGE}Config.sh. +# +# Results: +# Adds to LIBS the appropriate extension library +#------------------------------------------------------------------------ +AC_DEFUN([TEA_LOAD_CONFIG_LIB], [ + AC_MSG_CHECKING([For $1 library for LIBS]) + # This simplifies the use of stub libraries by automatically adding + # the stub lib to your path. Normally this would add to SHLIB_LD_LIBS, + # but this is called before CONFIG_CFLAGS. More importantly, this adds + # to PKG_LIBS, which becomes LIBS, and that is only used by SHLIB_LD. + if test "x${$1_LIB_SPEC}" != "x" ; then + if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes" ; then + TEA_ADD_LIBS([\"`${CYGPATH} ${$1_LIB_PATH}`\"]) + AC_MSG_RESULT([using $1_LIB_PATH ${$1_LIB_PATH}]) + else + TEA_ADD_LIBS([${$1_LIB_SPEC}]) + AC_MSG_RESULT([using $1_LIB_SPEC ${$1_LIB_SPEC}]) + fi + else + AC_MSG_RESULT([file not found]) + fi +]) + +#------------------------------------------------------------------------ +# TEA_EXPORT_CONFIG -- +# +# Define the data to insert into the ${PACKAGE}Config.sh file +# +# Arguments: +# +# Requires the following vars to be set: +# $1 +# +# Results: +# Substitutes the following vars: +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_EXPORT_CONFIG], [ + #-------------------------------------------------------------------- + # These are for $1Config.sh + #-------------------------------------------------------------------- + + # pkglibdir must be a fully qualified path and (not ${exec_prefix}/lib) + eval pkglibdir="[$]{libdir}/$1${PACKAGE_VERSION}" + if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then + eval $1_LIB_FLAG="-l$1${PACKAGE_VERSION}${DBGX}" + eval $1_STUB_LIB_FLAG="-l$1stub${PACKAGE_VERSION}${DBGX}" + else + eval $1_LIB_FLAG="-l$1`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}" + eval $1_STUB_LIB_FLAG="-l$1stub`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}" + fi + $1_BUILD_LIB_SPEC="-L`$CYGPATH $(pwd)` ${$1_LIB_FLAG}" + $1_LIB_SPEC="-L`$CYGPATH ${pkglibdir}` ${$1_LIB_FLAG}" + $1_BUILD_STUB_LIB_SPEC="-L`$CYGPATH $(pwd)` [$]{$1_STUB_LIB_FLAG}" + $1_STUB_LIB_SPEC="-L`$CYGPATH ${pkglibdir}` [$]{$1_STUB_LIB_FLAG}" + $1_BUILD_STUB_LIB_PATH="`$CYGPATH $(pwd)`/[$]{PKG_STUB_LIB_FILE}" + $1_STUB_LIB_PATH="`$CYGPATH ${pkglibdir}`/[$]{PKG_STUB_LIB_FILE}" + + AC_SUBST($1_BUILD_LIB_SPEC) + AC_SUBST($1_LIB_SPEC) + AC_SUBST($1_BUILD_STUB_LIB_SPEC) + AC_SUBST($1_STUB_LIB_SPEC) + AC_SUBST($1_BUILD_STUB_LIB_PATH) + AC_SUBST($1_STUB_LIB_PATH) + + AC_SUBST(MAJOR_VERSION) + AC_SUBST(MINOR_VERSION) + AC_SUBST(PATCHLEVEL) +]) + + +#------------------------------------------------------------------------ +# TEA_PATH_CELIB -- +# +# Locate Keuchel's celib emulation layer for targeting Win/CE +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --with-celib=... +# +# Defines the following vars: +# CELIB_DIR Full path to the directory containing +# the include and platform lib files +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_PATH_CELIB], [ + # First, look for one uninstalled. + # the alternative search directory is invoked by --with-celib + + if test x"${no_celib}" = x ; then + # we reset no_celib in case something fails here + no_celib=true + AC_ARG_WITH(celib,[ --with-celib=DIR use Windows/CE support library from DIR], with_celibconfig=${withval}) + AC_MSG_CHECKING([for Windows/CE celib directory]) + AC_CACHE_VAL(ac_cv_c_celibconfig,[ + # First check to see if --with-celibconfig was specified. + if test x"${with_celibconfig}" != x ; then + if test -d "${with_celibconfig}/inc" ; then + ac_cv_c_celibconfig=`(cd ${with_celibconfig}; pwd)` + else + AC_MSG_ERROR([${with_celibconfig} directory doesn't contain inc directory]) + fi + fi + + # then check for a celib library + if test x"${ac_cv_c_celibconfig}" = x ; then + for i in \ + ../celib-palm-3.0 \ + ../celib \ + ../../celib-palm-3.0 \ + ../../celib \ + `ls -dr ../celib-*3.[[0-9]]* 2>/dev/null` \ + ${srcdir}/../celib-palm-3.0 \ + ${srcdir}/../celib \ + `ls -dr ${srcdir}/../celib-*3.[[0-9]]* 2>/dev/null` \ + ; do + if test -d "$i/inc" ; then + ac_cv_c_celibconfig=`(cd $i; pwd)` + break + fi + done + fi + ]) + if test x"${ac_cv_c_celibconfig}" = x ; then + AC_MSG_ERROR([Cannot find celib support library directory]) + else + no_celib= + CELIB_DIR=${ac_cv_c_celibconfig} + CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'` + AC_MSG_RESULT([found $CELIB_DIR]) + fi + fi +]) + +#------------------------------------------------------------------------ +# TEA_INSTALLER -- +# +# Configure the installer. +# +# Arguments: +# none +# +# Results: +# Substitutes the following vars: +# INSTALL +# INSTALL_DATA_DIR +# INSTALL_DATA +# INSTALL_PROGRAM +# INSTALL_SCRIPT +# INSTALL_LIBRARY +#------------------------------------------------------------------------ + +AC_DEFUN([TEA_INSTALLER], [ + INSTALL='$(SHELL) $(srcdir)/tclconfig/install-sh -c' + INSTALL_DATA_DIR='${INSTALL} -d -m 755' + INSTALL_DATA='${INSTALL} -m 644' + INSTALL_PROGRAM='${INSTALL} -m 755' + INSTALL_SCRIPT='${INSTALL} -m 755' + + TEA_CONFIG_SYSTEM + case $system in + HP-UX-*) INSTALL_LIBRARY='${INSTALL} -m 755' ;; + *) INSTALL_LIBRARY='${INSTALL} -m 644' ;; + esac + + AC_SUBST(INSTALL) + AC_SUBST(INSTALL_DATA_DIR) + AC_SUBST(INSTALL_DATA) + AC_SUBST(INSTALL_PROGRAM) + AC_SUBST(INSTALL_SCRIPT) + AC_SUBST(INSTALL_LIBRARY) +]) + +### +# Tip 430 - ZipFS Modifications +### +#------------------------------------------------------------------------ +# SC_ZIPFS_SUPPORT +# Locate a zip encoder installed on the system path, or none. +# +# Arguments: +# none +# +# Results: +# Substitutes the following vars: +# TCL_ZIP_FILE +# TCL_ZIPFS_SUPPORT +# TCL_ZIPFS_FLAG +# ZIP_PROG +#------------------------------------------------------------------------ + +#------------------------------------------------------------------------ +# SC_PROG_ZIP +# Locate a zip encoder installed on the system path, or none. +# +# Arguments: +# none +# +# Results: +# Substitutes the following vars: +# ZIP_PROG +# ZIP_PROG_OPTIONS +# ZIP_PROG_VFSSEARCH +# ZIP_INSTALL_OBJS +#------------------------------------------------------------------------ +AC_DEFUN([TEA_ZIPFS_SUPPORT], [ + AC_MSG_CHECKING([for zipfs support]) + ZIP_PROG="" + ZIP_PROG_OPTIONS="" + ZIP_PROG_VFSSEARCH="" + INSTALL_MSGS="" + # If our native tclsh processes the "install" command line option + # we can use it to mint zip files + AS_IF([$TCLSH_PROG install],[ + ZIP_PROG=${TCLSH_PROG} + ZIP_PROG_OPTIONS="install mkzip" + ZIP_PROG_VFSSEARCH="." + AC_MSG_RESULT([Can use Native Tclsh for Zip encoding]) + ]) + if test "x$ZIP_PROG" = "x" ; then + AC_CACHE_VAL(ac_cv_path_zip, [ + search_path=`echo ${PATH} | sed -e 's/:/ /g'` + for dir in $search_path ; do + for j in `ls -r $dir/zip 2> /dev/null` \ + `ls -r $dir/zip 2> /dev/null` ; do + if test x"$ac_cv_path_zip" = x ; then + if test -f "$j" ; then + ac_cv_path_zip=$j + break + fi + fi + done + done + ]) + if test -f "$ac_cv_path_zip" ; then + ZIP_PROG="$ac_cv_path_zip " + AC_MSG_RESULT([$ZIP_PROG]) + ZIP_PROG_OPTIONS="-rq" + ZIP_PROG_VFSSEARCH="." + AC_MSG_RESULT([Found INFO Zip in environment]) + # Use standard arguments for zip + fi + fi + if test "x$ZIP_PROG" = "x" ; then + # It is not an error if an installed version of Zip can't be located. + ZIP_PROG="" + ZIP_PROG_OPTIONS="" + ZIP_PROG_VFSSEARCH="" + TCL_ZIPFS_SUPPORT=0 + TCL_ZIPFS_FLAG= + else + # ZIPFS Support + eval "TCL_ZIP_FILE=\"${TCL_ZIP_FILE}\"" + if test ${TCL_ZIP_FILE} = "" ; then + TCL_ZIPFS_SUPPORT=0 + TCL_ZIPFS_FLAG= + INSTALL_LIBRARIES=install-libraries + INSTALL_MSGS=install-msgs + else + if test ${SHARED_BUILD} = 1 ; then + TCL_ZIPFS_SUPPORT=1 + INSTALL_LIBRARIES=install-libraries-zipfs-shared + else + TCL_ZIPFS_SUPPORT=2 + INSTALL_LIBRARIES=install-libraries-zipfs-static + fi + TCL_ZIPFS_FLAG=-DTCL_ZIPFS_SUPPORT + fi + fi + + AC_SUBST(TCL_ZIP_FILE) + AC_SUBST(TCL_ZIPFS_SUPPORT) + AC_SUBST(TCL_ZIPFS_FLAG) + AC_SUBST(ZIP_PROG) + AC_SUBST(ZIP_PROG_OPTIONS) + AC_SUBST(ZIP_PROG_VFSSEARCH) + AC_SUBST(INSTALL_LIBRARIES) + AC_SUBST(INSTALL_MSGS) +]) + +# Local Variables: +# mode: autoconf +# End: diff -Nru saods9-8.2+repack/tksvg/tksvgConfig.sh.in saods9-8.3+repack/tksvg/tksvgConfig.sh.in --- saods9-8.2+repack/tksvg/tksvgConfig.sh.in 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/tksvgConfig.sh.in 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,45 @@ +# tksvgConfig.sh -- +# +# This shell script (for sh) is generated automatically by tksvg's +# configure script. It will create shell variables for most of +# the configuration options discovered by the configure script. +# This script is intended to be included by the configure scripts +# for tksvg extensions so that they don't have to figure this all +# out for themselves. This file does not duplicate information +# already provided by tclConfig.sh, so you may need to use that +# file in addition to this one. +# +# The information in this file is specific to a single platform. + +# tksvg's version number. +tksvg_VERSION='@PACKAGE_VERSION@' + +# The name of the tksvg library (may be either a .a file or a shared library): +tksvg_LIB_FILE=@PKG_LIB_FILE@ + +# String to pass to linker to pick up the tksvg library from its +# build directory. +tksvg_BUILD_LIB_SPEC='@tksvg_BUILD_LIB_SPEC@' + +# String to pass to linker to pick up the tksvg library from its +# installed directory. +tksvg_LIB_SPEC='@tksvg_LIB_SPEC@' + +# The name of the tksvg stub library (a .a file): +#tksvg_STUB_LIB_FILE=@PKG_STUB_LIB_FILE@ + +# String to pass to linker to pick up the tksvg stub library from its +# build directory. +#tksvg_BUILD_STUB_LIB_SPEC='@tksvg_BUILD_STUB_LIB_SPEC@' + +# String to pass to linker to pick up the tksvg stub library from its +# installed directory. +#tksvg_STUB_LIB_SPEC='@tksvg_STUB_LIB_SPEC@' + +# String to pass to linker to pick up the tksvg stub library from its +# build directory. +#tksvg_BUILD_STUB_LIB_PATH='@tksvg_BUILD_STUB_LIB_PATH@' + +# String to pass to linker to pick up the tksvg stub library from its +# installed directory. +#tksvg_STUB_LIB_PATH='@tksvg_STUB_LIB_PATH@' diff -Nru saods9-8.2+repack/tksvg/win/makefile.vc saods9-8.3+repack/tksvg/win/makefile.vc --- saods9-8.2+repack/tksvg/win/makefile.vc 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/win/makefile.vc 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,29 @@ +#------------------------------------------------------------- -*- makefile -*- +# +# Makefile for tksvg +# +# Basic build, test and install +# nmake /f makefile.vc INSTALLDIR=c:\tcl +# nmake /f makefile.vc INSTALLDIR=c:\tcl install +# +# For other build options (debug, static etc.), +# See TIP 477 (https://core.tcl.tk/tips/doc/trunk/tip/477.md) for +# detailed documentation. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +#------------------------------------------------------------------------------ + + +PROJECT = tksvg +NEED_TK = 1 +PRJ_DEFINES = -Dinline=__inline + +!include "rules-ext.vc" + +PRJ_OBJS = $(TMP_DIR)\tkImgSVG.obj + +!include "$(_RULESDIR)\targets.vc" + +pkgindex: default-pkgindex-tea diff -Nru saods9-8.2+repack/tksvg/win/rules-ext.vc saods9-8.3+repack/tksvg/win/rules-ext.vc --- saods9-8.2+repack/tksvg/win/rules-ext.vc 1970-01-01 00:00:00.000000000 +0000 +++ saods9-8.3+repack/tksvg/win/rules-ext.vc 2021-11-08 15:46:07.000000000 +0000 @@ -0,0 +1,118 @@ +# This file should only be included in makefiles for Tcl extensions, +# NOT in the makefile for Tcl itself. + +!ifndef _RULES_EXT_VC + +# We need to run from the directory the parent makefile is located in. +# nmake does not tell us what makefile was used to invoke it so parent +# makefile has to set the MAKEFILEVC macro or we just make a guess and +# warn if we think that is not the case. +!if "$(MAKEFILEVC)" == "" + +!if exist("$(PROJECT).vc") +MAKEFILEVC = $(PROJECT).vc +!elseif exist("makefile.vc") +MAKEFILEVC = makefile.vc +!endif +!endif # "$(MAKEFILEVC)" == "" + +!if !exist("$(MAKEFILEVC)") +MSG = ^ +You must run nmake from the directory containing the project makefile.^ +If you are doing that and getting this message, set the MAKEFILEVC^ +macro to the name of the project makefile. +!message WARNING: $(MSG) +!endif + +!if "$(PROJECT)" == "tcl" +!error The rules-ext.vc file is not intended for Tcl itself. +!endif + +# We extract version numbers using the nmakehlp program. For now use +# the local copy of nmakehlp. Once we locate Tcl, we will use that +# one if it is newer. +!if [$(CC) -nologo "nmakehlp.c" -link -subsystem:console > nul] +!endif + +# First locate the Tcl directory that we are working with. +!if "$(TCLDIR)" != "" + +_RULESDIR = $(TCLDIR:/=\) + +!else + +# If an installation path is specified, that is also the Tcl directory. +# Also Tk never builds against an installed Tcl, it needs Tcl sources +!if defined(INSTALLDIR) && "$(PROJECT)" != "tk" +_RULESDIR=$(INSTALLDIR:/=\) +!else +# Locate Tcl sources +!if [echo _RULESDIR = \> nmakehlp.out] \ + || [nmakehlp -L generic\tcl.h >> nmakehlp.out] +_RULESDIR = ..\..\tcl +!else +!include nmakehlp.out +!endif + +!endif # defined(INSTALLDIR).... + +!endif # ifndef TCLDIR + +# Now look for the targets.vc file under the Tcl root. Note we check this +# file and not rules.vc because the latter also exists on older systems. +!if exist("$(_RULESDIR)\lib\nmake\targets.vc") # Building against installed Tcl +_RULESDIR = $(_RULESDIR)\lib\nmake +!elseif exist("$(_RULESDIR)\win\targets.vc") # Building against Tcl sources +_RULESDIR = $(_RULESDIR)\win +!else +# If we have not located Tcl's targets file, most likely we are compiling +# against an older version of Tcl and so must use our own support files. +_RULESDIR = . +!endif + +!if "$(_RULESDIR)" != "." +# Potentially using Tcl's support files. If this extension has its own +# nmake support files, need to compare the versions and pick newer. + +!if exist("rules.vc") # The extension has its own copy + +!if [echo TCL_RULES_MAJOR = \> versions.vc] \ + && [nmakehlp -V "$(_RULESDIR)\rules.vc" RULES_VERSION_MAJOR >> versions.vc] +!endif +!if [echo TCL_RULES_MINOR = \>> versions.vc] \ + && [nmakehlp -V "$(_RULESDIR)\rules.vc" RULES_VERSION_MINOR >> versions.vc] +!endif + +!if [echo OUR_RULES_MAJOR = \>> versions.vc] \ + && [nmakehlp -V "rules.vc" RULES_VERSION_MAJOR >> versions.vc] +!endif +!if [echo OUR_RULES_MINOR = \>> versions.vc] \ + && [nmakehlp -V "rules.vc" RULES_VERSION_MINOR >> versions.vc] +!endif +!include versions.vc +# We have a newer version of the support files, use them +!if ($(TCL_RULES_MAJOR) != $(OUR_RULES_MAJOR)) || ($(TCL_RULES_MINOR) < $(OUR_RULES_MINOR)) +_RULESDIR = . +!endif + +!endif # if exist("rules.vc") + +!endif # if $(_RULESDIR) != "." + +# Let rules.vc know what copy of nmakehlp.c to use. +NMAKEHLPC = $(_RULESDIR)\nmakehlp.c + +# Get rid of our internal defines before calling rules.vc +!undef TCL_RULES_MAJOR +!undef TCL_RULES_MINOR +!undef OUR_RULES_MAJOR +!undef OUR_RULES_MINOR + +!if exist("$(_RULESDIR)\rules.vc") +!message *** Using $(_RULESDIR)\rules.vc +!include "$(_RULESDIR)\rules.vc" +!else +!error *** Could not locate rules.vc. Building using nmake needs Tcl/Tk 8.6.8 or later. +!endif + +!endif # _RULES_EXT_VC \ No newline at end of file diff -Nru saods9-8.2+repack/unix/configure saods9-8.3+repack/unix/configure --- saods9-8.2+repack/unix/configure 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/unix/configure 2021-11-08 15:46:07.000000000 +0000 @@ -1,9 +1,10 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for saods9 8.2. +# Generated by GNU Autoconf 2.71 for saods9 8.3. # # -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Inc. # # # This configure script is free software; the Free Software Foundation @@ -14,14 +15,16 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else +else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -31,46 +34,46 @@ fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || @@ -79,13 +82,6 @@ fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( @@ -94,8 +90,12 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS @@ -107,30 +107,10 @@ as_myself=$0 fi if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. @@ -152,20 +132,22 @@ exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + as_bourne_compatible="as_nop=: +if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST -else +else \$as_nop case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( @@ -185,42 +167,52 @@ as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : +if ( set x; as_fn_ret_success y && test x = \"\$1\" ) +then : -else +else \$as_nop exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 +blah=\$(echo \$(echo blah)) +test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" + if (eval "$as_required") 2>/dev/null +then : as_have_required=yes -else +else $as_nop as_have_required=no fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null +then : -else +else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base + as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null +then : break 2 fi fi @@ -228,14 +220,21 @@ esac as_found=false done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi +fi - if test "x$CONFIG_SHELL" != x; then : + if test "x$CONFIG_SHELL" != x +then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also @@ -253,18 +252,19 @@ exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." + if test x$as_have_required = xno +then : + printf "%s\n" "$0: This script requires a shell more modern than all" + printf "%s\n" "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then + printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, + printf "%s\n" "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." @@ -291,6 +291,7 @@ } as_unset=as_fn_unset + # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -308,6 +309,14 @@ as_fn_set_status $1 exit $1 } # as_fn_exit +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop # as_fn_mkdir_p # ------------- @@ -322,7 +331,7 @@ as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -331,7 +340,7 @@ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -370,12 +379,13 @@ # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : eval 'as_fn_append () { eval $1+=\$2 }' -else +else $as_nop as_fn_append () { eval $1=\$$1\$2 @@ -387,18 +397,27 @@ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else +else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- @@ -410,9 +429,9 @@ as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -439,7 +458,7 @@ $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -483,7 +502,7 @@ s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall @@ -497,6 +516,10 @@ exit } + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -510,6 +533,13 @@ ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -577,51 +607,49 @@ # Identity of this package. PACKAGE_NAME='saods9' PACKAGE_TARNAME='saods9' -PACKAGE_VERSION='8.2' -PACKAGE_STRING='saods9 8.2' +PACKAGE_VERSION='8.3' +PACKAGE_STRING='saods9 8.3' PACKAGE_BUGREPORT='' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include +#include +#ifdef HAVE_STDIO_H +# include #endif -#ifdef STDC_HEADERS +#ifdef HAVE_STDLIB_H # include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif #endif #ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif # include #endif -#ifdef HAVE_STRINGS_H -# include -#endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif #ifdef HAVE_UNISTD_H # include #endif" +ac_header_c_list= ac_subst_vars='LTLIBOBJS LIBOBJS CORES SSLCONFIG +XSLTCONFIG +XML2CONFIG TKFLAGS ARCH OS @@ -644,8 +672,6 @@ ac_ct_CXX CXXFLAGS CXX -EGREP -GREP RANLIB SET_MAKE CPP @@ -691,6 +717,7 @@ docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -773,6 +800,7 @@ sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -802,8 +830,6 @@ *) ac_optarg=yes ;; esac - # Accept the important Cygnus configure options, so we can diagnose typos. - case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; @@ -844,9 +870,9 @@ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -870,9 +896,9 @@ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -1025,6 +1051,15 @@ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1074,9 +1109,9 @@ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1090,9 +1125,9 @@ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1136,9 +1171,9 @@ *) # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; @@ -1154,7 +1189,7 @@ case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1162,7 +1197,7 @@ for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1218,7 +1253,7 @@ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | +printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1275,7 +1310,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 saods9 8.2 to adapt to many kinds of systems. +\`configure' configures saods9 8.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1315,6 +1350,7 @@ --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1336,7 +1372,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of saods9 8.2:";; + short | recursive ) echo "Configuration of saods9 8.3:";; esac cat <<\_ACEOF @@ -1390,9 +1426,9 @@ case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -1420,7 +1456,8 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. + # Check for configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive @@ -1428,7 +1465,7 @@ echo && $SHELL "$ac_srcdir/configure" --help=recursive else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done @@ -1437,10 +1474,10 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -saods9 configure 8.2 -generated by GNU Autoconf 2.69 +saods9 configure 8.3 +generated by GNU Autoconf 2.71 -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1457,14 +1494,14 @@ ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext + rm -f conftest.$ac_objext conftest.beam 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 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1472,14 +1509,15 @@ cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest.$ac_objext; then : + } && test -s conftest.$ac_objext +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1501,7 +1539,7 @@ *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1509,14 +1547,15 @@ cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$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 : + } +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1528,8 +1567,8 @@ # ac_fn_c_try_run LINENO # ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. +# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that +# executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack @@ -1539,25 +1578,26 @@ *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$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 : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } +then : ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: program exited with status $ac_status" >&5 + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status @@ -1575,26 +1615,28 @@ ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : eval "$3=yes" -else +else $as_nop eval "$3=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile @@ -1605,14 +1647,14 @@ ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext + rm -f conftest.$ac_objext conftest.beam 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 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1620,14 +1662,15 @@ cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err - } && test -s conftest.$ac_objext; then : + } && test -s conftest.$ac_objext +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1643,14 +1686,14 @@ 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 + rm -f conftest.$ac_objext conftest.beam 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 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1658,17 +1701,18 @@ cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$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 : + } +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1689,11 +1733,12 @@ ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. @@ -1701,16 +1746,9 @@ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif + which can conflict with char $2 (); below. */ +#include #undef $2 /* Override any GCC internal prototype to avoid an error. @@ -1728,35 +1766,56 @@ #endif int -main () +main (void) { return $2 (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : eval "$3=yes" -else +else $as_nop eval "$3=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func +ac_configure_args_raw= +for ac_arg +do + case $ac_arg in + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_configure_args_raw " '$ac_arg'" +done + +case $ac_configure_args_raw in + *$as_nl*) + ac_safe_unquote= ;; + *) + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" + ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; +esac + 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 saods9 $as_me 8.2, which was -generated by GNU Autoconf 2.69. Invocation command line was +It was created by saods9 $as_me 8.3, which was +generated by GNU Autoconf 2.71. Invocation command line was - $ $0 $@ + $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log @@ -1789,8 +1848,12 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS @@ -1825,7 +1888,7 @@ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; @@ -1860,11 +1923,13 @@ # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? + # Sanitize IFS. + IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo - $as_echo "## ---------------- ## + printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo @@ -1875,8 +1940,8 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -1900,7 +1965,7 @@ ) echo - $as_echo "## ----------------- ## + printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo @@ -1908,14 +1973,14 @@ do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## + printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo @@ -1923,15 +1988,15 @@ do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then - $as_echo "## ----------- ## + printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo @@ -1939,8 +2004,8 @@ echo fi test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" + printf "%s\n" "$as_me: caught signal $ac_signal" + printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && @@ -1954,63 +2019,48 @@ # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h -$as_echo "/* confdefs.h */" > confdefs.h +printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF +printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF +printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF +printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF +printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF +printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF +printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac + ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site + ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site + ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" + +for ac_site_file in $ac_site_files do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} + case $ac_site_file in #( + */*) : + ;; #( + *) : + ac_site_file=./$ac_site_file ;; +esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi @@ -2020,19 +2070,552 @@ # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi +# Test code for whether the C compiler supports C89 (global declarations) +ac_c_conftest_c89_globals=' +/* Does the compiler advertise C89 conformance? + Do not test the value of __STDC__, because some compilers set it to 0 + while being otherwise adequately conformant. */ +#if !defined __STDC__ +# error "Compiler does not advertise C89 conformance" +#endif + +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ +struct buf { int x; }; +struct buf * (*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 do not provoke an error unfortunately, instead are silently treated + as an "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 is necessary to write \x00 == 0 to get something + that is 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 **, int *(*)(struct buf *, struct stat *, int), + int, int);' + +# Test code for whether the C compiler supports C89 (body of main). +ac_c_conftest_c89_main=' +ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); +' + +# Test code for whether the C compiler supports C99 (global declarations) +ac_c_conftest_c99_globals=' +// Does the compiler advertise C99 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L +# error "Compiler does not advertise C99 conformance" +#endif + +#include +extern int puts (const char *); +extern int printf (const char *, ...); +extern int dprintf (int, const char *, ...); +extern void *malloc (size_t); + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +// dprintf is used instead of fprintf to avoid needing to declare +// FILE and stderr. +#define debug(...) dprintf (2, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + #error "your preprocessor is broken" +#endif +#if BIG_OK +#else + #error "your preprocessor is broken" +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case '\''s'\'': // string + str = va_arg (args_copy, const char *); + break; + case '\''d'\'': // int + number = va_arg (args_copy, int); + break; + case '\''f'\'': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +' + +# Test code for whether the C compiler supports C99 (body of main). +ac_c_conftest_c99_main=' + // Check bool. + _Bool success = false; + success |= (argc != 0); + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[0] = argv[0][0]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' + || dynamic_array[ni.number - 1] != 543); +' + +# Test code for whether the C compiler supports C11 (global declarations) +ac_c_conftest_c11_globals=' +// Does the compiler advertise C11 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L +# error "Compiler does not advertise C11 conformance" +#endif + +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +' + +# Test code for whether the C compiler supports C11 (body of main). +ac_c_conftest_c11_main=' + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + v1.i = 2; + v1.w.k = 5; + ok |= v1.i != 5; +' + +# Test code for whether the C compiler supports C11 (complete). +ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} +${ac_c_conftest_c11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + ${ac_c_conftest_c11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C99 (complete). +ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + return ok; +} +" + +# Test code for whether the C compiler supports C89 (complete). +ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + return ok; +} +" + +as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" +as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" +as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" +as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" +as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" +as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" +as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" +as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" +as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" +# Test code for whether the C++ compiler supports C++98 (global declarations) +ac_cxx_conftest_cxx98_globals=' +// Does the compiler advertise C++98 conformance? +#if !defined __cplusplus || __cplusplus < 199711L +# error "Compiler does not advertise C++98 conformance" +#endif + +// These inclusions are to reject old compilers that +// lack the unsuffixed header files. +#include +#include + +// and are *not* freestanding headers in C++98. +extern void assert (int); +namespace std { + extern int strcmp (const char *, const char *); +} + +// Namespaces, exceptions, and templates were all added after "C++ 2.0". +using std::exception; +using std::strcmp; + +namespace { + +void test_exception_syntax() +{ + try { + throw "test"; + } catch (const char *s) { + // Extra parentheses suppress a warning when building autoconf itself, + // due to lint rules shared with more typical C programs. + assert (!(strcmp) (s, "test")); + } +} + +template struct test_template +{ + T const val; + explicit test_template(T t) : val(t) {} + template T add(U u) { return static_cast(u) + val; } +}; + +} // anonymous namespace +' + +# Test code for whether the C++ compiler supports C++98 (body of main) +ac_cxx_conftest_cxx98_main=' + assert (argc); + assert (! argv[0]); +{ + test_exception_syntax (); + test_template tt (2.0); + assert (tt.add (4) == 6.0); + assert (true && !false); +} +' + +# Test code for whether the C++ compiler supports C++11 (global declarations) +ac_cxx_conftest_cxx11_globals=' +// Does the compiler advertise C++ 2011 conformance? +#if !defined __cplusplus || __cplusplus < 201103L +# error "Compiler does not advertise C++11 conformance" +#endif + +namespace cxx11test +{ + constexpr int get_val() { return 20; } + + struct testinit + { + int i; + double d; + }; + + class delegate + { + public: + delegate(int n) : n(n) {} + delegate(): delegate(2354) {} + + virtual int getval() { return this->n; }; + protected: + int n; + }; + + class overridden : public delegate + { + public: + overridden(int n): delegate(n) {} + virtual int getval() override final { return this->n * 2; } + }; + + class nocopy + { + public: + nocopy(int i): i(i) {} + nocopy() = default; + nocopy(const nocopy&) = delete; + nocopy & operator=(const nocopy&) = delete; + private: + int i; + }; + + // for testing lambda expressions + template Ret eval(Fn f, Ret v) + { + return f(v); + } + + // for testing variadic templates and trailing return types + template auto sum(V first) -> V + { + return first; + } + template auto sum(V first, Args... rest) -> V + { + return first + sum(rest...); + } +} +' + +# Test code for whether the C++ compiler supports C++11 (body of main) +ac_cxx_conftest_cxx11_main=' +{ + // Test auto and decltype + auto a1 = 6538; + auto a2 = 48573953.4; + auto a3 = "String literal"; + + int total = 0; + for (auto i = a3; *i; ++i) { total += *i; } + + decltype(a2) a4 = 34895.034; +} +{ + // Test constexpr + short sa[cxx11test::get_val()] = { 0 }; +} +{ + // Test initializer lists + cxx11test::testinit il = { 4323, 435234.23544 }; +} +{ + // Test range-based for + int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, + 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; + for (auto &x : array) { x += 23; } +} +{ + // Test lambda expressions + using cxx11test::eval; + assert (eval ([](int x) { return x*2; }, 21) == 42); + double d = 2.0; + assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); + assert (d == 5.0); + assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); + assert (d == 5.0); +} +{ + // Test use of variadic templates + using cxx11test::sum; + auto a = sum(1); + auto b = sum(1, 2); + auto c = sum(1.0, 2.0, 3.0); +} +{ + // Test constructor delegation + cxx11test::delegate d1; + cxx11test::delegate d2(); + cxx11test::delegate d3(45); +} +{ + // Test override and final + cxx11test::overridden o1(55464); +} +{ + // Test nullptr + char *c = nullptr; +} +{ + // Test template brackets + test_template<::test_template> v(test_template(12)); +} +{ + // Unicode literals + char const *utf8 = u8"UTF-8 string \u2500"; + char16_t const *utf16 = u"UTF-8 string \u2500"; + char32_t const *utf32 = U"UTF-32 string \u2500"; +} +' + +# Test code for whether the C compiler supports C++11 (complete). +ac_cxx_conftest_cxx11_program="${ac_cxx_conftest_cxx98_globals} +${ac_cxx_conftest_cxx11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_cxx_conftest_cxx98_main} + ${ac_cxx_conftest_cxx11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C++98 (complete). +ac_cxx_conftest_cxx98_program="${ac_cxx_conftest_cxx98_globals} +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_cxx_conftest_cxx98_main} + return ok; +} +" + # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false @@ -2043,12 +2626,12 @@ eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) @@ -2057,24 +2640,24 @@ ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in @@ -2084,11 +2667,12 @@ fi done if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' + and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## @@ -2111,14 +2695,14 @@ TEA_VERSION="3.13" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking TEA configuration" >&5 -$as_echo_n "checking TEA configuration... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking TEA configuration" >&5 +printf %s "checking TEA configuration... " >&6; } if test x"${PACKAGE_NAME}" = x ; then as_fn_error $? " The PACKAGE_NAME variable must be defined by your TEA configure.ac" "$LINENO" 5 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok (TEA ${TEA_VERSION})" >&5 -$as_echo "ok (TEA ${TEA_VERSION})" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok (TEA ${TEA_VERSION})" >&5 +printf "%s\n" "ok (TEA ${TEA_VERSION})" >&6; } # If the user did not set CFLAGS, set it now to keep macros # like AC_PROG_CC and AC_TRY_COMPILE from adding "-g -O2". @@ -2130,11 +2714,12 @@ *win32*|*WIN32*|*MINGW32_*|*MINGW64_*) # Extract the first word of "cygpath", so it can be a program name with args. set dummy cygpath; 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_CYGPATH+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CYGPATH+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CYGPATH"; then ac_cv_prog_CYGPATH="$CYGPATH" # Let the user override the test. else @@ -2142,11 +2727,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CYGPATH="cygpath -m" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2158,11 +2747,11 @@ fi CYGPATH=$ac_cv_prog_CYGPATH if test -n "$CYGPATH"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CYGPATH" >&5 -$as_echo "$CYGPATH" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CYGPATH" >&5 +printf "%s\n" "$CYGPATH" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2198,8 +2787,8 @@ exec_prefix=$prefix fi - { $as_echo "$as_me:${as_lineno-$LINENO}: configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}" >&5 -$as_echo "$as_me: configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}" >&5 +printf "%s\n" "$as_me: configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}" >&6;} @@ -2228,11 +2817,12 @@ INSTALL_SCRIPT='${INSTALL} -m 755' - { $as_echo "$as_me:${as_lineno-$LINENO}: checking system version" >&5 -$as_echo_n "checking system version... " >&6; } -if ${tcl_cv_sys_version+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking system version" >&5 +printf %s "checking system version... " >&6; } +if test ${tcl_cv_sys_version+y} +then : + printf %s "(cached) " >&6 +else $as_nop # TEA specific: if test "${TEA_PLATFORM}" = "windows" ; then @@ -2240,8 +2830,8 @@ else tcl_cv_sys_version=`uname -s`-`uname -r` if test "$?" -ne 0 ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: can't find uname command" >&5 -$as_echo "$as_me: WARNING: can't find uname command" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: can't find uname command" >&5 +printf "%s\n" "$as_me: WARNING: can't find uname command" >&2;} tcl_cv_sys_version=unknown else if test "`uname -s`" = "AIX" ; then @@ -2251,8 +2841,8 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_sys_version" >&5 -$as_echo "$tcl_cv_sys_version" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_sys_version" >&5 +printf "%s\n" "$tcl_cv_sys_version" >&6; } system=$tcl_cv_sys_version case $system in @@ -2269,34 +2859,6 @@ -ac_aux_dir= -for ac_dir in ../tclconfig "$srcdir"/../tclconfig; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../tclconfig \"$srcdir\"/../tclconfig" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - #----------------------------------------------------------------------- @@ -2307,6 +2869,15 @@ #----------------------------------------------------------------------- + + + + + + + + + # Don't put any macros that use the compiler (e.g. AC_TRY_COMPILE) # in this macro, they need to go into TEA_SETUP_COMPILER instead. @@ -2318,11 +2889,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -2330,11 +2902,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2345,11 +2921,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2358,11 +2934,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -2370,11 +2947,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2385,11 +2966,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -2397,8 +2978,8 @@ 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -2411,11 +2992,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -2423,11 +3005,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2438,11 +3024,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2451,11 +3037,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -2464,15 +3051,19 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac 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 + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2488,18 +3079,18 @@ # 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+' '}$@" + 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2510,11 +3101,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -2522,11 +3114,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2537,11 +3133,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2554,11 +3150,12 @@ 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 : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -2566,11 +3163,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2581,11 +3182,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2597,8 +3198,8 @@ 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -2606,25 +3207,129 @@ fi fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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}clang" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +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;} + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 + +fi + + +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$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 +printf "%s\n" "$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 +for ac_option in --version -v -V -qversion -version; 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 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -2634,7 +3339,7 @@ cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -2642,7 +3347,7 @@ /* end confdefs.h. */ int -main () +main (void) { ; @@ -2654,9 +3359,9 @@ # 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[^ ]*//'` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +printf %s "checking whether the C compiler works... " >&6; } +ac_link_default=`printf "%s\n" "$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.*" @@ -2677,11 +3382,12 @@ *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$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 : + printf "%s\n" "$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, @@ -2698,7 +3404,7 @@ # certainly right. break;; *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi @@ -2714,44 +3420,46 @@ done test "$ac_cv_exeext" = no && ac_cv_exeext= -else +else $as_nop 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 +if test -z "$ac_file" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +printf "%s\n" "$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;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$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; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +printf %s "checking for C compiler default output file name... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf "%s\n" "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +printf %s "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 +printf "%s\n" "$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 : + printf "%s\n" "$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 @@ -2765,15 +3473,15 @@ * ) 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;} +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext @@ -2782,7 +3490,7 @@ /* end confdefs.h. */ #include int -main () +main (void) { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; @@ -2794,8 +3502,8 @@ 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in @@ -2803,10 +3511,10 @@ *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in @@ -2814,39 +3522,40 @@ *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf "%s\n" "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +printf %s "checking for suffix of object files... " >&6; } +if test ${ac_cv_objext+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -2860,11 +3569,12 @@ *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$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 : + printf "%s\n" "$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 @@ -2873,31 +3583,32 @@ break;; esac done -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$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;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf "%s\n" "$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_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __GNUC__ choke me @@ -2907,29 +3618,33 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else +else $as_nop ac_compiler_gnu=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi -ac_test_CFLAGS=${CFLAGS+set} +ac_test_CFLAGS=${CFLAGS+y} 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no @@ -2938,57 +3653,60 @@ /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes -else +else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -else +else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +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 +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then @@ -3003,94 +3721,144 @@ CFLAGS= fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=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]; +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi -/* 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]; +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi -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; -} +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +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 : + if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_c89=$ac_arg fi -rm -f core conftest.err conftest.$ac_objext +rm -f core conftest.err conftest.$ac_objext conftest.beam 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 : +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 +fi fi ac_ext=c @@ -3104,40 +3872,36 @@ 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +printf %s "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" + if test ${ac_cv_prog_CPP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Double quotes because $CC needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" 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 +#include Syntax error _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_cpp "$LINENO" +then : -else +else $as_nop # Broken: fails on valid input. continue fi @@ -3149,10 +3913,11 @@ /* end confdefs.h. */ #include _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_cpp "$LINENO" +then : # Broken: success on invalid input. continue -else +else $as_nop # Passes both tests. ac_preproc_ok=: break @@ -3162,7 +3927,8 @@ 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 : +if $ac_preproc_ok +then : break fi @@ -3174,29 +3940,24 @@ else ac_cv_prog_CPP=$CPP fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +printf "%s\n" "$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 +#include Syntax error _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_cpp "$LINENO" +then : -else +else $as_nop # Broken: fails on valid input. continue fi @@ -3208,10 +3969,11 @@ /* end confdefs.h. */ #include _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_cpp "$LINENO" +then : # Broken: success on invalid input. continue -else +else $as_nop # Passes both tests. ac_preproc_ok=: break @@ -3221,11 +3983,12 @@ 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 : +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;} +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$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 @@ -3241,13 +4004,14 @@ # Checks to see if the make program sets the $MAKE variable. #-------------------------------------------------------------------- - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else +ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval test \${ac_cv_prog_make_${ac_make}_set+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @@ -3263,12 +4027,12 @@ rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } SET_MAKE= else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -3280,11 +4044,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else @@ -3292,11 +4057,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3307,11 +4076,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +printf "%s\n" "$RANLIB" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3320,11 +4089,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else @@ -3332,11 +4102,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3347,11 +4121,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +printf "%s\n" "$ac_ct_RANLIB" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then @@ -3359,285 +4133,54 @@ 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 - - - #-------------------------------------------------------------------- - # Determines the correct binary file extension (.o, .obj, .exe etc.) - #-------------------------------------------------------------------- - - - - - - -{ $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" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - + RANLIB=$ac_ct_RANLIB + fi else - ac_cv_header_stdc=no + RANLIB="$ac_cv_prog_RANLIB" fi -rm -f conftest* -fi -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include + #-------------------------------------------------------------------- + # Determines the correct binary file extension (.o, .obj, .exe etc.) + #-------------------------------------------------------------------- -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : -else - ac_cv_header_stdc=no -fi -rm -f conftest* -fi -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : +ac_header= ac_cache= +for ac_item in $ac_header_c_list +do + if test $ac_cache; then + ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then + printf "%s\n" "#define $ac_item 1" >> confdefs.h + fi + ac_header= ac_cache= + elif test $ac_header; then + ac_cache=$ac_item + else + ac_header=$ac_item + fi +done -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then -$as_echo "#define STDC_HEADERS 1" >>confdefs.h -fi -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF -fi -done +if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +then : +printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h + +fi # Any macros that use the compiler (e.g. AC_TRY_COMPILE) have to go here. @@ -3648,34 +4191,36 @@ #------------------------------------------------------------------------ if test -z "$no_pipe" -a -n "$GCC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the compiler understands -pipe" >&5 -$as_echo_n "checking if the compiler understands -pipe... " >&6; } -if ${tcl_cv_cc_pipe+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the compiler understands -pipe" >&5 +printf %s "checking if the compiler understands -pipe... " >&6; } +if test ${tcl_cv_cc_pipe+y} +then : + printf %s "(cached) " >&6 +else $as_nop hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -pipe" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_cc_pipe=yes -else +else $as_nop tcl_cv_cc_pipe=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$hold_cflags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_pipe" >&5 -$as_echo "$tcl_cv_cc_pipe" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_pipe" >&5 +printf "%s\n" "$tcl_cv_cc_pipe" >&6; } if test $tcl_cv_cc_pipe = yes; then CFLAGS="$CFLAGS -pipe" fi @@ -3685,11 +4230,12 @@ # Common compiler flag setup #-------------------------------------------------------------------- - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +printf %s "checking whether byte ordering is bigendian... " >&6; } +if test ${ac_cv_c_bigendian+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3700,7 +4246,8 @@ typedef int dummy; _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. @@ -3724,7 +4271,7 @@ fi done fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3733,7 +4280,7 @@ #include int -main () +main (void) { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ @@ -3745,7 +4292,8 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -3753,7 +4301,7 @@ #include int -main () +main (void) { #if BYTE_ORDER != BIG_ENDIAN not big endian @@ -3763,14 +4311,15 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_c_bigendian=yes -else +else $as_nop ac_cv_c_bigendian=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). @@ -3779,7 +4328,7 @@ #include int -main () +main (void) { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros @@ -3789,14 +4338,15 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { #ifndef _BIG_ENDIAN not big endian @@ -3806,31 +4356,33 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_c_bigendian=yes -else +else $as_nop ac_cv_c_bigendian=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # Compile a test program. - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes +then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -short int ascii_mm[] = +unsigned short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = + unsigned short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } - short int ebcdic_ii[] = + unsigned short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = + unsigned short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; @@ -3838,14 +4390,15 @@ extern int foo; int -main () +main (void) { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi @@ -3858,13 +4411,13 @@ fi fi fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int -main () +main (void) { /* Are we little or big endian? From Harbison&Steele. */ @@ -3880,9 +4433,10 @@ return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_c_bigendian=no -else +else $as_nop ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -3891,17 +4445,17 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +printf "%s\n" "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) - $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h + printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h ;; #( no) ;; #( universal) -$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h +printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) @@ -3910,6 +4464,12 @@ esac + + + + + + ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -3920,15 +4480,16 @@ 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 + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else @@ -3936,11 +4497,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3951,11 +4516,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +printf "%s\n" "$CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3964,15 +4529,16 @@ 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 + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else @@ -3980,11 +4546,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3995,11 +4565,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +printf "%s\n" "$ac_ct_CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4011,8 +4581,8 @@ 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX @@ -4022,7 +4592,7 @@ fi fi # Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +printf "%s\n" "$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 @@ -4032,7 +4602,7 @@ *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -4042,20 +4612,21 @@ cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5 +printf %s "checking whether the compiler supports GNU C++... " >&6; } +if test ${ac_cv_cxx_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __GNUC__ choke me @@ -4065,29 +4636,33 @@ return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else +else $as_nop ac_compiler_gnu=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 -$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi -ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_test_CXXFLAGS=${CXXFLAGS+y} 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +printf %s "checking whether $CXX accepts -g... " >&6; } +if test ${ac_cv_prog_cxx_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no @@ -4096,57 +4671,60 @@ /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO" +then : ac_cv_prog_cxx_g=yes -else +else $as_nop CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO" +then : -else +else $as_nop ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +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 +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +printf "%s\n" "$ac_cv_prog_cxx_g" >&6; } +if test $ac_test_CXXFLAGS; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then @@ -4161,6 +4739,100 @@ CXXFLAGS= fi fi +ac_prog_cxx_stdcxx=no +if test x$ac_prog_cxx_stdcxx = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5 +printf %s "checking for $CXX option to enable C++11 features... " >&6; } +if test ${ac_cv_prog_cxx_11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cxx_11=no +ac_save_CXX=$CXX +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_cxx_conftest_cxx11_program +_ACEOF +for ac_arg in '' -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x -qlanglvl=extended0x -AA +do + CXX="$ac_save_CXX $ac_arg" + if ac_fn_cxx_try_compile "$LINENO" +then : + ac_cv_prog_cxx_cxx11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cxx_cxx11" != "xno" && break +done +rm -f conftest.$ac_ext +CXX=$ac_save_CXX +fi + +if test "x$ac_cv_prog_cxx_cxx11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cxx_cxx11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5 +printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; } + CXX="$CXX $ac_cv_prog_cxx_cxx11" +fi + ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11 + ac_prog_cxx_stdcxx=cxx11 +fi +fi +if test x$ac_prog_cxx_stdcxx = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5 +printf %s "checking for $CXX option to enable C++98 features... " >&6; } +if test ${ac_cv_prog_cxx_98+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cxx_98=no +ac_save_CXX=$CXX +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_cxx_conftest_cxx98_program +_ACEOF +for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA +do + CXX="$ac_save_CXX $ac_arg" + if ac_fn_cxx_try_compile "$LINENO" +then : + ac_cv_prog_cxx_cxx98=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cxx_cxx98" != "xno" && break +done +rm -f conftest.$ac_ext +CXX=$ac_save_CXX +fi + +if test "x$ac_cv_prog_cxx_cxx98" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cxx_cxx98" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5 +printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; } + CXX="$CXX $ac_cv_prog_cxx_cxx98" +fi + ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98 + ac_prog_cxx_stdcxx=cxx98 +fi +fi + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -4174,12 +4846,13 @@ #-------------------------------------------------------------------- - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to build libraries" >&5 -$as_echo_n "checking how to build libraries... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to build libraries" >&5 +printf %s "checking how to build libraries... " >&6; } # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : +if test ${enable_shared+y} +then : enableval=$enable_shared; shared_ok=$enableval -else +else $as_nop shared_ok=yes fi @@ -4192,9 +4865,10 @@ fi # Check whether --enable-stubs was given. -if test "${enable_stubs+set}" = set; then : +if test ${enable_stubs+y} +then : enableval=$enable_stubs; stubs_ok=$enableval -else +else $as_nop stubs_ok=yes fi @@ -4208,16 +4882,16 @@ # Stubs are always enabled for shared builds if test "$shared_ok" = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared" >&5 -$as_echo "shared" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: shared" >&5 +printf "%s\n" "shared" >&6; } SHARED_BUILD=1 STUBS_BUILD=1 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: static" >&5 -$as_echo "static" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: static" >&5 +printf "%s\n" "static" >&6; } SHARED_BUILD=0 -$as_echo "#define STATIC_BUILD 1" >>confdefs.h +printf "%s\n" "#define STATIC_BUILD 1" >>confdefs.h if test "$stubs_ok" = "yes" ; then STUBS_BUILD=1 @@ -4227,14 +4901,14 @@ fi if test "${STUBS_BUILD}" = "1" ; then -$as_echo "#define USE_TCL_STUBS 1" >>confdefs.h +printf "%s\n" "#define USE_TCL_STUBS 1" >>confdefs.h -$as_echo "#define USE_TCLOO_STUBS 1" >>confdefs.h +printf "%s\n" "#define USE_TCLOO_STUBS 1" >>confdefs.h if test "${TEA_WINDOWINGSYSTEM}" != ""; then -$as_echo "#define USE_TK_STUBS 1" >>confdefs.h +printf "%s\n" "#define USE_TK_STUBS 1" >>confdefs.h fi fi @@ -4252,11 +4926,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else @@ -4264,11 +4939,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4279,11 +4958,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +printf "%s\n" "$RANLIB" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4292,11 +4971,12 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else @@ -4304,11 +4984,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4319,11 +5003,11 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +printf "%s\n" "$ac_ct_RANLIB" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then @@ -4331,8 +5015,8 @@ 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB @@ -4346,44 +5030,48 @@ # Step 0.a: Enable 64 bit support? - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if 64bit support is requested" >&5 -$as_echo_n "checking if 64bit support is requested... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if 64bit support is requested" >&5 +printf %s "checking if 64bit support is requested... " >&6; } # Check whether --enable-64bit was given. -if test "${enable_64bit+set}" = set; then : +if test ${enable_64bit+y} +then : enableval=$enable_64bit; do64bit=$enableval -else +else $as_nop do64bit=no fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $do64bit" >&5 -$as_echo "$do64bit" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $do64bit" >&5 +printf "%s\n" "$do64bit" >&6; } # Step 0.b: Enable Solaris 64 bit VIS support? - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if 64bit Sparc VIS support is requested" >&5 -$as_echo_n "checking if 64bit Sparc VIS support is requested... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if 64bit Sparc VIS support is requested" >&5 +printf %s "checking if 64bit Sparc VIS support is requested... " >&6; } # Check whether --enable-64bit-vis was given. -if test "${enable_64bit_vis+set}" = set; then : +if test ${enable_64bit_vis+y} +then : enableval=$enable_64bit_vis; do64bitVIS=$enableval -else +else $as_nop do64bitVIS=no fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $do64bitVIS" >&5 -$as_echo "$do64bitVIS" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $do64bitVIS" >&5 +printf "%s\n" "$do64bitVIS" >&6; } # Force 64bit on with VIS - if test "$do64bitVIS" = "yes"; then : + if test "$do64bitVIS" = "yes" +then : do64bit=yes fi # Step 0.c: Check if visibility support is available. Do this here so # that platform specific alternatives can be used below if this fails. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports visibility \"hidden\"" >&5 -$as_echo_n "checking if compiler supports visibility \"hidden\"... " >&6; } -if ${tcl_cv_cc_visibility_hidden+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler supports visibility \"hidden\"" >&5 +printf %s "checking if compiler supports visibility \"hidden\"... " >&6; } +if test ${tcl_cv_cc_visibility_hidden+y} +then : + printf %s "(cached) " >&6 +else $as_nop hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4392,64 +5080,69 @@ extern __attribute__((__visibility__("hidden"))) void f(void); void f(void) {} int -main () +main (void) { f(); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_cc_visibility_hidden=yes -else +else $as_nop tcl_cv_cc_visibility_hidden=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext CFLAGS=$hold_cflags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_visibility_hidden" >&5 -$as_echo "$tcl_cv_cc_visibility_hidden" >&6; } - if test $tcl_cv_cc_visibility_hidden = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_visibility_hidden" >&5 +printf "%s\n" "$tcl_cv_cc_visibility_hidden" >&6; } + if test $tcl_cv_cc_visibility_hidden = yes +then : -$as_echo "#define MODULE_SCOPE extern __attribute__((__visibility__(\"hidden\")))" >>confdefs.h +printf "%s\n" "#define MODULE_SCOPE extern __attribute__((__visibility__(\"hidden\")))" >>confdefs.h -$as_echo "#define HAVE_HIDDEN 1" >>confdefs.h +printf "%s\n" "#define HAVE_HIDDEN 1" >>confdefs.h fi # Step 0.d: Disable -rpath support? - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if rpath support is requested" >&5 -$as_echo_n "checking if rpath support is requested... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if rpath support is requested" >&5 +printf %s "checking if rpath support is requested... " >&6; } # Check whether --enable-rpath was given. -if test "${enable_rpath+set}" = set; then : +if test ${enable_rpath+y} +then : enableval=$enable_rpath; doRpath=$enableval -else +else $as_nop doRpath=yes fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $doRpath" >&5 -$as_echo "$doRpath" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $doRpath" >&5 +printf "%s\n" "$doRpath" >&6; } # TEA specific: Cross-compiling options for Windows/CE builds? - if test "${TEA_PLATFORM}" = windows; then : + if test "${TEA_PLATFORM}" = windows +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Windows/CE build is requested" >&5 -$as_echo_n "checking if Windows/CE build is requested... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if Windows/CE build is requested" >&5 +printf %s "checking if Windows/CE build is requested... " >&6; } # Check whether --enable-wince was given. -if test "${enable_wince+set}" = set; then : +if test ${enable_wince+y} +then : enableval=$enable_wince; doWince=$enableval -else +else $as_nop doWince=no fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $doWince" >&5 -$as_echo "$doWince" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $doWince" >&5 +printf "%s\n" "$doWince" >&6; } fi @@ -4457,11 +5150,12 @@ # for the system. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking system version" >&5 -$as_echo_n "checking system version... " >&6; } -if ${tcl_cv_sys_version+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking system version" >&5 +printf %s "checking system version... " >&6; } +if test ${tcl_cv_sys_version+y} +then : + printf %s "(cached) " >&6 +else $as_nop # TEA specific: if test "${TEA_PLATFORM}" = "windows" ; then @@ -4469,8 +5163,8 @@ else tcl_cv_sys_version=`uname -s`-`uname -r` if test "$?" -ne 0 ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: can't find uname command" >&5 -$as_echo "$as_me: WARNING: can't find uname command" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: can't find uname command" >&5 +printf "%s\n" "$as_me: WARNING: can't find uname command" >&2;} tcl_cv_sys_version=unknown else if test "`uname -s`" = "AIX" ; then @@ -4480,8 +5174,8 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_sys_version" >&5 -$as_echo "$tcl_cv_sys_version" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_sys_version" >&5 +printf "%s\n" "$tcl_cv_sys_version" >&6; } system=$tcl_cv_sys_version @@ -4506,12 +5200,13 @@ ECHO_VERSION='`echo ${PACKAGE_VERSION}`' TCL_LIB_VERSIONS_OK=ok CFLAGS_DEBUG=-g - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : CFLAGS_OPTIMIZE=-O2 CFLAGS_WARNING="-Wall" -else +else $as_nop CFLAGS_OPTIMIZE=-O CFLAGS_WARNING="" @@ -4520,11 +5215,12 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else @@ -4532,11 +5228,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4547,11 +5247,11 @@ fi AR=$ac_cv_prog_AR if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf "%s\n" "$AR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4560,11 +5260,12 @@ ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else @@ -4572,11 +5273,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4587,11 +5292,11 @@ fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +printf "%s\n" "$ac_ct_AR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_AR" = x; then @@ -4599,8 +5304,8 @@ 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR @@ -4611,9 +5316,10 @@ STLIB_LD='${AR} cr' LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH" - if test "x$SHLIB_VERSION" = x; then : + if test "x$SHLIB_VERSION" = x +then : SHLIB_VERSION="" -else +else $as_nop SHLIB_VERSION=".$SHLIB_VERSION" fi case $system in @@ -4642,14 +5348,14 @@ ;; esac if test "$GCC" != "yes" -a ! -d "${PATH64}" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&5 -$as_echo "$as_me: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ensure latest Platform SDK is installed" >&5 -$as_echo "$as_me: WARNING: Ensure latest Platform SDK is installed" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&5 +printf "%s\n" "$as_me: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Ensure latest Platform SDK is installed" >&5 +printf "%s\n" "$as_me: WARNING: Ensure latest Platform SDK is installed" >&2;} do64bit="no" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using 64-bit $MACHINE mode" >&5 -$as_echo " Using 64-bit $MACHINE mode" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Using 64-bit $MACHINE mode" >&5 +printf "%s\n" " Using 64-bit $MACHINE mode" >&6; } do64bit_ok="yes" fi fi @@ -4670,15 +5376,17 @@ no_celib=true # Check whether --with-celib was given. -if test "${with_celib+set}" = set; then : +if test ${with_celib+y} +then : withval=$with_celib; with_celibconfig=${withval} fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Windows/CE celib directory" >&5 -$as_echo_n "checking for Windows/CE celib directory... " >&6; } - if ${ac_cv_c_celibconfig+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Windows/CE celib directory" >&5 +printf %s "checking for Windows/CE celib directory... " >&6; } + if test ${ac_cv_c_celibconfig+y} +then : + printf %s "(cached) " >&6 +else $as_nop # First check to see if --with-celibconfig was specified. if test x"${with_celibconfig}" != x ; then @@ -4716,8 +5424,8 @@ no_celib= CELIB_DIR=${ac_cv_c_celibconfig} CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $CELIB_DIR" >&5 -$as_echo "found $CELIB_DIR" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found $CELIB_DIR" >&5 +printf "%s\n" "found $CELIB_DIR" >&6; } fi fi @@ -4836,20 +5544,14 @@ fi for i in $defs ; do -cat >>confdefs.h <<_ACEOF -#define $i 1 -_ACEOF +printf "%s\n" "#define $i 1" >>confdefs.h done -cat >>confdefs.h <<_ACEOF -#define _WIN32_WCE $CEVERSION -_ACEOF +printf "%s\n" "#define _WIN32_WCE $CEVERSION" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define UNDER_CE $CEVERSION -_ACEOF +printf "%s\n" "#define UNDER_CE $CEVERSION" >>confdefs.h CFLAGS_DEBUG="-nologo -Zi -Od" CFLAGS_OPTIMIZE="-nologo -Ox" @@ -4871,11 +5573,12 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. set dummy ${ac_tool_prefix}windres; 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_RC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$RC"; then ac_cv_prog_RC="$RC" # Let the user override the test. else @@ -4883,11 +5586,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_RC="${ac_tool_prefix}windres" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4898,11 +5605,11 @@ fi RC=$ac_cv_prog_RC if test -n "$RC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RC" >&5 -$as_echo "$RC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RC" >&5 +printf "%s\n" "$RC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4911,11 +5618,12 @@ ac_ct_RC=$RC # Extract the first word of "windres", so it can be a program name with args. set dummy windres; 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_RC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_RC"; then ac_cv_prog_ac_ct_RC="$ac_ct_RC" # Let the user override the test. else @@ -4923,11 +5631,15 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RC="windres" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4938,11 +5650,11 @@ fi ac_ct_RC=$ac_cv_prog_ac_ct_RC if test -n "$ac_ct_RC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RC" >&5 -$as_echo "$ac_ct_RC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RC" >&5 +printf "%s\n" "$ac_ct_RC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_RC" = x; then @@ -4950,8 +5662,8 @@ 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RC=$ac_ct_RC @@ -4967,11 +5679,12 @@ LDFLAGS_CONSOLE="-wl,--subsystem,console ${lflags}" LDFLAGS_WINDOW="-wl,--subsystem,windows ${lflags}" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cross-compile version of gcc" >&5 -$as_echo_n "checking for cross-compile version of gcc... " >&6; } -if ${ac_cv_cross+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cross-compile version of gcc" >&5 +printf %s "checking for cross-compile version of gcc... " >&6; } +if test ${ac_cv_cross+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -4980,23 +5693,24 @@ #endif int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_cross=yes -else +else $as_nop ac_cv_cross=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cross" >&5 -$as_echo "$ac_cv_cross" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cross" >&5 +printf "%s\n" "$ac_cv_cross" >&6; } if test "$ac_cv_cross" = "yes"; then case "$do64bit" in amd64|x64|yes) @@ -5044,7 +5758,8 @@ TCL_LIB_VERSIONS_OK=nodots ;; AIX-*) - if test "${TCL_THREADS}" = "1" -a "$GCC" != "yes"; then : + if test "${TCL_THREADS}" = "1" -a "$GCC" != "yes" +then : # AIX requires the _r compiler when gcc isn't being used case "${CC}" in @@ -5056,8 +5771,8 @@ CC=`echo "$CC" | sed -e 's/^\([^ ]*\)/\1_r/'` ;; esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using $CC for compiling with threads" >&5 -$as_echo "Using $CC for compiling with threads" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Using $CC for compiling with threads" >&5 +printf "%s\n" "Using $CC for compiling with threads" >&6; } fi LIBS="$LIBS -lc" @@ -5067,14 +5782,16 @@ LD_LIBRARY_PATH_VAR="LIBPATH" # Check to enable 64-bit flags for compiler/linker - if test "$do64bit" = yes; then : + if test "$do64bit" = yes +then : - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;} -else +else $as_nop do64bit_ok=yes CFLAGS="$CFLAGS -q64" @@ -5087,28 +5804,31 @@ fi - if test "`uname -m`" = ia64; then : + if test "`uname -m`" = ia64 +then : # AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC SHLIB_LD="/usr/ccs/bin/ld -G -z text" - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' -else +else $as_nop CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}' fi LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' -else +else $as_nop - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : SHLIB_LD='${CC} -shared -Wl,-bexpall' -else +else $as_nop SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bexpall -H512 -T512 -bnoentry" LDFLAGS="$LDFLAGS -brtl" @@ -5130,11 +5850,12 @@ # -lsocket, even if the network functions are in -lnet which # is always linked to, for compatibility. #----------------------------------------------------------- - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_ntoa in -lbind" >&5 -$as_echo_n "checking for inet_ntoa in -lbind... " >&6; } -if ${ac_cv_lib_bind_inet_ntoa+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inet_ntoa in -lbind" >&5 +printf %s "checking for inet_ntoa in -lbind... " >&6; } +if test ${ac_cv_lib_bind_inet_ntoa+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lbind $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5143,30 +5864,29 @@ /* 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 inet_ntoa (); int -main () +main (void) { return inet_ntoa (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_bind_inet_ntoa=yes -else +else $as_nop ac_cv_lib_bind_inet_ntoa=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bind_inet_ntoa" >&5 -$as_echo "$ac_cv_lib_bind_inet_ntoa" >&6; } -if test "x$ac_cv_lib_bind_inet_ntoa" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bind_inet_ntoa" >&5 +printf "%s\n" "$ac_cv_lib_bind_inet_ntoa" >&6; } +if test "x$ac_cv_lib_bind_inet_ntoa" = xyes +then : LIBS="$LIBS -lbind -lsocket" fi @@ -5194,11 +5914,12 @@ SHLIB_CFLAGS="-fPIC" SHLIB_SUFFIX=".so" SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS} -shared' - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_ntoa in -lnetwork" >&5 -$as_echo_n "checking for inet_ntoa in -lnetwork... " >&6; } -if ${ac_cv_lib_network_inet_ntoa+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inet_ntoa in -lnetwork" >&5 +printf %s "checking for inet_ntoa in -lnetwork... " >&6; } +if test ${ac_cv_lib_network_inet_ntoa+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lnetwork $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5207,30 +5928,29 @@ /* 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 inet_ntoa (); int -main () +main (void) { return inet_ntoa (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_network_inet_ntoa=yes -else +else $as_nop ac_cv_lib_network_inet_ntoa=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_network_inet_ntoa" >&5 -$as_echo "$ac_cv_lib_network_inet_ntoa" >&6; } -if test "x$ac_cv_lib_network_inet_ntoa" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_network_inet_ntoa" >&5 +printf "%s\n" "$ac_cv_lib_network_inet_ntoa" >&6; } +if test "x$ac_cv_lib_network_inet_ntoa" = xyes +then : LIBS="$LIBS -lnetwork" fi @@ -5238,13 +5958,14 @@ HP-UX-*.11.*) # Use updated header definitions where possible -$as_echo "#define _XOPEN_SOURCE_EXTENDED 1" >>confdefs.h +printf "%s\n" "#define _XOPEN_SOURCE_EXTENDED 1" >>confdefs.h # TEA specific: Needed by Tcl, but not most extensions #AC_DEFINE(_XOPEN_SOURCE, 1, [Do we want to use the XOPEN network library?]) #LIBS="$LIBS -lxnet" # Use the XOPEN network library - if test "`uname -m`" = ia64; then : + if test "`uname -m`" = ia64 +then : SHLIB_SUFFIX=".so" # Use newer C++ library for C++ extensions @@ -5252,16 +5973,17 @@ # CPPFLAGS="-AA" #fi -else +else $as_nop SHLIB_SUFFIX=".sl" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 -$as_echo_n "checking for shl_load in -ldld... " >&6; } -if ${ac_cv_lib_dld_shl_load+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +printf %s "checking for shl_load in -ldld... " >&6; } +if test ${ac_cv_lib_dld_shl_load+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5270,36 +5992,36 @@ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char shl_load (); int -main () +main (void) { return shl_load (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_dld_shl_load=yes -else +else $as_nop ac_cv_lib_dld_shl_load=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 -$as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes +then : tcl_ok=yes -else +else $as_nop tcl_ok=no fi - if test "$tcl_ok" = yes; then : + if test "$tcl_ok" = yes +then : LDFLAGS="$LDFLAGS -Wl,-E" CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.' @@ -5307,12 +6029,13 @@ LD_LIBRARY_PATH_VAR="SHLIB_PATH" fi - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : SHLIB_LD='${CC} -shared' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} -else +else $as_nop CFLAGS="$CFLAGS -z" # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc @@ -5323,28 +6046,31 @@ fi # Check to enable 64-bit flags for compiler/linker - if test "$do64bit" = "yes"; then : + if test "$do64bit" = "yes" +then : - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : case `${CC} -dumpmachine` in hppa64*) # 64-bit gcc in use. Fix flags for GNU ld. do64bit_ok=yes SHLIB_LD='${CC} -shared' - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' fi LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} ;; *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;} ;; esac -else +else $as_nop do64bit_ok=yes CFLAGS="$CFLAGS +DD64" @@ -5357,17 +6083,19 @@ SHLIB_CFLAGS="" SHLIB_LD="ld -n32 -shared -rdata_shared" SHLIB_SUFFIX=".so" - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' fi - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : CFLAGS="$CFLAGS -mabi=n32" LDFLAGS="$LDFLAGS -mabi=n32" -else +else $as_nop case $system in IRIX-6.3) @@ -5386,7 +6114,8 @@ SHLIB_CFLAGS="" SHLIB_LD="ld -n32 -shared -rdata_shared" SHLIB_SUFFIX=".so" - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' @@ -5394,14 +6123,16 @@ # Check to enable 64-bit flags for compiler/linker - if test "$do64bit" = yes; then : + if test "$do64bit" = yes +then : - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported by gcc" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported by gcc" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported by gcc" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported by gcc" >&2;} -else +else $as_nop do64bit_ok=yes SHLIB_LD="ld -64 -shared -rdata_shared" @@ -5422,21 +6153,25 @@ # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS_DEFAULT} -shared' LDFLAGS="$LDFLAGS -Wl,--export-dynamic" - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' fi LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} - if test "`uname -m`" = "alpha"; then : + if test "`uname -m`" = "alpha" +then : CFLAGS="$CFLAGS -mieee" fi - if test $do64bit = yes; then : + if test $do64bit = yes +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -m64 flag" >&5 -$as_echo_n "checking if compiler accepts -m64 flag... " >&6; } -if ${tcl_cv_cc_m64+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -m64 flag" >&5 +printf %s "checking if compiler accepts -m64 flag... " >&6; } +if test ${tcl_cv_cc_m64+y} +then : + printf %s "(cached) " >&6 +else $as_nop hold_cflags=$CFLAGS CFLAGS="$CFLAGS -m64" @@ -5444,25 +6179,27 @@ /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_cc_m64=yes -else +else $as_nop tcl_cv_cc_m64=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext CFLAGS=$hold_cflags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_m64" >&5 -$as_echo "$tcl_cv_cc_m64" >&6; } - if test $tcl_cv_cc_m64 = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_m64" >&5 +printf "%s\n" "$tcl_cv_cc_m64" >&6; } + if test $tcl_cv_cc_m64 = yes +then : CFLAGS="$CFLAGS -m64" do64bit_ok=yes @@ -5477,7 +6214,8 @@ # of overkill but it works. Disable inlining only when one of the # files in compat/*.c is being linked in. - if test x"${USE_COMPAT}" != x; then : + if test x"${USE_COMPAT}" != x +then : CFLAGS="$CFLAGS -fno-inline" fi ;; @@ -5487,7 +6225,8 @@ CFLAGS_OPTIMIZE=-02 SHLIB_LD='${CC} -shared' LD_FLAGS="-Wl,--export-dynamic" - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' @@ -5505,7 +6244,8 @@ esac SHLIB_LD='${CC} ${SHLIB_CFLAGS} -shared' SHLIB_SUFFIX=".so" - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' fi @@ -5513,7 +6253,8 @@ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so${SHLIB_VERSION}' LDFLAGS="-Wl,-export-dynamic" CFLAGS_OPTIMIZE="-O2" - if test "${TCL_THREADS}" = "1"; then : + if test "${TCL_THREADS}" = "1" +then : # On OpenBSD: Compile with -pthread # Don't link with -lpthread @@ -5531,12 +6272,14 @@ SHLIB_LD='${CC} ${SHLIB_CFLAGS} -shared' SHLIB_SUFFIX=".so" LDFLAGS="$LDFLAGS -export-dynamic" - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' fi LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} - if test "${TCL_THREADS}" = "1"; then : + if test "${TCL_THREADS}" = "1" +then : # The -pthread needs to go in the CFLAGS, not LIBS LIBS=`echo $LIBS | sed s/-pthread//` @@ -5552,12 +6295,14 @@ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,-soname,\$@" SHLIB_SUFFIX=".so" LDFLAGS="" - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' fi - if test "${TCL_THREADS}" = "1"; then : + if test "${TCL_THREADS}" = "1" +then : # The -pthread needs to go in the LDFLAGS, not LIBS LIBS=`echo $LIBS | sed s/-pthread//` @@ -5586,15 +6331,17 @@ CFLAGS="`echo " ${CFLAGS}" | \ awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ if (!($i~/^(isysroot|mmacosx-version-min)/)) print "-"$i}'`" - if test $do64bit = yes; then : + if test $do64bit = yes +then : case `arch` in ppc) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -arch ppc64 flag" >&5 -$as_echo_n "checking if compiler accepts -arch ppc64 flag... " >&6; } -if ${tcl_cv_cc_arch_ppc64+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -arch ppc64 flag" >&5 +printf %s "checking if compiler accepts -arch ppc64 flag... " >&6; } +if test ${tcl_cv_cc_arch_ppc64+y} +then : + printf %s "(cached) " >&6 +else $as_nop hold_cflags=$CFLAGS CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" @@ -5602,36 +6349,39 @@ /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_cc_arch_ppc64=yes -else +else $as_nop tcl_cv_cc_arch_ppc64=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext CFLAGS=$hold_cflags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_arch_ppc64" >&5 -$as_echo "$tcl_cv_cc_arch_ppc64" >&6; } - if test $tcl_cv_cc_arch_ppc64 = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_arch_ppc64" >&5 +printf "%s\n" "$tcl_cv_cc_arch_ppc64" >&6; } + if test $tcl_cv_cc_arch_ppc64 = yes +then : CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" do64bit_ok=yes fi;; i386) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -arch x86_64 flag" >&5 -$as_echo_n "checking if compiler accepts -arch x86_64 flag... " >&6; } -if ${tcl_cv_cc_arch_x86_64+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -arch x86_64 flag" >&5 +printf %s "checking if compiler accepts -arch x86_64 flag... " >&6; } +if test ${tcl_cv_cc_arch_x86_64+y} +then : + printf %s "(cached) " >&6 +else $as_nop hold_cflags=$CFLAGS CFLAGS="$CFLAGS -arch x86_64" @@ -5639,40 +6389,43 @@ /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_cc_arch_x86_64=yes -else +else $as_nop tcl_cv_cc_arch_x86_64=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext CFLAGS=$hold_cflags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_arch_x86_64" >&5 -$as_echo "$tcl_cv_cc_arch_x86_64" >&6; } - if test $tcl_cv_cc_arch_x86_64 = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_arch_x86_64" >&5 +printf "%s\n" "$tcl_cv_cc_arch_x86_64" >&6; } + if test $tcl_cv_cc_arch_x86_64 = yes +then : CFLAGS="$CFLAGS -arch x86_64" do64bit_ok=yes fi;; *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&5 -$as_echo "$as_me: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&2;};; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&5 +printf "%s\n" "$as_me: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&2;};; esac -else +else $as_nop # Check for combined 32-bit and 64-bit fat build if echo "$CFLAGS " |grep -E -q -- '-arch (ppc64|x86_64) ' \ - && echo "$CFLAGS " |grep -E -q -- '-arch (ppc|i386) '; then : + && echo "$CFLAGS " |grep -E -q -- '-arch (ppc|i386) ' +then : fat_32_64=yes fi @@ -5680,11 +6433,12 @@ fi # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS_DEFAULT}' - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ld accepts -single_module flag" >&5 -$as_echo_n "checking if ld accepts -single_module flag... " >&6; } -if ${tcl_cv_ld_single_module+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ld accepts -single_module flag" >&5 +printf %s "checking if ld accepts -single_module flag... " >&6; } +if test ${tcl_cv_ld_single_module+y} +then : + printf %s "(cached) " >&6 +else $as_nop hold_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module" @@ -5692,25 +6446,27 @@ /* end confdefs.h. */ int -main () +main (void) { int i; ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_ld_single_module=yes -else +else $as_nop tcl_cv_ld_single_module=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$hold_ldflags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_single_module" >&5 -$as_echo "$tcl_cv_ld_single_module" >&6; } - if test $tcl_cv_ld_single_module = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_single_module" >&5 +printf "%s\n" "$tcl_cv_ld_single_module" >&6; } + if test $tcl_cv_ld_single_module = yes +then : SHLIB_LD="${SHLIB_LD} -Wl,-single_module" @@ -5721,16 +6477,18 @@ SHLIB_SUFFIX=".dylib" # Don't use -prebind when building for Mac OS X 10.4 or later only: if test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int($2)}'`" -lt 4 -a \ - "`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int($2)}'`" -lt 4; then : + "`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int($2)}'`" -lt 4 +then : LDFLAGS="$LDFLAGS -prebind" fi LDFLAGS="$LDFLAGS -headerpad_max_install_names" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ld accepts -search_paths_first flag" >&5 -$as_echo_n "checking if ld accepts -search_paths_first flag... " >&6; } -if ${tcl_cv_ld_search_paths_first+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ld accepts -search_paths_first flag" >&5 +printf %s "checking if ld accepts -search_paths_first flag... " >&6; } +if test ${tcl_cv_ld_search_paths_first+y} +then : + printf %s "(cached) " >&6 +else $as_nop hold_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-search_paths_first" @@ -5738,33 +6496,36 @@ /* end confdefs.h. */ int -main () +main (void) { int i; ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_ld_search_paths_first=yes -else +else $as_nop tcl_cv_ld_search_paths_first=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$hold_ldflags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_search_paths_first" >&5 -$as_echo "$tcl_cv_ld_search_paths_first" >&6; } - if test $tcl_cv_ld_search_paths_first = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_search_paths_first" >&5 +printf "%s\n" "$tcl_cv_ld_search_paths_first" >&6; } + if test $tcl_cv_ld_search_paths_first = yes +then : LDFLAGS="$LDFLAGS -Wl,-search_paths_first" fi - if test "$tcl_cv_cc_visibility_hidden" != yes; then : + if test "$tcl_cv_cc_visibility_hidden" != yes +then : -$as_echo "#define MODULE_SCOPE __private_extern__" >>confdefs.h +printf "%s\n" "#define MODULE_SCOPE __private_extern__" >>confdefs.h tcl_cv_cc_visibility_hidden=yes @@ -5774,15 +6535,18 @@ LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH" # TEA specific: for combined 32 & 64 bit fat builds of Tk # extensions, verify that 64-bit build is possible. - if test "$fat_32_64" = yes && test -n "${TK_BIN_DIR}"; then : + if test "$fat_32_64" = yes && test -n "${TK_BIN_DIR}" +then : - if test "${TEA_WINDOWINGSYSTEM}" = x11; then : + if test "${TEA_WINDOWINGSYSTEM}" = x11 +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit X11" >&5 -$as_echo_n "checking for 64-bit X11... " >&6; } -if ${tcl_cv_lib_x11_64+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit X11" >&5 +printf %s "checking for 64-bit X11... " >&6; } +if test ${tcl_cv_lib_x11_64+y} +then : + printf %s "(cached) " >&6 +else $as_nop for v in CFLAGS CPPFLAGS LDFLAGS; do eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' @@ -5793,35 +6557,38 @@ /* end confdefs.h. */ #include int -main () +main (void) { XrmInitialize(); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_lib_x11_64=yes -else +else $as_nop tcl_cv_lib_x11_64=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext for v in CFLAGS CPPFLAGS LDFLAGS; do eval $v'="$hold_'$v'"' done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_lib_x11_64" >&5 -$as_echo "$tcl_cv_lib_x11_64" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_lib_x11_64" >&5 +printf "%s\n" "$tcl_cv_lib_x11_64" >&6; } fi - if test "${TEA_WINDOWINGSYSTEM}" = aqua; then : + if test "${TEA_WINDOWINGSYSTEM}" = aqua +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit Tk" >&5 -$as_echo_n "checking for 64-bit Tk... " >&6; } -if ${tcl_cv_lib_tk_64+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit Tk" >&5 +printf %s "checking for 64-bit Tk... " >&6; } +if test ${tcl_cv_lib_tk_64+y} +then : + printf %s "(cached) " >&6 +else $as_nop for v in CFLAGS CPPFLAGS LDFLAGS; do eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' @@ -5832,34 +6599,36 @@ /* end confdefs.h. */ #include int -main () +main (void) { Tk_InitStubs(NULL, "", 0); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_lib_tk_64=yes -else +else $as_nop tcl_cv_lib_tk_64=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext for v in CFLAGS CPPFLAGS LDFLAGS; do eval $v'="$hold_'$v'"' done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_lib_tk_64" >&5 -$as_echo "$tcl_cv_lib_tk_64" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_lib_tk_64" >&5 +printf "%s\n" "$tcl_cv_lib_tk_64" >&6; } fi # remove 64-bit arch flags from CFLAGS et al. if configuration # does not support 64-bit. - if test "$tcl_cv_lib_tk_64" = no -o "$tcl_cv_lib_x11_64" = no; then : + if test "$tcl_cv_lib_tk_64" = no -o "$tcl_cv_lib_x11_64" = no +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: Removing 64-bit architectures from compiler & linker flags" >&5 -$as_echo "$as_me: Removing 64-bit architectures from compiler & linker flags" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Removing 64-bit architectures from compiler & linker flags" >&5 +printf "%s\n" "$as_me: Removing 64-bit architectures from compiler & linker flags" >&6;} for v in CFLAGS CPPFLAGS LDFLAGS; do eval $v'="`echo "$'$v' "|sed -e "s/-arch ppc64 / /g" -e "s/-arch x86_64 / /g"`"' done @@ -5870,44 +6639,49 @@ OS/390-*) CFLAGS_OPTIMIZE="" # Optimizer is buggy -$as_echo "#define _OE_SOCKETS 1" >>confdefs.h +printf "%s\n" "#define _OE_SOCKETS 1" >>confdefs.h ;; OSF1-V*) # Digital OSF/1 SHLIB_CFLAGS="" - if test "$SHARED_BUILD" = 1; then : + if test "$SHARED_BUILD" = 1 +then : SHLIB_LD='ld -shared -expect_unresolved "*"' -else +else $as_nop SHLIB_LD='ld -non_shared -expect_unresolved "*"' fi SHLIB_SUFFIX=".so" - if test $doRpath = yes; then : + if test $doRpath = yes +then : CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' fi - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : CFLAGS="$CFLAGS -mieee" -else +else $as_nop CFLAGS="$CFLAGS -DHAVE_TZSET -std1 -ieee" fi # see pthread_intro(3) for pthread support on osf1, k.furukawa - if test "${TCL_THREADS}" = 1; then : + if test "${TCL_THREADS}" = 1 +then : CFLAGS="$CFLAGS -DHAVE_PTHREAD_ATTR_SETSTACKSIZE" CFLAGS="$CFLAGS -DTCL_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64" LIBS=`echo $LIBS | sed s/-lpthreads//` - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : LIBS="$LIBS -lpthread -lmach -lexc" -else +else $as_nop CFLAGS="$CFLAGS -pthread" LDFLAGS="$LDFLAGS -pthread" @@ -5927,12 +6701,13 @@ LD_SEARCH_FLAGS="" ;; SCO_SV-3.2*) - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : SHLIB_CFLAGS="-fPIC -melf" LDFLAGS="$LDFLAGS -melf -Wl,-Bexport" -else +else $as_nop SHLIB_CFLAGS="-Kpic -belf" LDFLAGS="$LDFLAGS -belf -Wl,-Bexport" @@ -5951,21 +6726,22 @@ # won't define thread-safe library routines. -$as_echo "#define _REENTRANT 1" >>confdefs.h +printf "%s\n" "#define _REENTRANT 1" >>confdefs.h -$as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h +printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h SHLIB_CFLAGS="-KPIC" SHLIB_SUFFIX=".so" - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : SHLIB_LD='${CC} -shared' CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} -else +else $as_nop SHLIB_LD="/usr/ccs/bin/ld -G -z text" CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' @@ -5978,28 +6754,32 @@ # won't define thread-safe library routines. -$as_echo "#define _REENTRANT 1" >>confdefs.h +printf "%s\n" "#define _REENTRANT 1" >>confdefs.h -$as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h +printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h SHLIB_CFLAGS="-KPIC" # Check to enable 64-bit flags for compiler/linker - if test "$do64bit" = yes; then : + if test "$do64bit" = yes +then : arch=`isainfo` - if test "$arch" = "sparcv9 sparc"; then : + if test "$arch" = "sparcv9 sparc" +then : - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : - if test "`${CC} -dumpversion | awk -F. '{print $1}'`" -lt 3; then : + if test "`${CC} -dumpversion | awk -F. '{print $1}'`" -lt 3 +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&2;} -else +else $as_nop do64bit_ok=yes CFLAGS="$CFLAGS -m64 -mcpu=v9" @@ -6008,15 +6788,16 @@ fi -else +else $as_nop do64bit_ok=yes - if test "$do64bitVIS" = yes; then : + if test "$do64bitVIS" = yes +then : CFLAGS="$CFLAGS -xarch=v9a" LDFLAGS_ARCH="-xarch=v9a" -else +else $as_nop CFLAGS="$CFLAGS -xarch=v9" LDFLAGS_ARCH="-xarch=v9" @@ -6027,10 +6808,12 @@ fi -else - if test "$arch" = "amd64 i386"; then : +else $as_nop + if test "$arch" = "amd64 i386" +then : - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : case $system in SunOS-5.1[1-9]*|SunOS-5.[2-9][0-9]*) @@ -6038,11 +6821,11 @@ CFLAGS="$CFLAGS -m64" LDFLAGS="$LDFLAGS -m64";; *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;};; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;};; esac -else +else $as_nop do64bit_ok=yes case $system in @@ -6056,23 +6839,26 @@ fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported for $arch" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported for $arch" >&2;} +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported for $arch" >&5 +printf "%s\n" "$as_me: WARNING: 64bit mode not supported for $arch" >&2;} fi fi fi SHLIB_SUFFIX=".so" - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : SHLIB_LD='${CC} -shared' CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} - if test "$do64bit_ok" = yes; then : + if test "$do64bit_ok" = yes +then : - if test "$arch" = "sparcv9 sparc"; then : + if test "$arch" = "sparcv9 sparc" +then : # We need to specify -static-libgcc or we need to # add the path to the sparv9 libgcc. @@ -6084,8 +6870,9 @@ #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..." #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir" -else - if test "$arch" = "amd64 i386"; then : +else $as_nop + if test "$arch" = "amd64 i386" +then : # JH: static-libgcc is necessary for core Tcl, but may # not be necessary for extensions. @@ -6096,7 +6883,7 @@ fi -else +else $as_nop case $system in SunOS-5.[1-9][0-9]*) @@ -6117,11 +6904,12 @@ SHLIB_SUFFIX=".so" # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers # that don't grok the -Bexport option. Test that it does. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld accepts -Bexport flag" >&5 -$as_echo_n "checking for ld accepts -Bexport flag... " >&6; } -if ${tcl_cv_ld_Bexport+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld accepts -Bexport flag" >&5 +printf %s "checking for ld accepts -Bexport flag... " >&6; } +if test ${tcl_cv_ld_Bexport+y} +then : + printf %s "(cached) " >&6 +else $as_nop hold_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-Bexport" @@ -6129,25 +6917,27 @@ /* end confdefs.h. */ int -main () +main (void) { int i; ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : tcl_cv_ld_Bexport=yes -else +else $as_nop tcl_cv_ld_Bexport=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$hold_ldflags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_Bexport" >&5 -$as_echo "$tcl_cv_ld_Bexport" >&6; } - if test $tcl_cv_ld_Bexport = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_Bexport" >&5 +printf "%s\n" "$tcl_cv_ld_Bexport" >&6; } + if test $tcl_cv_ld_Bexport = yes +then : LDFLAGS="$LDFLAGS -Wl,-Bexport" @@ -6157,10 +6947,11 @@ ;; esac - if test "$do64bit" = yes -a "$do64bit_ok" = no; then : + if test "$do64bit" = yes -a "$do64bit_ok" = no +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit support being disabled -- don't know magic for this platform" >&5 -$as_echo "$as_me: WARNING: 64bit support being disabled -- don't know magic for this platform" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 64bit support being disabled -- don't know magic for this platform" >&5 +printf "%s\n" "$as_me: WARNING: 64bit support being disabled -- don't know magic for this platform" >&2;} fi @@ -6174,7 +6965,8 @@ # libraries to the right flags for gcc, instead of those for the # standard manufacturer compiler. - if test "$GCC" = yes; then : + if test "$GCC" = yes +then : case $system in AIX-*) ;; @@ -6189,34 +6981,39 @@ esac fi - if test "$tcl_cv_cc_visibility_hidden" != yes; then : + if test "$tcl_cv_cc_visibility_hidden" != yes +then : -$as_echo "#define MODULE_SCOPE extern" >>confdefs.h +printf "%s\n" "#define MODULE_SCOPE extern" >>confdefs.h fi - if test "$SHARED_LIB_SUFFIX" = ""; then : + if test "$SHARED_LIB_SUFFIX" = "" +then : # TEA specific: use PACKAGE_VERSION instead of VERSION SHARED_LIB_SUFFIX='${PACKAGE_VERSION}${SHLIB_SUFFIX}' fi - if test "$UNSHARED_LIB_SUFFIX" = ""; then : + if test "$UNSHARED_LIB_SUFFIX" = "" +then : # TEA specific: use PACKAGE_VERSION instead of VERSION UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a' fi if test "${GCC}" = "yes" -a ${SHLIB_SUFFIX} = ".dll"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SEH support in compiler" >&5 -$as_echo_n "checking for SEH support in compiler... " >&6; } -if ${tcl_cv_seh+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SEH support in compiler" >&5 +printf %s "checking for SEH support in compiler... " >&6; } +if test ${tcl_cv_seh+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : tcl_cv_seh=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -6236,9 +7033,10 @@ } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : tcl_cv_seh=yes -else +else $as_nop tcl_cv_seh=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -6247,11 +7045,11 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_seh" >&5 -$as_echo "$tcl_cv_seh" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_seh" >&5 +printf "%s\n" "$tcl_cv_seh" >&6; } if test "$tcl_cv_seh" = "no" ; then -$as_echo "#define HAVE_NO_SEH 1" >>confdefs.h +printf "%s\n" "#define HAVE_NO_SEH 1" >>confdefs.h fi @@ -6261,11 +7059,12 @@ # with Cygwin's version as of 2002-04-10, define it to be int, # sufficient for getting the current code to work. # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EXCEPTION_DISPOSITION support in include files" >&5 -$as_echo_n "checking for EXCEPTION_DISPOSITION support in include files... " >&6; } -if ${tcl_cv_eh_disposition+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EXCEPTION_DISPOSITION support in include files" >&5 +printf %s "checking for EXCEPTION_DISPOSITION support in include files... " >&6; } +if test ${tcl_cv_eh_disposition+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -6274,7 +7073,7 @@ # undef WIN32_LEAN_AND_MEAN int -main () +main (void) { EXCEPTION_DISPOSITION x; @@ -6283,19 +7082,20 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_eh_disposition=yes -else +else $as_nop tcl_cv_eh_disposition=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_eh_disposition" >&5 -$as_echo "$tcl_cv_eh_disposition" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_eh_disposition" >&5 +printf "%s\n" "$tcl_cv_eh_disposition" >&6; } if test "$tcl_cv_eh_disposition" = "no" ; then -$as_echo "#define EXCEPTION_DISPOSITION int" >>confdefs.h +printf "%s\n" "#define EXCEPTION_DISPOSITION int" >>confdefs.h fi @@ -6303,11 +7103,12 @@ # even if VOID has already been #defined. The win32api # used by mingw and cygwin is known to do this. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winnt.h that ignores VOID define" >&5 -$as_echo_n "checking for winnt.h that ignores VOID define... " >&6; } -if ${tcl_cv_winnt_ignore_void+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for winnt.h that ignores VOID define" >&5 +printf %s "checking for winnt.h that ignores VOID define... " >&6; } +if test ${tcl_cv_winnt_ignore_void+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -6317,7 +7118,7 @@ #undef WIN32_LEAN_AND_MEAN int -main () +main (void) { CHAR c; @@ -6328,19 +7129,20 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_winnt_ignore_void=yes -else +else $as_nop tcl_cv_winnt_ignore_void=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_winnt_ignore_void" >&5 -$as_echo "$tcl_cv_winnt_ignore_void" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_winnt_ignore_void" >&5 +printf "%s\n" "$tcl_cv_winnt_ignore_void" >&6; } if test "$tcl_cv_winnt_ignore_void" = "yes" ; then -$as_echo "#define HAVE_WINNT_IGNORE_VOID 1" >>confdefs.h +printf "%s\n" "#define HAVE_WINNT_IGNORE_VOID 1" >>confdefs.h fi fi @@ -6349,16 +7151,17 @@ # This is used to stop gcc from printing a compiler # warning when initializing a union member. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cast to union support" >&5 -$as_echo_n "checking for cast to union support... " >&6; } -if ${tcl_cv_cast_to_union+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cast to union support" >&5 +printf %s "checking for cast to union support... " >&6; } +if test ${tcl_cv_cast_to_union+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { union foo { int i; double d; }; @@ -6368,19 +7171,20 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_cast_to_union=yes -else +else $as_nop tcl_cv_cast_to_union=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cast_to_union" >&5 -$as_echo "$tcl_cv_cast_to_union" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cast_to_union" >&5 +printf "%s\n" "$tcl_cv_cast_to_union" >&6; } if test "$tcl_cv_cast_to_union" = "yes"; then -$as_echo "#define HAVE_CAST_TO_UNION 1" >>confdefs.h +printf "%s\n" "#define HAVE_CAST_TO_UNION 1" >>confdefs.h fi @@ -6399,164 +7203,174 @@ # These must be called after we do the basic CFLAGS checks and # verify any possible 64-bit or similar switches are necessary - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for required early compiler flags" >&5 -$as_echo_n "checking for required early compiler flags... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for required early compiler flags" >&5 +printf %s "checking for required early compiler flags... " >&6; } tcl_flags="" - if ${tcl_cv_flag__isoc99_source+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${tcl_cv_flag__isoc99_source+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { char *p = (char *)strtoll; char *q = (char *)strtoull; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_flag__isoc99_source=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _ISOC99_SOURCE 1 #include int -main () +main (void) { char *p = (char *)strtoll; char *q = (char *)strtoull; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_flag__isoc99_source=yes -else +else $as_nop tcl_cv_flag__isoc99_source=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "x${tcl_cv_flag__isoc99_source}" = "xyes" ; then -$as_echo "#define _ISOC99_SOURCE 1" >>confdefs.h +printf "%s\n" "#define _ISOC99_SOURCE 1" >>confdefs.h tcl_flags="$tcl_flags _ISOC99_SOURCE" fi - if ${tcl_cv_flag__largefile64_source+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${tcl_cv_flag__largefile64_source+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { struct stat64 buf; int i = stat64("/", &buf); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_flag__largefile64_source=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGEFILE64_SOURCE 1 #include int -main () +main (void) { struct stat64 buf; int i = stat64("/", &buf); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_flag__largefile64_source=yes -else +else $as_nop tcl_cv_flag__largefile64_source=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "x${tcl_cv_flag__largefile64_source}" = "xyes" ; then -$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h +printf "%s\n" "#define _LARGEFILE64_SOURCE 1" >>confdefs.h tcl_flags="$tcl_flags _LARGEFILE64_SOURCE" fi - if ${tcl_cv_flag__largefile_source64+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${tcl_cv_flag__largefile_source64+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { char *p = (char *)open64; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_flag__largefile_source64=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGEFILE_SOURCE64 1 #include int -main () +main (void) { char *p = (char *)open64; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_flag__largefile_source64=yes -else +else $as_nop tcl_cv_flag__largefile_source64=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "x${tcl_cv_flag__largefile_source64}" = "xyes" ; then -$as_echo "#define _LARGEFILE_SOURCE64 1" >>confdefs.h +printf "%s\n" "#define _LARGEFILE_SOURCE64 1" >>confdefs.h tcl_flags="$tcl_flags _LARGEFILE_SOURCE64" fi if test "x${tcl_flags}" = "x" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf "%s\n" "none" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${tcl_flags}" >&5 -$as_echo "${tcl_flags}" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${tcl_flags}" >&5 +printf "%s\n" "${tcl_flags}" >&6; } fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit integer type" >&5 -$as_echo_n "checking for 64-bit integer type... " >&6; } - if ${tcl_cv_type_64bit+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit integer type" >&5 +printf %s "checking for 64-bit integer type... " >&6; } + if test ${tcl_cv_type_64bit+y} +then : + printf %s "(cached) " >&6 +else $as_nop tcl_cv_type_64bit=none # See if the compiler knows natively about __int64 @@ -6564,19 +7378,20 @@ /* end confdefs.h. */ int -main () +main (void) { __int64 value = (__int64) 0; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_type_64bit=__int64 -else +else $as_nop tcl_type_64bit="long long" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # See if we should use long anyway Note that we substitute in the # type that is our current guess for a 64-bit type inside this check # program, so it should be modified only carefully... @@ -6584,7 +7399,7 @@ /* end confdefs.h. */ int -main () +main (void) { switch (0) { case 1: case (sizeof(${tcl_type_64bit})==sizeof(long)): ; @@ -6593,78 +7408,80 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_type_64bit=${tcl_type_64bit} fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "${tcl_cv_type_64bit}" = none ; then -$as_echo "#define TCL_WIDE_INT_IS_LONG 1" >>confdefs.h +printf "%s\n" "#define TCL_WIDE_INT_IS_LONG 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: using long" >&5 -$as_echo "using long" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using long" >&5 +printf "%s\n" "using long" >&6; } elif test "${tcl_cv_type_64bit}" = "__int64" \ -a "${TEA_PLATFORM}" = "windows" ; then # TEA specific: We actually want to use the default tcl.h checks in # this case to handle both TCL_WIDE_INT_TYPE and TCL_LL_MODIFIER* - { $as_echo "$as_me:${as_lineno-$LINENO}: result: using Tcl header defaults" >&5 -$as_echo "using Tcl header defaults" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using Tcl header defaults" >&5 +printf "%s\n" "using Tcl header defaults" >&6; } else -cat >>confdefs.h <<_ACEOF -#define TCL_WIDE_INT_TYPE ${tcl_cv_type_64bit} -_ACEOF +printf "%s\n" "#define TCL_WIDE_INT_TYPE ${tcl_cv_type_64bit}" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${tcl_cv_type_64bit}" >&5 -$as_echo "${tcl_cv_type_64bit}" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${tcl_cv_type_64bit}" >&5 +printf "%s\n" "${tcl_cv_type_64bit}" >&6; } # Now check for auxiliary declarations - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct dirent64" >&5 -$as_echo_n "checking for struct dirent64... " >&6; } -if ${tcl_cv_struct_dirent64+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct dirent64" >&5 +printf %s "checking for struct dirent64... " >&6; } +if test ${tcl_cv_struct_dirent64+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int -main () +main (void) { struct dirent64 p; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_struct_dirent64=yes -else +else $as_nop tcl_cv_struct_dirent64=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_struct_dirent64" >&5 -$as_echo "$tcl_cv_struct_dirent64" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_struct_dirent64" >&5 +printf "%s\n" "$tcl_cv_struct_dirent64" >&6; } if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then -$as_echo "#define HAVE_STRUCT_DIRENT64 1" >>confdefs.h +printf "%s\n" "#define HAVE_STRUCT_DIRENT64 1" >>confdefs.h fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct stat64" >&5 -$as_echo_n "checking for struct stat64... " >&6; } -if ${tcl_cv_struct_stat64+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct stat64" >&5 +printf %s "checking for struct stat64... " >&6; } +if test ${tcl_cv_struct_stat64+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { struct stat64 p; @@ -6672,44 +7489,47 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_struct_stat64=yes -else +else $as_nop tcl_cv_struct_stat64=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_struct_stat64" >&5 -$as_echo "$tcl_cv_struct_stat64" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_struct_stat64" >&5 +printf "%s\n" "$tcl_cv_struct_stat64" >&6; } if test "x${tcl_cv_struct_stat64}" = "xyes" ; then -$as_echo "#define HAVE_STRUCT_STAT64 1" >>confdefs.h +printf "%s\n" "#define HAVE_STRUCT_STAT64 1" >>confdefs.h fi - for ac_func in open64 lseek64 -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF + ac_fn_c_check_func "$LINENO" "open64" "ac_cv_func_open64" +if test "x$ac_cv_func_open64" = xyes +then : + printf "%s\n" "#define HAVE_OPEN64 1" >>confdefs.h fi -done +ac_fn_c_check_func "$LINENO" "lseek64" "ac_cv_func_lseek64" +if test "x$ac_cv_func_lseek64" = xyes +then : + printf "%s\n" "#define HAVE_LSEEK64 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for off64_t" >&5 -$as_echo_n "checking for off64_t... " >&6; } - if ${tcl_cv_type_off64_t+:} false; then : - $as_echo_n "(cached) " >&6 -else +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for off64_t" >&5 +printf %s "checking for off64_t... " >&6; } + if test ${tcl_cv_type_off64_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { off64_t offset; @@ -6717,25 +7537,26 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : tcl_cv_type_off64_t=yes -else +else $as_nop tcl_cv_type_off64_t=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "x${tcl_cv_type_off64_t}" = "xyes" && \ test "x${ac_cv_func_lseek64}" = "xyes" && \ test "x${ac_cv_func_open64}" = "xyes" ; then -$as_echo "#define HAVE_TYPE_OFF64_T 1" >>confdefs.h +printf "%s\n" "#define HAVE_TYPE_OFF64_T 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi fi @@ -6747,12 +7568,13 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for build with symbols" >&5 -$as_echo_n "checking for build with symbols... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for build with symbols" >&5 +printf %s "checking for build with symbols... " >&6; } # Check whether --enable-symbols was given. -if test "${enable_symbols+set}" = set; then : +if test ${enable_symbols+y} +then : enableval=$enable_symbols; tcl_ok=$enableval -else +else $as_nop tcl_ok=no fi @@ -6760,14 +7582,14 @@ if test "$tcl_ok" = "no"; then CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE} -DNDEBUG" LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } else CFLAGS_DEFAULT="${CFLAGS_DEBUG}" LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}" if test "$tcl_ok" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (standard debugging)" >&5 -$as_echo "yes (standard debugging)" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes (standard debugging)" >&5 +printf "%s\n" "yes (standard debugging)" >&6; } fi fi # TEA specific: @@ -6780,17 +7602,17 @@ if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then -$as_echo "#define TCL_MEM_DEBUG 1" >>confdefs.h +printf "%s\n" "#define TCL_MEM_DEBUG 1" >>confdefs.h fi if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then if test "$tcl_ok" = "all"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabled symbols mem debugging" >&5 -$as_echo "enabled symbols mem debugging" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: enabled symbols mem debugging" >&5 +printf "%s\n" "enabled symbols mem debugging" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabled $tcl_ok debugging" >&5 -$as_echo "enabled $tcl_ok debugging" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: enabled $tcl_ok debugging" >&5 +printf "%s\n" "enabled $tcl_ok debugging" >&6; } fi fi @@ -6799,9 +7621,10 @@ # Check whether --with-arch was given. -if test "${with_arch+set}" = set; then : +if test ${with_arch+y} +then : withval=$with_arch; -else +else $as_nop with_arch=unknown fi @@ -6816,11 +7639,12 @@ exec_prefix=$ac_pwd - { $as_echo "$as_me:${as_lineno-$LINENO}: checking system version" >&5 -$as_echo_n "checking system version... " >&6; } -if ${tcl_cv_sys_version+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking system version" >&5 +printf %s "checking system version... " >&6; } +if test ${tcl_cv_sys_version+y} +then : + printf %s "(cached) " >&6 +else $as_nop # TEA specific: if test "${TEA_PLATFORM}" = "windows" ; then @@ -6828,8 +7652,8 @@ else tcl_cv_sys_version=`uname -s`-`uname -r` if test "$?" -ne 0 ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: can't find uname command" >&5 -$as_echo "$as_me: WARNING: can't find uname command" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: can't find uname command" >&5 +printf "%s\n" "$as_me: WARNING: can't find uname command" >&2;} tcl_cv_sys_version=unknown else if test "`uname -s`" = "AIX" ; then @@ -6839,17 +7663,27 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_sys_version" >&5 -$as_echo "$tcl_cv_sys_version" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_sys_version" >&5 +printf "%s\n" "$tcl_cv_sys_version" >&6; } system=$tcl_cv_sys_version +XML2CONFIG=`which xml2-config` +XSLTCONFIG=`which xslt-config` + case $system in Darwin* ) TKFLAGS="--disable-corefoundation" - SSLCONFIG="./Configure darwin64-x86_64-cc" + case `arch` in + i386) + SSLCONFIG="./Configure darwin64-x86_64-cc" + ;; + arm64) + SSLCONFIG="./Configure darwin64-arm64-cc" + ;; + esac CORES=`sysctl -n "hw.ncpu"` ;; CYGWIN* ) @@ -6872,6 +7706,9 @@ + + + #-------------------------------------------------------------------- # Specify files to substitute AC variables in. You may alternatively # have a special pkgIndex.tcl.in or other files which require @@ -6913,8 +7750,8 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -6944,15 +7781,15 @@ /^ac_cv_env_/b end t clear :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else @@ -6966,8 +7803,8 @@ fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -7020,7 +7857,7 @@ for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" @@ -7038,8 +7875,8 @@ ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL @@ -7062,14 +7899,16 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else +else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -7079,46 +7918,46 @@ fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || @@ -7127,13 +7966,6 @@ fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( @@ -7142,8 +7974,12 @@ for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS @@ -7155,30 +7991,10 @@ as_myself=$0 fi if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] @@ -7191,13 +8007,14 @@ as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error + # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -7224,18 +8041,20 @@ { eval $1=; unset $1;} } as_unset=as_fn_unset + # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : eval 'as_fn_append () { eval $1+=\$2 }' -else +else $as_nop as_fn_append () { eval $1=\$$1\$2 @@ -7247,12 +8066,13 @@ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else +else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` @@ -7283,7 +8103,7 @@ $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -7305,6 +8125,10 @@ as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -7318,6 +8142,12 @@ ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -7359,7 +8189,7 @@ as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -7368,7 +8198,7 @@ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -7430,8 +8260,8 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by saods9 $as_me 8.2, which was -generated by GNU Autoconf 2.69. Invocation command line was +This file was extended by saods9 $as_me 8.3, which was +generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -7480,14 +8310,16 @@ Report bugs to the package provider." _ACEOF +ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -saods9 config.status 8.2 -configured by $0, generated by GNU Autoconf 2.69, +saods9 config.status 8.3 +configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -7524,21 +8356,21 @@ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; + printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; + printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; + printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; @@ -7566,7 +8398,7 @@ if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" @@ -7580,7 +8412,7 @@ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX - $as_echo "$ac_log" + printf "%s\n" "$ac_log" } >&5 _ACEOF @@ -7605,7 +8437,7 @@ # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree @@ -7833,7 +8665,7 @@ esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done @@ -7841,17 +8673,17 @@ # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | + ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac @@ -7868,7 +8700,7 @@ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | +printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -7892,9 +8724,9 @@ case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -7947,8 +8779,8 @@ case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' @@ -7990,9 +8822,9 @@ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" @@ -8039,7 +8871,8 @@ $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi + diff -Nru saods9-8.2+repack/unix/configure.ac saods9-8.3+repack/unix/configure.ac --- saods9-8.2+repack/unix/configure.ac 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/unix/configure.ac 2021-11-08 15:46:07.000000000 +0000 @@ -19,7 +19,7 @@ # so that we create the export library with the dll. #----------------------------------------------------------------------- -AC_INIT([saods9], [8.2]) +AC_INIT([saods9], [8.3]) #-------------------------------------------------------------------- # Call TEA_INIT as the first TEA_ macro to set up initial vars. @@ -77,12 +77,22 @@ TEA_CONFIG_SYSTEM +XML2CONFIG=`which xml2-config` +XSLTCONFIG=`which xslt-config` + case $system in Darwin* ) TKFLAGS="--disable-corefoundation" AC_SUBST(TKFLAGS) - SSLCONFIG="./Configure darwin64-x86_64-cc" + case `arch` in + i386) + SSLCONFIG="./Configure darwin64-x86_64-cc" + ;; + arm64) + SSLCONFIG="./Configure darwin64-arm64-cc" + ;; + esac CORES=`sysctl -n "hw.ncpu"` ;; CYGWIN* ) @@ -102,6 +112,9 @@ CORES=1 ;; esac + +AC_SUBST(XML2CONFIG) +AC_SUBST(XSLTCONFIG) AC_SUBST(SSLCONFIG) AC_SUBST(CORES) diff -Nru saods9-8.2+repack/unix/Makefile.in saods9-8.3+repack/unix/Makefile.in --- saods9-8.2+repack/unix/Makefile.in 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/unix/Makefile.in 2021-11-08 15:46:07.000000000 +0000 @@ -14,6 +14,8 @@ TKFLAGS = @TKFLAGS@ SSLCONFIG = @SSLCONFIG@ JOBS = @CORES@ +XML2CONFIG = @XML2CONFIG@ +XSLTCONFIG = @XSLTCONFIG@ include ./make.include @@ -32,7 +34,7 @@ tcliis tclsignal \ tclzipfs tls tclxml \ tkblt tclfitsy tktable tkimg \ - tkmpeg tkagif tkhtml1 tkcon \ + tkmpeg tksvg tkagif tkhtml1 tkcon \ tksao ds9 tcl : tcl$(TCL_VERSION)/unix/Makefile diff -Nru saods9-8.2+repack/util/FlexLexer.h saods9-8.3+repack/util/FlexLexer.h --- saods9-8.2+repack/util/FlexLexer.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/util/FlexLexer.h 2021-11-08 15:46:07.000000000 +0000 @@ -35,67 +35,74 @@ // to rename each yyFlexLexer to some other xxFlexLexer. You then // include in your other sources once per lexer class: // -// #undef yyFlexLexer -// #define yyFlexLexer xxFlexLexer -// #include +// #undef yyFlexLexer +// #define yyFlexLexer xxFlexLexer +// #include // -// #undef yyFlexLexer -// #define yyFlexLexer zzFlexLexer -// #include -// ... +// #undef yyFlexLexer +// #define yyFlexLexer zzFlexLexer +// #include +// ... #ifndef __FLEX_LEXER_H // Never included before - need to define base class. #define __FLEX_LEXER_H #include -# ifndef FLEX_STD -# define FLEX_STD std:: -# endif extern "C++" { struct yy_buffer_state; typedef int yy_state_type; -class FlexLexer { +class FlexLexer +{ public: - virtual ~FlexLexer() { } + virtual ~FlexLexer() { } - const char* YYText() const { return yytext; } - size_t YYLeng() const { return yyleng; } + const char* YYText() const { return yytext; } + int YYLeng() const { return yyleng; } - virtual void - yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0; - virtual struct yy_buffer_state* - yy_create_buffer( FLEX_STD istream* s, int size ) = 0; - virtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0; - virtual void yyrestart( FLEX_STD istream* s ) = 0; - - virtual int yylex() = 0; - - // Call yylex with new input/output sources. - int yylex( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0 ) - { - switch_streams( new_in, new_out ); - return yylex(); - } - - // Switch to new input/output streams. A nil stream pointer - // indicates "keep the current one". - virtual void switch_streams( FLEX_STD istream* new_in = 0, - FLEX_STD ostream* new_out = 0 ) = 0; + virtual void + yy_switch_to_buffer( yy_buffer_state* new_buffer ) = 0; + virtual yy_buffer_state* yy_create_buffer( std::istream* s, int size ) = 0; + virtual yy_buffer_state* yy_create_buffer( std::istream& s, int size ) = 0; + virtual void yy_delete_buffer( yy_buffer_state* b ) = 0; + virtual void yyrestart( std::istream* s ) = 0; + virtual void yyrestart( std::istream& s ) = 0; + + virtual int yylex() = 0; + + // Call yylex with new input/output sources. + int yylex( std::istream& new_in, std::ostream& new_out ) + { + switch_streams( new_in, new_out ); + return yylex(); + } + + int yylex( std::istream* new_in, std::ostream* new_out = 0) + { + switch_streams( new_in, new_out ); + return yylex(); + } + + // Switch to new input/output streams. A nil stream pointer + // indicates "keep the current one". + virtual void switch_streams( std::istream* new_in, + std::ostream* new_out ) = 0; + virtual void switch_streams( std::istream& new_in, + std::ostream& new_out ) = 0; - int lineno() const { return yylineno; } + int lineno() const { return yylineno; } - int debug() const { return yy_flex_debug; } - void set_debug( int flag ) { yy_flex_debug = flag; } + int debug() const { return yy_flex_debug; } + void set_debug( int flag ) { yy_flex_debug = flag; } protected: - char* yytext; - size_t yyleng; - int yylineno; // only maintained if you use %option yylineno - int yy_flex_debug; // only has effect with -d or "%option debug" + char* yytext; + int yyleng; + int yylineno; // only maintained if you use %option yylineno + int yy_flex_debug; // only has effect with -d or "%option debug" }; } @@ -105,104 +112,111 @@ // Either this is the first time through (yyFlexLexerOnce not defined), // or this is a repeated include to define a different flavor of // yyFlexLexer, as discussed in the flex manual. -#define yyFlexLexerOnce +# define yyFlexLexerOnce extern "C++" { class yyFlexLexer : public FlexLexer { public: - // arg_yyin and arg_yyout default to the cin and cout, but we - // only make that assignment when initializing in yylex(). - yyFlexLexer( FLEX_STD istream* arg_yyin = 0, FLEX_STD ostream* arg_yyout = 0 ); - - virtual ~yyFlexLexer(); - - void yy_switch_to_buffer( struct yy_buffer_state* new_buffer ); - struct yy_buffer_state* yy_create_buffer( FLEX_STD istream* s, int size ); - void yy_delete_buffer( struct yy_buffer_state* b ); - void yyrestart( FLEX_STD istream* s ); - - void yypush_buffer_state( struct yy_buffer_state* new_buffer ); - void yypop_buffer_state(); - - virtual int yylex(); - virtual void switch_streams( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0 ); - virtual int yywrap(); + // arg_yyin and arg_yyout default to the cin and cout, but we + // only make that assignment when initializing in yylex(). + yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ); + yyFlexLexer( std::istream* arg_yyin = 0, std::ostream* arg_yyout = 0 ); +private: + void ctor_common(); + +public: + + virtual ~yyFlexLexer(); + + void yy_switch_to_buffer( yy_buffer_state* new_buffer ); + yy_buffer_state* yy_create_buffer( std::istream* s, int size ); + yy_buffer_state* yy_create_buffer( std::istream& s, int size ); + void yy_delete_buffer( yy_buffer_state* b ); + void yyrestart( std::istream* s ); + void yyrestart( std::istream& s ); + + void yypush_buffer_state( yy_buffer_state* new_buffer ); + void yypop_buffer_state(); + + virtual int yylex(); + virtual void switch_streams( std::istream& new_in, std::ostream& new_out ); + virtual void switch_streams( std::istream* new_in = 0, std::ostream* new_out = 0 ); + virtual int yywrap(); void begin(int,int); protected: - virtual size_t LexerInput( char* buf, size_t max_size ); - virtual void LexerOutput( const char* buf, size_t size ); - virtual void LexerError( const char* msg ); + virtual size_t LexerInput( char* buf, size_t max_size ); + virtual void LexerOutput( const char* buf, size_t size ); + virtual void LexerError( const char* msg ); - void yyunput( int c, char* buf_ptr ); - int yyinput(); + void yyunput( int c, char* buf_ptr ); + int yyinput(); - void yy_load_buffer_state(); - void yy_init_buffer( struct yy_buffer_state* b, FLEX_STD istream* s ); - void yy_flush_buffer( struct yy_buffer_state* b ); + void yy_load_buffer_state(); + void yy_init_buffer( yy_buffer_state* b, std::istream& s ); + void yy_flush_buffer( yy_buffer_state* b ); - int yy_start_stack_ptr; - int yy_start_stack_depth; - int* yy_start_stack; + int yy_start_stack_ptr; + int yy_start_stack_depth; + int* yy_start_stack; - void yy_push_state( int new_state ); - void yy_pop_state(); - int yy_top_state(); + void yy_push_state( int new_state ); + void yy_pop_state(); + int yy_top_state(); - yy_state_type yy_get_previous_state(); - yy_state_type yy_try_NUL_trans( yy_state_type current_state ); - int yy_get_next_buffer(); + yy_state_type yy_get_previous_state(); + yy_state_type yy_try_NUL_trans( yy_state_type current_state ); + int yy_get_next_buffer(); - FLEX_STD istream* yyin; // input source for default LexerInput - FLEX_STD ostream* yyout; // output sink for default LexerOutput + std::istream yyin; // input source for default LexerInput + std::ostream yyout; // output sink for default LexerOutput - // yy_hold_char holds the character lost when yytext is formed. - char yy_hold_char; + // yy_hold_char holds the character lost when yytext is formed. + char yy_hold_char; - // Number of characters read into yy_ch_buf. - size_t yy_n_chars; + // Number of characters read into yy_ch_buf. + int yy_n_chars; - // Points to current character in buffer. - char* yy_c_buf_p; + // Points to current character in buffer. + char* yy_c_buf_p; - int yy_init; // whether we need to initialize - int yy_start; // start state number + int yy_init; // whether we need to initialize + int yy_start; // start state number - // Flag which is used to allow yywrap()'s to do buffer switches - // instead of setting up a fresh yyin. A bit of a hack ... - int yy_did_buffer_switch_on_eof; + // Flag which is used to allow yywrap()'s to do buffer switches + // instead of setting up a fresh yyin. A bit of a hack ... + int yy_did_buffer_switch_on_eof; - size_t yy_buffer_stack_top; /**< index of top of stack. */ - size_t yy_buffer_stack_max; /**< capacity of stack. */ - struct yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */ - void yyensure_buffer_stack(void); + size_t yy_buffer_stack_top; /**< index of top of stack. */ + size_t yy_buffer_stack_max; /**< capacity of stack. */ + yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */ + void yyensure_buffer_stack(void); - // The following are not always needed, but may be depending - // on use of certain flex features (like REJECT or yymore()). + // The following are not always needed, but may be depending + // on use of certain flex features (like REJECT or yymore()). - yy_state_type yy_last_accepting_state; - char* yy_last_accepting_cpos; + yy_state_type yy_last_accepting_state; + char* yy_last_accepting_cpos; - yy_state_type* yy_state_buf; - yy_state_type* yy_state_ptr; + yy_state_type* yy_state_buf; + yy_state_type* yy_state_ptr; - char* yy_full_match; - int* yy_full_state; - int yy_full_lp; + char* yy_full_match; + int* yy_full_state; + int yy_full_lp; - int yy_lp; - int yy_looking_for_trail_begin; + int yy_lp; + int yy_looking_for_trail_begin; - int yy_more_flag; - int yy_more_len; - int yy_more_offset; - int yy_prev_more_offset; + int yy_more_flag; + int yy_more_len; + int yy_more_offset; + int yy_prev_more_offset; }; } #endif // yyFlexLexer || ! yyFlexLexerOnce - diff -Nru saods9-8.2+repack/util/fuzzy.h saods9-8.3+repack/util/fuzzy.h --- saods9-8.2+repack/util/fuzzy.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/util/fuzzy.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2020 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/util/util.C saods9-8.3+repack/util/util.C --- saods9-8.2+repack/util/util.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/util/util.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2020 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/util/util.h saods9-8.3+repack/util/util.h --- saods9-8.2+repack/util/util.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/util/util.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2020 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/vector/vector3d.C saods9-8.3+repack/vector/vector3d.C --- saods9-8.2+repack/vector/vector3d.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/vector/vector3d.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/vector/vector3d.h saods9-8.3+repack/vector/vector3d.h --- saods9-8.2+repack/vector/vector3d.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/vector/vector3d.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/vector/vector.C saods9-8.3+repack/vector/vector.C --- saods9-8.2+repack/vector/vector.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/vector/vector.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/vector/vector.h saods9-8.3+repack/vector/vector.h --- saods9-8.2+repack/vector/vector.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/vector/vector.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/vector/vectorstr.C saods9-8.3+repack/vector/vectorstr.C --- saods9-8.2+repack/vector/vectorstr.C 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/vector/vectorstr.C 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright" diff -Nru saods9-8.2+repack/vector/vectorstr.h saods9-8.3+repack/vector/vectorstr.h --- saods9-8.2+repack/vector/vectorstr.h 2020-11-17 16:25:47.000000000 +0000 +++ saods9-8.3+repack/vector/vectorstr.h 2021-11-08 15:46:07.000000000 +0000 @@ -1,4 +1,4 @@ -// Copyright (C) 1999-2018 +// Copyright (C) 1999-2021 // Smithsonian Astrophysical Observatory, Cambridge, MA, USA // For conditions of distribution and use, see copyright notice in "copyright"