# ticket

tkt_uuid: 1739359fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ip
priority: 5 Medium
foundin: None
title: "ip::version" is too permissive
cmimetype: text/plain
submitter: rkeene
assignee: patthoyts
closer: patthoyts
closedate: 2007-07-05T13:40:35
comment:
  ip::version 1.2.3.4.example.com  returns "4" when it should return 0.

  tcl>package require ip
  1.1.1
  tcl>ip::version 1.2.3.4.example.com
  4

  Additional arguments to support the theory that this is a bug and not intentional behaviour:

     ip::version only seems to accept dotted-quad notation for IPv4 addresses.  "1.2.3.4.example.com" is not in dotted-quad format.

     If you use the hostname "1.2.3.4.example.com" elsewhere in Tcl where an IP or hostname is accepted, it is treated as hostname (which will be resolved via the system resolver and may not have the IP address "1.2.3.4")


tkt_uuid: 1739372fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: comm
priority: 5 Medium
foundin: None
title: comm_wire unclarity
cmimetype: text/plain
submitter: lars_h
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-21T23:37:42
comment:
  The specification of the Basic Message Layer (BTW, why 
  isn't that just the Message Layer?) says:

    On top of the Basic Layer we have a message oriented 
    exchange of data. Each message is a syntactically valid 
    Tcl list terminated with an additional EOL.

  This suggests that the string representation for a message
  is the string representation for the list, followed by an EOL, 
  as would be written by
      puts $fid [list $cmd $ser $args]
  (no -nonewline). In reality, the command writing the data 
  is
      puts $fid [list [list $cmd $ser $args]]
  which is quite different.

  A better description is probably to say that the totality 
  of everything written to the channel is a syntactically valid 
  Tcl list, where every element is a separate message. The 
  whitespace separating two messages must contain an EOL. 
  Note that EOL characters can occur within the list as well. 
  They can be distinguished from the message-separating 
  EOL by the fact that the data from the beginning up to 
  their location is not a valid Tcl list.


  Minor issues:
  * The SYNOPSIS section is bogus.
  * The paragraph defining EOL shows it as whitespace. 
    It should say both linefeed and \n.
  * comm should be a keyword of this manpage.
    "communication" isn't a keyword of any other manpage, 
    so it can be dropped.


tkt_uuid: 1740573fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: html
priority: 5 Medium
foundin: None
title: html - documentation, examples needed
cmimetype: text/plain
submitter: escargo
assignee: nobody
closer: andreas_kupries
closedate: 2007-08-21T23:15:50
comment:
  The documentation for the html package has some errors and typographical errors.

  The synopsis lists the procedures in not quite alphabetical order.  The init procedure appears between refresh and row.

  The explanation for ::html::cell uses upper case tags whereas lower case tags are really used.

  The explanation for ::html::openTag lists the arguments as "tags args" when the code uses "tags param".  Using multiple args (implied by args) will fail.

  ::html::row should say that it does NOT used defaults for the td tag as defined in the ::html::init call.

  Examples would be very instructive.


tkt_uuid: 1740574fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: javascript
priority: 5 Medium
foundin: None
title: typographical errors in javascript package
cmimetype: text/plain
submitter: escargo
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-06-21T04:10:53
comment:
  The documentation for the tcllib javacript package has three instances of "it's" where "its" is meant.

  ::javascript::makeMasterButton master value slavePattern boolean
      Create an HTML button that sets it's slave ....
  ::javascript::makeParentCheckbox parentName childName
      Create an HTML checkbox and tie its value to that of it's child checkbox....
  ::javascript::makeChildCheckbox parentName childName
      Create an HTML checkbox and tie its value to that of it's parent checkbox....

  Curiously, some of the "its" are right.


tkt_uuid: 1740862fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Documentation
priority: 5 Medium
foundin: None
title: replace {expand} uses
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-06-23T03:41:25
comment:
  The latest Tcl 8.5 cvs head appears to no longer support {expand}, the deprecated notation for {*}. Tcllib has a dozen or more cases of use, including man page references.  See fileutil, fumagic, grammar_fa, pluginmgr, page, snit, transfer treeql, and transfer...


tkt_uuid: 1742078fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: html
priority: 5 Medium
foundin: None
title: html::nl2br procedure bug
cmimetype: text/plain
submitter: jgodfrey
assignee: welch
comment:
  The "html::nl2br" procedure is designed to replace all line-endings with the HTML <br> construct.  It appears to be missing a common line-ending combo.  Here's the original procedure:

  proc ::html::nl2br {s} {
      return [string map [list \n\r <br> \n <br> \r <br>] $s]
  }

  It's missing a substitution of the common "\r\n" combo.  Ultimately, the current procedure replaces that combo with 2 <br>'s, which is incorrect.  Now, maybe the existing "\n\r" is just transposed by accident, as that seems odd anyway...

  I'd suggest the following replacement if that's the case:

  proc ::html::nl2br {s} {
      return [string map [list \r\n <br> \n <br> \r <br>] $s]
  }

  Jeff


tkt_uuid: 1743868fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: pop3d
priority: 5 Medium
foundin: None
title: Fix extra line between message headers
cmimetype: text/plain
submitter: howell
assignee: andreas_kupries
comment:
  pop3d sends messages with a blank line between each header line. This causes Multipart Mime messages not to be recognized. In particular pop3 client fails to recognized a multipart message sent by pop3d.

  The error is caused by both the pop3d package and the mime package handling the network crlf standard. mime appends \r to all headers for mime::buildmessage and mime::copymessage. pop3d fconfigures the socket channel to crlf.

  This diff mods pop3d to follow the mime package convention; leaving the channel as translation lf and adding \r to strings where required.

  It has been tested for message sizes that can be sent as one segment.  The test suite was not run.


tkt_uuid: 1747885fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: des
priority: 5 Medium
foundin: None
title: des 1.0.0 loses what 0.8.1 could
cmimetype: text/plain
submitter: suchenwi
assignee: patthoyts
closer: patthoyts
closedate: 2007-07-05T13:22:00
comment:
  ActiveTcl 8.4.14:
  % packa re des
  1.0.0
  % set x [DES::des -mode encode -key SeCrEt "hello world"]
  can't use integer value too large to represent as operand of "^"

  while in ActiveTcl 8.4.9 it works well:
  % packa re des
  0.8.1
  % set x [DES::des -mode encode -key SeCrEt "hello world"]
  ?½??I-}????j??'?
  % DES::des -mode decode -key SeCrEt $x
  hello world


tkt_uuid: 1747945fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: profiler
priority: 5 Medium
foundin: None
title: Patch to avoid inflation of the 'statTime' array
cmimetype: text/plain
submitter: dzach
assignee: nobody
comment:
  This patch relates to the size of the statTime array.
  In the existing package (v0.2.3) the statistics on proc execution times are performed on data collected in array 'statTime'. However, if the profiler is run for a length of time, this array is getting very big, which I believe slows down the profiler. I've seen this degradation of performance in a program that uses a lot of 'after time' calls. It looks like for the type of statistics performed with this package there is no need to collect all time samples in the array. With this patch the basic statistics ('mean' and 'sum of squared times') are performed in the 'leaveHandler' proc and the array space is kept small (two array variables -not lists- per profiled function). The calculation of 'sigma' and 'cov' is done when the user issues a ::profiler::print or ::profiler::dump command. I've measured a 6% increase in the execution time of 'leaveHandler' due to the performing of basic stats calculation in this proc.


tkt_uuid: 1749395fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: pop3d
priority: 5 Medium
foundin: None
title: Patch to ignore directories in Mail Boxes
cmimetype: text/plain
submitter: howell
assignee: andreas_kupries
comment:
  The simple mailbox database provided with tcllib pop3d fails if a subdirectory is in a mailbox directory.  This is the case when a mailbox database for application tests is placed under version control like CVS.

  A simple change allows pop3d::dbox to ignore directories in the mailbox path.

  For file pop3d_dbox.tcl with id:

  RCS: @(#) $Id: pop3d_dbox.tcl,v 1.12 2005/09/28 04:51:23 andreas_kupries Exp $

  modify line #299 from:

      set  state($dir)  [lsort [glob -nocomplain [file join $dir *]]]

  to:

      set  state($dir)  [lsort [glob -nocomplain -type { f r w } [file join $dir *]]]


tkt_uuid: 1750655fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: A Category Is Missing
priority: 5 Medium
foundin: None
title: expanded info about dealing with test suite
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-21T21:01:07
comment:
  I'd like to request that more information about the test suite be added to a README or some other doc. Somewhere, information on the steps a developer should take when a "make test" displays a FAILS or ERR output should be added.

  Information should include specific commands to execute to get additional information, the URL for tcllib.sf.net's bug reports, etc.


tkt_uuid: 1750656fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: math
priority: 5 Medium
foundin: None
title: math test suite interacts badly with the tcllib test suite p
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: sf-robot
closedate: 2007-09-05T02:20:06
comment:
  When I run the tcllib cvs head on top of the tcl cvs head, I see the following:



  [    ]  [8.5a7] log         ~~       T   354 P   354 S     0 F     0
  [  * ]  [8.5a7] math        Error in statistics.tcl: unknown namespace in import[  * ]  [8.5a7] math        <fourier.test>                                      [  * ]  [8.5a7] math        ---- dft-1.0                                        [  * ]  [8.5a7] math        PASS dft-1.0                                        [ *  ]  [8.5a7] math        ---- dft-1.1                                        [ *  ]  [8.5a7] math        PASS dft-1.1                                        [ *  ]  [8.5a7] math        ---- dft-1.2                                        [ *  ]  [8.5a7] math        PASS dft-1.2                                        [ *  ]  [8.5a7] math        ---- dft-1.3                                        [*   ]  [8.5a7] math        PASS dft-1.3                                        [*   ]  [8.5a7] math        ---- dft-2.1                                        [*   ]  [8.5a7] math        PASS dft-2.1                                        [*   ]  [8.5a7] math        ---- dft-2.2                                        [*   ]  [8.5a7] math        PASS dft-2.2                                        

  and so on for pages and pages.

  That first error regarding the namespace appears to cause the graphical wrapper to stop working.


tkt_uuid: 1751871fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ldap
priority: 5 Medium
foundin: None
title: ldap::search : too many nested evaluations (infinite loop?)
cmimetype: text/plain
submitter: nobody
assignee: mic42
closer: mic42
closedate: 2008-07-20T19:55:01
comment:
  Hello 

  I have a trouble trying to search a element.
  this element is names eduid. When I'm trying to search on it , I obtain the following display:
  tcl> ldap::search $handle "ou=people,dc=XXX,dc=com" "eduid=ed148869" "uid"
  too many nested evaluations (infinite loop?)

  this uid exists as a search on the name return that:
  tcl> ldap::search $handle "ou=people,dc=XXX,dc=com" "uid=AERTY" "eduid"
  {eduid=ed043414,ou=people,dc=XXX,dc=com {eduid ed043414}}

  can you help me?

  regards
  Jerome


tkt_uuid: 1752755fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: An error dialog pops up while ListBox is resizing
cmimetype: text/plain
submitter: legolas_a20
assignee: damonc
closer: oehhar
closedate: 2009-06-10T08:49:08
comment:
  (See also discussion at http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/97c4892c68312e6b/1b31a8239ee3d4cd?lnk=raot#1b31a8239ee3d4cd , although the initial ideas at what went wrong were wrong).

  Run the attached file, click the button and you'll get this error dialog:
  ----------------------------
  unknown widget .sw.lb.a1
  unknown widget .sw.lb.a1
      while executing
  "Widget::cget $path $option"
      (procedure "Widget::getoption" line 6)
      invoked from within
  "Widget::getoption $path.$item $option"
      (procedure "_getoption" line 2)
      invoked from within
  "_getoption $path $item -foreground"
      (procedure "_redraw_selection" line 11)
      invoked from within
  "_redraw_selection $path"
      (procedure "_update_select_fill" line 13)
      invoked from within
  "_update_select_fill $path"
      (procedure "ListBox::_resize" line 27)
      invoked from within
  "ListBox::_resize .sw.lb"
      (command bound to event)
  ----------------------------

  Note that the whole callstack is inside BWidget's ListBox class.

  I'm running "ActiveState ActiveTcl 8.4.14.0.272572   Nov 26, 2006", according to the readme and the software. This contains BWidget 1.8. I'm on Windows XP SP2.) 

  Something appears to be going wrong while resizing, but only if the -selectfill true option is set, I think only if the ListBox is inside a ScrollWindow. At the time of the resize, I can see the scrollbars pop up and immediatly disappear again(indeed they are not needed at all in this case).

  As a bonus bug(?): it is not possible to add items whose name contains :: or ends in : . From the errors, it seems like this is because the name passed in is directly used as a variable name.

  As noted in the newsgroup, the bug can be worked around by not causing the resize at that point in the code, although I have no idea why. The solution in the newsgroup (after 1 [list .b configure -text "[.b cget -text]aaaa"] ) doesn't always work, after 5 ... does seem to work, and for my own code, I have inserted an 'update idletasks' in between changing the listbox contents and the change to the other widgets (those changes then cause the resize).


tkt_uuid: 1753433fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: math
priority: 5 Medium
foundin: None
title: Code and man page for lognormal income distribution library
cmimetype: text/plain
submitter: erickb
assignee: arjenmarkus
comment:
  Hello,

  I was invited by Arjen Markus to submit my code for a lognormal income distribution library. Thanks for asking! I'm uploading a copy of the source (released under a BSD license or whatever will make it compatible with tcllib).

  In the zip file I'm also including: a non-groffed man page (plain ascii), a test suite (comparing results to results obtained from Excel), and an example application file.

  Eric


tkt_uuid: 1759532fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: grammar_fa
priority: 5 Medium
foundin: None
title: Nullary "." and "|" operations
cmimetype: text/plain
submitter: lars_h
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-22T00:02:14
comment:
  The nullary cases of the "." (concatenation) and "|" (union) regexp operations seem not to have been implemented. In ::grammar::fa::op::Regex there are special cases for less than two arguments which assume there is exactly one argument.

  What are these good for, then?

  I've just made a first implementation of my own RFE#1735601 (grammar::fa::op::toRegexp, although I now notice grammar::fa seems to favour a spelling without "p"). This process requires that there are representations for the 0 language (the language without words) and the 1 language (the language whose only word is the empty word). Since these are the neutral elements for the "|" and "." operations, it is natural to represent them as nullary cases of the operations.

  A simple example of the kind of thing I'd like to use this for is generating a regexp for the language of all strings that don't contain e.g. the substring "aab":

  % grammar::fa not_aab fromRegex {! {. {* {| {S a} {S b}}} {S a} {S a} {S b} {* {| {S a} {S b}}} }}
  ::not_aab
  % not_aab states
  26 22 0 27 23 1 28 24 30 29 25
  % not_aab minimize
  % not_aab states
  0 1 2
  % grammar::fa::op::toRegexp [not_aab serialize]
  . {* {| {. {S a} {S b}} {S b}}} {| . {. {S a} {| . {. {S a} {* {S a}}}}}}

  One problem demonstrated by this is that the automatic regexps could often do with simplification -- the last branch of the "." root is equivalent to {* {S a}}, but that's not all that easy to see. It occurred to me that converting subexpressions back to an automaton is probably the best way to process them, but since fromRegex can't handle . and | as expressions this is currently not possible. :-(


tkt_uuid: 1763707fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ftp
priority: 5 Medium
foundin: None
title: ::ftp::Get returns "" in mode inline + error
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
comment:
  contrary to the man-page ::ftp::Get returns the empty string when in mode $ftp(inline) and an error occurs.

  -------------------------------------
  % packa requi ftp
  2.4.8
  % set conn [ftp::Open localhost  user pass]
  0
  % set erg [ftp::Get $conn not_existing_file -variable var]
  error     error | E: Error retrieving file "not_existing_file"!:
  error     invalid command name "ftp::Open"
  error         while executing
  error     "ftp::Open localhost  user pass"
  % puts $erg

  %
  ------------------------------------
  This is 7 line before the end of ftp::Get 

  2 lines after that:
  CloseDataConn $s is only called if $ftp(inline) is false.
  Is this correct?

  In the normal configuration I am unable to retrieve the info about the error. Am I suppost to redefine the DisplayMsg for this?

  thanks for your efforts
  Albrecht Mucha MediTec GmbH
  a.mucha at mdtec . de


tkt_uuid: 1765052fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: None
priority: 5 Medium
foundin: None
title: nmea library; undefined variable error in ::nmea::read_port
cmimetype: text/plain
submitter: paul_moir
assignee: nobody
closer: afaupell
closedate: 2007-08-16T17:33:18
comment:
  In the library modules/nmea/nmea.tcl the procedure read_port is as follows:

  proc ::nmea::read_port {f} {
      set line [gets $f]
      if {$::nmea::nmea(log) != ""} {
          puts $nmea(log) $line
      }
      ::nmea::parse_nmea $line
  }

  When logging is turned on this fails with an "unknown variable $nmea(log)" since nmea is undefined. I believe it should read:

  proc ::nmea::read_port {f} {
      variable nmea
      set line [gets $f]
      if {$::nmea::nmea(log) != ""} {
          puts $nmea(log) $line
      }
      ::nmea::parse_nmea $line
  }

  I hope this is correct. Thank you for your time!


tkt_uuid: 1766381fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Build System & Testing
priority: 5 Medium
foundin: None
title: sak.tcl doc warning and error msgs
cmimetype: text/plain
submitter: pointsman
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-02T23:18:25
comment:
  With tcllib cvs head from 2007-08-01, 

  tclsh8.4 sak.tcl doc

  produced (beside a lot of doc files in various formats) some warning and error msgs. For a detailed list, see below.

  It finaly hang at
  Gen (dvi): ../latex/doctoc_lang_cmdref.tex

  After killing the latex process, it returned with:

  This is TeX, Version 3.14159 (Web2C 7.4.5)
  (../latex/doctoc_lang_cmdref.tex
  LaTeX2e <2001/06/01>
  Babel <v3.7h> and hyphenation patterns for american, french, german, ngerman, n
  ohyphenation, loaded.
  (/usr/share/texmf/tex/latex/base/article.cls
  Document Class: article 2001/04/21 v1.4e Standard LaTeX document class
  (/usr/share/texmf/tex/latex/base/size10.clo))
  No file doctoc_lang_cmdref.aux.
  [1] [2] [3]
  ! Missing $ inserted.
  <inserted text> 
                  $
  l.203 doctoc_
               intro, doctoc_lang_faq, doctoc_lang_intro, doctoc_lang_syntax
  ? child killed: software termination signal
      while executing
  "exec latex $f 1>@ stdout 2>@ stderr"
      (procedure "sak::doc::dvi" line 7)
      invoked from within
  "sak::doc::$f $argv"
      ("foreach" body line 3)
      invoked from within
  "foreach f {html nroff tmml text wiki latex dvi ps list validate} {

  The [sak.tcl doc ps] seem to depend on the dvi.

  [sak.tcl doc list] run without problem.

  [sak.tcl doc validate] has that output:

  Validate  : ./modules/nns/nns_client.man
  DocTools Warning (depr_lstitem): In macro at line 246, column 0:
  DocTools Warning (depr_lstitem): Misbilligter Befehl "[lst_item]".
  DocTools Warning (depr_lstitem):        Bitte verwenden sie [def].
  DocTools Warning (depr_lstitem): In macro at line 278, column 0:
  DocTools Warning (depr_lstitem): Misbilligter Befehl "[lst_item]".
  DocTools Warning (depr_lstitem):        Bitte verwenden sie [def].

  Here the detailed list of the warnings/error msgs:

  [...]
  Gen (tmml): ./modules/docstrip/docstrip.man
  Warning: Cannot start context optlist (manpage/section/dl/dle/dd - fmt_opt_def -trimlines {\1<m\1>boolean\1</m\1>})
  Gen (tmml): ./modules/docstrip/docstrip_util.man
  [...]
  Gen (tmml): ./modules/log/loggerUtils.man
  Warning: Cannot start context optlist (manpage/section/dl/dle/dd - fmt_opt_def -levels levelList)
  Gen (tmml): ./modules/log/logger.man
  [...]
  Gen (tmml): ./modules/math/linalg.man
  Warning: Cannot start context arglist (manpage/section/dl/dle/dd - fmt_arg_def list obj1 {})
  Gen (tmml): ./modules/math/statistics.man
  [...]
  Gen (tmml): ./modules/transfer/connect.man
  Warning: Cannot start context optlist (manpage/section/dl/dle/dd - fmt_opt_def -host {\1<m\1>hostname-or-ipaddr\1</m\1>})
  Gen (tmml): ./modules/treeql/treeql.man
  [...]
  Gen (text): ./modules/bench/bench_read.man
  Doctools Error in macro at line 39, column 0:
  [cmd_def bench::out::raw]
  --> invalid command name "cmd"
  Gen (text): ./modules/bench/bench_wtext.man
  [...]
  Gen (text): ./modules/doctools/doctoc_lang_intro.man
  Doctools Error in macro at line 118, column 0:
  [cmd_def division_start]
  --> invalid command name "cmd"
  Gen (text): ./modules/doctools/docidx.man
  Gen (text): ./modules/doctools/doctools_lang_intro.man
  Doctools Error in macro at line 78, column 0:
  [cmd_def titledesc]
  --> invalid command name "cmd"
  Gen (text): ./modules/doctools/doctools_intro.man
  [...]
  Gen (text): ./modules/nns/nns_client.man
  Doctools Error in macro at line 158, column 0:
  [cmd_def bind]
  --> invalid command name "cmd"
  Gen (text): ./modules/nns/nns_common.man
  [...]
  Gen (latex): ./modules/aes/aes.man
  Doctools Error in macro at line 148, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/asn/asn.man
  Doctools Error in macro at line 183, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/base32/base32.man
  Doctools Error in macro at line 48, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/base32/base32hex.man
  Doctools Error in macro at line 50, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/base32/base32core.man
  Doctools Error in macro at line 62, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/base64/yencode.man
  Gen (latex): ./modules/base64/base64.man
  Gen (latex): ./modules/base64/uuencode.man
  Gen (latex): ./modules/bee/bee.man
  Doctools Error in macro at line 136, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/bench/bench_read.man
  Doctools Error in macro at line 42, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/bench/bench_wtext.man
  Gen (latex): ./modules/bench/bench_lang_intro.man
  Gen (latex): ./modules/bench/bench_intro.man
  Doctools Error in macro at line 30, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/bench/bench.man
  Doctools Error in macro at line 89, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/bench/bench_lang_spec.man
  Doctools Error in macro at line 122, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/bench/bench_wcsv.man
  Gen (latex): ./modules/bibtex/bibtex.man
  Gen (latex): ./modules/blowfish/blowfish.man
  Doctools Error in macro at line 149, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/cmdline/cmdline.man
  Gen (latex): ./modules/comm/comm.man
  Doctools Error in macro at line 560, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/comm/comm_wire.man
  Doctools Error in macro at line 147, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/control/control.man
  Gen (latex): ./modules/counter/counter.man
  Gen (latex): ./modules/crc/sum.man
  Gen (latex): ./modules/crc/crc16.man
  Gen (latex): ./modules/crc/cksum.man
  Gen (latex): ./modules/crc/crc32.man
  Gen (latex): ./modules/csv/csv.man
  Doctools Error in macro at line 173, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/des/des.man
  Doctools Error in macro at line 185, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/dns/tcllib_dns.man
  Doctools Error in macro at line 224, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/dns/tcllib_ip.man
  Doctools Error in macro at line 96, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/docstrip/docstrip.man
  Doctools Error in macro at line 33, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/docstrip/docstrip_util.man
  Gen (latex): ./modules/doctools/cvs.man
  Doctools Error in macro at line 80, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctoc_lang_cmdref.man
  Gen (latex): ./modules/doctools/doctools_lang_syntax.man
  Doctools Error in macro at line 56, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctoc.man
  Doctools Error in macro at line 260, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/docidx_lang_cmdref.man
  Gen (latex): ./modules/doctools/docidx_lang_intro.man
  Gen (latex): ./modules/doctools/doctools_plugin_apiref.man
  Doctools Error in macro at line 213, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctoc_plugin_apiref.man
  Doctools Error in macro at line 181, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/docidx_intro.man
  Doctools Error in macro at line 31, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctools.man
  Doctools Error in macro at line 319, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctoc_lang_syntax.man
  Doctools Error in macro at line 56, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/changelog.man
  Gen (latex): ./modules/doctools/mpexpand.man
  Gen (latex): ./modules/doctools/docidx_lang_syntax.man
  Doctools Error in macro at line 56, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctoc_lang_intro.man
  Doctools Error in macro at line 131, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/docidx.man
  Doctools Error in macro at line 260, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctools_lang_intro.man
  Doctools Error in macro at line 82, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctools_intro.man
  Doctools Error in macro at line 30, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctools_lang_faq.man
  Doctools Error in macro at line 48, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/docidx_plugin_apiref.man
  Doctools Error in macro at line 183, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/docidx_lang_faq.man
  Doctools Error in macro at line 50, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctoc_lang_faq.man
  Doctools Error in macro at line 50, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctoc_intro.man
  Doctools Error in macro at line 31, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctools_lang_cmdref.man
  Gen (latex): ./modules/exif/exif.man
  Gen (latex): ./modules/fileutil/multiop.man
  Doctools Error in macro at line 395, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/fileutil/fileutil.man
  Doctools Error in macro at line 395, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/ftp/ftp.man
  Doctools Error in macro at line 216, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/ftpd/ftpd.man
  Gen (latex): ./modules/fumagic/filetypes.man
  Doctools Error in macro at line 51, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/fumagic/mimetypes.man
  Doctools Error in macro at line 47, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/grammar_fa/dexec.man
  Gen (latex): ./modules/grammar_fa/faop.man
  Gen (latex): ./modules/grammar_fa/dacceptor.man
  Gen (latex): ./modules/grammar_fa/fa.man
  Doctools Error in macro at line 188, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/grammar_me/me_tcl.man
  Gen (latex): ./modules/grammar_me/me_cpucore.man
  Doctools Error in macro at line 270, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/grammar_me/me_ast.man
  Gen (latex): ./modules/grammar_me/me_util.man
  Gen (latex): ./modules/grammar_me/me_intro.man
  Gen (latex): ./modules/grammar_me/me_cpu.man
  Doctools Error in macro at line 259, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/grammar_me/me_vm.man
  Gen (latex): ./modules/grammar_peg/peg.man
  Doctools Error in macro at line 140, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/grammar_peg/peg_interp.man
  Gen (latex): ./modules/html/html.man
  Gen (latex): ./modules/htmlparse/htmlparse.man
  Gen (latex): ./modules/http/autoproxy.man
  Doctools Error in macro at line 106, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/ident/ident.man
  Gen (latex): ./modules/inifile/ini.man
  Gen (latex): ./modules/interp/deleg_proc.man
  Gen (latex): ./modules/interp/deleg_method.man
  Gen (latex): ./modules/interp/tcllib_interp.man
  Gen (latex): ./modules/irc/irc.man
  Gen (latex): ./modules/javascript/javascript.man
  Gen (latex): ./modules/jpeg/jpeg.man
  Gen (latex): ./modules/json/json.man
  Gen (latex): ./modules/ldap/ldapx.man
  Doctools Error in macro at line 154, column 1:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/ldap/ldap.man
  Doctools Error in macro at line 187, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/log/log.man
  Doctools Error in macro at line 267, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/log/loggerUtils.man
  Doctools Error in macro at line 65, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/log/logger.man
  Doctools Error in macro at line 210, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/log/loggerAppender.man
  Doctools Error in macro at line 49, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/interpolate.man
  Doctools Error in macro at line 40, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/geometry.man
  Doctools Error in macro at line 57, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/romberg.man
  Doctools Error in macro at line 243, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/fourier.man
  Doctools Error in macro at line 29, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/rational_funcs.man
  Doctools Error in macro at line 21, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/optimize.man
  Doctools Error in macro at line 25, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/polynomials.man
  Doctools Error in macro at line 21, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/math.man
  Doctools Error in macro at line 60, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/qcomplex.man
  Doctools Error in macro at line 67, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/constants.man
  Doctools Error in macro at line 27, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/linalg.man
  Doctools Error in macro at line 27, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/statistics.man
  Doctools Error in macro at line 26, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/roman.man
  Gen (latex): ./modules/math/fuzzy.man
  Doctools Error in macro at line 20, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/special.man
  Doctools Error in macro at line 55, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/bigfloat.man
  Doctools Error in macro at line 19, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/calculus.man
  Doctools Error in macro at line 22, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/combinatorics.man
  Gen (latex): ./modules/math/bignum.man
  Doctools Error in macro at line 26, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/md4/md4.man
  Doctools Error in macro at line 154, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/md5/md5.man
  Doctools Error in macro at line 161, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/md5crypt/md5crypt.man
  Gen (latex): ./modules/mime/mime.man
  Doctools Error in macro at line 50, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/mime/smtp.man
  Doctools Error in macro at line 156, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/multiplexer/multiplexer.man
  Doctools Error in macro at line 53, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/ncgi/ncgi.man
  Gen (latex): ./modules/nmea/nmea.man
  Gen (latex): ./modules/nns/nns_server.man
  Doctools Error in macro at line 122, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/nns/nns_auto.man
  Doctools Error in macro at line 101, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/nns/nns_client.man
  Doctools Error in macro at line 163, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/nns/nns_common.man
  Gen (latex): ./modules/nns/nns_procotol.man
  Gen (latex): ./modules/nntp/nntp.man
  Gen (latex): ./modules/ntp/ntp_time.man
  Gen (latex): ./modules/otp/otp.man
  Doctools Error in macro at line 81, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/pluginmgr/pluginmgr.man
  Doctools Error in macro at line 43, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/png/png.man
  Gen (latex): ./modules/pop3/pop3.man
  Gen (latex): ./modules/pop3d/pop3d_udb.man
  Gen (latex): ./modules/pop3d/pop3d.man
  Gen (latex): ./modules/pop3d/pop3d_dbox.man
  Gen (latex): ./modules/profiler/profiler.man
  Gen (latex): ./modules/rc4/rc4.man
  Gen (latex): ./modules/rcs/rcs.man
  Doctools Error in macro at line 38, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/report/report.man
  Gen (latex): ./modules/ripemd/ripemd128.man
  Doctools Error in macro at line 174, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/ripemd/ripemd160.man
  Doctools Error in macro at line 158, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/sasl/sasl.man
  Doctools Error in macro at line 327, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/sha1/sha1.man
  Doctools Error in macro at line 160, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/smtpd/smtpd.man
  Gen (latex): ./modules/snit/snitfaq.man
  Doctools Error in macro at line 107, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/snit/snit.man
  Doctools Error in macro at line 952, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/soundex/soundex.man
  Gen (latex): ./modules/stooop/stooop.man
  Gen (latex): ./modules/struct/skiplist.man
  Gen (latex): ./modules/struct/pool.man
  Doctools Error in macro at line 68, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/struct/record.man
  Doctools Error in macro at line 154, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/struct/matrix.man
  Gen (latex): ./modules/struct/struct_tree.man
  Doctools Error in macro at line 39, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/struct/struct_list.man
  Doctools Error in macro at line 163, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/struct/matrix1.man
  Gen (latex): ./modules/struct/struct_set.man
  Gen (latex): ./modules/struct/stack.man
  Gen (latex): ./modules/struct/graph.man
  Doctools Error in macro at line 242, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/struct/prioqueue.man
  Gen (latex): ./modules/struct/struct_tree1.man
  Doctools Error in macro at line 53, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/struct/graph1.man
  Gen (latex): ./modules/struct/queue.man
  Gen (latex): ./modules/tar/tar.man
  Doctools Error in macro at line 45, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/term/term_send.man
  Gen (latex): ./modules/term/ansi_cattr.man
  Gen (latex): ./modules/term/ansi_send.man
  Gen (latex): ./modules/term/imenu.man
  Doctools Error in macro at line 124, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/term/ansi_ctrlu.man
  Gen (latex): ./modules/term/term.man
  Gen (latex): ./modules/term/ansi_cmacros.man
  Gen (latex): ./modules/term/ansi_cctrl.man
  Gen (latex): ./modules/term/receive.man
  Gen (latex): ./modules/term/term_bind.man
  Gen (latex): ./modules/term/ansi_code.man
  Gen (latex): ./modules/term/ipager.man
  Doctools Error in macro at line 111, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/textutil/expander.man
  Doctools Error in macro at line 60, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/textutil/textutil.man
  Gen (latex): ./modules/tie/tie.man
  Doctools Error in macro at line 82, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/tiff/tiff.man
  Gen (latex): ./modules/transfer/ddest.man
  Doctools Error in macro at line 60, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/transfer/tqueue.man
  Gen (latex): ./modules/transfer/copyops.man
  Doctools Error in macro at line 162, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/transfer/dsource.man
  Doctools Error in macro at line 71, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/transfer/transmitter.man
  Doctools Error in macro at line 56, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/transfer/receiver.man
  Doctools Error in macro at line 49, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/transfer/connect.man
  Doctools Error in macro at line 100, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/treeql/treeql.man
  Doctools Error in macro at line 158, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/uev/uevent.man
  Doctools Error in macro at line 46, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/units/units.man
  Doctools Error in macro at line 148, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/uri/uri.man
  Gen (latex): ./modules/uuid/uuid.man
  Doctools Error in macro at line 46, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/wip/wip.man
  Doctools Error in macro at line 94, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/aes/aes.man
  Doctools Error in macro at line 148, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/asn/asn.man
  Doctools Error in macro at line 183, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/base32/base32.man
  Doctools Error in macro at line 48, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/base32/base32hex.man
  Doctools Error in macro at line 50, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/base32/base32core.man
  Doctools Error in macro at line 62, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/bee/bee.man
  Doctools Error in macro at line 136, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/bench/bench_read.man
  Doctools Error in macro at line 42, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/bench/bench_intro.man
  Doctools Error in macro at line 30, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/bench/bench.man
  Doctools Error in macro at line 89, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/bench/bench_lang_spec.man
  Doctools Error in macro at line 122, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/blowfish/blowfish.man
  Doctools Error in macro at line 149, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/comm/comm.man
  Doctools Error in macro at line 560, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/comm/comm_wire.man
  Doctools Error in macro at line 147, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/csv/csv.man
  Doctools Error in macro at line 173, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/des/des.man
  Doctools Error in macro at line 185, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/dns/tcllib_dns.man
  Doctools Error in macro at line 224, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/dns/tcllib_ip.man
  Doctools Error in macro at line 96, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/docstrip/docstrip.man
  Doctools Error in macro at line 33, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/cvs.man
  Doctools Error in macro at line 80, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctools_lang_syntax.man
  Doctools Error in macro at line 56, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctoc.man
  Doctools Error in macro at line 260, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctools_plugin_apiref.man
  Doctools Error in macro at line 213, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctoc_plugin_apiref.man
  Doctools Error in macro at line 181, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/docidx_intro.man
  Doctools Error in macro at line 31, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctools.man
  Doctools Error in macro at line 319, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctoc_lang_syntax.man
  Doctools Error in macro at line 56, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/docidx_lang_syntax.man
  Doctools Error in macro at line 56, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctoc_lang_intro.man
  Doctools Error in macro at line 131, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/docidx.man
  Doctools Error in macro at line 260, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctools_lang_intro.man
  Doctools Error in macro at line 82, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctools_intro.man
  Doctools Error in macro at line 30, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctools_lang_faq.man
  Doctools Error in macro at line 48, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/docidx_plugin_apiref.man
  Doctools Error in macro at line 183, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/docidx_lang_faq.man
  Doctools Error in macro at line 50, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctoc_lang_faq.man
  Doctools Error in macro at line 50, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/doctools/doctoc_intro.man
  Doctools Error in macro at line 31, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/fileutil/multiop.man
  Doctools Error in macro at line 395, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/fileutil/fileutil.man
  Doctools Error in macro at line 395, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/ftp/ftp.man
  Doctools Error in macro at line 216, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/fumagic/filetypes.man
  Doctools Error in macro at line 51, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/fumagic/mimetypes.man
  Doctools Error in macro at line 47, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/grammar_fa/fa.man
  Doctools Error in macro at line 188, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/grammar_me/me_cpucore.man
  Doctools Error in macro at line 270, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/grammar_me/me_cpu.man
  Doctools Error in macro at line 259, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/grammar_peg/peg.man
  Doctools Error in macro at line 140, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/http/autoproxy.man
  Doctools Error in macro at line 106, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/ldap/ldapx.man
  Doctools Error in macro at line 154, column 1:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/ldap/ldap.man
  Doctools Error in macro at line 187, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/log/log.man
  Doctools Error in macro at line 267, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/log/loggerUtils.man
  Doctools Error in macro at line 65, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/log/logger.man
  Doctools Error in macro at line 210, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/log/loggerAppender.man
  Doctools Error in macro at line 49, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/interpolate.man
  Doctools Error in macro at line 40, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/geometry.man
  Doctools Error in macro at line 57, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/romberg.man
  Doctools Error in macro at line 243, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/fourier.man
  Doctools Error in macro at line 29, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/rational_funcs.man
  Doctools Error in macro at line 21, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/optimize.man
  Doctools Error in macro at line 25, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/polynomials.man
  Doctools Error in macro at line 21, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/math.man
  Doctools Error in macro at line 60, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/qcomplex.man
  Doctools Error in macro at line 67, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/constants.man
  Doctools Error in macro at line 27, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/linalg.man
  Doctools Error in macro at line 27, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/statistics.man
  Doctools Error in macro at line 26, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/fuzzy.man
  Doctools Error in macro at line 20, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/special.man
  Doctools Error in macro at line 55, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/bigfloat.man
  Doctools Error in macro at line 19, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/calculus.man
  Doctools Error in macro at line 22, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/math/bignum.man
  Doctools Error in macro at line 26, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/md4/md4.man
  Doctools Error in macro at line 154, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/md5/md5.man
  Doctools Error in macro at line 161, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/mime/mime.man
  Doctools Error in macro at line 50, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/mime/smtp.man
  Doctools Error in macro at line 156, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/multiplexer/multiplexer.man
  Doctools Error in macro at line 53, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/nns/nns_server.man
  Doctools Error in macro at line 122, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/nns/nns_auto.man
  Doctools Error in macro at line 101, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/nns/nns_client.man
  Doctools Error in macro at line 163, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/otp/otp.man
  Doctools Error in macro at line 81, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/pluginmgr/pluginmgr.man
  Doctools Error in macro at line 43, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/rcs/rcs.man
  Doctools Error in macro at line 38, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/ripemd/ripemd128.man
  Doctools Error in macro at line 174, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/ripemd/ripemd160.man
  Doctools Error in macro at line 158, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/sasl/sasl.man
  Doctools Error in macro at line 327, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/sha1/sha1.man
  Doctools Error in macro at line 160, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/snit/snitfaq.man
  Doctools Error in macro at line 107, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/snit/snit.man
  Doctools Error in macro at line 952, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/struct/pool.man
  Doctools Error in macro at line 68, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/struct/record.man
  Doctools Error in macro at line 154, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/struct/struct_tree.man
  Doctools Error in macro at line 39, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/struct/struct_list.man
  Doctools Error in macro at line 163, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/struct/graph.man
  Doctools Error in macro at line 242, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/struct/struct_tree1.man
  Doctools Error in macro at line 53, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/tar/tar.man
  Doctools Error in macro at line 45, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/term/imenu.man
  Doctools Error in macro at line 124, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/term/ipager.man
  Doctools Error in macro at line 111, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/textutil/expander.man
  Doctools Error in macro at line 60, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/tie/tie.man
  Doctools Error in macro at line 82, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/transfer/ddest.man
  Doctools Error in macro at line 60, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/transfer/copyops.man
  Doctools Error in macro at line 162, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/transfer/dsource.man
  Doctools Error in macro at line 71, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/transfer/transmitter.man
  Doctools Error in macro at line 56, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/transfer/receiver.man
  Doctools Error in macro at line 49, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/transfer/connect.man
  Doctools Error in macro at line 100, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/treeql/treeql.man
  Doctools Error in macro at line 158, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/uev/uevent.man
  Doctools Error in macro at line 46, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/units/units.man
  Doctools Error in macro at line 148, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/uuid/uuid.man
  Doctools Error in macro at line 46, column 0:
  [list_end]
  --> Must not happen
  Gen (latex): ./modules/wip/wip.man
  Doctools Error in macro at line 94, column 0:
  [list_end]
  --> Must not happen


tkt_uuid: 1769140fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: findByPattern has problems with NFS-style basedirs
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-08T19:47:09
comment:
  Solaris 8
  Tcl 8.4

  If ::fileutil::findByPattern is fed a basedir in the form /net/<machine>/export/disk1/... the resulting file names have the form /export/disk1/... ie the NFS portion of the base directory has been removed.

  mark.thornber@gmail.com


tkt_uuid: 1774302fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: comm
priority: 5 Medium
foundin: None
title: error in CommRunHook error handling
cmimetype: text/plain
submitter: boakley
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-14T20:41:50
comment:
  In proc ::comm::CommRunHook there is a block of code that looks like this:

      if {<something> {
  set code [catch {interp eval $interp $cmd} res]
      } else {
  set code [catch {uplevel 1 $cmd} res]
      }

      switch -exact -- $code {
  0 {}
  1 {
      return -errorinfo $::errorInfo -errorcode $::errorCode -code error $result
  }
  3 {return}
  4 {}
  default {return -code $code $res}
      }


  Notice that the first few lines set the variable "res" as the result of the catch, but the "1" case in the switch tries to use the variable $result.


tkt_uuid: 1774859fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: sasl
priority: 5 Medium
foundin: None
title: Process auth error in X-GOOGLE-TOKEN SASL mechanism
cmimetype: text/plain
submitter: teopetuk
assignee: patthoyts
closer: patthoyts
closedate: 2007-08-26T00:28:40
comment:
  Currently incorrect authentication using X-GOOGLE-TOKEN SASL mechanism returns strange error "can't read "g(SID)": no such variable".

  The attached patch allows to return more meanighful message.


tkt_uuid: 1774990fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: comm
priority: 9 Immediate
foundin: None
title: vwait dies when given varname with spaces
cmimetype: text/plain
submitter: boakley
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-15T21:33:43
comment:
  When comm is loaded it overrides vwait, but has a bug in the implementation that manifests itself when the vwait variable has spaces in it. I get the error:

  wrong # args: should be "::comm::VwaitOrig name"
      while executing
  "vwait [::itcl::scope flag]"
  ...
      

  This is due to the following line of code in vwait.tcl:

  set code [catch {uplevel 1 ::comm::VwaitOrig $varname} res]

  I think that should be (note the use of list):

  set code [catch {uplevel 1 [list ::comm::VwaitOrig $varname]} res]

  As an aside, you may be saying "why would anyone use a variable name with spaces?". As you can see in the above error message, I'm vwait'ing on an itcl public variable, which resolves to something like "@itcl ::foo ::Foo::flag". When it gets eval'd by the upvar those spaces naturally cause havoc.


tkt_uuid: 1774995fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: comm
priority: 5 Medium
foundin: None
title: error in comm error processing
cmimetype: text/plain
submitter: boakley
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-15T21:26:55
comment:
  (I woulda sworn I submitted this once; sorry if it's a duplicate)

  In comm there is this code in proc CommRunHook. Notice how catch saves its output in "res" but the return statement for case 1 uses $result:

      ...
  commDebug {puts stderr "<$chan> /interp $interp"}
  set code [catch {interp eval $interp $cmd} res]
      } else {
  commDebug {puts stderr "<$chan> /main"}
  set code [catch {uplevel 1 $cmd} res]
      }

      # Perform the return code propagation promised
      # to the hook scripts.
      switch -exact -- $code {
  0 {}
  1 {
      return -errorinfo $::errorInfo -errorcode $::errorCode -code error $result
  }
  3 {return}
  4 {}
  default {return -code $code $res}
      }


tkt_uuid: 1777399fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ftp
priority: 5 Medium
foundin: None
title: ftp cause memory leak
cmimetype: text/plain
submitter: fanwang
assignee: andreas_kupries
comment:
  Hi, I'v use ftp package for a long duration execution.
  And found there is memory leak. Following is the top infomation. STProxy is the script I used.
  pls also found it in attachment.

  [fwang@pc3-5 ~]$ top -d 5 -p 4036 -n 2 -b
  top - 10:29:10 up 51 min,  5 users,  load average: 0.00, 0.04, 0.06
  Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
  Cpu(s):  1.8% us,  0.9% sy,  0.0% ni, 95.5% id,  1.7% wa,  0.0% hi,  0.0% si
  Mem:    507224k total,   380992k used,   126232k free,    41192k buffers
  Swap:  1015800k total,        0k used,  1015800k free,   206452k cached

    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
   4036 fwang     16   0 17212 3728 1520 S  0.0  0.7   0:03.82 STProxy



  [fwang@pc3-5 ~]$ top -d 5 -p 4036 -n 2 -b
  top - 11:08:51 up  1:31,  6 users,  load average: 0.05, 0.19, 0.30
  Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
  Cpu(s):  2.8% us,  3.0% sy,  3.8% ni, 88.0% id,  2.3% wa,  0.1% hi,  0.0% si
  Mem:    507224k total,   482360k used,    24864k free,    45496k buffers
  Swap:  1015800k total,        0k used,  1015800k free,   278360k cached

    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
   4036 fwang     16   0 22736 9128 1520 S  0.0  2.4   0:35.18 STProxy


tkt_uuid: 1778143fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: bench
priority: 5 Medium
foundin: None
title: Make bench usable to benchmark extensions.
cmimetype: text/plain
submitter: pointsman
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-21T20:08:41
comment:
  ATM, bench is only easy to use, if you want to benchmark different tcl core versions against a suite of bench files.

  To benchmark different versions of a tcl extension with a  tcl core version (or with different tcl core verions) need some nasty handwork.

  I propose another option to ::bench:run: -pkgdirs. If this option isn't given, ::bench::run behaves as it does now. 

  If the option is given, it expects a list of dirs as argument. Then every interpreter in the run is setup to have every dir out of the -pkgdirs list as first dir in the auto_path variable. Every combination of interpreters  and dirs out of the -pkgdirs list will be reportet side by side. The empty list ({} or [list]) as one element of the -pkgdirs list let the interpreters use the (respective) 'default', installed extensions versions.

  See the attached patch against tcllib head.

  The patch misses doc updates (and version increment). If the idea itself and the implementation is accepted, I'll offer an enhanced patch.


tkt_uuid: 1779348fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: profiler
priority: 5 Medium
foundin: None
title: profiler test suite peculiar behavior
cmimetype: text/plain
submitter: lvirden
assignee: nobody
comment:
  I downloaded from activestate's ftp site today the latest tcl, tk, tcllib cvs head snapshot tars. On a sparc solaris 9 system, using sun's c compiler, I built the pieces and installed them. All this is being done within Sun's standard xterm window, running under GNOME, displaying back to Exceed X server running on Windows XP sp2.

  I then ran a make test for tcllib. Things went well until:
  [    ]  [8.5a7] pop3d       ~~       T   152 P   152 S     0 F     0
  [  * ]  [8.5a7] profiler    ---- profiler::leaveHandler::initialize_descendent_ti[  * ]  [8.5a7] profiler    PASS profiler::leaveHandler::initialize_descendent_ti[  * ]  [8.5a7] profiler    ---- profiler::leaveHandler::increment_descendent_tim[   *]  [8.5a7] profiler    PASS profiler::leaveHandler::increment_descendent_tim[   *]  [8.5a7] profiler    ---- profiler-4.1                                    [   *]  [8.5a7] profiler    PASS profiler-4.1                                    [   *]  [8.5a7] profiler    ---- profiler-5.1                                    [   *]  [8.5a7] profiler    PASS profiler-5.1                                    [  * ]  [8.5a7] profiler    ---- profiler-6.1                                    [  * ]  [8.5a7] profiler    PASS profiler-6.1                                    [  * ]  [8.5a7] profiler    ---- profiler-7.1                                    [  * ]  [8.5a7] profiler    PASS profiler-7.1                                    [  * ]  [8.5a7] profiler    SKIP profiler-7.2                                    [ *  ]  [8.5a7] profiler    ---- profiler-7.2-85                                 [ *  ]  [8.5a7] profiler    PASS profiler-7.2-85                                 [ *  ]  [8.5a7] profiler    ---- profiler-7.3                                    [ *  ]  [8.5a7] profiler    PASS profiler-7.3                                    [ *  ]  [8.5a7] profiler    ---- profiler-7.4                                    [*   ]  [8.5a7] profiler    PASS profiler-7.4                                    [*   ]  [8.5a7] profiler    ---- profiler-7.5                                    [*   ]  [8.5a7] profiler    PASS profiler-7.5                                    [*   ]  [8.5a7] profiler    ---- profiler-8.1                                    [*   ]  [8.5a7] profiler    PASS profiler-8.1                                    [ *  ]  [8.5a7] profiler    ---- profiler-8.2                                    [ *  ]  [8.5a7] profiler    PASS profiler-8.2                                    [ *  ]  [8.5a7] profiler    ---- profiler-9.1                                    [ *  ]  [8.5a7] profiler    PASS profiler-9.1                                    [    ]  [8.5a7] profiler    ~~       T    21 P    15 S     6 F     0               

  Notice that for some reason, profiler outputs each of its steps, instead of writing them on top of each other like the previous tests all did.

  This is a make test performed "interactively" with output going to stdout/stderr.

  I've seen this kind of thing happen with the test suite at other times. I understand that others may not be able to duplicate the problem. I am reporting it because there appears to be something weird going on in the test suite software itself, or perhaps in this particular test.


tkt_uuid: 1779424fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: list
priority: 5 Medium
foundin: None
title: Example Error ::struct::list filterfor
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-22T16:41:59
comment:
  Example in documentation for did not work.
  I remove the expr {..} layer and it worked as expected

  tcl_patchLevel 8.4.4
  % ::struct::list filterfor x {1 2 3 4 5} {expr {($x % 2) == 0}}
  syntax error in expression "expr {($x % 2) == 0}": variable references require preceding $
  % ::struct::list filterfor x {1 2 3 4 5} {($x % 2) == 0} 
  2 4


tkt_uuid: 1779624fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: log
priority: 5 Medium
foundin: None
title: Execute a command only when debug is active.
cmimetype: text/plain
submitter: pfinnegan
assignee: andreas_kupries
comment:
  e.g display the results of info script when debug is active. 

  something like:
   
  ::log::lvSuppressLE emergency 0

  ::log::log debug [ info script ]


tkt_uuid: 1784637fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: linearalgebra
priority: 5 Medium
foundin: None
title: Changes in matmul between vers. 1.0 and 1.0.1
cmimetype: text/plain
submitter: bwallner
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-11-16T08:22:07
comment:
  I found a different (wrong) behaviuor between version 1.0 and 1.0.1 in matrix multiplikation. See the attached file.
  The result for variable pvv should be: 1.6848 (vers. 1.0)
  but I got: 0.5220 0.1606 0.2770 0.3830 0.4059 ...


tkt_uuid: 1784836fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: Documentation
priority: 5 Medium
foundin: None
title: various items of note in the cvs head README files
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-30T17:25:05
comment:
  The top level README files have some typos (prefered instead of preferred, for instance). I also note, though, that I see no reference to TIP#190 file format being permitted for a Tcllib module.

  Is that something that should be considered to add to the documentation, since TIP 190 uses Tcllib as its primary source of examples of how one might make use of tcl modules?


tkt_uuid: 1784843fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: Documentation
priority: 5 Medium
foundin: None
title: minor spelling corrections to devdocs files
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-30T17:31:21
comment:
  There may be content-oriented updates needed to these files ... this patch is not that.

  All I am doing here is correcting several typos I encountered while running ispell over the files.


tkt_uuid: 1791379fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil :: magic
priority: 5 Medium
foundin: None
title: Documentation error "::fileutil::magic::mime"
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-09-12T16:22:08
comment:
  Hi,

  I have trouble running "::fileutil::magic::mime" command from within the script. I don't know if anyone else had the same problem. The same command runs fine if called from within the interpreter directly (tclsh shell interactively). In both cases I included "package require fileutil::magic::mimetype".

  I run "ActiveState ActiveTcl 8.4.15.0" on Windows XP Pro Sp2. Is this a bug, or am I doing something wrong?

  Thank you,

  Vlad.


tkt_uuid: 1793855fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftp
priority: 5 Medium
foundin: None
title: ::ftp::geturl
cmimetype: text/plain
submitter: jkjennings
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-09-13T18:46:13
comment:
  Problem: failure on certain addresses

  package require ftp 2.4.4
  package require ftp::geturl 0.2

  set url "ftp://cdaweb.gsfc.nasa.gov/pub/istp/"
  puts "BEGIN test 1"
  set current_html [::ftp::geturl $url]]
  puts $current_html
  puts " ************ END test Pass ****************"

  set url "ftp://nssdcftp.gsfc.nasa.gov/"
  puts "BEGIN test 2"
  set current_html [::ftp::geturl $url]]
  puts $current_html
  puts " ************ END test Fail ****************"

  Suggested solution (comp.tcl, Lester): 

  The fix is to replace the switch arm that starts at line 83 of
  ftp_geturl.tcl with:

          - {
              if {[string equal $ftp_file {}]} {
                  set contents [ftp::NList $fdc $ftp_file]
              } else {
                  ftp::Get $fdc $ftp_file -variable contents
              }
          } 


tkt_uuid: 1796255fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: Emoticons insertion
cmimetype: text/plain
submitter: wiede
assignee: patthoyts
closer: patthoyts
closedate: 2007-09-18T00:33:13
comment:
  on linux x68 when inserting emoticons, for some there are inserted three instead of one:
  cry:^(   :-(   :(

  these are also shown with ShowEmoticons menu (see attached file)


tkt_uuid: 1797428fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: asn
priority: 5 Medium
foundin: None
title: padding byte in asnBitString missing
cmimetype: text/plain
submitter: mic42
assignee: mic42
closer: mic42
closedate: 2007-09-18T21:03:50
comment:
  The mandatory padding byte in the encoding of the BitString type is missing in the encoder.

  reported by "Fang, Lun Gang \(Ark\)" <lungangfang@alcatel-lucent.com>


tkt_uuid: 1798210fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: pluginmgr
priority: 5 Medium
foundin: None
title: pluginmgr list is returning empty strings as plugin names
cmimetype: text/plain
submitter: jeremy_c
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-09-20T04:19:17
comment:
  Please see the example on: http://wiki.tcl.tk/16192

  At the end of example.tcl, simple add:

  puts [plug list]

  It will print "{} {}" It should print "simple slang"


tkt_uuid: 1798337fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: list
priority: 5 Medium
foundin: None
title: struct::list permutations can't handle 1-element list
cmimetype: text/plain
submitter: glennjnn
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-09-19T20:44:39
comment:
  % source h:/tcl/lib/tcllib1.10/struct/list.tcl
  % package present struct::list
  1.6.1
  % ::struct::list permutations {a b}
  {a b} {b a}
  % ::struct::list permutations {a}
  bad option "a": must be :struct::list::Lforeachperm, :struct::list::Lsplit, :struct::list::Lreverse, :struct::list::Liota, :struct::list::Lfold, :struct::list::Lmapfor, :struct::list::Lmap, :struct::list::Lflatten, :struct::list::Lequal, :struct::list::LlongestCommonSubsequence, :struct::list::Lrepeat, :struct::list::LlongestCommonSubsequence2, :struct::list::LlcsInvert, :struct::list::LlcsInvertMerge, :struct::list::Lswap, :struct::list::Lfirstperm, :struct::list::LlcsInvert2, :struct::list::LlcsInvertMerge2, :struct::list::Lfilterfor, :struct::list::Lassign, :struct::list::LdbJoin, :struct::list::Lfilter, :struct::list::Lshift, :struct::list::Lrepeatn, :struct::list::LdbJoinKeyed, :struct::list::Lpermutations, or :struct::list::Lnextperm

  The Lpermutations proc contains this check

      if {[llength $list] < 2} {
  return [list $list]
      }

  The [list] command in the return statement needs to be referenced from the global namespace.


tkt_uuid: 1798413fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: Documenting related commands on one man page
cmimetype: text/plain
submitter: sdeasey
assignee: andreas_kupries
comment:
  It's difficult to write a man page about multiple commands. Here's an example:

  http://naviserver.sourceforge.net/n/naviserver/files/ns_memoize.html
  http://naviserver.cvs.sourceforge.net/naviserver/naviserver/doc/src/mann/ns_memoize.man?view=markup


  - Each command is given a numbered anchor, so to link to ns_memoize_flush the link is: .../ns_memoize.html#2. This will change if commands are added, removed or reordered.


  - If you use the [cmd ...] markup, the name of the command becomes a link but only if it has the same name as the page current page.

  In the example above, ns_memoize is a link to itself. However ns_memoize_flush is not a link at all. Neither is ns_cache_eval, which is documented on another page (named ns_cache).

  What would be useful is if each mention of a command would link to it's definition, i.e. .../ns_cache.html#ns_cache_eval


  - Some commands are in the form of subcommands, like Tcl's 'string'. It would be useful to be able to refer to  a subcommand like: [cmd "string is"] and have it parse the space and link to the correct place.


tkt_uuid: 1798420fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: Documenting C functions
cmimetype: text/plain
submitter: sdeasey
assignee: andreas_kupries
comment:
  Here's an example:

  http://naviserver.sourceforge.net/3/naviserver/files/Ns_Sls.html
  http://naviserver.cvs.sourceforge.net/naviserver/naviserver/doc/src/man3/Ns_Sls.man?view=markup


  - In the Synopsis and Functions sections there are no parentheses around the function arguments. They don't look like C functions.


  - The argument names are listed, but not their types. It's not clear from the doctools docs how to identify pointers, arrays etc.


  - How do do you make doctools arrange it so that when the man pages are installed and a user types

      $ man Ns_SlsAlloc

  the Ns_Sls man page appears, which documents all the sls functions?


tkt_uuid: 1798427fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: Doctools HTML output
cmimetype: text/plain
submitter: sdeasey
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-05-16T06:46:51
comment:
  It is very difficult to make the HTML output of the dtplite command presentable.


  - SECTION TITLES ARE IN ALL CAPS. It's traditional for man pages with limited formatting capability, but not necessary for a web page.

  - The Table of Contents are indented with 4 non-breaking spaces and hard returns...

  - The Synopsis is formatted using nested table. It's not necessary.

  - Paragraphs and definition lists are unclosed.

  - Examples are wrapped in a table so that a thick line will be drawn down the left edge. It's not necessary.

  - dtplite is brittle in it's expectations for where things should live. For example, to use the automatic TOC and index building function I had to create a symlink forest of 'modules'. The directory names of the modules are used as the headings in the TOC.  It's not clear how to add C library docs to this.


tkt_uuid: 1799702fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ip
priority: 5 Medium
foundin: None
title: ::ip::reduceToAggregates with weird netmask broken
cmimetype: text/plain
submitter: rkeene
assignee: aakhter
comment:
  ::ip::reduceToAggregates returns an invalid result (i.e., a result that is not functionally the same as its input) when the netmask "255.255.0.255" is used in conjuction with disjoint, but still overlapping subnets.

  Example:

  tcl>package require ip
  1.1.1
  tcl>set iplist [list 1.2.0.4/255.255.0.255 1.2.3.0/255.255.255.0]
  tcl>set reducediplist [::ip::reduceToAggregates $iplist]
  tcl>puts $reducediplist
  1.2.0.4/16
  tcl>::ip::isOverlap 1.2.1.1/32 [lindex $iplist 0]
  0
  tcl>::ip::isOverlap 1.2.1.1/32 [lindex $iplist 1]
  0
  tcl>::ip::isOverlap 1.2.1.1/32 [lindex $reducediplist 0]
  1


tkt_uuid: 1800185fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib
priority: 5 Medium
foundin: None
title: tooltip text inside yellow box is centred
cmimetype: text/plain
submitter: nobody
assignee: patthoyts
closer: sf-robot
closedate: 2007-10-07T02:20:05
comment:
  Tooltips seems to default to centred alignment on multiline tooltips, which looks bad particularly if your tooltip is a small paragraph or a long sentence.

  Eg: http://pc.autons.net/stuff/tooltips-centred.png

  A controlling option might also be useful as some people might find the old centred behaviour preferable.


tkt_uuid: 1800296fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib
priority: 5 Medium
foundin: None
title: tooltip manual unclear on clear option
cmimetype: text/plain
submitter: nobody
assignee: nobody
closer: patthoyts
closedate: 2007-09-22T19:36:49
comment:
  The doc at http://tcllib.sourceforge.net/doc/tooltip.html doesn't indicate for the clear option: what 'pattern' is or how it's matched.

  Looking through the source, the answer is it's the widget collection and the pattern is tested using string match (not regular expressions).

  Suggest replacing the text with:

  # clear ?pattern?
  #       Stops the specified widgets (defaults to all) from showing tooltips. Pattern matches are made using string match (not regular expressions).


tkt_uuid: 1800338fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: dtplite can't find it's matching tcllib if --prefix used
cmimetype: text/plain
submitter: sdeasey
assignee: andreas_kupries
comment:
  Installing tcllib from CVS head with a prefix:

    ./configure --prefix=/home/me/local/tclllib-HEAD
    make install

    $ ~/local/tcllib-HEAD/bin/dtplite


  If no other tcllib is installed then dtplite errors out -- it can't find a tcllib (this is the case e.g. on sourceforge)

  If there's a tcllib installed on the system then dtplite prefers that, making testing of new version tricky.


  Can the utility commands that ship with tcllib always link against the version of tcllib they ship with?


tkt_uuid: 1800344fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: doctools
priority: 5 Medium
foundin: None
title: Extra <br> tags before new definition list
cmimetype: text/plain
submitter: sdeasey
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-04-28T04:28:47
comment:
  Using tcllib from cvs HEAD.



  Here's some markup:

  [call [cmd ns_limits_get] [arg limit]]

  Get the current configuration options and accumulated runtime statistics for
  the named limits bundle. The result is a list in Tcl array-get format which
  can be used, for example, to initialise a hash table.

  [list_begin definitions]

  [lst_item nrunning]
  The number of connections currently running with a URL which is mapped to
  this limit bundle.



  Here's the HTML output:

  <dt><a name="2"><b class='cmd'>ns_limits_get</b> <i class='arg'>limit</i></a></dt><dd>


  Get the current configuration options and accumulated runtime statistics for
  the named limits bundle. The result is a list in Tcl array-get format which
  can be used, for example, to initialise a hash table.


  </p><br><br>
  <dl>

  <dt>nrunning</dt><dd>
  The number of connections currently running with a URL which is mapped to
  this limit bundle.



  There is a an extra pair of <br><br> tags between the closing </p> and opening <dl> which is throwing the formatting off.


tkt_uuid: 1800408fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: Extra spaces around link text
cmimetype: text/plain
submitter: sdeasey
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-09-25T21:21:28
comment:
  Using cvs HEAD, the following doctools markup:

    See [cmd ns_rollfile] for details...

  Produces this HTML output:

    See <b class='cmd'><a href="../ns_rollfile.html"> ns_rollfile </a></b> for details...


  There is extra space before and after 'ns_rollfile' within the anchor tag.

  In the above example it's not noticeable as runs of spaces are collapsed in HTML, but if there is anything other than a space surrounding the link, e.g. brackets, parentheses or question marks, the extra spaces break the formatting.


tkt_uuid: 1800411fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: Missing CSS class names
cmimetype: text/plain
submitter: sdeasey
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-04-22T19:52:00
comment:
  The following doctools markup:

    [cmd ns_logctl] [arg hold]


  Produces the following HTML:

    <b class='cmd'>ns_logctl</b> <i class='arg'>hold</i>


  Which is good. However, many of the other doctools macros don't include CSS class names. For example, fun, type, const and method all produce <strong>, no class name.

  Should the rule for basic, non-structural doctools macros be that the name of the macro becomes the CSS class?

  [fun function]: <strong class="fun">function</strong>


  (btw. cmd produces <b> whereas fun produces <strong>. I'm not sure there's a lot of extra symantic info in <strong>, but for consistency, maybe they should be the same?)


tkt_uuid: 1800413fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: dtplite errors/warnings reported twice
cmimetype: text/plain
submitter: sdeasey
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-09-25T23:13:06
comment:
  Using CVS HEAD, running dtplite on some man pages produces:

  man3/Ns_Sls.man
  DocTools Warning (depr_ltype): In macro at line 69, column 0:
  DocTools Warning (depr_ltype): Deprecated list type "arg".
  DocTools Warning (depr_ltype): Please use "arguments" instead.
  DocTools Warning (depr_ltype): In macro at line 69, column 0:
  DocTools Warning (depr_ltype): Deprecated list type "arg".
  DocTools Warning (depr_ltype): Please use "arguments" instead.


  The same warning is printed twice. Same for genuine errors, not just depreciation warnings.

  The messages are quite verbose and can result in thousands of lines of output which is hard to read.


tkt_uuid: 1800420fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools nroff output for type/arg reversed
cmimetype: text/plain
submitter: sdeasey
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-09-25T21:26:46
comment:
  This markup:


    [section Arguments]
    [list_begin arguments]

    [arg_def [type Ns_Sls] *sls in/out]

    An opaque SLS slot handle.


  Produces this HTML output:


    ARGUMENTS

    Ns_Sls *sls (in/out)
      An opaque SLS slot handle.



  Which is correct. The nroff output looks like this:


    ARGUMENTS
      *sls Ns_Sls (in/out)
        An opaque SLS slot handle.


  The type and argument names have switched position, which looks weird.


tkt_uuid: 1800599fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: Generate html redirect pages to sub-commands
cmimetype: text/plain
submitter: sdeasey
assignee: andreas_kupries
comment:
  If more than one command is documented in a single page, and you want to link to the HTML output from an external source, you need to know which top-level page the command appears in.

  For each command on a page which does not share it's name with the page itself, I would like dtplite to emit a stub HTML page, named after the command.

  It should have a link to the correct page, including the correct fragment within the page. e.g.

    <a href="ns_log.html#ns_logctl">ns_logctl</a>

  In the html header, it should contain the following meta tags:

  <meta http-equiv="Refresh" content="1;url=ns_log.html#ns_logctl">

  <meta name="ROBOTS" content="NOINDEX">


  The first one to automatically redirect the user to the correct page. The second one to discourage google from indexing.

  The stub pages do not need to be linked from the TOC or keyword index.


tkt_uuid: 1800608fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: dtplite html output: title, meta keywords + description
cmimetype: text/plain
submitter: sdeasey
assignee: andreas_kupries
comment:
  The HTML output from dtplite should include meta keywords and description in the head of the document. The title should reflect the contents of the page.

  Here's a current example:

  http://naviserver.sourceforge.net/n/naviserver/files/ns_return.html


  The HTML title is:

    ns_return - NaviServer Built-in Commands

  It should be:

    ns_return - Return a complete HTTP response

  There are many commands in the same section, but they all have different descriptions, and this useful info should be presented first to users/search engines.


  The meta-keywords should be:

  <meta name="keywords" content="ns_return, ns_returnfile, ns_returnfp, ns_respond, charset, encoding, response, return, status">

  i.e. it should include all the commands which are documented on that page, and they should appear before the words in the 'keywords' section of the man page. None of the 'see also' entries should be present.



  The meta-description should be:

  <meta name="description" content="These commands are used to construct a complete HTTP response and return it to the requesting client. The response may be transcoded into a different encoding, compressed and/or sent in chunks as automatically negotiated by the client and server settings.">

  i.e. it should be the first paragraph of the 'description' section of the man page.


tkt_uuid: 1800617fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools module toc: name vs. titledesc
cmimetype: text/plain
submitter: sdeasey
assignee: andreas_kupries
comment:
  dtplite can crate a two level TOC: one for each module and an overview.

  Here's an example (only two modules):

    http://naviserver.sourceforge.net/n/toc.html
    http://naviserver.sourceforge.net/n/naviserver/toc.html

  The first is a superset of the second, which is not very useful.


  What would be great is if the second TOC in the example above (the per-module TOC) could use the 'titledesc' as a heading, and list each command in the page.

  So, instead of this (current):

    ns_accesslog  Query and control access log parameters
    ns_atsignal   Server callbacks
    ns_cache      Cache manipulation
    ...

  It would look like this:

    Query and control log parameters
    ns_accesslog

    Server callbacks
    ns_atprestartup, ns_atstartup, ns_atsignal, ns_atshutdown, ns_atexit

    Cache manipulation
    ns_cache_create, ns_cache_names, ns_cache_keys, ns_cache_eval, ns_cache_incr, ns_cache_append, ns_cache_lappend, ns_cache_flush, ns_cache_stats

    ...

  Each 'titledesc' becomes an h2 heading. The commands are just a paragraph of words separated by commas, each a hyperlink to the command def (including fragment).


  With this scheme, the per-module TOC falls somewhere in between the top level TOC and the keyword index in terms of information density.


tkt_uuid: 1804388fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: uevent
priority: 7 High
foundin: None
title: uevent::get - feature request
cmimetype: text/plain
submitter: cniemira
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-03-23T06:33:58
comment:
  I'd like to see a "uevent::get" and/or a "uevent::list" command implemented. It would be nice to be able to query tag/event pairs for a list of tokens or commands bound to them.


tkt_uuid: 1805192fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: math :: linearalgebra
priority: 5 Medium
foundin: None
title: ::math::linearalgebra::eigenvectorsSVD does not work
cmimetype: text/plain
submitter: nobody
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2007-12-23T09:34:56
comment:
  ::math::linearalgebra::eigenvectorsSVD does not work coz of a $matrix variable not defined.. maybe it should be the $A matrix instead 

  from danielfisico@gmail.com


tkt_uuid: 1808431fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Works For Me
subsystem: dns
priority: 5 Medium
foundin: None
title: ::ip::version errors when argument is not of form */*
cmimetype: text/plain
submitter: nobody
assignee: patthoyts
closer: patthoyts
closedate: 2007-10-08T11:08:09
comment:
  can't read "addr": no such variable while executing
  "string first $addr :"
      (procedure "version" line 4)
      invoked from within
  "version $ip"
      (procedure "::ip::type" line 2)
      invoked from within
  "::ip::type $ip"


tkt_uuid: 1811890fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: inifile
priority: 5 Medium
foundin: None
title: inifile : allow keys with no assignment
cmimetype: text/plain
submitter: jvella23
assignee: afaupell
comment:
  First off, the "Category" list is missing "inifile".

  I'm attaching a patch to allow section keys that have no assigned value, not even an empty value which is done by doing "key=". This will allow a call to the ::get function to successfully return key "C" in the following example section:

  [dummy]
  A=first
  B=
  C

  A simple example of where this enhancement comes into play is if you wanted to use a section to hold a simple list of names, for example a list of valid file suffixes:

  [suffix_list]
  .txt
  .tcl
  .cxx

  The ::value function was modified to return the default value for keys that exist but have no assignment. This allows distinguishing the case where a key exists and is assigned an empty value versus a key that has no assignment.

  I've updated the test to cover this new capability.

  The patch was made against version 1.13 of ini.tcl and includes the following file updates:

  ini.tcl
  inifile.test
  pkgIndex.tcl
  test.ini


tkt_uuid: 1813193fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: ftp
priority: 5 Medium
foundin: None
title: ftp - FXP - cross server transfer not going through client
cmimetype: text/plain
submitter: nobody
assignee: gwlester
comment:
  Is it possible to add FXP support? RFC959 describes the implementation of FXP as follows:

        When data is to be transferred between two servers, A and B (refer
        to Figure 2), the user-PI, C, sets up control connections with
        both server-PI's.  One of the servers, say A, is then sent a PASV
        command telling him to "listen" on his data port rather than
        initiate a connection when he receives a transfer service command.
        When the user-PI receives an acknowledgment to the PASV command,
        which includes the identity of the host and port being listened
        on, the user-PI then sends A's port, a, to B in a PORT command; a
        reply is returned.  The user-PI may then send the corresponding
        service commands to A and B.  Server B initiates the connection
        and the transfer proceeds.  The command-reply sequence is listed
        below where the messages are vertically synchronous but
        horizontally asynchronous:

           User-PI - Server A                User-PI - Server B
           ------------------                ------------------

           C->A : Connect                    C->B : Connect
           C->A : PASV
           A->C : 227 Entering Passive Mode. A1,A2,A3,A4,a1,a2
                                             C->B : PORT A1,A2,A3,A4,a1,a2
                                             B->C : 200 Okay
           C->A : STOR                       C->B : RETR
                      B->A : Connect to HOST-A, PORT-a


  If you would like to discuss this with me any further, please contact me at: pill_uk@hotmail.com


tkt_uuid: 1815027fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: tklib
priority: 5 Medium
foundin: None
title: ::tooltip::show; wrong order of window checking
cmimetype: text/plain
submitter: tombert
assignee: nobody
closer: tombert
closedate: 2007-10-17T10:56:49
comment:
  The evaluation "{!$we || (!$wm && !$wc)}" if the window exists is to late:

  -----------
  set we [winfo exists $w]
  set wc [string match $w* [eval [list winfo containing] \
                                    [winfo pointerxy $w]]]
  set wm [string equal [winfo class $w] "Menu"]
  if {!$we || (!$wm && !$wc)} {
     return
  }
  ------------

  It's after "[winfo pointerxy $w]" where it already crashes.

  Should be:
  -------------
  set we [winfo exists $w]
  if {!$we} {return}
  set wc [string match $w* [eval [list winfo containing] \
                                    [winfo pointerxy $w]]]
  set wm [string equal [winfo class $w] "Menu"]
  if {!$wm && !$wc} {
      return
  }
  -------------


tkt_uuid: 1815519fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: fileutil
priority: 5 Medium
foundin: None
title: fileutil::find does not return symlinks
cmimetype: text/plain
submitter: coldstore
assignee: andreas_kupries
comment:
  tcllib 1.9

  Running find over a directory containing symlinks does not return any reference to or mention of the symlinked names.

  I'm not sure whether that's intentional or not, but in looking at the source I see nothing which seems designed to cause this behaviour, so think it's a bug.


tkt_uuid: 1824212fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: md5
priority: 5 Medium
foundin: None
title: add proc to generate salt
cmimetype: text/plain
submitter: afaupell
assignee: patthoyts
closer: patthoyts
closedate: 2008-01-26T23:57:07
comment:
  this would be really handy to have included as part of the module, for generating passwords. here is my version:

  proc salt {len {chars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/.}} {
      set salt {}
      set size [string length $chars]
      while {$len > 0} {
          append salt [string index $chars [expr {int(rand() * $size)}]]
          incr len -1
      }
      return $salt
  }

  set enc_pass [::md5crypt::aprcrypt [salt 8] $pass]


tkt_uuid: 1825092fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 5 Medium
foundin: None
title: lost char when extracting (some) parts
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-11-05T23:15:03
comment:
  The problem is that some extracted files are shorter than the original.

  I extracted the attachement with mime::copymessage, and there was one
  byte missing at the end of the extracted base64 encoded file.

  So the error seems to occur where the mime package builds up its state array where the offset and length of parts are stored.

  Same problem in Win ActiveStateTCL 8.5.0.0 beta-6, the last base64 encoded line has 63 chars, the original 64 chars.

  ####test code:
  set token [mime::initialize -file mail20071020-175849-0]

  set allparts [mime::getproperty $token parts]
  # I know this mail has two parts: one plain text, one attachement
  set attachtok [lindex $allparts 1]
  # test file name out:
  set ts [clock format [clock seconds] -format {%Y%m%d-%H%M%S}]
  set ofn a0036-test-${ts}.part

  set ofh [open $ofn w]
  fconfigure $ofh -translation binary
  mime::copymessage $attachtok $ofh
  close $ofh


tkt_uuid: 1826418fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: None
priority: 5 Medium
foundin: None
title: Various syntax errors
cmimetype: text/plain
submitter: eriklns
assignee: andreas_kupries
comment:
  Attached file tcllib.tar.gz holds the results of a procheck anaysis on all tcllib scripts.

  As you will undoubtedly notice, some errors are reported because my version of procheck is outdated. However, some of the errors are indeed syntax errors.

  It is easy to compensate for the procheck version mismatch by rerunning the script procheck.tcl with a recent version.

  Erik Leunissen

  Attached file: tcllib.tar.gz (containing: procheck.tcl, procheck.out, procheck.err)


tkt_uuid: 1835240fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: Error from http package during login
cmimetype: text/plain
submitter: patthoyts
assignee: patthoyts
closer: patthoyts
closedate: 2008-01-08T14:19:38
comment:
  Got:

  can't read "state(status)": no such variable
  can't read "state(status)": no such variable
      while executing
  "if {$state(status) eq "error"} {
      # Something went wrong while trying to establish the connection.
      # Clean up after events and such, but DON'..."
      (procedure "http::geturl" line 255)
      invoked from within
  "http::geturl http://www.tcl.tk/cgi-bin/tct/tip/tclIndex.txt  -timeout 15000  -progress ::tkchat::Progress  -command [list [namespace origin fetchurldo..."
      (procedure "GetTipIndex" line 2)
      invoked from within
  "GetTipIndex"
      (procedure "::tkchat::LoadHistory" line 14)
      invoked from within
  "::tkchat::LoadHistory"
      ("after" script)

  Note that this is using a partially patched http package from 8.5. In my case the body of the http::status command is:
  % info body http::status

      if {![info exists $token]} { return "error" }    
      upvar 0 $token state
      return $state(status)


tkt_uuid: 1838703fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: statistics
priority: 5 Medium
foundin: None
title: cdf-normal gives div-by-zero for arg = 0
cmimetype: text/plain
submitter: erickb
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-11-16T08:20:56
comment:
  Hello,

  The cdf-normal function gives a divide-by-zero error for the following call (which should return 0.5):

  ::math::statistics::cdf-normal 0 1 0

  The problem appears to arise in Cdf-toms322, where the internal variables w and p become zero, and then one is divided by the other.

  Eric


tkt_uuid: 1838731fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: statistics
priority: 5 Medium
foundin: None
title: Pretty quick inverse normal cdf
cmimetype: text/plain
submitter: erickb
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-11-16T08:19:56
comment:
  Hello,

  I have written a pretty quick inverse normal cdf proc. I start with a decent (I think good to 10^-4 ??) approximation from Abramowitz and Stegun as a starting point and then use Newton's method to find a much better estimate.

  Use it as you like. I'm attaching the code, and providing it as public domain (no copyright).

  Incidentally, math::statistics::pnorm is much faster than math::statistics::cdf-normal, and it might be better to use it (??)

  Eric


tkt_uuid: 1841979fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: grammar_fa
priority: 5 Medium
foundin: None
title: Tests for grammar::fa::op::toRegexp
cmimetype: text/plain
submitter: lars_h
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-12-03T21:48:50
comment:
  Here are two tests for grammar::fa::op::toRegexp and
  grammar::fa::op::toTclRegexp which do not depend on 
  details of the implementation. The idea is to construct 
  an automaton which keeps track of of remainder modulo 3 
  (in order to keep it small; one could probably pick a larger 
  divisor, but I don't think it would make the test a better 
  error detector) while scanning the digits of a number, 
  then use that to generate a Tcl regexp for numbers belonging 
  to a particular modulo class, and finally compare the 
  result of [regexp] to the result of the straightforward 
  [expr] expression. The result is the list of numbers for 
  which these don't agree, so the correct result is empty 
  in both cases.

  I'm afraid I'm not quite sure how to best turn this into 
  a formal test, however.

  This first block of code tests integers in base 10 for being 
  congruent to 2 mod 3.

  set fa [grammar::fa decimal_2_mod_3]
  $fa state add 0 1 2
  $fa symbol add 0 1 2 3 4 5 6 7 8 9
  foreach state [$fa states] {
      foreach digit [$fa symbols] {
          $fa next $state $digit --> [expr {(10*$state + $digit) % 3}]
      }
  }
  $fa start add 0
  $fa final add 2
  set RE ^([
      grammar::fa::op::toTclRegexp [grammar::fa::op::toRegexp $fa] {}
  ])\$
  set res {}
  for {set n 0} {$n<1000} {incr n} {
      if {[regexp $RE $n] != ($n % 3 == 2)} then {lappend res $n}
  }
  $fa destroy
  set res

  This second block of code tests integers in base 8 for being 
  congruent to 1 mod 3.

  set fa [grammar::fa octal_1_mod_3]
  $fa state add 0 1 2
  $fa symbol add 0 1 2 3 4 5 6 7
  foreach state [$fa states] {
      foreach digit [$fa symbols] {
          $fa next $state $digit --> [expr {(8*$state + $digit) % 3}]
      }
  }
  $fa start add 0
  $fa final add 1
  set RE ^([
      grammar::fa::op::toTclRegexp [grammar::fa::op::toRegexp $fa] {}
  ])\$
  set res {}
  for {set n 0} {$n<4096} {incr n} {
      if {[regexp $RE [format %o $n]] != ($n % 3 == 1)} then {lappend res $n}
  }
  $fa destroy
  set res

  One limitation of these tests is however that they don't check 
  all parts of the regexp; some parts of it simply require longer 
  strings than the 3 and 4 respectively digits occurring in this 
  test. I'm working on a test that generates strings from the 
  regexp instead (essentially sampling the underlying language) 
  so that (in a sense) the implication can be tried the other way 
  round as well, but this string generation is itself a generally 
  useful operation on regexps, so I'll probably add that as 
  Yet Another regexp operation...


tkt_uuid: 1842346fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget::place does not work as expected
cmimetype: text/plain
submitter: ngoelles
assignee: damonc
closer: oehhar
closedate: 2009-06-10T08:34:01
comment:
  When BWidget::place is called like 
  BWidget::place widget width 0 above otherwidget
  or
  BWidget::place widget width 0 left otherwidget
  then widget is not placed at the expected position.

  Attached file of utils.tcl solves the problem.


tkt_uuid: 1843712fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: smtp
priority: 5 Medium
foundin: None
title: Option to set client address
cmimetype: text/plain
submitter: nobody
assignee: mrose
comment:
  The EHLO client address comes from [info hostname] or is set to localhost if sending email to the localhost server but this is not sufficient.  For example I want to send an email from my desktop system using my ISP's mail server and it requires that the EHLO client is a FQDN but my system is setup with a simple hostname of "deth".  Because of this, sending emails fails yet I can send an email just fine from Thunderbird.  In looking at the conversation between Thunderbird and my mail server, I see that Thunderbird is sending "EHLO 127.0.0.1" so I would like the option to do this as well so that I can send emails properly from my software.

  The changes for this are just to allow a -client option to the ::stmp::sendmessage proc and add code in the initialize variables area (right by where username is set to {}) like this:

      set client {}

  Then in the option parsing add this:

      -client { set client $value }

  And then change the code to get the client like this:

      if { $client == "" } {
          if { [string compare $server localhost] } {
              set client localhost
          } else {
              set client [info hostname]
          }
      }

  Thats it!  Now I can specify "-client 127.0.0.1" and sending the email works properly.

  This is from bpepers@linuxcanada.com


tkt_uuid: 1844104fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: json
priority: 5 Medium
foundin: None
title: json test suite failures against tcl 8.5
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-12-06T00:39:02
comment:
  Platform: sparc solaris 9
  tcl: cvs head 8.5
  tcllib: cvs head

  The following tests failed:
  ==== json-1.1 test JSON widget FAILED
  ==== Contents of test case:
  set res [json::json2dict $JSON(widget)]
  ---- Result was:
  widget {debug on window {title {Sample Widget} name main_window width 500 height
   500} text {data {Click Here} size 36 style bold name null hOffset 250 vOffset 1
  00 alignment center onMouseUp {sun1.opacity = (sun1.opacity / 100) * 90;}}}
  ---- Result should have been (exact matching):
  widget {window {width 500 height 500 name main_window title {Sample Widget}} tex
  t {vOffset 100 name null style bold data {Click Here} onMouseUp {sun1.opacity = 
  (sun1.opacity / 100) * 90;} alignment center hOffset 250 size 36} debug on}
  ==== json-1.1 FAILED

  ==== json-1.2 test JSON glossary FAILED
  ==== Contents of test case:
  set res [json::json2dict $JSON(glossary)]
  ---- Result was:
  glossary {title {example glossary} mixlist {{a "" str} -0.09 null {} {member tru
  e}} GlossDiv {title S GlossList {{ID SGML GlossTerm {Standard \" Language} Acron
  ym SGML\\ Abbrev {ISO 8879:1986} GlossDef {A meta-markup language, used ...} Glo
  ssSeeAlso {GML XML markup}}}}}
  ---- Result should have been (exact matching):
  glossary {mixlist {{a "" str} -0.09 null {} {member true}} title {example glossa
  ry} GlossDiv {GlossList {{GlossSeeAlso {GML XML markup} GlossTerm {Standard \" L
  anguage} Acronym SGML\\ ID SGML Abbrev {ISO 8879:1986} GlossDef {A meta-markup l
  anguage, used ...}}} title S}}
  ==== json-1.2 FAILED

  ==== json-1.4 test JSON menu FAILED
  ==== Contents of test case:
  set res [json::json2dict $JSON(menu)]
  ---- Result was:
  menu {id file value File: unival ?: popup {menuitem {{value Open onclick OpenDoc
  ()} {value Close onclick CloseDoc()}}}}
  ---- Result should have been (exact matching):
  menu {popup {menuitem {{value Open onclick OpenDoc()} {value Close onclick Close
  Doc()}}} value File: id file unival ?:}
  ==== json-1.4 FAILED



  ==== json-1.8 test JSON menu2 FAILED
  ==== Contents of test case:
  set res [json::json2dict $JSON(menu2)]
  ---- Result was:
  menu {header Viewer items {{id Open} {id OpenNew label {Open New}} null {id Zoom
  In label {Zoom In}} {id ZoomOut label {Zoom Out}} null {id Help} {id About label
   {About Viewer...}}}}
  ---- Result should have been (exact matching):
  menu {header Viewer items {{id Open} {label {Open New} id OpenNew} null {label {
  Zoom In} id ZoomIn} {label {Zoom Out} id ZoomOut} null {id Help} {label {About V
  iewer...} id About}}}
  ==== json-1.8 FAILED


  ==== json-1.9 test JSON array FAILED
  ==== Contents of test case:
  set res [json::json2dict $JSON(array)]
  ---- Result was:
  {precision zip Latitude 37.7668 Longitude -122.3959 Address {} City {SAN FRANCIS
  CO} State CA Zip 94107 Country US} {precision zip Latitude 37.371991 Longitude -
  122.026020 Address {} City SUNNYVALE State CA Zip 94085 Country US}
  ---- Result should have been (exact matching):
  {Country US Latitude 37.7668 precision zip State CA City {SAN FRANCISCO} Address
   {} Zip 94107 Longitude -122.3959} {Country US Latitude 37.371991 precision zip 
  State CA City SUNNYVALE Address {} Zip 94085 Longitude -122.026020}
  ==== json-1.9 FAILED


tkt_uuid: 1844106fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: snit
priority: 5 Medium
foundin: None
title: snit test suite failures against tcllib cvs head
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-12-04T19:05:27
comment:
  platform: sparc solaris 9
  tcl: cvs head 8.5
  tcllib cvs head 2.2.1



  ---- dtypemethod-1.6a start

  ==== dtypemethod-1.6a delegating unknown typemethod to existing typecomponent wi
  th error FAILED
  ==== Contents of test case:

      type dog {
          delegate typemethod * to stringhandler

          typeconstructor {
              set stringhandler string
          }
      }

      dog foo bar

  ---- Result was:
  unknown or ambiguous subcommand "foo": must be bytelength, compare, equal, first
  , index, is, last, length, map, match, range, repeat, replace, reverse, tolower,
   totitle, toupper, trim, trimleft, trimright, wordend, or wordstart
  ---- Result should have been (exact matching):
  bad option "foo": must be bytelength, compare, equal, first, index, is, last, le
  ngth, map, match, range, repeat, replace, reverse, tolower, toupper, totitle, tr
  im, trimleft, trimright, wordend, or wordstart
  ==== dtypemethod-1.6a FAILED

  ==== dmethod-1.6a delegating unknown method to existing component with error FAI
  LED
  ==== Contents of test case:

      type dog {
          constructor {args} {
              set stringhandler string
          }

          delegate method * to stringhandler
      }

      dog create spot
      spot foo bar

  ---- Result was:
  unknown or ambiguous subcommand "foo": must be bytelength, compare, equal, first
  , index, is, last, length, map, match, range, repeat, replace, reverse, tolower,
   totitle, toupper, trim, trimleft, trimright, wordend, or wordstart
  ---- Result should have been (exact matching):
  bad option "foo": must be bytelength, compare, equal, first, index, is, last, le
  ngth, map, match, range, repeat, replace, reverse, tolower, toupper, totitle, tr
  im, trimleft, trimright, wordend, or wordstart
  ==== dmethod-1.6a FAILED


tkt_uuid: 1844111fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
title: snitfaq: $self destroy restrictions?
cmimetype: text/plain
submitter: lars_h
assignee: duquette
closer: duquette
closedate: 2007-12-04T15:36:26
comment:
  I've encountered a situation where it seems reasonable that 
  a snit object initiates its own destruction: The object manages 
  a channel and has an internal queue of messages to transmit. 
  A soft shutdown of the communication would then means that 
  the object owner stops calling it, but the object itself should 
  hang around for as long as it takes to work through the queue, 
  and only then destroy itself.

  The catch is, I find nothing in the documentation about 
  whether an object method is allowed to call $self destroy, 
  although my gut feeling is that this might be asking for trouble. 

  For now, I'll probably do is as
    after 0 [mymethod destroy]
  instead, as I'm anyway running an event loop for the I/O, but 
  if there is some more elementary solution, then it would be 
  nice to learn about it.


tkt_uuid: 1846908fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: math :: special
priority: 5 Medium
foundin: None
title: Ver 1.9: Gamma function implemented incorrectly
cmimetype: text/plain
submitter: erickb
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2007-12-17T07:56:38
comment:
  Hi,

  I am using ver. 1.9 of tcllib. The Gamma function is implemented via factorial:

  proc ::math::special::Gamma {x} {
      ::math::factorial [expr { $x + 1 }]
  }

  However, this should be $x - 1:

  proc ::math::special::Gamma {x} {
      ::math::factorial [expr { $x - 1 }]
  }

  because factorial y invokes ln_Gamma {y + 1}

  Eric


tkt_uuid: 1846923fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: math
priority: 5 Medium
foundin: None
title: Submission: incomplete Gamma function
cmimetype: text/plain
submitter: erickb
assignee: arjenmarkus
comment:
  Hi,

  As part of a package I'm developing for gamma-distributed random variables, I've implemented the incomplete gamma function (the normalized function P(p,x)). I'm attaching the file.

  I've tested several values, but haven't tested it exhaustively.

  Eric


tkt_uuid: 1846943fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
title: Gamma distribution
cmimetype: text/plain
submitter: erickb
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2008-01-11T11:19:38
comment:
  Hello,

  I'm submitting code for gamma-distributed random variables. It uses the file "incgamma.tcl" for the incomplete gamma function that I recently submitted.

  The provided functions are:
    cdf-gamma
    pdf-gamma
    random-gamma

  I've tested some values for the cdf & pdf against the corresponding functions pgamma & dgamma in R. For the random deviates, I looked at the histogram output (also provided in the package) and eyeballed the correspondence with plots of the gamma distribution.

  Eric


tkt_uuid: 1847125fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: statistics
priority: 5 Medium
foundin: None
title: Modified pnorm function
cmimetype: text/plain
submitter: erickb
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-11-16T08:18:44
comment:
  Hello,

  I was using pnorm with some large values for the argument and having it blow up (floating-point value too large). I've made a modified version that swaps from the series expansion (the current approach) to a continued fraction, depending on the size of the argument. I'm attaching the file.

  It works pretty well! I've reported some test values at the end of the file.

  Eric


tkt_uuid: 1850838fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tie
priority: 5 Medium
foundin: None
title: tie writes utf-8, reads file with source
cmimetype: text/plain
submitter: suchenwi
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-01-28T22:42:13
comment:
  On 14 Dez., 12:00, Vaclav Snajdr <snajdr.vac...@t-online.de> wrote on c.l.t: 

  > An array filled with words containing german umlauten like ü, Ü, ä, Ä, and 
  > so on, is transfered with the package "tie" in a file. 
  > ...
  > For example the word "lT-Stücke" ist stored in follow way 

  > ::a_20 
  > (lT-StÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂcke 
  > aus duktilem Eisen) 

  Yes, I could reproduce the problem with tie 1.1 as comes with Tcllib 1.10 (Win XP, ActiveTcl 8.4.16). Debugging this highly engineered piece of software, I found that most file handling configures the encoding to utf-8... *except* the tie::std::file method Replay where it says in tie_file.tcl, line 180: 
           $ip invokehidden -global source $path 

  Now, as we all know, [source] uses system encoding, which often is not utf-8. Such asymmetry (write utf-8, read cp1252 in my case), when done often enough, leads to such garbage as you demonstrated. 

  Quick fix: replace that line with 
          set fp [open $path] 
          fconfigure $fp -encoding utf-8 
          $ip eval [read $fp][close $fp] 


tkt_uuid: 1852685fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: ip
priority: 5 Medium
foundin: None
title: ::ip::isOverlap should support IPv6
cmimetype: text/plain
submitter: rkeene
assignee: aakhter
comment:
  ::ip::isOverlap should support IPv6

  tcl>package require ip
  1.1.1
  tcl>::ip::isOverlap 10.35.1.0/24 10.35.1.5
  1
  tcl>::ip::isOverlap 2002:0a23:0100::/80 2002:0a23:0100::5 
  Error: expected integer but got "2002:0a23:0100::"


tkt_uuid: 1852718fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ldap
priority: 5 Medium
foundin: None
title: ldap filters with binary values not handled correctly
cmimetype: text/plain
submitter: mic42
assignee: mic42
closer: mic42
closedate: 2008-07-20T19:54:06
comment:
  The filter buildup proc doesn't handle escaped binary in the filter value correct. It should follow RFC 2254.


tkt_uuid: 1854983fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: struct :: list
priority: 5 Medium
foundin: None
title: assign-4.4 test case failure
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-02-28T06:36:01
comment:
  Using the latest cvs head, and tcl cvs head,

  ==== assign-4.4 assign method FAILED
  ==== Contents of test case:

      catch {assign {foo bar}} msg ; set msg

  ---- Result was:
  wrong # args: should be "::struct::list::Lassign list varName ?varName ...?"
  ---- Result should have been (exact matching):
  wrong # args: should be "lassign list varName ?varName ...?"
  ==== assign-4.4 FAILED


tkt_uuid: 1854986fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: struct :: list
priority: 7 High
foundin: None
title: repeat-4.x test suite failures
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-02-28T06:35:17
comment:
  Using the cvs head for tcllib and tcl, I am seeing:

  ---- repeat-4.1 start

  ==== repeat-4.1 repeat command FAILED
  ==== Contents of test case:

      catch {repeat} msg
      set msg

  ---- Result was:
  wrong # args: should be "::struct::list::Lrepeat positiveCount value ?value ...?"
  ---- Result should have been (exact matching):
  wrong # args: should be "lrepeat positiveCount value ?value ...?"
  ==== repeat-4.1 FAILED

  ---- repeat-4.2 start

  ==== repeat-4.2 repeat command FAILED
  ==== Contents of test case:

      catch {repeat a} msg
      set msg

  ---- Result was:
  wrong # args: should be "::struct::list::Lrepeat positiveCount value ?value ...?"
  ---- Result should have been (exact matching):
  wrong # args: should be "lrepeat positiveCount value ?value ...?"
  ==== repeat-4.2 FAILED

  As one last error - despite these failures, the end of the test run reported :
  @@ End 1198158410
  all.tcl:        Total   4       Passed  4       Skipped 0       Failed  0
  Sourced 1 Test Files.
  Sourced 0 Test Files.
  Passed   14828 of  15016
  Skipped    185 of  15016
  Failed       3 of  15016
  #Errors      0

  which is really confusing - there are FAILed tests, yet 0 errors...


tkt_uuid: 1855635fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: tkchat: Error message on opening current history in new pane
cmimetype: text/plain
submitter: sbron
assignee: patthoyts
closer: patthoyts
closedate: 2008-04-21T19:02:18
comment:
  Using the "Show current history in new pane" option on Dec 21 2007 gave the following error message:

  extra characters after close-brace
  extra characters after close-brace
      while executing
  "$w tag configure {NICK-}"
      ("eval" body line 1)
      invoked from within
  "eval $value"
      ("exec" arm line 1)
      invoked from within
  "switch $key {
      exec    {eval $value}
      image   {$w image create $index -name $value}
      text    {$w insert $index $value}
      mark    {
     ..."
      (procedure "::tkchat::textRestore" line 14)
      invoked from within
  "::tkchat::textRestore $clone [::tkchat::textSave $text]"
      (procedure "::tkchat::textClone" line 8)
      invoked from within
  "::tkchat::textClone .txt .clone"
      (procedure "::tkchat::HistoryPaneToggle" line 28)
      invoked from within
  "::tkchat::HistoryPaneToggle"
      invoked from within
  ".#mbar.#mbar#vis invoke active"
      ("uplevel" body line 1)
      invoked from within
  "uplevel #0 [list $w invoke active]"
      (procedure "tk::MenuInvoke" line 50)
      invoked from within
  "tk::MenuInvoke .#mbar.#mbar#vis 1"
      (command bound to event)

  The problem was observed with tkchat v1.411 running on tclkit 8.4.13 form equi4 on SuSE linux 10.1 and could be reproduced with a 8.5.0 tclkit built using kitgen.


tkt_uuid: 1859693fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
title: Submission: Poisson distribution
cmimetype: text/plain
submitter: erickb
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2008-01-11T11:20:02
comment:
  Hi,

  I'm submitting a file that implements the standard 3 functions for a Poisson distribution:

  pdf-poisson (*)
  cdf-poisson
  random-poisson

  (*) For discrete distributions, this is properly a probability mass function (pmf). Would it be helpful or annoying to call this pmf-poisson?

  The random-poisson function implements a pair of methods for generating Poisson-distributed random variates so it's reasonably fast at both small and large mu.

  The pdf-poisson function has a very direct implementation.

  The cdf-poisson function uses the incomplete gamma function that I submitted in a separate submission. I can re-send it if you like.

  Thanks!
  Eric


tkt_uuid: 1860190fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: tkchat: can't read "state(status)": no such variable
cmimetype: text/plain
submitter: pointsman
assignee: patthoyts
closer: patthoyts
closedate: 2008-01-08T14:17:56
comment:
  tkchat v1.413:

  After trying to "Login via IRC ..." (menu File), I got:

  can't read "state(status)": no such variable
      while executing
  "return $state(status)"
      (procedure "http::wait" line 10)
      invoked from within
  "http::wait $token"
      (procedure "http::geturl" line 146)
      invoked from within
  "http::geturl http://www.tcl.tk/cgi-bin/tct/tip/tclIndex.txt  -timeout 15000  -p
  rogress ::tkchat::Progress  -command [list [namespace origin fetchurldo..."
      (procedure "GetTipIndex" line 2)
      invoked from within
  "GetTipIndex"
      (procedure "::tkchat::LoadHistory" line 14)
      invoked from within
  "::tkchat::LoadHistory"
      ("after" script)


tkt_uuid: 1861370fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
title: Submission: Chi-squared distribution
cmimetype: text/plain
submitter: erickb
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2008-01-18T09:39:47
comment:
  Hi,

  I'm submitting an implementation of the (central) chi-squared distribution.

  This time around, I did a more systematic job of testing the code, by using a test-driven development approach. To do that, I used my little "simple test" library.

  I'm attaching the code that implements the chi-squared library first. Then I'll post the simple test code.

  Dependencies:
   - Gamma distribution
   - Simple test

  Eric


tkt_uuid: 1861565fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: comm
priority: 5 Medium
foundin: None
title: comm: error msg not clear when server port is in use
cmimetype: text/plain
submitter: hemanglavana
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-02-29T20:22:53
comment:
  Hi,

  I am trying to create a comm channel on a specific port so that client knows which port to connect to. However, when the server port is already in use, the comm package doesn't throw an appropriate error message, see below:

  # First, start a server on port 5050 and then run
  # the following:
  mavis:49> tclsh
  % socket -server _acceptConnection 5050
  couldn't open socket: address already in use
  % package require comm
  4.5.6
  % comm::comm new xxx -port 5050 -local 0 -listen 1
  can't delete "::xxx": command doesn't exist
  %  comm::comm new xxx -port 5051 -local 0 -listen 1
  ::xxx
  % exit
  mavis:50>

  As you can see, tcl's socket command clearly indicates where the problem is whereas the error message from comm pkg is misleading.

  Hemang.


tkt_uuid: 1861700fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: math
priority: 5 Medium
foundin: None
title: Submission: Beta dist and Incomplete Beta Function
cmimetype: text/plain
submitter: erickb
assignee: arjenmarkus
comment:
  Hi,

  I've implemented the Beta distribution and also provided an implementation of the incomplete Beta function (which is the CDF for the Beta distribution).

  I've tested the incomplete Beta function quite a bit (as shown), and think that it is now robust. However, I probably didn't make the most efficient implementation. An alternative would be the collection of algorithms in DCDFLIB (http://people.scs.fsu.edu/~burkardt/f_src/dcdflib/dcdflib.html), but it is quite involved -- if this implementation is sufficient, so much the better.

  Eric


tkt_uuid: 1862246fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: None
priority: 5 Medium
foundin: None
title: tcl tutorial
cmimetype: text/plain
submitter: nobody
assignee: davidw
comment:
  You should not start a sentence with Tcl command names because that "may" confuse a non-english reader.

  On http://www.tcl.tk/man/tcl8.5/tutorial/Tcl2.html:

  "Set always returns the contents..."

  "The set command always returns the contents..."

  and:

  "Set can also be invoked with only one argument. When called with just one argument, it will return the contents of that argument."

  "The set command can also be invoked with only one argument. When called with just one argument, it will return the contents of that argument."

  BTW...there is no category for the "Tcl Tutorial".


tkt_uuid: 1866134fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
title: Submission: Student's t-distribution
cmimetype: text/plain
submitter: erickb
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2008-01-18T09:39:34
comment:
  Hi,

  I'm submitting some code for pdf-students-t and random-students-t (cdf-students-t is already implemented). Both procs will allow noninteger degrees of freedom, but the algorithm for the random deviates requires a value >= 1.

  Eric


tkt_uuid: 1868088fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: jpeg
priority: 5 Medium
foundin: None
title: floating point too large in formatExif
cmimetype: text/plain
submitter: nobody
assignee: afaupell
closer: afaupell
closedate: 2008-01-10T18:30:40
comment:
  For tcl version 8.4 running under Windows XP, the ::jpeg::formatExif routine gave the following error message for one of my jpeg files:

  (PersonalProjects) 27 % set errorInfo
  floating-point value too large to represent
      while executing
  "expr {2 * (log($val) / log(2))}"
      ("MaxApertureValue" arm line 2)
      invoked from within
  "switch -exact -- $tag {
                  UserComment {set val [string trim [string range $val 8 end] \x00]}
                  ComponentsConfiguration {bi..."
      (procedure "::jpeg::formatExif" line 10)
      invoked from within
  "::jpeg::formatExif $exif"
      invoked from within
  "if [file isdirectory $fullf] {
      lappend stack $bname
  } else {
      set ext [string toupper [file extension $item]]
      puts "item = $item ex..."
      (procedure "rename_photos" line 30)
      invoked from within
  "rename_photos ../Personal"

  Posted by S. Vavasis, vavasis@math.uwaterloo.ca


tkt_uuid: 1869943fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Rejected
subsystem: base64
priority: 5 Medium
foundin: None
title: base64::decode fails while decoding invalid base64 strings
cmimetype: text/plain
submitter: billiob
assignee: andreas_kupries
closer: patthoyts
closedate: 2008-01-26T23:18:25
comment:
  base64::decode fails while decoding invalid base64 strings.
  If the string is "=" or "àà=" or "{what ever you want invalid base64 characters}={what ever you want}", it will bug when reading the "=" character.

  With the patch, it will return the empty string.


tkt_uuid: 1871959fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ncgi
priority: 5 Medium
foundin: None
title: ::ncgi::query breaks encoding
cmimetype: text/plain
submitter: nobody
assignee: welch
comment:
  Lines 210-211 of ncgi.tcl say:

  ## added by Steve Cassidy to try to fix binary file upload
  fconfigure stdin -translation binary -encoding binary

  but, by doing this it breaks chararcter encoding


tkt_uuid: 1874961fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: package traverse doesn't load
cmimetype: text/plain
submitter: blacksqr
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-02-28T07:12:23
comment:
  OS: WindowsXP

  I installed version 1.13.3 of the fileutil package into a Tcl 8.4 lib directory that otherwise had tcllib 1.6 installed.

  When I did "package require traverse" I got the following error message:

   wrong # args: should be "::snit::Comp.statement.option optionDef ?defvalue?" 

  Snit backward compatibility problem?  Should package traverse require a minimum version of snit?


tkt_uuid: 1877643fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
title: pkgIndex.tcl and plotchart.tcl indicate different versions
cmimetype: text/plain
submitter: cbascom
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2008-01-25T07:40:50
comment:
  The current pkgIndex.tcl file does a package provide of 1.3.1 while the current plotchart.tcl does a package provide of 1.4.0, which results in a package require Plotchart failing.  I installed this from the ActiveState Tcl repository, but I believe from looking at the latest CVS version that the problem exists outside of the ActiveState Tcl distribution as well.


tkt_uuid: 1879622fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: tooltip
priority: 5 Medium
foundin: None
title: tooltip::show fails when window has been destroyed
cmimetype: text/plain
submitter: ramsan
assignee: hobbs
closer: hobbs
closedate: 2008-03-12T20:39:59
comment:
  In function: ::tooltip::show

  It begins:

      set we [winfo exists $w]
      set wc [string match $w* [eval [list winfo containing] \
                                    [winfo pointerxy $w]]]
      set wm [string equal [winfo class $w] "Menu"]
      if {!$we || (!$wm && !$wc)} {
          return
      }

  should be:

      set we [winfo exists $w]
      if {!$we } { return }
      set wc [string match $w* [eval [list winfo containing] \
                                    [winfo pointerxy $w]]]
      set wm [string equal [winfo class $w] "Menu"]
      if {!$wm && !$wc} {
          return
      }


tkt_uuid: 1879627fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: struct :: list
priority: 5 Medium
foundin: None
title: struct::list test suite case failure
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-02-28T06:34:37
comment:
  tcl 8.5.1 cvs head
  tcllib cvs head
  sparc solaris 9


  ---- assign-4.4 start

  ==== assign-4.4 assign method FAILED
  ==== Contents of test case:

      catch {assign {foo bar}} msg ; set msg

  ---- Result was:
  wrong # args: should be "::struct::list::Lassign list varName ?varName ...?"
  ---- Result should have been (exact matching):
  wrong # args: should be "lassign list varName ?varName ...?"
  ==== assign-4.4 FAILED

  ---- repeat-4.1 start

  ==== repeat-4.1 repeat command FAILED
  ==== Contents of test case:

      catch {repeat} msg
      set msg

  ---- Result was:
  wrong # args: should be "::struct::list::Lrepeat positiveCount value ?value ...?
  "
  ---- Result should have been (exact matching):
  wrong # args: should be "lrepeat positiveCount value ?value ...?"
  ==== repeat-4.1 FAILED

  ---- repeat-4.2 start

  ==== repeat-4.2 repeat command FAILED
  ==== Contents of test case:

      catch {repeat a} msg
      set msg

  ---- Result was:
  wrong # args: should be "::struct::list::Lrepeat positiveCount value ?value ...?
  "
  ---- Result should have been (exact matching):
  wrong # args: should be "lrepeat positiveCount value ?value ...?"
  ==== repeat-4.2 FAILED


tkt_uuid: 1885621fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Works For Me
subsystem: bwidget
priority: 2
foundin: None
title: ListBox "see" fails in ScrolledWindow
cmimetype: text/plain
submitter: exgerhardr
assignee: damonc
closer: sf-robot
closedate: 2009-07-10T02:20:35
comment:
  "ListBox see" command only works correct after "update".

  Example code:
    pack [set sw [ScrolledWindow .sw]] 
    set lb [ListBox $sw.lb]
    $sw setwidget $lb
    for {set i 0} {$i<30} {incr i} {
      $lb insert end "Item_$i" -text "This is item $i"
    }
    $lb selection set Item_27
    ### update ; ### "see" doesn't work without "update"
    $lb see Item_27

  Tested on 1.8 and some older versions.


tkt_uuid: 1885638fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Works For Me
subsystem: bwidget
priority: 2
foundin: None
title: Tree "see" problem in some situations
cmimetype: text/plain
submitter: exgerhardr
assignee: damonc
closer: sf-robot
closedate: 2009-07-10T02:20:35
comment:
  The BWidget Tree object has problems with "see" in some situations.
  Example code:
   
    pack [set sw [ScrolledWindow .sw]]
    set lb [Tree $sw.lb]
    $sw setwidget $lb
    for {set i 0} {$i<100} {incr i} {
      if {$i} {
        $lb insert end  "Item_[expr ($i-1)/10]" "Item_$i" -text "This is item $i"
        } else {
        $lb insert end root "Item_$i" -text "This is item $i"
       }
    } 
    $lb itemconfigure Item_0 -open 1
    $lb itemconfigure Item_2 -open 1
    $lb selection set Item_27
    ### update ; ### "see" works correct with update
    $lb see Item_27

  The Item_27 is scrolled outside by one line (Item_28 is the 1st visible leaf). 

  See also bug report #1885621 regarding ListBox "see".
  In simpler situations (e.g. only 1 level tree like in ListBox example) Tree widget does "see" scroll correct. 

  Tested on BWidget 1.8.


tkt_uuid: 1886577fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: tklib :: swaplist
priority: 5 Medium
foundin: None
title: swaplist fails if reorder == 0
cmimetype: text/plain
submitter: exgerhardr
assignee: afaupell
closer: afaupell
closedate: 2008-02-06T07:16:39
comment:
  If option -reorder is set to 0, an error is thrown when the last item is moved to the right listbox.
  Example code:
  ============================
  package require swaplist

  if {[swaplist::swaplist .slist opts "1 2 3 4 5 6 7 8 9" "1 3 5" -reorder 0]} {
      puts "user chose numbers: $ops"
  }
  ============================
  Error message:
  can't read "new": no such variable
      while executing
  "foreach x $new {$to selection set $x}"
      (procedure "::swaplist::ShiftRNoReorder" line 12)
      invoked from within
  "::swaplist::ShiftRNoReorder .slist {1 2 3 4 5 6 7 8 9}"
      invoked from within
  ".slist.lr.right invoke"
      ("uplevel" body line 1)
      invoked from within
  "uplevel #0 [list $w invoke]"
      (procedure "tk::ButtonUp" line 22)
      invoked from within
  "tk::ButtonUp .slist.lr.right"
      (command bound to event)

  Patch attached.


tkt_uuid: 1886636fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: snit
priority: 6
foundin: None
title: [clock] inside snit::widgetadaptor
cmimetype: text/plain
submitter: nobody
assignee: duquette
comment:
  In Tcl 8.5.0 with snit 2.2.1:

  ----
  package require snit
  snit::widgetadaptor sframe {
  option -foo[clock format [clock seconds] -format "%Y"]
  constructor {args} { installhull using frame }
  }
  ----

  Produces:
  ----
  invalid command name "::tcl::clock::format"
  ----


tkt_uuid: 1889835fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: mime
priority: 5 Medium
foundin: None
title: fix for extra CR/LF's inserted into binary file data
cmimetype: text/plain
submitter: hume
assignee: mrose
comment:
  The mime::buildmessageaux procedure has logic to insert carriage return line feeds in the middle of file data even when the encoding is binary.  The problem occurs when the number of bytes is greater than 32766 so the file is read in more than one read call.   Here are my changed lines in the version of mime.tcl that was released with tcllib 1.8.  I believe that the head version is the same, at least in this procedure.  I am no expert on mime and encodings, but I suspect the "\r\n" can be removed when $converter is not {} too.   This excerpt starts around line 2030 of the file mime.tcl:


      while {($size != 0) && (![eof $fd])} {
  if {$size < 0 || $size > 32766} {
      set X [read $fd 32766]
  } else {
      set X [read $fd $size]
  }
  if {$size > 0} {
      set size [expr {$size - [string length $X]}]
  }
  if {[string compare $converter ""]} {
      append result "[$converter -mode encode -- $X]\r\n"
  } else {
      # append result "$X\r\n" 
              # ECH fix - if binary do not mess up chunk boundaries
      append result $X
  }
      }
          # ECH fix - now add the \r\n after the data
  if {![string compare $converter ""]} { append result "\r\n" } ;# ECH fix

              if {$closeP} {
                  catch { close $state(fd) }
                  unset state(fd)
              }


tkt_uuid: 1890987fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: app: tkchat
priority: 5 Medium
foundin: None
title: Encoded chars in rss feeds
cmimetype: text/plain
submitter: decosterjos
assignee: patthoyts
comment:
  Hi,

  Html-encoded chars (e.g. <) are not decoded before showing the rss info. This piece of code to be added to proc ::tkchat::rss::ShowRssInfo (tkchat_rss.tcl line 152) fixes this problem:

              if {![info exists a(title)] || [string length $a(title)] < 1} {
                  set a(title) "(no title)"
              } else {
  set a(title) [::htmlparse::mapEscapes $a(title)]
      }
      if {[info exists a(description)]} {
  set a(description) [::htmlparse::mapEscapes $a(description)]
      }


  Kind regards,

  Jos.


tkt_uuid: 1891251fffffffffffffffffffffffffffffffff
type: Patch
status: Open
resolution: None
subsystem: tklib: plotchart
priority: 5 Medium
foundin: None
title: Support of long ylabels in horizontal bar charts
cmimetype: text/plain
submitter: relaxmike
assignee: arjenmarkus
comment:
  Hi,
  The goal of this patch is to take into account for long y labels in an horizontal plotchart.
  I have allread discussed that problem on comp.lang.tcl where the solution has been suggested by other Tclers :
  http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/ab5ee289991f81f/6821b6d40899d276?lnk=gst&q=plotchart#6821b6d40899d276
  The problem is that, when long labels are to be displayed, some are hidden because there is no space left on the canvas.
  The patch is fixing the problem by computing the longest y label to display : this allows to set the view accordingly.
  The problem is located in the file plotchart.tcl, in the proc "::Plotchart::createHorizontalBarchart".
  The following code takes into account for the size of the current default font used in the barchart and is not perfect because Plotchart does not take into account the fonts yet.

     label .invisibleLabel
     set fontname [.invisibleLabel cget -font]
     destroy .invisibleLabel
     
     set xspacemax 0
     foreach ylab $ylabels {
         set xspace [font measure $fontname $ylab]
         if {$xspace> $xspacemax} then {
             set xspacemax $xspace
         }
     }
     set text_width [expr {int ( $xspacemax / 10.) + 1}]

     foreach {pxmin pymin pxmax pymax} [MarginsRectangle $w $notext $text_width] {break}

  Best regards,

  Michaël


tkt_uuid: 1891275fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: math :: bignum :: float
priority: 5 Medium
foundin: None
title: ::math::bigfloat::tostr should be able return non-sci notat
cmimetype: text/plain
submitter: rkeene
assignee: sarnold75
closer: sf-robot
closedate: 2008-03-17T02:20:31
comment:
  ::math::bigfloat::tostr [::math::bigfloat::div [::math::bigfloat::fromstr 15637289764914.0 10] [::math::bigfloat::fromstr 2.0 10]]  yeilds 7.818644882e+12

  It would be useful for me to have the ability to tell "tostr" to never return something in scientific notation (i.e., I want "7818644882000.0" instead of "7.818644882e+12")


tkt_uuid: 1892687fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Build System & Testing
priority: 5 Medium
foundin: None
title: sak.tcl test shell add fails
cmimetype: text/plain
submitter: mic42
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-02-28T05:17:17
comment:
  I tried to add a shell for testing to sak.tcl but get a not so informative stack trace:
  (this is inside msys/mingw, using AS Tcl shells)

  $ c:/tools/bin/tclsh85.exe sak.tcl test shell add c:/tools/bin/tclsh85.exe
  invalid command name "::uplevel"
      while executing
  "::uplevel #0 {set I 0
  set {C {} {}} 0
  set {N 0 P} {}
  set {N 0 M} 1158662637
  }"
      invoked from within
  "$ip eval [list ::uplevel \#0 $data]"
      (procedure "::tie::std::file::Snit_methodReplay" line 30)
      invoked from within
  "$self Replay"
      (procedure "::tie::std::file::Snit_methodLoadJournal" line 7)
      invoked from within
  "$self LoadJournal"
      (procedure "::tie::std::file::Snit_methodget" line 7)
      invoked from within
  "$dso get"
      (procedure "Connect" line 6)
      invoked from within
  "Connect thearray $open $merge $dso"
      (procedure "tie::tie" line 42)
      invoked from within
  "tie::tie ::pregistry::Snit_inst2::data file ~/.Tcllib/Registry"
      ("eval" body line 1)
      invoked from within
  "eval [linsert $value 0 tie::tie [myvar data]]"
      (procedure "::pregistry::Snit_methodTIE" line 9)
      invoked from within
  "::sak::registry::pregistry1 TIE -tie {file ~/.Tcllib/Registry}"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command"
      (procedure "::snit::RT.method.configurelist" line 37)
      invoked from within
  "$self configurelist $args"
      (procedure "::pregistry::Snit_constructor" line 5)
      invoked from within
  "::pregistry::Snit_constructor ::pregistry ::pregistry::Snit_inst2 ::sak::registry::pregistry1 ::sak::registry::pregistry1 -tie {file ~/.Tcllib/Registr..."
      ("eval" body line 1)
      invoked from within
  "eval [linsert $arglist 0  ${type}::Snit_constructor $type $selfns $instance $instance]"
      (procedure "RT.ConstructInstance" line 9)
      invoked from within
  "RT.ConstructInstance $type $selfns $name $args"
      (procedure "::snit::RT.type.typemethod.create" line 45)
      invoked from within
  "pregistry %AUTO%  -tie [list file $state]"
      (procedure "Setup" line 11)
      invoked from within
  "Setup"
      (procedure "sak::registry::local" line 2)
      invoked from within
  "sak::registry::local  get||default Tests Shells {}"
      (procedure "sak::test::shell::add" line 8)
      invoked from within
  "sak::test::shell::add $argv"
      (procedure "sak::test::shell" line 9)
      invoked from within
  "sak::test::$cmd $argv"
      (file "./support/devel/sak/test/cmd.tcl" line 25)
      invoked from within


tkt_uuid: 1896363fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: irc
priority: 5 Medium
foundin: None
title: irc::destroy mentioned in man page doesn't exist
cmimetype: text/plain
submitter: mpc_janssen
assignee: afaupell
closer: afaupell
closedate: 2009-10-15T19:18:56
comment:
  The manual page refers to ::irc::destroy to cleanup a connection. That command doesn't exist, it is [$conn destroy] instead


tkt_uuid: 1897839fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: stringprep
priority: 5 Medium
foundin: None
title: stringprep test 2.3 fails
cmimetype: text/plain
submitter: nobody
assignee: patthoyts
closer: patthoyts
closedate: 2009-11-02T00:29:51
comment:
  sparc solaris 9, Sun C compiler, latest cvs head for tcl and tcllib.

  ---- stringprep-2.3 start

  ==== stringprep-2.3 stringprep: prohibited bidi FAILED
  ==== Contents of test case:

      catch {::stringprep::stringprep nameprep "\u0627\u0031"} result
      set result

  ---- Result was:
  can't read "first_ral": no such variable
  ---- Result should have been (exact matching):
  invalid_bidi
  ==== stringprep-2.3 FAILED


tkt_uuid: 1897841fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: stringprep
priority: 5 Medium
foundin: None
title: nameprep test 5 fails
cmimetype: text/plain
submitter: lvirden
assignee: patthoyts
comment:
  sparc solaris 9 , sun c compiler, cvs head for tcl 8.5 and tcllib:

  ---- nameprep-5 start

  ==== nameprep-5 Case folding U+2121 U+33C6 U+1D7BB FAILED
  ==== Contents of test case:

          list [catch {::stringprep::stringprep nameprep  [encoding convertfrom ut
  f-8 $input]} res] $res
      
  ---- Result was:
  1 prohibited_character
  ---- Result should have been (exact matching):
  0 telc?kg?
  ==== nameprep-5 FAILED


tkt_uuid: 1897843fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: stringprep
priority: 5 Medium
foundin: None
title: saslprep test 1.7 fails
cmimetype: text/plain
submitter: lvirden
assignee: patthoyts
closer: patthoyts
closedate: 2009-11-02T00:38:22
comment:
  sparc solaris 9, sun c compiler, cvs head for tcl and tcllib.

  ++++ saslprep-1.6 PASSED
  ---- saslprep-1.7 start

  ==== saslprep-1.7 Error - bidirectional check FAILED
  ==== Contents of test case:

          list [catch {::stringprep::stringprep saslprep $input} res] $res
      
  ---- Result was:
  1 {can't read "first_ral": no such variable}
  ---- Result should have been (exact matching):
  1 invalid_bidi
  ==== saslprep-1.7 FAILED


tkt_uuid: 1897846fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: list
priority: 7 High
foundin: None
title: assign test 4.4 fails
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-02-28T06:57:06
comment:
  sparc solaris 9 sun c compiler, cvs head for tcl and tcllib.

  ---- assign-4.4 start

  ==== assign-4.4 assign method FAILED
  ==== Contents of test case:

      catch {assign {foo bar}} msg ; set msg

  ---- Result was:
  wrong # args: should be "::struct::list::Lassign list varName ?varName ...?"
  ---- Result should have been (exact matching):
  wrong # args: should be "lassign list varName ?varName ...?"
  ==== assign-4.4 FAILED


tkt_uuid: 1897848fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: list
priority: 5 Medium
foundin: None
title: repeat test suite failures
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-02-28T06:56:52
comment:
  sparc solaris 9 sun c compiler cvs head for tcl and tcllib.

  ---- repeat-4.1 start

  ==== repeat-4.1 repeat command FAILED
  ==== Contents of test case:

      catch {repeat} msg
      set msg

  ---- Result was:
  wrong # args: should be "::struct::list::Lrepeat positiveCount value ?value ...?
  "
  ---- Result should have been (exact matching):
  wrong # args: should be "lrepeat positiveCount value ?value ...?"
  ==== repeat-4.1 FAILED

  ---- repeat-4.2 start

  ==== repeat-4.2 repeat command FAILED
  ==== Contents of test case:

      catch {repeat a} msg
      set msg

  ---- Result was:
  wrong # args: should be "::struct::list::Lrepeat positiveCount value ?value ...?
  "
  ---- Result should have been (exact matching):
  wrong # args: should be "lrepeat positiveCount value ?value ...?"
  ==== repeat-4.2 FAILED


tkt_uuid: 1897850fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tie
priority: 5 Medium
foundin: None
title: tie test suite failures
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-02-28T05:18:38
comment:
  sparc solaris 9 sun c compiler cvs head tcl 8.5 and tcllib.

  ---- tie-file-2.1 start

  ==== tie-file-2.1 file get FAILED
  ==== Contents of test case:

      set f [makeFile {array set {b 2 a 1}} journal]
      tie::std::file x $f
      set res [dictsort [x get]]
      x destroy
      removeFile journal
      set res

  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: invalid command name "::uplevel"
      while executing
  "::uplevel #0 {array set {b 2 a 1}
  }"
      invoked from within
  "$ip eval [list ::uplevel \#0 $data]"
      (procedure "::tie::std::file::Snit_methodReplay" line 33)
      invoked from within
  "::tie::std::file::Snit_methodReplay ::tie::std::file ::tie::std::file::Snit_ins
  t12 ::x ::x"
      ("eval" body line 1)
      invoked from within
  "eval [linsert $args 0  ::tie::std::file::Snit_method$method ::tie::std::file ::
  tie::std::file::Snit_inst12 ::x $self]"
      (procedure "::x" line 10)
      invoked from within
  "$self Replay"
      (procedure "::tie::std::file::Snit_methodLoadJournal" line 10)
      invoked from within
  "::tie::std::file::Snit_methodLoadJournal ::tie::std::file ::tie::std::file::Sni
  t_inst12 ::x ::x"
      ("eval" body line 1)
      invoked from within
  "eval [linsert $args 0  ::tie::std::file::Snit_method$method ::tie::std::file ::
  tie::std::file::Snit_inst12 ::x $self]"
      (procedure "::x" line 10)
      invoked from within
  "$self LoadJournal"
      (procedure "::tie::std::file::Snit_methodget" line 10)
      invoked from within
  "::tie::std::file::Snit_methodget ::tie::std::file ::tie::std::file::Snit_inst12
   ::x ::x"
      ("eval" body line 1)
      invoked from within
  "eval [linsert $args 0  ::tie::std::file::Snit_method$method ::tie::std::file ::
  tie::std::file::Snit_inst12 ::x $self]"
      (procedure "x" line 10)
      invoked from within
  "x get"
      invoked from within
  "dictsort [x get]"
      invoked from within
  "set res [dictsort [x get]]"
      ("uplevel" body line 4)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== tie-file-2.1 FAILED

  ---- tie-file-3.0 start

  ==== tie-file-3.0 file set, wrong#args FAILED
  ==== Contents of test case:

      set f [makeFile {} journal]
      tie::std::file x $f
      set     res {}
      catch {x set} msg
      x destroy
      removeFile journal
      set msg

  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: command "::x" already exists
      while executing
  "error "command \"$name\" already exists""
      (procedure "::snit::RT.type.typemethod.create" line 22)
      invoked from within
  "::snit::RT.type.typemethod.create ::tie::std::file x /vol/tclsrcsol/tcl85/tclli
  b/unix/journal"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "tie::std::file x $f"
      ("uplevel" body line 3)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== tie-file-3.0 FAILED

  ---- tie-file-3.1 start

  ==== tie-file-3.1 file set, wrong#args FAILED
  ==== Contents of test case:
      set f [makeFile {} journal]
      tie::std::file x $f
      set     res {}
      catch {x set a b} msg
      x destroy
      removeFile journal
      set msg

  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: command "::x" already exists
      while executing
  "error "command \"$name\" already exists""
      (procedure "::snit::RT.type.typemethod.create" line 22)
      invoked from within
  "::snit::RT.type.typemethod.create ::tie::std::file x /vol/tclsrcsol/tcl85/tclli
  b/unix/journal"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "tie::std::file x $f"
      ("uplevel" body line 3)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== tie-file-3.1 FAILED

  ---- tie-file-3.2 start

  ==== tie-file-3.2 file set FAILED
  ==== Contents of test case:

      set f [makeFile {} journal]
      tie::std::file x $f
      set     res {}
      lappend res [x set {c 3 b 2 a 1}]
      lappend res [viewFile journal]
      x destroy
       removeFile journal
      set res

  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: command "::x" already exists
      while executing
  "error "command \"$name\" already exists""
      (procedure "::snit::RT.type.typemethod.create" line 22)
      invoked from within
  "::snit::RT.type.typemethod.create ::tie::std::file x /vol/tclsrcsol/tcl85/tclli
  b/unix/journal"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "tie::std::file x $f"
      ("uplevel" body line 3)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== tie-file-3.2 FAILED

  ---- tie-file-4.0 start

  ==== tie-file-4.0 file names, wrong#args FAILED
  ==== Contents of test case:

      set f [makeFile {array set {b 2 a 1}} journal]
      tie::std::file x $f
      catch {x names a} msg
      x destroy
      removeFile journal
      set msg

  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: command "::x" already exists
      while executing
  "error "command \"$name\" already exists""
      (procedure "::snit::RT.type.typemethod.create" line 22)
      invoked from within
  "::snit::RT.type.typemethod.create ::tie::std::file x /vol/tclsrcsol/tcl85/tclli
  b/unix/journal"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "tie::std::file x $f"
      ("uplevel" body line 3)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== tie-file-4.0 FAILED

  ---- tie-file-4.1 start

  ==== tie-file-4.1 file names FAILED
  ==== Contents of test case:

      set f [makeFile {array set {b 2 a 1}} journal]
      tie::std::file x $f
      set res [lsort [x names]]
      x destroy
      removeFile journal
      set res

  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: command "::x" already exists
      while executing
  "error "command \"$name\" already exists""
      (procedure "::snit::RT.type.typemethod.create" line 22)
      invoked from within
  "::snit::RT.type.typemethod.create ::tie::std::file x /vol/tclsrcsol/tcl85/tclli
  b/unix/journal"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within

  "tie::std::file x $f"
      ("uplevel" body line 3)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== tie-file-4.1 FAILED

  ---- tie-file-5.0 start

  ==== tie-file-5.0 file size, wrong#args FAILED
  ==== Contents of test case:

      set f [makeFile {array set {b 2 a 1}} journal]
      tie::std::file x $f
      catch {x size a} msg
      x destroy
      removeFile journal
      set msg

  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: command "::x" already exists
      while executing
  "error "command \"$name\" already exists""
      (procedure "::snit::RT.type.typemethod.create" line 22)
      invoked from within
  "::snit::RT.type.typemethod.create ::tie::std::file x /vol/tclsrcsol/tcl85/tclli
  b/unix/journal"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "tie::std::file x $f"
      ("uplevel" body line 3)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== tie-file-5.0 FAILED

  ---- tie-file-5.1 start

  ==== tie-file-5.1 file size FAILED
  ==== Contents of test case:

      set f [makeFile {array set {b 2 a 1}} journal]
      tie::std::file x $f
      set res [x size]
      x destroy
      removeFile journal
      set res

  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: command "::x" already exists
      while executing
  "error "command \"$name\" already exists""
      (procedure "::snit::RT.type.typemethod.create" line 22)
      invoked from within
  "::snit::RT.type.typemethod.create ::tie::std::file x /vol/tclsrcsol/tcl85/tclli
  b/unix/journal"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "tie::std::file x $f"
      ("uplevel" body line 3)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== tie-file-5.1 FAILED

  ---- tie-file-6.0 start

  ==== tie-file-6.0 file unset, wrong#args FAILED
  ==== Contents of test case:

      set f [makeFile {array set {foo bar fox snarf a 3}} journal]
      tie::std::file x $f
      set     res {}
      catch {x unset a b} msg

      x destroy
      removeFile journal
      set msg

  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: command "::x" already exists
      while executing
  "error "command \"$name\" already exists""
      (procedure "::snit::RT.type.typemethod.create" line 22)
      invoked from within
  "::snit::RT.type.typemethod.create ::tie::std::file x /vol/tclsrcsol/tcl85/tclli
  b/unix/journal"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "tie::std::file x $f"
      ("uplevel" body line 3)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== tie-file-6.0 FAILED

  ---- tie-file-6.1 start

  ==== tie-file-6.1 file unset, default pattern FAILED
  ==== Contents of test case:

      set f [makeFile {array set {foo bar fox snarf a 3}} journal]
      tie::std::file x $f
      set     res {}
      lappend res [x unset]
      lappend res [viewFile journal]
      x destroy
      removeFile journal
      set res

  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2

  ---- errorInfo: command "::x" already exists
      while executing
  "error "command \"$name\" already exists""
      (procedure "::snit::RT.type.typemethod.create" line 22)
      invoked from within
  "::snit::RT.type.typemethod.create ::tie::std::file x /vol/tclsrcsol/tcl85/tclli
  b/unix/journal"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "tie::std::file x $f"
      ("uplevel" body line 3)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== tie-file-6.1 FAILED

  ---- tie-file-6.2 start

  ==== tie-file-6.2 file unset, by pattern FAILED
  ==== Contents of test case:

      set f [makeFile {array set {foo bar fox snarf a 3}} journal]
      tie::std::file x $f
      set     res {}
      lappend res [x unset f*]
      lappend res [viewFile journal]
      x destroy
      removeFile journal
      set res

  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: command "::x" already exists
      while executing
  "error "command \"$name\" already exists""
      (procedure "::snit::RT.type.typemethod.create" line 22)
      invoked from within
  "::snit::RT.type.typemethod.create ::tie::std::file x /vol/tclsrcsol/tcl85/tclli

  b/unix/journal"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "tie::std::file x $f"
      ("uplevel" body line 3)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== tie-file-6.2 FAILED

  ---- tie-file-7.0 start

  ==== tie-file-7.0 file getv, wrong#args FAILED
  ==== Contents of test case:

      set f [makeFile {} journal]
      tie::std::file x $f
      set     res {}
      catch {x getv} msg
      x destroy
      removeFile journal
      set msg

  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: command "::x" already exists
      while executing
  "error "command \"$name\" already exists""
      (procedure "::snit::RT.type.typemethod.create" line 22)
      invoked from within
  "::snit::RT.type.typemethod.create ::tie::std::file x /vol/tclsrcsol/tcl85/tclli
  b/unix/journal"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "tie::std::file x $f"
      ("uplevel" body line 3)


  ...

  and on and on and on...


tkt_uuid: 1898189fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: math :: special
priority: 5 Medium
foundin: None
title: Unbalanced parenthesis in elliptic.tcl
cmimetype: text/plain
submitter: relaxmike
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2008-02-21T07:35:07
comment:
  Hi,
  The line #209 of the file elliptic.tcl
  contains the evaluation of an expression containing an unbalanced parenthesis :

  return [expr {sqrt(...)}]

  where the closing parenthesis does not exist in the source.
  This prevents the math package from being included as-is in a compiled starkit or starpack.

  Best regards,

  Michaël


tkt_uuid: 1903306fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
title: xyplot xconfig / yconfig -scale not working
cmimetype: text/plain
submitter: pfvogel
assignee: arjenmarkus
comment:
  Using the xconfig or yconfig command with the -scale option results in an "Unknown or invalid value" error.

  Script showing problem:

  package require Tk
  package require Plotchart

  canvas .c
  pack .c

  set s [Plotchart::createXYPlot .c {0 100 10} {0 100 10}]
  $s xconfig -scale {0 200 20}


  The problem is in Plotchart::AxisConfig, in the file plotaxis.tcl around line 492.  The "idx" value is the index into a list with a single value per option, and it is used to index into the axis_option_values which has two values per option.  One possible fix is to multiply the idx by 2 before using it on the axis_option_values.

    set clear   [lindex  $axis_option_clear  $idx]
  >>  set idx [expr {2 * $idx}]
    set values  [lindex  $axis_option_values [incr idx]]


  Also, in the plotaxis.tcl file there is "console show" and "puts" command in the Plotchart::DrawXaxis routine which seem out of place.

  Thanks,
  -paul


tkt_uuid: 1904210fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: math :: linearalgebra
priority: 5 Medium
foundin: None
title: eigenvector-1.0 fails
cmimetype: text/plain
submitter: andreas_kupries
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-11-18T07:27:55
comment:
  ---- Result was:
  {{0.70710678118654757 -0.70710678118654735} {0.70710678118654746 0.70710678118654768}} {3.0 1.0}
  ---- Result should have been (numbers matching):
  {{0.707107 -0.707107} {0.707107 0.707107}} {3.0 1.0}
  ==== eigenvectors-1.0 FAILED

  Something in matchNumbers seems to go wrong.
  It compares to 6 decimals, and according to that the actual result should match IMHO.


tkt_uuid: 1906274fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: pop3
priority: 7 High
foundin: None
title: pop3 module doesn't support pop3s
cmimetype: text/plain
submitter: egavilan
assignee: andreas_kupries
comment:
  The pop3 module doesn't support pop over ssl (pop3s).
  This patch adds support for a "-tls" option (must be boolean). The tls package should be present or it throws an error (I think this is the correct behaviour).
  Being there, also corrects a mispelled error message ("Too" instead of "To")


tkt_uuid: 1908098fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: set
priority: 7 High
foundin: None
title: ::struct::set include errors for non-existing dst variable
cmimetype: text/plain
submitter: sjeanjean
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-03-09T04:26:49
comment:
  %puts $tcl_version
  8.5
  % package require struct::set
  2.2.2
  % ::struct::set include myset A      <- non initialized set but there is no constructor!
  can't read "myset": no such variable
  % ::struct::set include myset A      <- second try it's ok ?
  % ::struct::set include myset B
  % ::struct::set include myset C
  % ::struct::set size myset   
  1                                    <- must be 3
  % puts $myset
  A B C
  % ::struct::set exclude myset A
  % ::struct::set exclude myset B
  % ::struct::set exclude myset C
  % puts $myset

  % ::struct::set size myset  
  1                                    <- must be 0
  % ::struct::set empty myset 
  0                                    <- must be true(1)


tkt_uuid: 1908510fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: fileutil
priority: 5 Medium
foundin: None
title: Submission: fileutil::globfind
cmimetype: text/plain
submitter: blacksqr
assignee: nobody
comment:
  globfind is designed as a fast and simple alternative to fileutil::find.  It takes advantage of glob's ability to use multiple patterns to scan deeply into a directory structure in a single command, hence the name.

  It is two to three times faster than fileutil::find, and somewhat faster than perl's standard directory traversal utility, File::Find.

  See http://wiki.tcl.tk/19762 for performance details.

  Some example filter commands are included for use with globfind: one powers a wrapper proc that duplicates the function of a subset of the Gnu find utility's parameters; another performs directory syncing.


tkt_uuid: 1909367fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Development Tools
priority: 5 Medium
foundin: None
title: No info about syntax errors in the summary
cmimetype: text/plain
submitter: arjenmarkus
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-03-08T04:33:06
comment:
  As discussed, if you make a syntactical mistake in the code for a test, this is not reported in the summary:

  sak.tcl test run <module>

  will indicate no error for that test case.


tkt_uuid: 1909681fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Works For Me
subsystem: md5crypt
priority: 5 Medium
foundin: None
title: Tcl version of md5crypt::aprcrypt error for some values
cmimetype: text/plain
submitter: juliannoble
assignee: patthoyts
closer: patthoyts
closedate: 2008-04-08T00:35:30
comment:
  Tested with 
    tcl8.5a4 & tcllib 1.8.01 
    &
    tcl8.5.2b1 & tcllib 1.10

  If tcllib is installed without the tcllibc module,
  certain values cause md5crypt::aprcrypt to fail with an error as shown below.

  % package require md5crypt
  1.1.0
  % md5crypt::aprcrypt a c
  can't use empty string as operand of "|"

  % set ::errorInfo
  can't use empty string as operand of "|"
      while executing
  "expr {([lindex $V 3] << 16) | ([lindex $V  9] << 8) | [lindex $V 15]}"
      (procedure "::md5crypt::md5crypt_tcl" line 71)
      invoked from within
  "md5crypt::aprcrypt a c"


  When tcllibc is present the error doesn't occur.


tkt_uuid: 1911513fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: struct :: tree
priority: 5 Medium
foundin: None
title: deserialise into a branch of a tree
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
comment:
  The 'serialise' action for a tree allows you to serialise a portion of a tree for... well, for whyever you want. The 'deserialise' action, however, overwrites the entire tree with whatever is being deserialised. This Request is to enable to deserialise into a selected node, to make it fully complementary with serialise.


tkt_uuid: 1913502fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: log
priority: 5 Medium
foundin: None
title: Suppression level Enhancement
cmimetype: text/plain
submitter: mocallins
assignee: mic42
comment:
  I've worked as a scripter the last couple of years doing network testing with TCL. And 1 thing that has come up in at least the last 2 places that I've had work, is the use of the tcllib's log package.

  The enhancement I'd like to see would be levels of suppression for any of the current levels defined.

  What we've all really wanted is levels of debug logging, but after thinking about it some why not just make the change for all of the different levels.

  We can still maintain the use of the idea of suppression but extend it some so that we can have additional levels of suppression for each logLevel (which for sake of discussion would be more appropriately defined as a category).

  Currently we have suppression defined as 0|1, on or off for any particular "category"  info,debug,alert....

  What I would like to see is say have a maximum suppression level of say 5.

  Which I would leave to your capable hands of determining if we change the definition of suppression or just learn what a suppresion level means.

  So we'd have suppression levels of say 0-5 with 0 meaning no suppression and everything less than the level number passed would be suppressed, or the other way around that everything less than the suppression level is suppressed and everything greater is logged.

  The major change to the package would be that the log::log command would require this additional parameter to be passed in. So now we'd have "log::log logLevel suppLevel msg"

  Currently you can just use the different logLevels but the name that gets tagged on the message tends to be misleading. I still only want certain info messages to be displayed at say production run time, but when I'm debugging or developing I'd want addtional "info" messages and not have to use another level like "alert". I'd like the logLevel to still be indicative of the severity of what I am logging.

  So like I said I think a lot of testers would really like levels of debug logging, but if were going to enhance then just lets just have levels of logging for all the current logLevels.


tkt_uuid: 1917035fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: inifile
priority: 6
foundin: None
title: inifile - Global procedure 'commentchar' ok?
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-05-11T00:54:32
comment:
  The package inifile defines a global procedure called 'commentchar' (line 175ff).

  I am wondering if that should be '::ini::commentchar'.
  The documentation certainly uses the latter.
  In this mismatch I believe the documentation is right.


tkt_uuid: 1923685fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: graph
priority: 9 Immediate
foundin: None
title: Crash in tcllibc with struct::graph...
cmimetype: text/plain
submitter: petasis
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-03-23T19:09:20
comment:
  I have observed a crash with tcllibc and the struct::graph package. Under ActiveTcl 8.5.1, the attached script crashes. Using teacup to uninstall tcllibc, the script runs fine. Please note that both attached files must be in the same directory to get the attached script to run.


tkt_uuid: 1924065fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: tiff
priority: 5 Medium
foundin: None
title: tiff - addEntry doesn't overwrite
cmimetype: text/plain
submitter: andreas_kupries
assignee: afaupell
comment:
  The documentation of tiff::addEntry states that it does overwrite the data of a tag should that tag exist. This doesn't seem to happen.

  See tests tiff-23.*, in tiff.test, marked as knownBug.

  They first use addEntry to add a tag for 'Artist', and then addEntry again to overwrite 'Artist' with new data.
  The new data is not taken, per the inspection with 'getEntry'.


tkt_uuid: 1927092fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ncgi
priority: 1 Zero
foundin: None
title: ncgi documentation - confusing use of term 'session'
cmimetype: text/plain
submitter: juliannoble
assignee: welch
comment:
  The man page for ncgi appears to be using the word 'session' in a way that doesn't fit with the common concept of a session in web-application environments.

  e.g  
  "Set the query data and Content-Type for the current CGI session."

  "If url is specified, then it defines the URL for the current session"

  My suggestion is to replace the word 'session' with 'invocation'.


tkt_uuid: 1928856fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ftpd
priority: 5 Medium
foundin: None
title: fsCmd list - no socket as parameter?
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
comment:
  When the fsCmd-proc is called with "list" or "nlist" as command, the third parameter should be the socket for the answer. But when i print the args-var the values are only:

  / {list {}}

  there's no socket for the Answer!


tkt_uuid: 1931567fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: A Category Is Missing
priority: 5 Medium
foundin: None
title: pregistry version problem
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
comment:
  Recently I encountered a problem with pregistry:

   $ /vol/tclsrcsol/ActiveTcl/bin/tclsh8.5
  % package require pregistry
  conflicting versions provided for package "pregistry": 1.0, then 0.1


  What is the expected output? What do you see instead?
  I expected to see the pregistry version number, but instead see the error.

  It has been removed from activetcl's teapot repository, but AK recommended I report the version problem here so that could be fixed.


tkt_uuid: 1935658fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: app: tkchat
priority: 5 Medium
foundin: None
title: Minor issue on a change the font settings
cmimetype: text/plain
submitter: nobody
assignee: patthoyts
closer: patthoyts
closedate: 2008-04-07T15:03:20
comment:
  Hello,

  When I did try to change default font for tkchat window, using Preferences->Fonts dialog, I noticed that some controls (a few buttons and labels) change itself too (become to use the same font face). Tested platform is Linux.

  Look, please, on the font faces: Preferences->Colors, Preferences->Options dialogs, and a clock plugin then.

  I found that those widgets have an extra font settings. It seems, it's enough just to remove the font setting in a few places to get an expectected output.

  BUT, I don't know how the same widgets look on other platforms (Windows or MAC) when the default font is changed, so, perhaps, my tweaks are unneeded at all.

  The path was tested on the current tkchat revision: 1.422. It works for _me_.

  Thanks.

  Sergei Gavrikov


tkt_uuid: 1942472fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools test hardcode author <aku>
cmimetype: text/plain
submitter: mic42
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-04-16T16:30:24
comment:
  Some of the doctools tests fail for latex output because the authorname is hardcoded to aku.

  Seen this for the doctools tests 13.x 


tkt_uuid: 1944037fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: tklib :: ico
priority: 5 Medium
foundin: None
title: written icons have a doubled height
cmimetype: text/plain
submitter: martinlemburg
assignee: afaupell
closer: afaupell
closedate: 2008-04-21T22:27:18
comment:
  To build the starpack icon file "tclkit.ico" I wanted to add several single icons to a new one (tclkit.ico), but the tclkit wrapper didn't recognized this new tclkit.ico file, because all added icons have the right width, but an invalid height.

  To get into details:

  1. I have 6 icon files with the needed widths of
         48, 32, and 16 pixels
     and the needed color depths of
         8bpp and 4bpp

  2. I load the tklib package ico
  3. I add each icon file with ico::writeIcon
  4. I test the result with ico::iconMembers

  Each added icon has the doubled height of its source icon, so something must be wrong.

  The result output of the attached test script is:

      Loaded the tklib package ico v1.0.2

      building icon:
          adding "48_8.ico" - name "0" (48x48) with 8bpp
          adding "48_4.ico" - name "0" (48x48) with 4bpp
          adding "32_8.ico" - name "0" (32x32) with 8bpp
          adding "32_4.ico" - name "0" (32x32) with 4bpp
          adding "16_8.ico" - name "0" (16x16) with 8bpp
          adding "16_4.ico" - name "0" (16x16) with 4bpp

      new icon "tclkit.ico":
          name "0" (48x96) with 8bpp
          name "1" (48x96) with 4bpp
          name "2" (32x64) with 8bpp
          name "3" (32x64) with 4bpp
          name "4" (16x32) with 8bpp
          name "5" (16x32) with 4bpp


tkt_uuid: 1948953fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: ncgi
priority: 5 Medium
foundin: None
title: ncgi: incomplete url encoding/decoding
cmimetype: text/plain
submitter: nobody
assignee: welch
comment:
  Se attachment for a reimplementation of encode/decode that supports non ASCII chars.

  Hope this helps


tkt_uuid: 1949752fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Fixed
subsystem: ncgi
priority: 5 Medium
foundin: None
title: Documentation - misprint
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-04-23T16:29:35
comment:
  http://tcllib.sourceforge.net/doc/ncgi.html:
  ...
  ::ncgi::exists name
      Returns 1 if the CGI variable name is not present.
  ...

  In fact, it will return 1 if variable IS present and will return 0 if it's NOT. Obvious misprint in the documentation.


tkt_uuid: 1950457fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: snit
priority: 5 Medium
foundin: None
title: hierarchical methods are not delegated
cmimetype: text/plain
submitter: matzek
assignee: duquette
closer: duquette
closedate: 2008-04-26T01:29:25
comment:
  Hi,

  I was stumbling over an unusual behavior of the hierarchical methods. The attached script will deliver the following output:

  Tcl version: 8.4.18
  snit version 1.3.1
  [::.gf is foo] := This is gFoo 1!
  [::.gf isFoo] := This is gFoo 2!
  [::.gf is bar] := "::.gf is bar" is not defined
  [::.gf isBar] := This is gBar 2!

  Tcl version: 8.5.2
  snit version 2.2.1
  [::.gf is foo] := This is gFoo 1!
  [::.gf isFoo] := This is gFoo 2!
  [::.gf is bar] := unknown subcommand "bar": must be foo
  [::.gf isBar] := This is gBar 2!

  The method "isBar" of type gBar is correctly delegated and available to an object .gf of type gFoo, while the method "is bar" is not.

  Is this a bug, or did I miss the respective chapter in the docs?

  kind regards
  -- Matthias Kraft


tkt_uuid: 1951544fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 6
foundin: None
title: YAML module add
cmimetype: text/plain
submitter: kanryu6
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-05-22T19:08:23
comment:
  I impremented a load/dump library for YAML.

  Now, the library name is YAPT.(YAml Parser for Tcl)
  But according to the naming convention of tcllib, this library name might be 'yaml'?

  Although whichever of two names is satisfactory for me, I want to continue development by the determined name.

  Comments?


tkt_uuid: 1954483fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: dns
priority: 5 Medium
foundin: None
title: Package 'resolv' has no documentation
cmimetype: text/plain
submitter: andreas_kupries
assignee: patthoyts
closer: andreas_kupries
closedate: 2008-04-29T21:40:16
comment:
  The packages 'resolv' and 'spf' in the module 'dns' are not documented at all. 'resolv' has no testsuite either.


tkt_uuid: 1954771fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: nameserv (aka nns)
priority: 5 Medium
foundin: None
title: Missing "variable comm" in nns.tcl
cmimetype: text/plain
submitter: vonbane
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-04-30T15:57:22
comment:
  In ::nameserv::configure there is a missing "variable comm".  This results in undefined variable from line 253 ( if { $comm ne ""} { ).


tkt_uuid: 1960369fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: bignum :: float
priority: 5 Medium
foundin: None
title: todouble returns 0.0 when it should not
cmimetype: text/plain
submitter: billposer
assignee: sarnold75
closer: sarnold75
closedate: 2008-05-14T07:26:15
comment:
  There appears to be a bug in math::bigfloat::todouble, which returns 0.0 when it should not. This is illustrated by the following.

  package require math::bigfloat
  namespace import ::math::bigfloat::*
  set foo [fromstr 317.22 4]

  In 8.4.1.4 the following prints 317.220, but in 8.5 it prints 0.000.

  set sr [todouble $foo]
  puts [format "%6.2f" $sr]

  If I convert the bigfloat to a string, then convert the string back to
  a float using scan, as below, the result is 317.220 in 8.5 as well as
  8.4.14.

  set str [tostr $foo]
  scan $str "%f" sr
  puts [format "%6.2f" $sr] 


tkt_uuid: 1961881fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 6
foundin: None
title: mime - termination string missing error
cmimetype: text/plain
submitter: ejunkermann
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-05-21T19:42:47
comment:
  See bug 631314 for some past history of this.

  The error termination is annoying me, and the pre-631314 code would avoid it, except that in some cases it causes an infinite loop.

  This seems to be because the older code changes the value of line, without changing the value stored for its length (in the meaningfully-named variable x). the following patch seems to deal with this, avoiding both the error and the infinite loop:

  *** 832,839 ****
        while {$moreP} {
            if {$fileP} {
                if {$pos > $last} {
  !                  error "termination string missing in $state(content)"
                     set line "--$boundary--"
                } else {
                  if {[set x [gets $state(fd) line]] < 0} {
                      error "end-of-file encountered while parsing $state(content)"
  --- 832,840 ----
        while {$moreP} {
            if {$fileP} {
                if {$pos > $last} {
  !                  # error "termination string missing in $state(content)"
                     set line "--$boundary--"
  +                set x [string length line]
                } else {
                  if {[set x [gets $state(fd) line]] < 0} {
                      error "end-of-file encountered while parsing $state(content)"


tkt_uuid: 1963364fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: roman
priority: 5 Medium
foundin: None
title: Namespace is math::roman
cmimetype: text/plain
submitter: lars_h
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2008-05-20T07:57:39
comment:
  The manpage calls the commands of this package ::roman::toroman, ::roman::tointeger, etc., when in fact they live in the math::roman namespace, and should thus be specified as math::roman::toroman (or ::math::roman::toroman).

  The manpage should probably also mention that the tointeger and toroman commands are exported by the package.


tkt_uuid: 1966608fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: ncgi example has 2 bugs
cmimetype: text/plain
submitter: nobody
assignee: afaupell
closer: afaupell
closedate: 2009-05-13T21:49:32
comment:
  To make the example on the ncgi page working:

  The following two lines are required at the beginning:
  package require ncgi
  ::ncgi::header

  Two lines later it should read:
  set filedata [::ncgi::value filedata]


tkt_uuid: 1968596fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: aes
priority: 5 Medium
foundin: None
title: add -padding to aes package
cmimetype: text/plain
submitter: yahalom
assignee: patthoyts
comment:
  it will be good if you can change the default padding of the string you encrypt by givving the padding algorithm you want to use like PKCS#7 or other popolur padding techniques. this will make it clear that padding is done and can be changed.
  also adding -hexkey will be nice as hex keys are commonly used. if the -hexkey will not be added then better examplesin the documentation of using hex keys will be good.


tkt_uuid: 1968777fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: Locale problems
cmimetype: text/plain
submitter: lars_h
assignee: andreas_kupries
comment:
  When validating a man page I'm writing, I kept getting error messages such as:

  /Library/Tcl/bin/dtplite: Doctools Error in macro at line 51, column 4:
  [call [cmd format_bytes]  [arg ...]
  --> (FmtError) Manpage error (deflist), "call  " : unknown error code "deflist" (for locale sv_se).

  (The error turned out to be that [call] cannot be used in a "commands" list, which strikes me as somewhat illogical, but that's a separate matter.) This report is about the fact that I don't get an error message -- only the msgcat code for the message, if I understand it right.

  Msgcat isn't a package I'm familiar with (locales generally seem to be a neverending source of trouble, so I try to stay clear of having code depend on them), but it appears there is something wrong with the way Doctools is using them here, since the message is missing.

  One possible solution, that occurs to me after reading the msgcat manpage, is to declare messages for the root locale (empty string). Possibly the C locale messages should be moved there?

  Otherwise you'd have to do something clever using [mcunknown].


tkt_uuid: 1969042fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: Typewriter/fixed-width font
cmimetype: text/plain
submitter: lars_h
assignee: andreas_kupries
comment:
  Doctools has a command [emph] for empasizing text. Another font variation, which is very common in documentation, is that of "typewriter" or fixed-width fonts, to underline that something is exact text as typed by a user or the computer. In LaTeX this is marked up using the \texttt command, in WubWikit it is marked up using backquotes (`tt`), and so on.

  The [example] and [example_begin]...[example_end] commands in doctools already use such a font where available, but always put the text on separate lines. In this, they are rather like the verbatim and alltt environments of LaTeX, but this RFE is for something like \texttt.

  For output formats where this font variation is not possible, the command need not have any effect. I find it rather annoying not to have this style variation for HTML pages or LaTeX, however.


tkt_uuid: 1969078fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: base64
priority: 9 Immediate
foundin: None
title: Base64 speedup
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-05-23T15:45:56
comment:
  The current implementation of base64 in tcllib is very slow, even
  (or especially) when Trf is used. Funny enough,
  the problem is not the base64 encoding itself, but the
  reflow to a different width. The reflow is written in Tcl
  but a seldom example of inefficient code.

  Below is a patch to tcllib 1.10 with a much faster reflow
  code, and an omission of reflowing when not needed.

  Here are a few results comparing the speed of old and new
  reflow code

  string length  time old  time new  factor
   792800          792800     16638     419
  1585600        34025025     33064    1029
  3171200       149875843     66856    2241

  In other words, for a 3MB file , the improvement is
  more than a factor of 2000. It should not take
  more than 2minutes on a recent processor to reflow
  the encoding of a 3MB file. Note, that the factor
  of improvement grows linearly with the size of the
  import.

  The base64 part of tcllib is used often in OpenACS
  for mailing files of the content repository, it is a shame
  to see that the server comes more or less to a halt
  when base64 encoding is performed.

  Please, if possible, apply the following patch
  to tcllib for the next release.

  Attached is a small program to show the speed
  differences leading to the table above.

  all the best
  -gustaf


tkt_uuid: 1969144fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: Alternatives, repetition, and list structure
cmimetype: text/plain
submitter: lars_h
assignee: andreas_kupries
comment:
  Doctools has a command [opt] to mark something (often a command argument) as being optional. Two siblings of that piece of markup which I often find useful, but have been unable to apply consistently in .man pages, is alternatives and repetition.

  Suitable syntax for alternatives would be

    [alt {first alt.} {second alt.} {third alt.} ...]

  e.g.

    [alt [arg boolean] [const auto]]

  to say that something is a boolean value or the constant "auto". A naive implementation of such an alt command could be

    proc alt {args} {return "([join $args { | }])"}

  since I've seen this formatting with parentheses and vertical bars in e.g. the documentation of the ftp package.

  In line with that, repetition could have the syntax

    [rep {word} ...]

  and be naively implemented as

    proc rep {args} {return "([join $args])*"}

  i.e., a regexp-style rendering (as is also that of [alt] above), with * denoting zero or more repetitions of the arguments of [rep]. A more traditional  rendering might however be

    proc rep {args} {return "?[join $args] ...?"}

  I want [rep] (name is not important, though) because I often find myself wanting to write

    [call [cmd myCmd] [arg mandatory] [rep [arg option] [arg value]]]

  for the option-value part of a command that could be

    myCmd $mandatory
  or
    myCmd $mandatory -option $value
  or
    myCmd $mandatory -option $value -otherOption $otherValue
  etc.


  Also, the way I write packages and documentation, I often find I need to document the structure of various lists, just like one conventionally documents command syntaxes, and I don't see any good way to do that in doctools markup. For the special case of a list constructed as a command callback, it just occurred to me that I could write a dummy list with only a [call] heading, like so:

      A command prefix used to format the values while taking the 
      key names into account. It is called as
      [list_begin definitions]
        [call \{*\}[arg choicecmd] [arg key] [arg value]]
      [list_end]
      Specifying a [option -choicecmd] overrides the 
      [option -entrycmd], if any.

  but this is only a partial solution (and in the HTML rendering it seems to leave an awful lot of vertical space between the "It is called as" and "{*}choicecmd key value" lines).

  In LaTeX, I'd write the above as

      A command prefix used to format the values while taking the 
      key names into account. It is called as
      \begin{quote}
        \meta{choicecmd} \word{key} \word{value}
      \end{quote}
      Specifying a |-choicecmd| overrides the |-entrycmd|, 
      if any.

  which to some extent (\meta, \word, and \verb shorthand `|') relies on particular packages, but what I'm after right now is something that can be used like the `quote' environment in this example.

  As a concrete example, here is a passage of documentation in LaTeX, which documents the structures of two lists. The environment is my own `displaysyntax' rather than `quote', but the idea is the same:

  The \word{msg-id} is used to provide a measure of reliability by 
  providing acknowledgements of message delivery. If an |envelope| 
  with nonempty \word{msg-id} arrives at its destination then a reply 
  message with \word{payload}
  \begin{displaysyntax}
    delivery ack \word{msg-id} \word{time}
  \end{displaysyntax}
  is sent to the \word{from} address. If an |envelope| with nonempty 
  \word{msg-id} could not be sent to the next connection in \word{to} 
  then a reply message with \word{payload}
  \begin{displaysyntax}
    delivery nack \word{msg-id} \word{remaining to} \word{reason}
  \end{displaysyntax}
  is sent to the \word{from} address. These |ack| and |nack| messages 
  have empty \word{msg-id}s.


tkt_uuid: 1969151fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 3 Low
foundin: None
title: "Macro" definitions
cmimetype: text/plain
submitter: lars_h
assignee: andreas_kupries
comment:
  In request#1969144, I've described two markup commands [alt] and [rep] that in principle are just combinations of other markup commands with some fixed text arguments, not unlike a macro in e.g. TeX.

  Had there been a facility through which manpage writers could define new command on a per-page basis, like LaTeX authors often do in the preambles of documents, then I could just have defined these commands and went ahead and used them, not having to wait for Doctools to be updated with them.

  The advantage of defining new "macro" commands for repeated elements, rather than just writing out their expansions in full, is that it provides greater consistency in formatting. It also makes it easy to switch from one notation to another, simply by changing the definition of the custom command which generates that definition.


tkt_uuid: 1969847fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: yaml
priority: 5 Medium
foundin: None
title: Testsuite failures
cmimetype: text/plain
submitter: andreas_kupries
assignee: kanryu6
closer: kanryu6
closedate: 2008-10-10T05:01:40
comment:
  Attached a quick run of the testsuite.

  It seems that a 'switch' command in yaml is not protected against the occurrence of '-' in its input, leading to misinterpretation as option.

  I.e. the code contains

      switch $ch

  and it should better be

     switch -- $ch


tkt_uuid: 1970893fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: Serialize Helper
cmimetype: text/plain
submitter: kanryu6
assignee: nobody
closer: kanryu6
closedate: 2008-06-06T13:17:31
comment:
  This library holds the data of complicated structure more strictly, and offers the means to write out.
  In Tcl, the internal expression of "space separated string"s, "list"s, and "dictionary(dict)"s are the same, and is not mutually distinguished so that it may know.
  It is simplicity peculiar to Tcl.
  However, there is a fault that it is undistinguishable what the node is in the library side to write out the data of the two or more floor layer to XML, JSON, YAML, etc. as a fault.
  Then, it stores once what each node is in the "tree" specified clearly, and was made to change into the target form from there.
  It seems that it is moving well although the code which changes the data of five classes into a trial at JSON form was described.
  But I feel [ that are a wonderful talk and I have not found the library and its usage ] only for such a fundamental thing not being offered as a library.
  This library is whether to be required and ? (should be recorded on tcllib?).
  And, what kind of library name should it be?

  # -----------------
  # working sample
  % set bb [huddle create a b c d] ; # create as a dict
  HUDDLE {d {a b c d}}
  % set cc [huddle create e f g h]
  HUDDLE {d {e f g h}}
  % set bbcc [huddle create bb $bb cc $cc]
  HUDDLE {D {bb {d {a b c d}} cc {d {e f g h}}}}
  % set folding [huddle list $bbcc p [huddle list q r] s] ; # create as a list
  HUDDLE {L {{D {bb {d {a b c d}} cc {d {e f g h}}}} {s p} {l {q r}} {s s}}}
  % huddle strip $folding ; # normal Tcl's notation
  {bb {a b c d} cc {e f g h}} p {q r} s
  % huddle jsondump $folding ; # dump as a JSON stream
  [
    {
      "bb": {
        "a": "b",
        "c": "d"
      },
      "cc": {
        "e": "f",
        "g": "h"
      }
    },
    "p",
    [
      "q",
      "r"
    ],
    "s"
  ]


tkt_uuid: 1977644fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: None
priority: 5 Medium
foundin: None
title: Using case sensitive accelerator keys for bwidget mainframe
cmimetype: text/plain
submitter: cmard
assignee: nobody
comment:
  The BWidget MainFrame widget supports an automatic accelerator key binding.

  With current implementation of 'mainframe -menu' only lower case letters can be bind as accelerator keys.

  By adding a new switch the accelerator key processing can be modified to support optional mixed case accelerator keys (e.g {Ctrl s} and {Ctrl S} for two different menu entries).

  The patch file contains the changes of mainframe.tcl. Also a modified manual MainFrame.html is included which explains the new -casesensitive switch (some missing HTML tags are added, too).


tkt_uuid: 1985214fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: Typos in Quick Help and command parser
cmimetype: text/plain
submitter: matzek
assignee: nobody
closer: patthoyts
closedate: 2008-06-05T11:14:45
comment:
  Hi Pat

  I found two typos in revision 1.432: 1. the explanation of /whisper is wrong and 2. /back does currently not accept a status, due to a wrong regexp.

  Patch attached.

  kind regards
  -- Matthias Kraft


tkt_uuid: 1998628fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math
priority: 5 Medium
foundin: None
title: Tcl lib and safe interpreter
cmimetype: text/plain
submitter: nicolascastagne
assignee: arjenmarkus
closer: andreas_kupries
closedate: 2009-12-04T17:38:24
comment:
  I am working on Linux, with active tcl 852, and tcllib installed through teacup. 
   
  ************ 
   First question 
   ************ 
   I tried executing the following: 
           > /opt/ActiveTcl-8.5/bin/tclsh8.5 
           % ::safe::interpCreate 
           interp0 
           % interp eval interp0 "package require math" 
           script error 
   
  Indeed, as discussed on this comp.lang.tcl thread :
  http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/3e15e20b001e6ecf#

  If you set a log command for the safe package then you can see the problem: 
   
    % proc debug args { puts "LOG: $args" } 
     % safe::setLogCmd debug 
     debug 
     % $i eval { package require math } 
     LOG: {ERROR for slave interp0 : invalid command name "pwd"} 
   
  It seems the math package tries to use [pwd] for some reason, which is not available in a safe slave.

  I don't see any true reason that would forbid requiring the math package in a safe interp ?
  If 
   you set a log command for the safe package then you can see the problem: 
   
    % proc debug args { puts "LOG: $args" } 
     % safe::setLogCmd debug 
     debug 
     % $i eval { package require math } 
     LOG: {ERROR for slave interp0 : invalid command name "pwd"} 
   It seems the math package tries to use [pwd] for some reason, which is not available in a safe slave.

  Perhaps there are, but I don't see any true reason that would forbid requiring the math package in a safe interp.

  More generally, I guess most tcllib packages, which are a-priori "safe" should load into a safe slave.


tkt_uuid: 2001539fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: math :: calculus
priority: 5 Medium
foundin: None
title: calculus::solveTriDiagonal bug
cmimetype: text/plain
submitter: nicolascastagne
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2008-08-13T07:47:39
comment:
  The execution of :math::calculus::solveTriDiagonal on a 3x3 matrix, such as  :
     set X [::math::calculus::solveTriDiagonal {3 3} {1 1 1} {2 2} {1 0 0}]
  returns a liste of length 2 :
     { 1 0 }

  It should return a list of length 3 (the size of the matrix).



  The bug may be either on line 527 or 536 or 557 in calculs.tcl version 0.7, revision 1,13.


  The for loop should pbly go one step further.


tkt_uuid: 2002489fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: treeql
priority: 1 Zero
foundin: None
title: tree-tcl test 4.4.17 in test suite - error msg difference
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
comment:
  I'm using the latest activestate cvs head snapshots of tcl 8.6 and tcllib on Solaris 2.8 SPARC. The test suite message is:
  ---- tree-tcl-4.4.17 start

  ==== tree-tcl-4.4.17 error in walk FAILED
  ==== Contents of test case:

      set t [list ]
      proc foo {} {
          global t
          tree mytree
          mytree insert root end 0 1 2 3
          mytree insert 0 end a b c
          lappend t ==
          mytree walk root {a n} {
              if {[string equal $n "b"]} {
                  lappend t .
                  error fubar
              }
              lappend t $a $n
          }
          lappend t ==
          return bad-return
      }
      catch {lappend t [foo]} result
      mytree destroy
      list $t $result $::errorInfo

  ---- Result was:
  {== enter root enter 0 enter a .} fubar {fubar
      while executing
  "error fubar"
      ("WalkCall" body line 4)
      invoked from within
  "WalkCall $avar $nvar $name $node "enter" $script"
      (procedure "::struct::tree::_walk" line 88)
      invoked from within
  "::struct::tree::_walk ::mytree root {a n} {
              if {[string equal $n "b"]} {
                  lappend t .
                  error fubar
              }
              lappend t $a $n
          }"
      ("_walk" body line 1)
      invoked from within
  "mytree walk root {a n} {
              if {[string equal $n "b"]} {
                  lappend t .
                  error fubar
              }
              lappend t $a $n
          }"
      (procedure "foo" line 7)
      invoked from within
  "foo"}
  ---- Result should have been (exact matching):
  {== enter root enter 0 enter a .} fubar {fubar
      while executing
  "error fubar"
      invoked from within
  "if {[string equal $n "b"]} {
                  lappend t .
                  error fubar
              }"
      ("WalkCall" body line 2)
      invoked from within
  "WalkCall $avar $nvar $name $node "enter" $script"
      (procedure "::struct::tree::_walk" line 88)
      invoked from within
  "::struct::tree::_walk ::mytree root {a n} {
              if {[string equal $n "b"]} {
                  lappend t .
                  error fubar
              }
              lappend t $a $n
          }"
      ("_walk" body line 1)
      invoked from within
  "mytree walk root {a n} {
              if {[string equal $n "b"]} {
                  lappend t .
                  error fubar
              }
              lappend t $a $n
          }"
      (procedure "foo" line 7)
      invoked from within
  "foo"}
  ==== tree-tcl-4.4.17 FAILED


tkt_uuid: 2010798fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: md5
priority: 5 Medium
foundin: None
title: variable pollution on package require md5
cmimetype: text/plain
submitter: juliannoble
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-07-04T18:28:20
comment:
  The final 'namespace eval' in md5x.tcl seems to have a 'creative writing' problem regarding the variable e.

  e.g

  % set e myvalue
  myvalue
  % package require md5
  2.0.5
  %set e
  critcl


  Looking in cvs - it seems an 'unset e' has been added, but this isn't enough, as the original e is still the variable being written to.

  Looks like it just needs an extra line:
  variable e 


tkt_uuid: 2013082fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: general request
priority: 5 Medium
foundin: None
title: Submission: Amazon S3 access in pure Tcl
cmimetype: text/plain
submitter: dnew
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-07-08T22:32:41
comment:
  Attached is a zip file containing code that talks to Amazon's Simple Storage Service (S3) in pure Tcl. Included is documentation (in dtp man form) and tests (in tcltest form). The license is (or at least should be) the same as the rest of TclLib. 

  I'm not sure if something needs to be done to make it TEA-compatible, but I offer it as the 1.0 version for general use.

  In any case, I would be pleased to have this in TclLib.


tkt_uuid: 2014172fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: tklib :: tooltip
priority: 5 Medium
foundin: None
title: Unkown option "-highlightthickness" when using ttk
cmimetype: text/plain
submitter: neilhampton
assignee: hobbs
closer: hobbs
closedate: 2008-11-18T00:17:25
comment:
  The tklib::tooltip library reports the following error when run within a tile/ttk application:

  unknown option "-highlightthickness"
    while executing
  "label $b.label -highlightthickness 0 -relief solid -bd 1 -background lightyellow -fg black"
    (procedure "tooltip::tooltip" line 50)
    invoked from within
  "tooltip::tooltip $tb.1.b1 "Re-load the test definitions""


  The following code demonstrates the problem:


  package require tile
  namespace import -force ttk::*
  package require tooltip

  button .b -text Hello
  tooltip::tooltip .b "Tip"


tkt_uuid: 2014325fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: cmdline
priority: 5 Medium
foundin: None
title: couldn't set variable "dummy"
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-07-09T18:04:24
comment:
  you get the error message 'couldn't set variable "dummy"'
  when sourcing cmdline.tcl in case of the existence of
  a global array (!) variable ::dummy.

  try, for example:

  echo 'array set dummy {a 1}; package require cmdline' | tclsh8.5
   
  patch:

  insert "variable dummy" within the context of
  "namespace eval ::cmdline {...}"

  ... near line 449 in cmdline.tcl, version 1.3,
  as in tcllib1.10

   


tkt_uuid: 2015992fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: tooltip
priority: 5 Medium
foundin: None
title: Too many events in canvas
cmimetype: text/plain
submitter: ramsan
assignee: hobbs
closer: hobbs
closedate: 2008-07-14T23:06:27
comment:
  Function tooltip::enableCanvas is called for every tooltip assigned to every item.

  It does:

  $w bind all <Enter> +[namespace code [list itemTip $w]]
  .....

  So it adds a command to the binding for every item. It is not correct. The solution is to check if the canvas has already been enabled:

  proc ::tooltip::enableCanvas {w args} {
      
      if { [string first itemTip [$w bind all <Enter>]] != -1 } { return }
      $w bind all <Enter> +[namespace code [list itemTip $w]]
      $w bind all <Leave>        +[namespace code [list hide 1]] ; # fade ok
      $w bind all <Any-KeyPress> +[namespace code hide]
      $w bind all <Any-Button> +[namespace code hide]
  }


tkt_uuid: 2018141fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: ldap
priority: 5 Medium
foundin: None
title: Reimpl. of search filter strings parsing/encoding
cmimetype: text/plain
submitter: flatworm
assignee: loewerj
closer: mic42
closedate: 2008-07-20T19:52:43
comment:
  This patch reimplements parsing and encoding of search filter strings, namely:
  * Implemented proper syntax parsing using regexps only when really applicable. The parser appears to be enough robust for errors in filter specifications.
  * Options in attribute descriptions are now permitted (but not used, see below).
  * Implemented full support for extensible match rules.

  Test suite with pretty complete coverage for this code is also provided.

  Other changes include:
  * Removed artifical restriction of permitted types of search result PDUs: this removes module misbehaving when presented with a PDU tagged with apptype 19 (search continuation).
  * Fixed RFC number in leading commend in ldap.tcl.
  * Added Vim modelines to ldap.tcl and ldap.test to force braindamaged indentation mode used in these files.

  This patch should fix bugs 1751871 and 1852718.

  The ldap module with this patch applied works for me against Windows Server 2003 LDAP directory.

  Note on options: while LDAP RFCs mention one standard attribute description option "binary" which requires special encoding when transmitting associated attribute values, I failed to understand both its applicability to client requests and whether its usage has any sense in search representation of filter strings. So the proposed implementation parses it, but does nothing besides this.


tkt_uuid: 2022905fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: Build System & Testing
priority: 2
foundin: None
title: 74 test failures with Tcl HEAD (wrong # args)
cmimetype: text/plain
submitter: msofer
assignee: andreas_kupries
comment:
  Many of tcllib's tests depend on the precise form of error messages emmitted by Tcl. Tcl makes no guarantee about that.

  Recently there was a reform of Tcl's "wrong # args" messages, and tcllib shows 74 test failures. I have not verified all of them, but those I did happen to be of this kind.

  Testing for error messages should be as lax as possible.


tkt_uuid: 2023543fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: amazon-s3
priority: 5 Medium
foundin: None
title: S3.test and xsxp.test fail during tcllib make test
cmimetype: text/plain
submitter: lvirden
assignee: dnew
comment:
  I'm using Tcl/Tk 8.5.3, and the latest tcllib cvs snapshot from the activestate ftp site.

  When I do the make test, I get this failure:

  @@ Module amazon-s3
  @@ Testsuite modules/amazon-s3/S3.test
  - tcllib::testutils 1.1
      Aborting the tests found in "S3.test"
      Error in xsxp.tcl: can't find package xml
  SETUP Error (Support): 
  SETUP Error (Support):     while executing
  SETUP Error (Support): "useLocal xsxp.tcl xsxp"
  SETUP Error (Support):     ("uplevel" body line 3)
  SETUP Error (Support):     invoked from within
  SETUP Error (Support): "uplevel 1 $script"
  @@ Testsuite modules/amazon-s3/xsxp.test
  - tcllib::testutils 1.1
      Aborting the tests found in "xsxp.test"
      Error in xsxp.tcl: can't find package xml
  SETUP Error (Testing): 
  SETUP Error (Testing):     while executing
  SETUP Error (Testing): "useLocal xsxp.tcl xsxp"
  SETUP Error (Testing):     ("uplevel" body line 2)
  SETUP Error (Testing):     invoked from within
  SETUP Error (Testing): "uplevel 1 $script"

  @@ End 1216643966

  Perhaps there is a dependency not specified?


tkt_uuid: 2024843fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: math :: special
priority: 5 Medium
foundin: None
title: erf is not accurate
cmimetype: text/plain
submitter: nobody
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2008-08-13T07:47:02
comment:
  Problem description
  ====================

  For erf(1)
  Tcl gives 0.842638529766, while gcc 0.84270079294971

  Reproduction
  ============

  > package require math
  1.2.2
  > package require math::special
  0.1
  > ::math::special::erf 1
  0.842638529766
  ===========================================
  gcc --version
  gcc (GCC) 3.4.2
  Copyright (C) 2004 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

  >cat <<EOF >erf.c
  ? #include <stdio.h>
  ? #include <stdlib.h>
  ? #include <math.h>
  ? int main(int argc, char**argv) {
  ?    printf("%16.14lf\n", erf(atof(argv[1])));
  ?    return 0;
  ? }
  ? EOF
  >gcc -o erf erf.c -lm ; erf 1
  0.84270079294971


tkt_uuid: 2025485fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: uevent
priority: 5 Medium
foundin: None
title: uevent::unbind typo in variable name
cmimetype: text/plain
submitter: pmmartin
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-07-23T16:19:18
comment:
  Missing category for tcllib: uev or uevent

  package: uevent 0.1.2
  file: uevent.tcl
  proc: uevent::unbind

  line 12 of uevent::unbind:
    set te [lrange $tex 0 1]
  should probably be:
    set te [lrange $tec 0 1]


tkt_uuid: 2028993fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: ::htmlparse::mapEscapes doesn't handle the &apos; entity
cmimetype: text/plain
submitter: skiidoo
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-07-28T22:22:53
comment:
  &apos; is not a valid HTML entity [1] but it is valid in XML [2].

  XHTML is supposed to be valid XML, W3C says [3]:
  > The named character reference &apos; (the apostrophe,
  > U+0027) was introduced in XML 1.0 but does not appear
  > in HTML. Authors should therefore use &#39; instead of
  > &apos; to work as expected in HTML 4 user agents.

  The point here is &apos; might be used in XHTML pages (not everybody follows W3C advices, this is real world), and anyway ::htmlparse::mapEscapes might be used on XML trees, so I think it should handle &apos; as well.

  How to reproduce:
  Use ::htmlparse::mapEscapes on a string containing '&apos;'.

  Actual result:
    % package require htmlparse
    1.1.2
    %  ::htmlparse::mapEscapes { J.D.&nbsp;&apos;Boss&apos;&nbsp;Hogg }
     J.D. &apos;Boss&apos; Hogg

  Expected result:
  Map the &apos; entity to an apostrophe:
    %  ::htmlparse::mapEscapes { J.D.&nbsp;&apos;Boss&apos;&nbsp;Hogg }
     J.D. 'Boss' Hogg

  [1] http://www.w3.org/TR/html4/sgml/entities.html
  [2] http://www.w3.org/TR/REC-xml/
  [3] http://www.w3.org/TR/xhtml1/#C_16


tkt_uuid: 2031231fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Out of Date
subsystem: app: tkchat
priority: 5 Medium
foundin: None
title: webchain integration
cmimetype: text/plain
submitter: decosterjos
assignee: patthoyts
closer: patthoyts
closedate: 2010-01-12T21:27:45
comment:
  Adding these lines to function tkjabber::parseMsg will hide the 'webchain' bridge name in tkchat:

  }
  +    } elseif { $nick eq "webchain" } {
  +set nick [lindex $msg 0]
  +set msg [lrange $msg 1 end]        
      } elseif { $nick eq $::Options(JabberConference) } {

  Kind regards,

  Jos.


tkt_uuid: 2034464fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: tablelist
priority: 5 Medium
foundin: None
title: columnconfigure -bg isn't respected for -state disabled
cmimetype: text/plain
submitter: pointsman
assignee: nemethi
closer: nemethi
closedate: 2008-08-22T20:21:07
comment:
  A tablelist with -state disable doesn't respect columnconfigure -background settings unter a lot of circumstances. If the -state is disabled, the -background color of the widget itself is used as background color. Though, even that isn't always the case. Sometimes, even with -state disabled, the column -background setting is respected. 

  The script below illustrates this. The tablelist widgets .tl1 and .tl2 differ only in the -state -- .tl2 is disabled.

  With a click on the button you change the 3. tablelist. Its content change and it is switched to -state disabled, but the colum -background settings are respected.

  If you hit a second time at the button, the column -background settings are forgotten.

  package require tablelist

  proc changetl3 {} {
      global tl3
      set tl3 [list]
      lappend tl3 [list "" ""]
      .tl3 configure -state disabled
  }

  set cols {
      0 "Column 1" left
      0 "Column 2" left
  }

  lappend tl1 [list foo bar]
  lappend tl2 [list foo bar]
  lappend tl3 [list foo bar]
  for {set i 1} {$i < 4} {incr i} {
      tablelist::tablelist .tl$i \
          -height 4 \
          -columns $cols \
          -background green \
          -listvariable tl$i
  }

  foreach tl {.tl1 .tl2 .tl3} {
      $tl columnconfigure 0 -background white
      $tl columnconfigure 1 -background red
  }
  .tl1 configure -state disabled

  button .b -text "Disable tl3" -command changetl3

  pack .tl1 .tl2 .tl3 .b


tkt_uuid: 2037560fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: inifile
priority: 5 Medium
foundin: None
title: support keys with no = sign
cmimetype: text/plain
submitter: nobody
assignee: afaupell
comment:
  imagine a ini file where you might have 
  [section]
  key

  missing the "= value" part or simply "=" to specify no value for that key

  support for this could be quite useful at times, and also not to hard to implement


tkt_uuid: 2038217fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: irc
priority: 5 Medium
foundin: None
title: the irc package is misusing namespace variables
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-08-05T20:40:37
comment:
  The irc package neglects to use [variable] within the namespace eval to get the right scope in proc ::irc::connection.

  The following is an example:
  % set ::sock "I'm a global value"
  I'm a global value
  % source ./irc.tcl
  % set c [::irc::connection] 
  ::irc::irc0::network
  % set ::sock
  % 

  The following namespace variables should be used with [variable]:
  sock, dispatch, linedata, config, logger

  Right now this totally defeats the purpose of using a namespace.


  It also results in this interesting bug if the dispatch global variable exists.

  % set dispatch global
  % set c [irc::connection]
  can't array set "dispatch": variable isn't array

  You may want to check the bug tracker for similar bugs from existing globals that the irc package tries to overwrite.

  There may be more problems lurking in the irc package.


tkt_uuid: 2038279fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftp
priority: 5 Medium
foundin: None
title: The ftp package is misusing namespace variables
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-08-05T20:35:02
comment:
  $ tclsh8.5 
  % set serial global; set VERBOSE global; set DEBUG global;
  global
  % source ./ftp.tcl
  % set serial
  0
  % set VERBOSE
  0
  % ...

  It would probably help to audit tcllib's usage of namespace eval with set, so that we can fix these missing [variable] problems that result in globals being overwritten.

  See also:
  http://wiki.tcl.tk/1030


tkt_uuid: 2054498fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ftp
priority: 5 Medium
foundin: None
title: Race condition in ftp::Get -variable
cmimetype: text/plain
submitter: sbron
assignee: andreas_kupries
comment:
  While using the METAR package by Jos Decoster (http://wiki.tcl.tk/19635) I frequently get an error from the ftp package:

  can't read "ftp(GetData)": no such element in array
      while executing
  "set returnData $ftp(GetData)"
      (procedure "::ftp::StateHandler" line 778)
      invoked from within
  "::ftp::StateHandler 0 sock19"
  Error in plug-in weather:
  can't read "ftp(GetData)": no such element in array
      while executing
  "set returnData $ftp(GetData)"
      (procedure "::ftp::StateHandler" line 778)
      invoked from within
  "::ftp::StateHandler 0 sock19"

  Investigation shows that this appears to be caused by a race condition between the data and control socket. The error shows up when the control event handler sees the "226 File send OK" report before the event handler on the data socket fires and processes the incoming file contents.

  Here's the log with VERBOSE and DEBUG on:

  debug      | Starting new connection with: 
  debug      |   no option
  debug     control | C: Connection from 140.90.128.71:21
  debug      | -> rc="220"
  -> msgtext="220 Authorized users only. All activity may be monitored and reported."
  -> state="user"
  debug      | ---> USER anonymous
  debug     control | C: 220 Authorized users only. All activity may be monitored and reported.
  debug      | -> rc="331"
  -> msgtext="331 Please specify the password."
  -> state="passwd"
  debug      | ---> PASS anonymous
  debug     control | C: 331 Please specify the password.
  debug      | -> rc="230"
  -> msgtext="230 Login successful."
  -> state="connect"
  debug     control | C: 230 Login successful.
  debug      | -> rc="   "
  -> msgtext=""
  -> state="type"
  debug      | ---> TYPE I
  debug      | -> rc="200"
  -> msgtext="200 Switching to Binary mode."
  -> state="type_sent"
  debug     control | C: 200 Switching to Binary mode.
  debug      | -> rc="   "
  -> msgtext=""
  -> state="cd"
  debug      | ---> CWD data/observations/metar/stations
  debug      | -> rc="250"
  -> msgtext="250 Directory successfully changed."
  -> state="cd_sent"
  debug     control | C: 250 Directory successfully changed.
  debug      | -> rc="   "
  -> msgtext=""
  -> state="get_active"
  debug     data | D: Port is 33870
  debug      | ---> PORT 192,168,1,2,132,78
  debug      | -> rc="200"
  -> msgtext="200 PORT command successful. Consider using PASV."
  -> state="get_open"
  debug      | ---> RETR EHAM.TXT
  debug     control | C: 200 PORT command successful. Consider using PASV.
  debug      | -> rc="150"
  -> msgtext="150 Opening BINARY mode data connection for EHAM.TXT (62 bytes)."
  -> state="get_sent"
  debug     control | C: 150 Opening BINARY mode data connection for EHAM.TXT (62 bytes).
  debug      | -> rc="226"
  -> msgtext="226 File send OK."
  -> state="get_close"
  debug     data | D: Connection from 140.90.128.71:20
  debug     data | D: Port closed

  I guess the error will only show up for small files. On larger files I can imagine that the last part of the file may be missing, but I haven't actually seen that happen.

  I haven't yet come up with a solution for this problem. I fear it's not going to be straight forward. Temporarily removing the fileevent from the control socket may be a possibility.


tkt_uuid: 2055837fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: jpeg
priority: 5 Medium
foundin: None
title: Bad InteropIFD directory causes crash
cmimetype: text/plain
submitter: nobody
assignee: afaupell
comment:
  Some of my images crash the GetExif function with the following error:

  ---------------------------
  Error in startup script
  ---------------------------
  expected integer but got ""
      while executing
  "format %u $value"
      ("4" arm line 3)
      invoked from within
  "switch -exact -- $type {
          1 { _scan $end $value c value }
          2 { set value [string trimright $value \x00] }
          3 {
              _scan ..."
      (procedure "_format" line 11)
      invoked from within
  "_format $end [string range $value [expr {$len * $i}] [expr {($len * $i) + $len - 1}]] $type 1"
      (procedure "_format" line 7)
      invoked from within
  "_format $byteOrder $value $format $components"
      (procedure "_exif" line 35)
      invoked from within
  "_exif $fh $byteOrder $offset"
      (procedure "_exif" line 19)
      invoked from within
  "_exif $fh $byteOrder $offset"
      (procedure "_exif" line 19)
      invoked from within
  "_exif $fh $byteOrder $start"
      (procedure "::jpeg::getExif" line 28)
      invoked from within
  "::jpeg::getExif "CIMG0049.JPG" "
      invoked from within
  "set t [ ::jpeg::getExif "CIMG0049.JPG" ]"
       ...
  ---------------------------
  OK   
  ---------------------------

  The camera is
  Make : CASIO COMPUTER CO.,LTD 
  Model : QV-R41 
  Software : 1.00                 

  exiftool 7.30 reports a warning "Bad InteropIFD directory".

  I added a length check as a hot fix:

               seek $fh $pos start
           }
  +        if { $size > [ string length $value ] } continue
           lappend return $tag [_format $byteOrder $value $format $components]
       }
       return $return

  The actual problem is a bad pointer to the InteropIFD directory. Therefore,
  a more general solution would be something like black list checking.

  Are there any plans in this direction? I am going to implement one as
  a work around for my own but may also post it as a proposal.


tkt_uuid: 2059415fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: None
priority: 5 Medium
foundin: None
title: ctext error when widget destroyed
cmimetype: text/plain
submitter: relaxmike
assignee: georgeps
closer: georgeps
closedate: 2008-08-19T21:19:58
comment:
  Hi,

  The following error message appears :

  invalid command name ".t._t"
  invalid command name ".t._t"
      while executing
  "$twin search -count length -regexp -- {([^\s\(\{\[\}\]\)\.\t\n\r;\"'\|,]+)} $si $end"
      (procedure "ctext::highlight" line 25)
      invoked from within
  "ctext::highlight .t 1.0 1.19"
      ("after" script)

  This error is reported in background.

  The reason for that bug is that "after" scripts are not cleaned after the destruction of the ctext widget.
  Looking at the ctext::highlight command, it is triggered by the following after sequence :

  after idle [list ctext::highlight $self $lineStart $lineEnd]

  in ctext::instanceCmd command.
  Other "after" script are associated with the command "ctext::comments" as well.

  A solution is to keep track of all after script generated, and to clean them when the widget is destroyed.
  For example, one can add a variable to keep track of the last after script associated with the highlight command :

  namespace eval ctext {
      variable lastafterscript ""
  }

  One can store the after ID with :

  set ::ctext::lastafterscript [after idle [list ctext::highlight $self $lineStart $lineEnd]]

  The Destroy method may contain :

  proc ctext::event:Destroy {win dWin} {
    after cancel $ctext::lastafterscript

  That solves the problem for one ctext only, and only for the last "after" highlight command.
  The real fix needs to store all after scripts, for the current ctext widget only.

  The bug can be reproduced with the unit test script in attachment.

  Regards,

  Michaël


tkt_uuid: 2063144fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: snit
priority: 5 Medium
foundin: None
title: Snit method name collision
cmimetype: text/plain
submitter: duquette
assignee: duquette
comment:
  The following code creates two distinct typemethods
  with but a single body between them:

  snit::type foobar {
      typemethod {a_b c} {} { return 1 }
      typemethod {a b_c} {} { return 2 }
  }

  The command "foobar a_b c" will return 2, rather than
  1; the second typemethod overwrites the first 
  typemethod's proc.  The problem is that the name
  mangling for hierarchical typemethods assumes that
  it can use "_" as a token separator.

  Methods have the same problem, naturally.

  At a minimum, Snit should detect this case and
  throw an error; ideally, the two typemethods should
  have distinct bodies.


tkt_uuid: 2064326fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: app: tkchat
priority: 5 Medium
foundin: None
title: updated de.msg
cmimetype: text/plain
submitter: matzek
assignee: patthoyts
closer: patthoyts
closedate: 2008-08-21T09:36:35
comment:
  Hi Pat,

  I translated and corrected some more entries in de.msg. See attached patch.

  -- Matthias Kraft


tkt_uuid: 2082457fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: cursor
priority: 5 Medium
foundin: None
title: Cursor is not restored with mega-widgets
cmimetype: text/plain
submitter: relaxmike
assignee: hobbs
closer: hobbs
closedate: 2009-04-24T22:04:17
comment:
  Hi,

  Suppose that you want to manage the cursor of the megawidget ctext. The cursor is not correctly
  restored, because of the delegation of the
  configure on the sub-widgets.
  The fix consists in updating the tree of
  widgets, begining by the bottom,
  instead of begining by the top, as in the
  current implementation.
  A modified implementation is suggested,
  so that the previous versions are maintained.

  In the given test case, you first propagate the watch cursor over the
  widget tree, then restore back the original cursor.

      set mytext [ctext .mytext]
      set result {}
      lappend result [.mytext cget -cursor]
      ::cursor::propagate . watch
      lappend result [.mytext cget -cursor]
      ::cursor::restore .
      lappend result [.mytext cget -cursor]
      destroy $mytext
      set result $result

  The expected result would be "xterm watch xterm".
  The computed result is "xterm watch watch",
  that is, the cursor is not correctly restored
  on the ctext widget. The reason is the
  following.

  The widget .mytext cursor is backed up
  into the CURSOR variable, and the configure
  method is used to update the cursor :

  set CURSOR(.mytext) xterm
  .mytext config -cursor watch

  At that point the instance command in the
  ctext mega-widget delegates to the underlying
  text widget :

  .mytext._t configure -cursor watch

  The cursor package then propagates the configure
  down to the children widgets, begining
  by the linemap :

  set CURSOR(.mytext.l) xterm
  .mytext.l config -cursor watch

  When it comes to the underlying text, the
  backup variable is set to the wrong cursor value,
  because it has allready been updated to the
  "watch" state :

  set CURSOR(.mytext.t) watch
  .mytext.t config -cursor watch
  .mytext._t configure -cursor watch

  When the restore command is called, the
  widget .mytext is correctly updated :

  ::cursor::restore .mytext
  .mytext config -cursor xterm

  By delegation, it triggers the configure
  method on the .mytext._t sub-widget :

  .mytext._t configure -cursor xterm

  Instead, when it comes to the sub-widget directly,
  the watch cursor is configured :

  ::cursor::restore .mytext.t
  .mytext.t config -cursor watch
  .mytext._t configure -cursor watch

  The fix simply consists in restoring children first.
  This is done by implementing unpositionnal
  arguments and maintaining the previous interface
  with a special processing of options.

  See in the attachment for a test-case and
  a suggested modified version of cursor.tcl.

  Regards,

  Michaël


tkt_uuid: 2103920fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Works For Me
subsystem: tklib :: ico
priority: 5 Medium
foundin: None
title: Problems with package ico
cmimetype: text/plain
submitter: nobody
assignee: afaupell
closer: afaupell
closedate: 2009-02-20T03:47:12
comment:
  Hi,

  I have found some problems using ico package and I have tried to repair them as far as I could:

  It appears that variable "RES($file,group,$name,members)" in procedure "::ico::getIconMembersEXE" doesn't always exist. Using 

  set n [icons $file]
     RES($file,group,$n,members)

  instead current variable,correct information is returned.


  On the other hand, I have found that variable "RES($file,icon,$name,data)" when calling procedure "::ico::writeIconEXE" only has three elements in my case, so there is an error message. It could be avoided using:
      
      if {![string match "* $w $h $bpp" $RES($file,icon,$name,data)] && [llength $RES($file,icon,$name,data)] == 4} {
          return -code error "icon format differs from original"
      }
      if {![string match "$w $h $bpp" $RES($file,icon,$name,data)] && [llength $RES($file,icon,$name,data)] == 3} {
          return -code error "icon format differs from original"
      }

  Finally, when the icon of an executable is modified, the final executable's icon (depending on the size selected) is not shown in Windows Vista. It appears theres is something wrong with the masks in some icon size.

     set and [getAndMaskFromColors $data]
     set xor [getXORFromColors $bpp $data]


tkt_uuid: 2113728fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: snit
priority: 5 Medium
foundin: None
title: "$type info instances" corrupted after object-creation error
cmimetype: text/plain
submitter: aldobu
assignee: duquette
comment:
  = VERSION and PLATFORM
   snit 2.2.1
   tclkit 8.5.2  - Windows XP


  = HOW TO REPRODUCE ERROR

  Let's take the simplest snit-widget:

    snit::widget myWidget {
    }

  and let's create a myWidget instance named ".x" :

    myWidget .x
    myWidget info instances
      # OK  --> .x

  Now, if I (wrongly) try to create a new myWidget named ".x" ( or named like any existing widget ),
  then I (correctly) get an error message 

    myWidget .x
      # OK -->   window name "x" already exists in parent

  BUT, hereafter, I am no more able to query for "myWidget info instances"

    myWidget info instances
      # WRONG! -->   can't read "instance": no such variable

  NOTES:
   * no problem with snit::type
   * no problem with snit::widgetadaptor


tkt_uuid: 2123233fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: yaml
priority: 5 Medium
foundin: None
title: bad [string first|last] syntax?
cmimetype: text/plain
submitter: dgp
assignee: kanryu6
closer: kanryu6
closedate: 2008-09-26T17:33:49
comment:
  This code in [::yaml::_getFoldedString]
  looks suspcious:

   if {[string first $token "\n"] >= 0} { ; # multi-line
       set data(current) [expr {$len - [string last $token "\n"]}]


  I suspect the arguments have their
  order incorrect.  They should follow
  the pattern:

   string first $needle $haystack

  Searching for $token in the string "\n"
  doesn't look right.  If it is right, a
  comment of explanation would help.


tkt_uuid: 2123397fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: ip
priority: 5 Medium
foundin: None
title: bad [string first] in [::ip::version]
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-04-13T20:33:51
comment:
  In the proc ::ip::version, I see:

      if {[string first $addr :] < 0 && [IPv4? $addr]} {
          set version 4

  where the arguments to [string first]
  appear to be out of order.


tkt_uuid: 2123513fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: csv
priority: 5 Medium
foundin: None
title: missing protections from empty $sepChar
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-10-02T22:28:02
comment:
  % package require csv
  0.7
  % package require struct
  2.1
  % csv::split2matrix [struct::matrix] fubar {}
  couldn't compile regular expression pattern: invalid escape \ sequence
  % csv::split2queue [struct::queue] fubar {}
  couldn't compile regular expression pattern: invalid escape \ sequence

  Likewise for the read2* variants.

  Deep inner parts cannot tolerate an
  empty string value for $sepChar, but not
  all wrappers protect against it.


tkt_uuid: 2124508fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: textutil
priority: 5 Medium
foundin: None
title: textutil::string man page overwrites tcl's string man page
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-10-10T19:14:29
comment:
  When I install tcllib, the textutil::string man page overwrites the string man page from the tcl core. I suspect the textutil::split does the same thing - I reinstalled tcl's doc now so I can't say for certain.


tkt_uuid: 2124523fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ldap
priority: 5 Medium
foundin: None
title: ldapx.man warning from sak
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-10-02T22:35:10
comment:
  When I run sak.tcl nroff, the following warning is produced:

  Gen (nroff): ../../modules/ldap/ldapx.man
  DocTools Warning (missingsect): In macro at line 297, column 42:
  DocTools Warning (missingsect): Refered (Sub)Section "Data" is not known.

  This is from the latest CVS head of tcllib.


tkt_uuid: 2144802fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: snit
priority: 5 Medium
foundin: None
title: snit's from command underdocumented, and possible flaw
cmimetype: text/plain
submitter: andreas_kupries
assignee: duquette
comment:
  It is not documented that 'from argvName option ?default?' only finds the first occurence of the option.
  It is not documented that no attempt is made to resolve how to handle multiple occurences of the same option.

  The flaw: from is able to find an option name, even if it was actually the value for a different option and thus not really an option.

  set argv {-foo -bar -snarf 0}
  from argv -bar x
  => returns -snarf as value
  and argv changes to {-foo 0}

  Should have returned x, as -bar is not present as option, only as value to option -foo.


tkt_uuid: 2155034fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: aes
priority: 8
foundin: None
title: Sign overflow in AddRoundKey
cmimetype: text/plain
submitter: twylite
assignee: patthoyts
closer: twylite
closedate: 2013-01-10T08:10:06
comment:
  There is a sign overflow in AddRoundKey that can cause 
  a 'integer value too large to represent' error from EncryptBlock or DecryptBlock.  When expr{} xors together a positive & negative number it preserves the sign and may extend the values to 64 bit.

  Similar sign overflows were fixed in EncryptBlock & DecryptBlock in aes.tcl 1.6.

  To reproduce:
  --
  package require aes

  set keyhex c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558
  set texthex 46f2fb342d6f0ab477476fc501242c5f

  aes::aes -dir decrypt -mode ecb -hex -key [binary format H* $keyhex] -- [binary format H* $texthex]
  --

  Fix: use a mask to limit the result to 32 bit
  Change to aes.tcl:
  --
  proc ::aes::AddRoundKey {Key round words} {
      upvar #0 $Key state
      set r {}
      set n [expr {$round * $state(Nb)}]
      foreach w $words {
          lappend r [expr {0xffffffff & ($w ^ [lindex $state(W) $n])}]
          incr n
      }
      return $r
  }
  --

  Additional note:
  There are uses of expr{} in ExpandKey that may also overflow in a similar manner, and should be investigated.


tkt_uuid: 2159700fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Rejected
subsystem: tklib :: tablelist
priority: 5 Medium
foundin: None
title: Bug in tablelist when interacting with gridplus
cmimetype: text/plain
submitter: hgiese
assignee: nemethi
closer: nemethi
closedate: 2008-10-31T20:05:03
comment:
  Hello,
  I noticed an intriguing bug when gridplus and tablelist interact. See the following suite of commands.

  D:\tmp>tclsh85
  % package require gridplus
  2.3
  % package present tablelist_tile
  4.9.2
  % pack [tablelist::tablelist .tbl1 -columns {0 col1 0 col2}]
  % source example2.tcl
  invalid command name ".__helpLabel"
  % pack [tablelist::tablelist .tbl2 -columns {0 col1 0 col2}]
  invalid command name ".__helpLabel"
  % info patchlevel
  8.5.3

  - After loading gridplus (which also loads tablelist_tile) I can create a table. 
  - Trying to [source example2.tcl] (an example from the gridplus distro which also wants to create a table) leads to an error. This error occurs inside of tablelist's code.
  - Now a command like the first one fails, too.

  Conclusion: 
  - gridplus interacts with tablelist in a way which provokes an error.
  - Once this error occurred it seems to be "persistent".

  One more detail: This depends on the version of tablelist: Loading example2.tcl from the gridplus starkit works - but this starkit contains tablelist 4.9.1.
  Best regards
  Helmut Giese


tkt_uuid: 2168846fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
title: tklib test suite for plotchart generates core
cmimetype: text/plain
submitter: lvirden
assignee: arjenmarkus
comment:
  platform: sparc solaris 8 displaying back to windows xp exceed
  tcl/tk: 8.5.4 release
  When I run the test suite for tklib, many of the modules generate the msg "No test files remain".

  However, plotchart generates this:
  Module: plotchart
  modules/plotchart/plotchart.test
  Plotchart 1.5.1
  modules/plotchart/plotcontour.test
  classes (cont) : 20.0 40.0 60.0 80.0 100.0 120.0
  modules/plotchart/plothist.test
  couldn't read file "plotchart.tcl": no such file or directory
      while executing
  "source plotchart.tcl"
      (file "/vol/tclsrcsol/tcl85/tklib/modules/plotchart/plothist.test" line 1)
      invoked from within
  "source [pSet file]"

  and, when I look in the directory, I see a core file.
  The core file is for tclsh8.5 and this is the stack trace I see:

   $ dbx /usr/tcl85/bin/tclsh8.5 core
  For information about new features see `help changes'
  To remove this message, put `dbxenv suppress_startup_message 7.0' in your .dbxrc
  Reading tclsh8.5
  core file header read successfully
  Reading ld.so.1
  Reading libtcl8.5.so
  Reading libdl.so.1
  Reading libsocket.so.1
  Reading libnsl.so.1
  Reading libm.so.1
  Reading libc.so.1
  Reading libmp.so.2
  Reading libc_psr.so.1
  Reading libtk8.5.so
  Reading libX11.so.4
  Reading libXext.so.0
  program terminated by signal ABRT (Abort)
  0xfef9fe08: _libc_kill+0x0008:  bgeu    _libc_kill+0x30
  Current function is Tcl_PanicVA
    103           abort();
  (dbx 1) where                                                         
    [1] _libc_kill(0x0, 0x6, 0x0, 0xffffffff, 0xfefc03bc, 0xfef35940), at 0xfef9fe08
    [2] abort(0xfefbc000, 0xfefc3a44, 0x0, 0x0, 0x4, 0x1), at 0xfef35a24
  =>[3] Tcl_PanicVA(format = 0xfee7ead0 "TkpGetFontFromAttributes: cannot get any font", argList = 0xffbe6400), line 103 in "tclPanic.c"
    [4] Tcl_Panic(format = 0xfee7ead0 "TkpGetFontFromAttributes: cannot get any font", ...), line 132 in "tclPanic.c"
    [5] GetSystemFont(display = 0x15ee70), line 2812 in "tkUnixFont.c"
    [6] CreateClosestFont(tkwin = 0x2c5e98, faPtr = 0x1c80b8, xaPtr = 0xffbe6568), line 1511 in "tkUnixFont.c"
    [7] TkpGetFontFromAttributes(tkFontPtr = (nil), tkwin = 0x2c5e98, faPtr = 0x1c80b8), line 776 in "tkUnixFont.c"
    [8] Tk_AllocFontFromObj(interp = 0x1960b0, tkwin = 0x2c5e98, objPtr = 0x2c9740), line 1169 in "tkFont.c"
    [9] Tk_GetFont(interp = 0x1960b0, tkwin = 0x2c5e98, string = 0x2c8258 "TkDefaultFont"), line 1069 in "tkFont.c"
    [10] DoConfig(interp = 0x1960b0, tkwin = 0x2c5e98, specPtr = 0x2d3f68, value = 0x2c8258 "TkDefaultFont", valueIsUid = 1, widgRec = 0x2d3de8 ""), line 420 in "tkOldConfig.c"
    [11] Tk_ConfigureWidget(interp = 0x1960b0, tkwin = 0x2c5e98, specs = 0x2d3ea8, argc = 0, argv = 0x1812b0, widgRec = 0x2d3de8 "", flags = 128), line 203 in "tkOldConfig.c"
    [12] ConfigureText(interp = 0x1960b0, canvas = 0x2c9e60, itemPtr = 0x2d3de8, objc = 2, objv = 0x1812a8, flags = 0), line 408 in "tkCanvText.c"
    [13] CreateText(interp = 0x1960b0, canvas = 0x2c9e60, itemPtr = 0x2d3de8, objc = 4, objv = 0x1812a0), line 292 in "tkCanvText.c"
    [14] CanvasWidgetCmd(clientData = 0x2c9e60, interp = 0x1960b0, objc = 7, objv = 0x181294), line 978 in "tkCanvas.c"
    [15] TclEvalObjvInternal(interp = 0x1960b0, objc = 7, objv = 0x181294, command = 0xffffffff "", length = -1, flags = 0), line 3690 in "tclBasic.c"
    [16] TclExecuteByteCode(interp = 0x1960b0, codePtr = 0x2c9838), line 2341 in "tclExecute.c"
    [17] TclCompEvalObj(interp = 0x1960b0, objPtr = 0x2beed0, invoker = 0x1810f8, word = 3), line 1474 in "tclExecute.c"
    [18] TclEvalObjEx(interp = 0x1960b0, objPtr = 0x2beed0, flags = 0, invoker = 0x1810f8, word = 3), line 5095 in "tclBasic.c"
    [19] NamespaceEvalCmd(dummy = (nil), interp = 0x1960b0, objc = 4, objv = 0x181128), line 3290 in "tclNamesp.c"
    [20] Tcl_NamespaceObjCmd(clientData = (nil), interp = 0x1960b0, objc = 4, objv = 0x181128), line 2821 in "tclNamesp.c"
    [21] TclEvalObjvInternal(interp = 0x1960b0, objc = 4, objv = 0x181128, command = 0x2c1ffc "namespace eval ::Plotchart {\n    variable config\n\n    set config(charttypes) {xyplot xlogyplot piechart polarplot\n                            h
  istogram horizbars vertbars ganttchart\n                            timechart stripchart isometric 3dplot 3dbars\n                            radialchart txplot 3dribbon}\n\n    set config(xyplot,components)      {title margin text legend leftaxis rightaxis bottomaxis background}\n    set config(xlogyplot,components)   {title margin text legend leftaxis bottomaxis backgro" ..., length = 3763, flags = 0), line 3690 in "tclBasic.c"
    [22] TclEvalEx(interp = 0x1960b0, script = 0x2c1fa0 "# plotconfig.tcl --\n#     Facilities for configuring the various procedures of Plotchart\n#\n\nnamespace eval ::Plotchart {\n    variable config\n\n    set config(charttypes) {xyplot xlogyplot piechart polarplot\n                            histogram horizbars vertbars ganttchart\n                            timechart stripchart isometric 3dplot 3dbars\n                            radialchart txplot 3dribbon}\n\n    set config(xyplot,components)      {title margin text legend leftaxis rightaxis bottomaxis background}\n" ..., numBytes = 6711, flags = 0, line = 5), line 4339 in "tclBasic.c"
    [23] Tcl_EvalEx(interp = 0x1960b0, script = 0x2c1fa0 "# plotconfig.tcl --\n#     Facilities for configuring the various procedures of Plotchart\n#\n\nnamespace eval ::Plotchart {\n    variable config\n\n    set config(charttypes) {xyplot xlogyplot piechart polarplot\n                            histogram horizbars vertbars ganttchart\n                            timechart stripchart isometric 3dplot 3dbars\n                            radialchart txplot 3dribbon}\n\n    set config(xyplot,components)      {title margin text legend leftaxis rightaxis bottomaxis background}\n" ..., numBytes = 6711, flags = 0), line 4043 in "tclBasic.c"
    [24] Tcl_FSEvalFileEx(interp = 0x1960b0, pathPtr = 0x2bee88, encodingName = (nil)), line 1820 in "tclIOUtil.c"
    [25] Tcl_SourceObjCmd(dummy = (nil), interp = 0x1960b0, objc = 2, objv = 0x180e70), line 955 in "tclCmdMZ.c"
    [26] TclEvalObjvInternal(interp = 0x1960b0, objc = 2, objv = 0x180e70, command = 0x267f27 "source [file join [file dirname [info script]] "plotconfig.tcl"]\nsource [file join [file dirname [info script]] "plotpack.tcl"]\n#source [file join [file dirname [info script]] "plotbind.tcl"]\n\n# Announce our presence\n#\npackage provide Plotchart 1.5.1\n", length = 65, flags = 0), line 3690 in "tclBasic.c"
    [27] TclEvalEx(interp = 0x1960b0, script = 0x25c610 "# plotchart.tcl --\n#    Facilities to draw simple plots in a dedicated canvas\n#\n# Note:\n#    This source file contains the public functions.\n#    The others are contained in "plotpriv.tcl"\n#\npackage require Tcl 8.4\npackage require Tk\n\n# Plotchart --\n#    Namespace to hold the procedures and the private data\n#\nnamespace eval ::Plot
    [27] TclEvalEx(interp = 0x1960b0, script = 0x25c610 "# plotchart.tcl --\n#    Facilities to draw simple plots in a dedicated canvas\n#\n# Note:\n#    This source file contains the public functions.\n#    The others are contained in "plotpriv.tcl"\n#\npackage require Tcl 8.4\npackage require Tk\n\n# Plotchart --\n#    Namespace to hold the procedures and the private data\n#\nnamespace eval ::Plotchart {\n   variable settings\n   variable legend\n   variable scaling\n   variable methodProc\n   variable data_series\n\n   namespace export worldCoordinates viewPort coordsToPixel \\n  " ..., numBytes = 47634, flags = 0, line = 1434), line 4339 in "tclBasic.c"
    [28] Tcl_EvalEx(interp = 0x1960b0, script = 0x25c610 "# plotchart.tcl --\n#    Facilities to draw simple plots in a dedicated canvas\n#\n# Note:\n#    This source file contains the public functions.\n#    The others are contained in "plotpriv.tcl"\n#\npackage require Tcl 8.4\npackage require Tk\n\n# Plotchart --\n#    Namespace to hold the procedures and the private data\n#\nnamespace eval ::Plotchart {\n   variable settings\n   variable legend\n   variable scaling\n   variable methodProc\n   variable data_series\n\n   namespace export worldCoordinates viewPort coordsToPixel \\n  " ..., numBytes = 47634, flags = 0), line 4043 in "tclBasic.c"
    [29] Tcl_FSEvalFileEx(interp = 0x1960b0, pathPtr = 0x226880, encodingName = (nil)), line 1820 in "tclIOUtil.c"
    [30] Tcl_SourceObjCmd(dummy = (nil), interp = 0x1960b0, objc = 2, objv = 0x180bb8), line 955 in "tclCmdMZ.c"
    [31] TclEvalObjvInternal(interp = 0x1960b0, objc = 2, objv = 0x180bb8, command = 0x2589e6 "source [file join [file dirname [info script]] plotchart.tcl]\n\nputs "Plotchart [package present Plotchart]"\n\n# -------------------------------------------------------------------------\n\n#\n# Note:\n# The tests are formulated such that the resulting numbers\n# are exact. There is no need for a tolerance in the comparison\n#\nproc matchNumbers {expected actual} {\n    set match 1\n    foreach a $actual e $expected {\n^Iif {$a != $e} {\n^I    set match 0\n^I    break\n^I}\n    }\n    return $match\n}\n\nproc checkCanvasItems {w t" ..., length = 62, flags = 0), line 3690 in "tclBasic.c"
    [32] TclEvalEx(interp = 0x1960b0, script = 0x258600 "# -*- tcl -*-\n# Test cases of the Plotchart package\n#\n# Note:\n# Most tests concentrate on the coordinate transformations,\n# as these do not require graphics\n#\n# TODO:\n# - Error handling tests\n# - checks for setZoomPan (changes of coordinates)\n#\n\nif {![package vsatisfies [package provide Tcl] 8.3]} {\n    puts "    Aborting tests for plotchart."\n    puts "    Requiring Tcl 8.3, have [package present Tcl]"\n    return\n}\n\n# -------------------------------------------------------------------------\n#\n# Note:\n#    " ..., numBytes = 16129, flags = 0, line = 41), line 4339 in "tclBasic.c"
    [33] Tcl_EvalEx(interp = 0x1960b0, script = 0x258600 "# -*- tcl -*-\n# Test cases of the Plotchart package\n#\n# Note:\n# Most tests concentrate on the coordinate transformations,\n# as these do not require graphics\n#\n# TODO:\n# - Error handling tests\n# - checks for setZoomPan (changes of coordinates)\n#\n\nif {![package vsatisfies [package provide Tcl] 8.3]} {\n    puts "    Aborting tests for plotchart."\n    puts "    Requiring Tcl 8.3, have [package present Tcl]"\n    return\n}\n\n# -------------------------------------------------------------------------\n#\n# Note:\n#    " ..., numBytes = 16129, flags = 0), line 4043 in "tclBasic.c"
    [34] Tcl_FSEvalFileEx(interp = 0x1960b0, pathPtr = 0x1efe70, encodingName = (nil)), line 1820 in "tclIOUtil.c"
    [35] Tcl_SourceObjCmd(dummy = (nil), interp = 0x1960b0, objc = 2, objv = 0x1809f8), line 955 in "tclCmdMZ.c"
    [36] TclEvalObjvInternal(interp = 0x1960b0, objc = 2, objv = 0x1809f8, command = 0xffffffff "", length = -1, flags = 0), line 3690 in "tclBasic.c"
    [37] TclExecuteByteCode(interp = 0x1960b0, codePtr = 0x2083a8), line 2341 in "tclExecute.c"
    [38] TclCompEvalObj(interp = 0x1960b0, objPtr = 0x285270, invoker = 0x180998, word = 1), line 1474 in "tclExecute.c"
    [39] TclEvalObjEx(interp = 0x1960b0, objPtr = 0x285270, flags = 0, invoker = 0x180998, word = 1), line 5095 in "tclBasic.c"
    [40] Tcl_CatchObjCmd(dummy = (nil), interp = 0x1960b0, objc = 3, objv = 0x1809c0), line 253 in "tclCmdAH.c"
    [41] TclEvalObjvInternal(interp = 0x1960b0, objc = 3, objv = 0x1809c0, command = 0xffffffff "", length = -1, flags = 0), line 3690 in "tclBasic.c"
    [42] TclExecuteByteCode(interp = 0x1960b0, codePtr = 0x2082e8), line 2341 in "tclExecute.c"
    [43] TclCompEvalObj(interp = 0x1960b0, objPtr = 0x1efe28, invoker = 0x2bce8, word = 2), line 1474 in "tclExecute.c"
    [44] TclEvalObjEx(interp = 0x1960b0, objPtr = 0x1efe28, flags = 0, invoker = 0x2bce8, word = 2), line 5095 in "tclBasic.c"
    [45] SlaveEval(interp = 0x2b3d0, slaveInterp = 0x1960b0, objc = 1, objv = 0x2bd18), line 2483 in "tclInterp.c"
    [46] SlaveObjCmd(clientData = 0x1960b0, interp = 0x2b3d0, objc = 3, objv = 0x2bd10), line 2288 in "tclInterp.c"
    [47] TclEvalObjvInternal(interp = 0x2b3d0, objc = 3, objv = 0x2bd10, command = 0xffffffff "", length = -1, flags = 0), line 3690 in "tclBasic.c"
    [48] TclExecuteByteCode(interp = 0x2b3d0, codePtr = 0x208158), line 2341 in "tclExecute.c"
    [49] TclCompEvalObj(interp = 0x2b3d0, objPtr = 0x14ba88, invoker = 0x2bc78, word = 3), line 1474 in "tclExecute.c"
    [50] TclEvalObjEx(interp = 0x2b3d0, objPtr = 0x14ba88, flags = 0, invoker = 0x2bc78, word = 3), line 5095 in "tclBasic.c"
    [51] Tcl_ForeachObjCmd(dummy = (nil), interp = 0x2b3d0, objc = 4, objv = 0x2bca0), line 1818 in "tclCmdAH.c"
    [52] TclEvalObjvInternal(interp = 0x2b3d0, objc = 4, objv = 0x2bca0, command = 0xffffffff "", length = -1, flags = 0), line 3690 in "tclBasic.c"
    [53] TclExecuteByteCode(interp = 0x2b3d0, codePtr = 0x1103c8), line 2341 in "tclExecute.c"
    [54] TclCompEvalObj(interp = 0x2b3d0, objPtr = 0x40b48, invoker = 0x2bb10, word = 3), line 1474 in "tclExecute.c"
    [55] TclEvalObjEx(interp = 0x2b3d0, objPtr = 0x40b48, flags = 0, invoker = 0x2bb10, word = 3), line 5095 in "tclBasic.c"
    [56] Tcl_ForeachObjCmd(dummy = (nil), interp = 0x2b3d0, objc = 4, objv = 0x2bb40), line 1818 in "tclCmdAH.c"
    [57] TclEvalObjvInternal(interp = 0x2b3d0, objc = 4, objv = 0x2bb40, command = 0x47a34 "foreach module $modules {\n    set ::tcltest::testsDirectory [file join $root modules $module]\n\n    if { ![file isdirectory $::tcltest::testsDirectory] } {\n^Iputs stdout "unknown module $module"\n    }\n\n    set auto_path $old_apath\n    set auto_path [linsert $auto_path 0 $::tcltest::testsDirectory]\n\n    # foreach module, make a slave interp and source that module's tests into\n    # the slave.  This isolates the test suites from one another.\n    puts stdout "Module:\t[file tail $module]"\n    set c [interp creat" ..., length = 3391, flags = 0), line 3690 in "tclBasic.c"
    [58] TclEvalEx(interp = 0x2b3d0, script = 0x46bc8 "# all.tcl --\n#\n# This file contains a top-level script to run all of the Tcl\n# tests.  Execute it by invoking "tclsh all.test" in this directory.\n#\n# To test a subset of the modules, invoke it by 'tclsh all.test -modules "<module list>"'\n#\n# Copyright (c) 1998-2000 by Ajuba Solutions.\n# All rights reserved.\n# \n# RCS: @(#) $Id: all.tcl,v 1.3 2004/04/16 05:21:55 andreas_kupries Exp $\n\nset old_auto_path $auto_path\n\nif {[lsearch [namespace children] ::tcltest] == -1} {\n    namespace eval ::tcltest {}\n    proc :" ..., numBytes = 7191, flags = 0, line = 128), line 4339 in "tclBasic.c"
    [59] Tcl_EvalEx(interp = 0x2b3d0, script = 0x46bc8 "# all.tcl --\n#\n# This file contains a top-level script to run all of the Tcl\n# tests.  Execute it by invoking "tclsh all.test" in this directory.\n#\n# To test a subset of the modules, invoke it by 'tclsh all.test -modules "<module list>"'\n#\n# Copyright (c) 1998-2000 by Ajuba Solutions.\n# All rights reserved.\n# \n# RCS: @(#) $Id: all.tcl,v 1.3 2004/04/16 05:21:55 andreas_kupries Exp $\n\nset old_auto_path $auto_path\n\nif {[lsearch [namespace children] ::tcltest] == -1} {\n    namespace eval ::tcltest {}\n    proc :" ..., numBytes = 7191, flags = 0), line 4043 in "tclBasic.c"
    [60] Tcl_FSEvalFileEx(interp = 0x2b3d0, pathPtr = 0x3cfe0, encodingName = (nil)), line 1820 in "tclIOUtil.c"
    [61] Tcl_Main(argc = -1, argv = 0xffbee4a4, appInitProc = 0x11318 = &Tcl_AppInit(Tcl_Interp *interp)), line 441 in "tclMain.c"
    [62] main(argc = 4, argv = 0xffbee494), line 87 in "tclAppInit.c"
  (dbx 2) 


tkt_uuid: 2169167fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: json
priority: 5 Medium
foundin: None
title: test failures
cmimetype: text/plain
submitter: dgp
assignee: hobbs
closer: kanryu6
closedate: 2009-04-17T23:41:56
comment:
  Running Tcl 8.4.19 with the
  package "dict 8.5.1", I see
  these test failures:

  ---- json-1.1 start

  ==== json-1.1 test JSON widget FAILED
  ==== Contents of test case:
  set res [json::json2dict $JSON(widget)]
  ---- Result was:
  widget {window {width 500 height 500 name main_window title {Sample Widget}} text {vOffset 100 name null style bold data {Click Here} onMouseUp {sun1.opacity = (sun1.opacity / 100) * 90;} alignment center hOffset 250 size 36} debug on}
  ---- Result should have been (exact matching):
  widget {debug on window {title {Sample Widget} name main_window width 500 height 500} text {data {Click Here} size 36 style bold name null hOffset 250 vOffset 100 alignment center onMouseUp {sun1.opacity = (sun1.opacity / 100) * 90;}}}
  ==== json-1.1 FAILED

  ---- json-1.2 start

  ==== json-1.2 test JSON glossary FAILED
  ==== Contents of test case:
  set res [json::json2dict $JSON(glossary)]
  ---- Result was:
  glossary {mixlist {{a "" str} -0.09 null {} {member true}} title {example glossary} GlossDiv {GlossList {{GlossSeeAlso {GML XML markup} GlossTerm {Standard \" Language} Acronym SGML\\ ID SGML Abbrev {ISO 8879:1986} GlossDef {A meta-markup language, used ...}}} title S}}
  ---- Result should have been (exact matching):
  glossary {title {example glossary} mixlist {{a "" str} -0.09 null {} {member true}} GlossDiv {title S GlossList {{ID SGML GlossTerm {Standard \" Language} Acronym SGML\\ Abbrev {ISO 8879:1986} GlossDef {A meta-markup language, used ...} GlossSeeAlso {GML XML markup}}}}}
  ==== json-1.2 FAILED

  ==== json-1.4 test JSON menu FAILED
  ==== Contents of test case:
  set res [json::json2dict $JSON(menu)]
  ---- Result was:
  menu {popup {menuitem {{value Open onclick OpenDoc()} {value Close onclick CloseDoc()}}} value File: id file unival 怡:}
  ---- Result should have been (exact matching):
  menu {id file value File: unival 怡: popup {menuitem {{value Open onclick OpenDoc()} {value Close onclick CloseDoc()}}}}
  ==== json-1.4 FAILED
  ==== json-1.8 test JSON menu2 FAILED
  ==== Contents of test case:
  set res [json::json2dict $JSON(menu2)]
  ---- Result was:
  menu {header Viewer items {{id Open} {label {Open New} id OpenNew} null {label {Zoom In} id ZoomIn} {label {Zoom Out} id ZoomOut} null {id Help} {label {About Viewer...} id About}}}
  ---- Result should have been (exact matching):
  menu {header Viewer items {{id Open} {id OpenNew label {Open New}} null {id ZoomIn label {Zoom In}} {id ZoomOut label {Zoom Out}} null {id Help} {id About label {About Viewer...}}}}
  ==== json-1.8 FAILED

  ==== json-1.9 test JSON array FAILED
  ==== Contents of test case:
  set res [json::json2dict $JSON(array)]
  ---- Result was:
  {Country US Latitude 37.7668 precision zip State CA City {SAN FRANCISCO} Address {} Zip 94107 Longitude -122.3959} {Country US Latitude 37.371991 precision zip State CA City SUNNYVALE Address {} Zip 94085 Longitude -122.026020}
  ---- Result should have been (exact matching):
  {precision zip Latitude 37.7668 Longitude -122.3959 Address {} City {SAN FRANCISCO} State CA Zip 94107 Country US} {precision zip Latitude 37.371991 Longitude -122.026020 Address {} City SUNNYVALE State CA Zip 94085 Country US}
  ==== json-1.9 FAILED


tkt_uuid: 2182378fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: nameserv (aka nns)
priority: 5 Medium
foundin: None
title: Running nameserv::search results in no such variable error.
cmimetype: text/plain
submitter: vonbane
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-10-21T17:04:58
comment:
  Running nameserv::search with no arguments results in no such variable error.  The "0" condition of the switch in ::nameserv::search-parseargs does not set oneshot.

  nameserv::search
  can't read "oneshot": no such variable
      while executing
  "list oneshot $oneshot continuous $continuous pattern $pattern"
      (procedure "search-parseargs" line 46)
      invoked from within
  "search-parseargs $args"
      (procedure "nameserv::search" line 9)
      invoked from within
  "nameserv::search"
      (file "client.tcl" line 9)


tkt_uuid: 2192812fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: inifile
priority: 5 Medium
foundin: None
title: commentchar function not defined in ini namespace
cmimetype: text/plain
submitter: nobody
assignee: afaupell
closer: andreas_kupries
closedate: 2008-10-24T22:01:49
comment:
  man page for inifile has the commentchar function as 

  ini::commentchar ?char? 

  but code has 

  proc commentchar { {new {} } } { ..

  need to change the above line to : 


  proc ::ini::commentchar { {new {}} } {

  in inifile.tcl


tkt_uuid: 2220156fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: snit
priority: 5 Medium
foundin: None
title: Several questions about Snit objects
cmimetype: text/plain
submitter: arjenmarkus
assignee: duquette
comment:
  I have a few questions on Snit objects (see:  http://wiki.tcl.tk/2831 for some details - the example near the end)

  1. Is it possible to _clone_ an object? 
     I ask because I want to "chain" methods from various 
     objects. In my example: to combine different 
     transformations into a single one.

  2. Is the command install only available at creation 
     time? If not, I would like to use it to vary the 
     components after the object has been created, to
     make its behaviour more dynamic.

  3. Is the delegate command only available when 
     defining the type?

  (The reasons for questions 2 and 3 are that I would like 
  some dynamic behaviour of the objects, beyond options
  and variables. Mostly, perhaps, because I am 
  experimenting with Snit, to get a feel for the style
  of programming)
   


tkt_uuid: 2220159fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: snit
priority: 5 Medium
foundin: None
title: Missing in snitfaq: limitiation on names for options
cmimetype: text/plain
submitter: arjenmarkus
assignee: duquette
comment:
  The snitfaq documentation is lacking documentation on
  the allowed names of options. I found out that there 
  are such limitations when I tried to use 
  "transformBefore" as the name.


tkt_uuid: 2225148fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: struct :: list
priority: 3 Low
foundin: None
title: struct::list test suite problems against tcl 8.6 cvs head
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
comment:
  I understand there is no use trying to keep tcllib up to date with a moving target. I just wanted to bring this up so that someone could be thinking about it.

  Tcl 8.6 cvs head (as of yesterday)
  tcllib cvs head 

  ==== assign-4.4 assign method FAILED
  ==== Contents of test case:

      catch {assign {foo bar}} msg ; set msg

  ---- Result was:
  foo bar
  ---- Result should have been (exact matching):
  wrong # args: should be "::struct::list::Lassign list varName ?varName ...?"
  ==== assign-4.4 FAILED

  ==== repeat-4.2 repeat command FAILED
  ==== Contents of test case:

      catch {repeat a} msg
      set msg

  ---- Result was:
  expected integer but got "a"
  ---- Result should have been (exact matching):
  wrong # args: should be "::struct::list::Lrepeat positiveCount value ?value ...?
  "
  ==== repeat-4.2 FAILED
  ==== repeat-4.4 repeat command FAILED
  ==== Contents of test case:

      catch {repeat 0 b} msg
      set msg

  ---- Result was:

  ---- Result should have been (exact matching):
  must have a count of at least 1
  ==== repeat-4.4 FAILED

  ---- repeat-4.5 start

  ==== repeat-4.5 repeat command FAILED
  ==== Contents of test case:

      catch {repeat -1 b} msg
      set msg

  ---- Result was:
  bad count "-1": must be integer >= 0
  ---- Result should have been (exact matching):
  must have a count of at least 1
  ==== repeat-4.5 FAILED


tkt_uuid: 222664ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftpd
priority: 8
title: ftpd package does not handle binary files correctly
cmimetype: text/plain
submitter: tellcare
assignee: ericm
closer: ericm
closedate: 2000-11-22T17:27:38
comment:
  Software:
  ---------
  I am using TCL 3.3.2 and installed the latest tcllib0.8.
  Contained in this library is a new package "ftpd" whose current version
  is 1.1.

  Problem:
  --------
  I wrote the following 2 line test script in order to test an FTP server:
   
          package require ftpd
          ::ftp::server
   
  However when I used this server to down-load binary files they were
  either
  corrupted or incomplete.
  The FTP protocol between client and server correctly specifed binary
  transfer mode.
   
  Bug:
  ----
  The default file system procedure "::ftpd::fsFile::fs" returns a file
  handle
  representing the local file for the following sub-commands :
  append,retr,store
  However the logic does not check what the current transfer mode when
  opening the 
  file for reading/writing.

  Correction:
  -----------
  One solution is to correct the following procedures:

  1)
  ::ftpd::command::APPE
  ::ftpd::command::RETR
  ::ftpd::command::STOR
  ::ftpd::command::STOU

  When calling the procedure "::ftpd::FS" add an additional parameter
  $data(mode) indicating the current transfer mode.
  This can be done easily because the procedure has a variable number
  of arguments.

      if {![catch {::ftpd::Fs retr $path $data(mode)} f]} {

  2)
  ::ftpd::fsFile::fs

  The extra parameter is passed from "::ftpd::FS" and can be tested
  in the logic handling the sub-commands append,retr and store.

  If the mode is binary then configure the file handle for binary 
  operation.

           set fhandle [open $path r]
           if {[lindex $args 0] == "binary"} {
              fconfigure $fhandle -translation binary
           }
           return $fhandle


tkt_uuid: 223325ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
priority: 7 High
title: No config directory
cmimetype: text/plain
submitter: nobody
assignee: ericm
closer: ericm
closedate: 2000-11-29T22:16:25
comment:
  Configuration of the package fails because htere is a missing config directory, which used to be in the Scriptics CVS server.


tkt_uuid: 224476ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
priority: 5 Medium
title: BWidget - MainFrame::setmenustate broken
cmimetype: text/plain
submitter: jenglish
assignee: jenglish
closer: andreas_kupries
closedate: 2001-06-20T15:01:49
comment:
  The following script works with BWidget 1.2.1, but raises an error in 1.3.0:

  --
  package require BWidget
  MainFrame .mf -menu {
          &File {fileTag} file 0 { }
  }
  pack .mf -side top -expand true -fill both
  .mf setmenustate fileTag disabled;# <== here's the problem
  --
  The error message is:
  --
  Error in startup script: syntax error in expression "1 && disabled"
      while executing
  "expr $expression"
      (procedure "MainFrame::setmenustate" line 25)
      invoked from within
  "MainFrame::setmenustate .mf fileTag disabled"
      ("eval" body line 1)
      invoked from within
  "eval MainFrame::$cmd .mf $args"
      (procedure ".mf" line 1)
      invoked from within
  ".mf setmenustate fileTag disabled"
  --

  It looks like this was introduced in mainframe.tcl revision 1.2.

  Suggested fix: revert to the old implementation.


tkt_uuid: 224477ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: pop3
priority: 5 Medium
title: pop3::list and pop3::top can hang
cmimetype: text/plain
submitter: jenglish
assignee: redman
closer: redman
closedate: 2001-05-02T15:06:33
comment:
  Depending on the POP3 server, [pop3::list] and [pop3::top] can hang
  forever.  I've tracked this down to the termination condition in the while loop
  (duplicated in both routines):

          while {1} {
              set line [gets $chan]
              # End of the message is a line with just "."
              if {$line == "."} {;# <== here's the problem
                  break
              } elseif { ... }

  When the POP3 server uses CR+LF as the line terminator (which IIRC
  is what it's supposed to do) and $chan uses -translation binary (which
  pop3::open sets), then '$line' ends up containing ".\r", not ".".

  Suggested fix:

  replace 
  if {$line == "."} { ... }
  with
  if {[string equal [string trimright $line] "."]}  { ... }

  This seems to fix the problem for me.


tkt_uuid: 2250870fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: fileutil
priority: 5 Medium
foundin: None
title: improvements for fileutil::traverse
cmimetype: text/plain
submitter: glehner
assignee: andreas_kupries
comment:
  This patch improves the fileutil::traverse package in
  several ways.  The changes are documented in the
  man page traverse.man and in the Changelog.  The version
  number of the traverse package has been bumped to 0.5,
  which is also reflected in pkgIndex.

  IMO the -notroot True functionality should be the default
  however the patch is backwards compatible to version 0.4.

  There are no additional test in traverse.test,  I will
  be glad to provide some for the new functionality, if
  the patch is deemed worthy for inclusion.

  Motivation for the patch is to make it suitable for a
  archival/backup system I'm writing.


tkt_uuid: 225308ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
priority: 5 Medium
title: BWidget: tk8.4 breaks Entry widget state option
cmimetype: text/plain
submitter: stevel
assignee: jenglish
closer: jenglish
closedate: 2001-06-29T23:17:20
comment:
  Tk8.4 introduced the -state normal/disabled options for the entry widget. These conflict with the implementation of -state in the BWidget Entry widget. The workaround is to
  create the BWidget Entry widget and configure the state using a separate command. A better solution would be to modify BWidget to recognise Tk 8.4 or later and use the new entry widget features.


tkt_uuid: 2255355fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: crosshair
priority: 5 Medium
foundin: None
title: documentation error in crosshairs module causes install fail
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-11-10T17:28:05
comment:
  In trying to build the tklib cvs head from 2008 Nov 04 against Tcl 8.6 cvs head, I get this error:

  Generating /projects/sprs_lwv/tcl86/man/mann/crosshair.n
  Doctools Error in reading macro at line 14, column 4:
  []
  --> Unexpected EOF in macro:
  [package crosshair[ package provides com...

      while executing
  "::doctools::_format dt {[comment {-*- tcl -*- doctools manpage}]
  [manpage_begin crosshair n 1.0]
  [copyright {2003 Kevin Kenny}]
  [copyright {2008 (docs..."
      ("eval" body line 1)
      invoked from within
  "eval [list ::doctools::_$cmd $name] $args"
      (procedure "::doctools::DoctoolsProc" line 15)
      invoked from within


  This looks, to me, like someone coded 
  [package crosshair[
  instead of
  [package crosshair]

  When I fix that error, and try again, I then get this error:

  Generating /projects/sprs_lwv/tcl86/man/mann/crosshair.n
  Doctools Error in macro at line 69, column 66:
  [arg
  cmdprefix]
  --> wrong # args: should be "arg text"
      while executing
  "::doctools::_format dt {[comment {-*- tcl -*- doctools manpage}]
  [manpage_begin crosshair n 1.0]
  [copyright {2003 Kevin Kenny}]
  [copyright {2008 (docs..."
      ("eval" body line 1)
      invoked from within
  "eval [list ::doctools::_$cmd $name] $args"
      (procedure "::doctools::DoctoolsProc" line 15)
      invoked from within
  "dt format [get_input $f]"
      (procedure "_man" line 17)
      invoked from within
  "_man crosshair nroff n /projects/sprs_lwv/tcl86/man/mann"
      ("eval" body line 1)
      invoked from within
  "eval $guide($m,$type) $m $args"
      (procedure "xinstall" line 4)
      invoked from within
  "xinstall doc nroff n    $config(doc,nroff,path)"
      (procedure "doinstall" line 18)
      invoked from within
  "doinstall"
      (procedure "main" line 11)
      invoked from within
  "main"
      (file "../installer.tcl" line 485)
  gmake: *** [install] Error 1


  At line 69 and 70, it appears that the formatting line was split in the middle rather than appear on one line.

  After fixing that, the next error to appear was on line 73, where this is the error:
  Generating /projects/sprs_lwv/tcl86/man/mann/crosshair.n
  Doctools Error in macro at line 73, column 0:
  [list_begin]
  --> wrong # args: should be "list_begin what ?hint?"
      while executing
  "::doctools::_format dt {[comment {-*- tcl -*- doctools manpage}]
  [manpage_begin crosshair n 1.0]
  [copyright {2003 Kevin Kenny}]
  [copyright {2008 (docs..."
      ("eval" body line 1)
      invoked from within
  "eval [list ::doctools::_$cmd $name] $args"
      (procedure "::doctools::DoctoolsProc" line 15)
      invoked from within
  "dt format [get_input $f]"
      (procedure "_man" line 17)
      invoked from within
  "_man crosshair nroff n /projects/sprs_lwv/tcl86/man/mann"
      ("eval" body line 1)
      invoked from within
  "eval $guide($m,$type) $m $args"
      (procedure "xinstall" line 4)
      invoked from within
  "xinstall doc nroff n    $config(doc,nroff,path)"
      (procedure "doinstall" line 18)
      invoked from within
  "doinstall"
      (procedure "main" line 11)
      invoked from within
  "main"
      (file "../installer.tcl" line 485)
  gmake: *** [install] Error 1

  I don't know what kind of an argument is needed for list_begin, so that's as far as I got in debugging the problem.


tkt_uuid: 232017ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
priority: 5 Medium
title: "string" subcommands require at least Tcl8.1
cmimetype: text/plain
submitter: glennjnn
assignee: andreas_kupries
comment:
  Usage of "string" subcommands: is, equal, map, repeat, replace, totitle
  are not implemented in tcl 8.0.

  tcllib modules should either "package require Tcl 8.1", or be made
  backwards compatible to tcl 8.0.

  The following tcllib source files are affected:
      base64.tcl, compare.tcl, typedCmdline.tcl, ftp.tcl, ftpd.tcl,
      html.tcl, mime.tcl, ncgi.tcl, pop3.tcl, profiler.tcl, graph.tcl,
      queue.tcl, stack.tcl, tree.tcl, uri.tcl


tkt_uuid: 2340320fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Entry invoke is not reachable
cmimetype: text/plain
submitter: relaxmike
assignee: damonc
closer: oehhar
closedate: 2009-06-10T08:19:22
comment:
  Hi (very) Dear Tcl maintainers !

  The _path_command of the Entry widget 
  does not take into account for the 
  invoke command.

  () 49 % package require BWidget
  1.8
  () 50 % Entry .myentry
  .myentry
  () 52 % catch {.myentry invoke} errmsg
  1
  () 53 % puts $errorInfo
  bad option "invoke": must be bbox, cget, configure, delete, get, icursor, index, insert, scan, selection, validate, or xview
      while executing
  ".myentry:cmd invoke"
      ("eval" body line 1)
      invoked from within
  "eval [linsert $larg 0 $path:cmd $cmd]"
      (procedure "Entry::_path_command" line 5)
      invoked from within
  "Entry::_path_command .myentry $cmd $args"
      (procedure ".myentry" line 1)
      invoked from within
  ".myentry invoke"


  The _path_command should be updated to

  proc Entry::_path_command { path cmd larg } {
      if {\
           [string equal $cmd "configure"] || \
           [string equal $cmd "cget"] || \
           [string equal $cmd "invoke"] \
           } {
          return [eval [linsert $larg 0 Entry::$cmd $path]]
      } else {
          return [eval [linsert $larg 0 $path:cmd $cmd]]
      }
  }

  Best regards,

  Michaël


tkt_uuid: 2340355fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Combobox path to entry
cmimetype: text/plain
submitter: relaxmike
assignee: nobody
comment:
  Hi,

  There is no current method to test the bindings 
  of the entry based on the Combobox widget because 
  the API does not provide the path to the 
  entry.
  Suppose the method "getentry" exists.
  One can generate an event so that the command 
  bound to the entry is fired.

  () 49 % package require BWidget
  1.8
  () 50 % ComboBox .mycbb
  .mycbb
  () 52 % set ntr [.mycbb getentry]
  .mycbb.e
  () 54 % configure .mycbb -command {puts "COUCOU !"}
  () 57 % pack .mycbb
  () 63 % focus -force .mycbb.e;event generate .mycbb.e <Return>
  COUCOU !

  To be able to do this script, I added the following 
  method which returns the path to the entry.

  proc ComboBox::getentry { path } {
      return $path.e
  }

  I would be very pleased if that method was added 
  to BWidget's Entry, or if someone show me another 
  way to do this.

  By the way, thank you for the great work on Tcllib.

  Best regards,

  Michaël


tkt_uuid: 2346118fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: tklib
priority: 7 High
foundin: None
title: canvas::sqmap limitations
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  The items used to show the images in their cells are currently visible to the user of the canvas::sqmap, allowing hacks and tricks, and possibly confusing things, like when finding nearest/overlapping items.
  Fix this before going v1. Basically have to inspect all methods taking and returning items and filter the internal items out. Ditto for tags, our tag for the image items should not be visible outside.


tkt_uuid: 2359926fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: fileutil
priority: 5 Medium
foundin: None
title: fileutil::tempdir on windows
cmimetype: text/plain
submitter: nobody
assignee: nobody
comment:
  As the manual states, on windows, the following locations are checked in step 5 of the process in determining the location for temp files:
  "...C:\TEMP, C:\TMP, \TEMP, and \TMP are tried in that order..."
  I think, usually there are no such dirs on windows. If a process runs without a logged on user (in the system context), the directiory usually is %systemroot%\temp (which is c:\windows\temp or c:\winnt\temp, e.g.), otherwise, the temp dir is normally somewhere in the current user's profile path, to where the TMP-Var points. In generall, it's not 100% safe to rely on environment variables - I think it would be more foolproof to ask the system via API call about the right location... 


tkt_uuid: 2370853fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: None
priority: 5 Medium
foundin: None
title: Wrong path added to auto_path
cmimetype: text/plain
submitter: johnseal
assignee: nobody
comment:
  If tcllib.kit (the one from http://www.equi4.com/pub/om/sdarchive/) is sourced after twapi-1.1.5.kit, a wrong path gets added to auto_path and "package require tcllib" fails.  If tcllib.kit is sourced alone, or before twapi-1.1.5.kit, it adds two entries to auto_path:

  (ORmaint) 1 % set auto_path
  <several paths>
  (ORmaint) 2 % source tcllib.kit
  (ORmaint) 3 % set auto_path
  <same paths plus> <path to>/tcllib.kit/lib <path to>/tcllib.kit/tcllib

  This is with an 8.5.2 tclkit for Windows. But if sourced after twapi-1.1.5.kit, the second entry gets twapi's name instead of tcllib's:

  (ORmaint) 1 % set auto_path
  <several paths>
  (ORmaint) 2 % source twapi-1.1.5.kit
  (ORmaint) 3 % set auto_path
  <same paths plus> <path to>/twapi-1.1.5.kit/lib
  (ORmaint) 4 % source tcllib.kit
  (ORmaint) 5 % set auto_path
  <same paths plus> <path to>/twapi-1.1.5.kit/lib <path to>/tcllib.kit/lib <path to>/twapi-1.1.5.kit/tcllib

  When I asked about this on c.l.t, Michael Schlenker suggested that it might be a bug in the tcllib kit packaging and asked me to file this bug report.


tkt_uuid: 2376321fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: bug in fileutil::TempDir
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-12-02T17:29:38
comment:
  I believe I spotted a bug in fileutil::TempDir for $tcl_platform(platform) eq macintosh. Here is the excerpt:

  macintosh {
      set tmpdir $env(TRASH_FOLDER)  ;# a better place?
  }

  But the variable tmpdir is nowhere used. Probably it should be:

  macintosh {
      lappend attempdirs $env(TRASH_FOLDER)
  }


tkt_uuid: 2381524fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: log
priority: 5 Medium
foundin: None
title: RFE: [logger] print all arguments passed to logger API
cmimetype: text/plain
submitter: hemanglavana
assignee: mic42
closer: mic42
closedate: 2008-12-17T21:52:25
comment:
  The logger package currently prints only the last argument passed to the logger API call. See below:

  rtp-lds-016:437> tclsh
  % package require logger
  0.8
  % namespace eval foo {}
  % logger::initNamespace ::foo
  % foo::log::warn none
  [Wed Dec 03 01:49:23 AM EST 2008] [foo] [warn] 'none'
  % foo::log::warn two errors
  [Wed Dec 03 01:49:37 AM EST 2008] [two] [warn] 'errors'
  %                  

  It would be nice if the last line above had printed 'two errors' instead of just 'errors'. I suspect there could be some backwards compatibility issues, so it would be fine with me to introduce an API to enable this behavior.


tkt_uuid: 2390890fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: exif
priority: 5 Medium
foundin: None
title: Unrecognized EXIF tags should not generate errors
cmimetype: text/plain
submitter: karll
assignee: nobody
closer: afaupell
closedate: 2009-02-19T05:39:03
comment:
  I don't know if the EXIF tags are out of date or what, but I'm getting Unrecognized EXIF tag on every EXIF standard and EXIF standard 2.2 JPEG image I've tried.  Such as:

  Unrecognized EXIF Tag: 34850 (0x8822)

  I don't think unrecognized EXIF tags should be treated as an error.


tkt_uuid: 2418580fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: log
priority: 5 Medium
foundin: None
title: log debug level is suppressed by default
cmimetype: text/plain
submitter: jxmercog
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-12-12T02:57:53
comment:
  If you do a "package require log" then "log::lvIsSuppressed debug" the command returns a 1.  All the other levels return 0.  I placed a puts statement in the eval portion of log.tcl after the suppressed array is created and debug is set to 0 but once the package finished initializing it is a one. 
  I was able to duplicate this in tcl version 8.3 on HP-UX and with activestates windows install of 8.5.2.

  I found this while trying to turn on the verbose switch in the ftp package.  I ended up having to execute "::log::lvSuppress debug 0" before executing any ftp command to get the ftp package to print anything out.

  Thanks,

  John Mercogliano


tkt_uuid: 2420330fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: Problem in Post-order dfs walk of the graph
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-12-13T03:58:35
comment:
  While walking the graph , in post-order depth-first search, currently only the last entry (node) in the list , will be deleted, if it has already been visited. Please find the code snippet below: (/struct/graph_tcl.tcl)


  elseif { [string equal $order "post"] } {
              # Post-order Depth-first search

              while { [llength $st] > 0 } {
                  set node [lindex $st end]

                  if {[info exists visited($node)]} {
                      # Second time we are here, pop it,
                      # then evaluate the command.

                      ldelete st end
                       ...
                        ...
                         ... <rest of the code follows>
           


  If there are multiple entries of the same node in the list (st), (this is possible because a single node NODE3 can be a neighbouring node for both NODE1 and NODE2)then this will result in duplicate entries being added in the final sorted list, which is not the right thing.

  To fix this, not just the last entry of the list(for eg: NODE3), but all the entries of that node "NODE3" needs to be removed from the list.

  The fix we have to solve the above problem:
   elseif { [string equal $order "post"] } {
              # Post-order Depth-first search

              while { [llength $st] > 0 } {
                  set node [lindex $st end]

               if {[info exists visited($node)]} {
                   # Second time we are here, pop it,
                   # then evaluate the command.
    while {[set index [lsearch -exact $st node]] != -1} {
             set st [lreplace $st $index $index]
          }
                       ...
                        ...
                         ... <rest of the code follows>

          
  We have noticed this problem only in tcllib, but not in the "critcl version of tcllib". We currently need this working on HP-Itanium platform. But unfortunately, we could not get a critcl version of tcllib available for Hp-Itanium, so looking for this fix in tcllib.

  Thanks in advance.


tkt_uuid: 2426988fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: struct :: matrix
priority: 5 Medium
foundin: None
title: linking to array variable problem
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
comment:
  version: 2.0.1 . 
  Platform windows. 
  ActiveTcl distribution .
  linking to array variable issue.

   Any delete of row of matrix is not reflected in the linked array variable.

  I am using this function in the context of updating Tktable. So it is a big problem

  Regards
  valli
  valli@ezorder.in


tkt_uuid: 2431506fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: nntp
priority: 5 Medium
foundin: None
title: Event based nntp, plus cleanups
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  FYI ...

  -------- Original Message --------
  Subject: Modification of tcllib1.11 package nntp 0.2.1
  Date: Sat, 13 Dec 2008 23:40:19 +0300
  From: Igor Gilyazov <igor.gilyazov@gmail.com>
  To: jeffh@activestate.com



  Hello Jeff,

  I have modified tcllib1.11 package nntp 0.2.1.
  Now it uses [fileevent] model, which allows async connection, timeout
  and other features.
  Also I have made various cleanups.
  My version supports only RFC 977 commands, but I can easily extend it
  with non-standard commands.

  The idea is to make the same modification to all tcllib modules like
  pop, ftp, smtp and etc.
  Also I can try to modify each of these packages to be full compatible
  with RFC.

  I attach Gzip archive with my version of nntp.
  I am not tcl expert, so if you have any suggestions to improve my code,
  you are welcome.
  If my code is useful to you, you can include this package to tcllib as
  nntp 0.2.2 or whatever.

  Regards,

  Igor


tkt_uuid: 2433410fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
title: tklib build process reports plotchart doc problem
cmimetype: text/plain
submitter: lvirden
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-12-10T10:22:45
comment:
  Generating /projects/sprs_lwv/tcl86/man/mann/plotchart.n
  DocTools Warning (sectambig): In macro at line 2332, column 0:
  DocTools Warning (sectambig): (Sub)Section title "RESIZING" causes ambiguous section references.


tkt_uuid: 2440373fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ncgi
priority: 5 Medium
foundin: None
title: broken compatibility for cookie with Safari + OS X.5.6
cmimetype: text/plain
submitter: dzolli
assignee: welch
comment:
  If one use Safari 3 under Mac OS X.5.6 and you want to set a cookie with ::ncgi::setCookie, you won't be able to get data back because it will add trailing spaces at the end of each cookie value.

  If you have a look at ~/Library/Cookies/Cookies.plist it looks like this:

  <dict>
  <key>Created</key>
  <real>251193654.78859401</real>
  <key>Domain</key>
  <string>localhost</string>
  <key>Expires</key>
  <date>2009-12-18T08:00:54Z</date>
  <key>Name</key>
  <string>SID </string>
  <key>Path</key>
  <string>/ </string>
  <key>Value</key>
  <string>foo </string>
  </dict>

  The quick way to make it works again is to remove each space between variable and semi-colon in ::ncgi::setCookie :

  proc ::ncgi::setCookie {args} {
      variable cookieOutput
      array set opt $args
      set line "$opt(-name)=$opt(-value);"
      foreach extra {path domain} {
          if {[info exists opt(-$extra)]} {
              append line " $extra=$opt(-$extra);"
          }
      }
      if {[info exists opt(-expires)]} {
          switch -glob -- $opt(-expires) {
              *GMT {
                  set expires $opt(-expires)
              }
              default {
                  set expires [clock format [clock scan $opt(-expires)] \
                      -format "%A, %d-%b-%Y %H:%M:%S GMT" -gmt 1]
              }
          }
          append line " expires=$expires;"
      }
      if {[info exists opt(-secure)]} {
          append line " secure "
      }
      lappend cookieOutput $line
  }

  I'm unable to say if it's a ncgi bug, but as far as I can see, it works again with Safari and OS X.5.6 and it doesn't break anything for others browsers / Oses.


tkt_uuid: 2444762fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ncgi
priority: 5 Medium
foundin: None
title: Mozilla 3.x breaks ncgi::nvlist
cmimetype: text/plain
submitter: nobody
assignee: welch
comment:
  Somewhere in the 3.x release Mozilla appends a character set on GET requests, which in turn breaks the parsing of env(CONTENT_TYPE), which in turns makes tclhttpd return "dont know how to handle "application/x-www-form-urlencoded; charset=XXX""

  This hack bypasses it, but maybe there's a better way to do it...

  proc ::ncgi::nvlist {} {
      set query [query]
      set type  [type]
      #Quick hack by nikos to overcome Mozilla 3.x which appends charset=xxx to env(CONTENT_TYPE)
      # returning a list, e.g. application/x-www-form-urlencoded; charset=UTF-8
       if {[string match "*;"  [lindex $query 0]]} {
  # set type "application/x-www-form-urlencoded"
  set type "[lindex $query 0]"
  set type "[lindex [split $type ";"] 0]"
  } else {
  }
      #end nikos
      switch -glob -- $type {
  "" -
  text/xml* -
  application/x-www-form-urlencoded* -
  application/x-www-urlencoded* {
      set result {}
          ...........
          ..........  


tkt_uuid: 2459470fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ftp
priority: 5 Medium
foundin: None
title: Debug and Verbose do not generate output
cmimetype: text/plain
submitter: jxmercog
assignee: andreas_kupries
comment:
  Because log suppresses warnings and lower the ftp package needs to unsuppress so when Verbose and/or Debug is set to 1, the log package will print out the debug messages. Recommend placing the command:
  ::log::lvSuppressLE emergency 0
  in the namespace eval ::ftp command, being the ftp package actually controls when the log command is executed there should be no repercussions in ensuring everything is unsuppressed.


tkt_uuid: 2499603fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: fileutil::jail returns wrong results in repeated execution
cmimetype: text/plain
submitter: apnadkarni
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-09-24T22:29:33
comment:
  See console output below:

  (woof) 48 % package require fileutil
  1.13.5
  (woof) 49 % ::fileutil::jail /temp /a
  /temp/a
  (woof) 50 % ::fileutil::jail /temp /a
  /a
  (woof) 51 % ::fileutil::jail /temp /b
  /temp/b
  (woof) 52 % ::fileutil::jail /temp /b
  /b

  I see this as pretty serious given the intent of jail is to provide some level of security.

  Platform is Tcl 8.6b1 on XP

  /Ashok


tkt_uuid: 2499641fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: stripPath does not correctly handle mixed case paths
cmimetype: text/plain
submitter: apnadkarni
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-02-05T23:40:43
comment:
  stripPath does not correctly handle mixed case paths on Windows. See console session below

  (woof) 65 % ::fileutil::stripPath /temp /temp/foo
  foo
  (woof) 66 % ::fileutil::stripPath /temp /Temp/foo
  /Temp/foo

  On windows, it should recognize that /temp and /Temp are in fact the same.

  Platform: fileutil 1.13.5 under Tcl 8.6b1 on Windows XP SP2

  /Ashok


tkt_uuid: 2499978fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: tklib
priority: 5 Medium
foundin: None
title: Infinite bug on widget::scrolledwindow
cmimetype: text/plain
submitter: ofv
assignee: hobbs
comment:
  On a dialog that contains a ttk::treeview  as the widget of a scrolledwindow, when the treeview has certain items, this errors happens:

  too many nested evaluations (infinite loop?)
      (procedure "::snit::RT.CallInstance" line 5)
      invoked from within
  "::snit::RT.CallInstance ::widget::scrolledwindow::Snit_inst1 _set_scroll hsb 0 0.00555556"
  too many nested evaluations (infinite loop?)
      (procedure "::snit::RT.CallInstance" line 1)
      invoked from within
  "::snit::RT.CallInstance ::widget::scrolledwindow::Snit_inst1 _set_scroll vsb 0 0.00403226"
  too many nested evaluations (infinite loop?)
      (procedure "Tree::_update_scrollregion" line 42)
      invoked from within
  "Tree::_update_scrollregion .i_form_1.sw.i_frame.frame.lf_2.sw.tree"
      (command bound to event)
  too many nested evaluations (infinite loop?)
      (procedure "::snit::RT.CallInstance" line 42)
      invoked from within

  (this repeats several times).

  Unneded horizontal and vertical scrollbars are displayed too.

  The problem goes away with this patch:

  Index: scrollw.tcl
  ===================================================================
  --- scrollw.tcl(revision 333)
  +++ scrollw.tcl(working copy)
  @@ -183,7 +183,7 @@
   if {!$realized} { return }
   # This is only called if the scrollbar is attached properly
   upvar 0 $varname sb
  -if {$sb(auto)} {
  +if {$sb(auto) && !$sb(lock)} {
       if {!$sb(lock)} {
   # One last check to avoid loops when not locked
   if {$vmin == $sb(lastmin) && $vmax == $sb(lastmax)} {

  (I didn't remove the second if, which is now redundant, for making clear the ciritical change).


tkt_uuid: 2512528fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: crc
priority: 5 Medium
foundin: None
title: crc32 wrong with -seed option
cmimetype: text/plain
submitter: wowbagger
assignee: patthoyts
closer: patthoyts
closedate: 2009-03-04T00:55:23
comment:
  Generating crc32 of the strings '?' and 'Hello' generates the correct values as tested agains other code and online crc generators.

  Using the command crc::crc32 -seed [crc::crc32 ?] Hello produces the crc 0x4cc062a6 other tools generate the crc of 0xC2A6E6F2. Trf and critcl not used.


tkt_uuid: 2526629fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: spf
priority: 5 Medium
foundin: None
title: SPF package is apparently dysfunctional
cmimetype: text/plain
submitter: rkeene
assignee: patthoyts
comment:
  SPF package (version 1.1.1) does not work.

  % package require spf
  1.1.1
  % spf::spf 1.2.3.4 example.com bob@example.com
  none
  % spf::SPF example.com
  =spf1 ip4:127.1.28.7 -all
  % package present dns
  1.3.3



  Applying the following diff to "spf.tcl" results in correct operations:
  --- spf.tcl     2009-01-21 13:09:37.450402473 -0500
  +++ spf.tcl.fixed       2009-01-21 12:57:04.043184940 -0500
  @@ -579,7 +579,7 @@
               set ndx [lsearch $res rdata]
               incr ndx
               if {$ndx != 0} {
  -                append txt [string range [lindex $res $ndx] 1 end]
  +                append txt [lindex $res $ndx]
               }
           }
       }


  Correct operation output:
  % ::spf::spf 1.2.3.4 example.com bob@example.com
  -
  % spf::SPF example.com
  v=spf1 ip4:127.1.28.7 -all


tkt_uuid: 2526633fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: spf
priority: 5 Medium
foundin: None
title: SPF package fails with hosts with IPv6 specifications
cmimetype: text/plain
submitter: rkeene
assignee: patthoyts
comment:
  The SPF package (v1.1.1) fails to handle SPF records with IPv6 ("ip6") entries:

  % package require spf
  1.1.1
  % ::spf::spf 1.2.3.4 kvanals.org bob@kvanals.org
  error in "ip6": type mismatch: cannot compare different address types
  % ::spf::spf fe80::1 kvanals.org bob@kvanals.org
  error in "ip4": type mismatch: cannot compare different address types
  % ::spf::SPF kvanals.org
  v=spf1 ip4:207.201.218.70 ip4:207.201.218.71 ip4:66.102.165.0/24 ip6:2001:480:fa0d::/48 ip6:2001:480:f001::55 -all


tkt_uuid: 2538424fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: base64
priority: 5 Medium
foundin: None
title: unset in namespace has global side effects
cmimetype: text/plain
submitter: mtsmith
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-01-29T04:31:10
comment:
  revision 1.29 of base64.tcl (latest revision) has an unset in the namespace eval base64 call when Trf isn't present. The specific line is:

  199: unset base64_tmp i char len val

  It also uses base64_tmp, i, char, len, and val earlier within the namespace eval. Since they're never declared with a "variable" call, they're resolved to global namespace. So the following example results in unappreciated behavior:

  set i 0
  package require base64
  puts $i

  The variable i is unset by base64. This should really be fixed by removing the "unset" call in namespace eval, and instead declaring these temporary variables in namespace scope with calls to variable.


  Fix:
  add after line 161: variable base64_tmp; variable i; variable char; variable len; variable val
  remove line 199: unset base64_tmp i char len val


tkt_uuid: 2557046fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: list
priority: 5 Medium
foundin: None
title: struct::list test suite case assign-4.4 fails w/Tcl 8.6
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-09-24T22:27:40
comment:
  Tcl 8.6 cvs head, and tcllib cvs head from activestate ftp site snapshot.

  sparc solaris 8, Sun C compiler

  After building and installing tcl, I configured the tcllib and ran the test suite.

  This error:
  ==== assign-4.4 assign method FAILED
  ==== Contents of test case:

      catch {assign {foo bar}} msg ; set msg

  ---- Result was:
  foo bar
  ---- Result should have been (exact matching):
  wrong # args: should be "::struct::list::Lassign list varName ?varName ...?"
  ==== assign-4.4 FAILED

  is different from most of the test case failures. It appears not to be related to changing error message syntax, but instead, something working that wasn't expected to work.


tkt_uuid: 2557107fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: dtplite seems to insist on presence of keywords
cmimetype: text/plain
submitter: apnadkarni
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-02-10T22:59:18
comment:
  I have a simple test file as follows:
  ----
  [manpage_begin "test" "n" "0.0"]
  [copyright {2009 "Ashok"}]
  [moddesc "sample"]
  [description]

  [manpage_end]
  ----

  If I place it in a directory, say doc, and run the command

  tclsh86 C:\bin\Tcl86\bin\dtplite.tcl -o doc html doc

  the following error is spit out:
  C:\bin\Tcl86\bin\dtplite.tcl: Docidx Error in macro at line 2, column 0:
  [index_end]
  --> (FmtError) IDX error (idx/endcmd), "index_end" : Command not allowed here..

  Adding a [keywords foo] to the above file fixes the error.

  Keywords should be always required. Note that running the command
  tclsh86 C:\bin\Tcl86\bin\dtplite.tcl -o test.html html test.man
  (where test.man is the above file) works fine.

  /Ashok


tkt_uuid: 2569848fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: aes
priority: 5 Medium
foundin: None
title: aes vs Tcl 8.5 failure
cmimetype: text/plain
submitter: andreas_kupries
assignee: patthoyts
comment:
  From the wiki, i.e. http://wiki.tcl.tk/14648

  Larry Virden wrote _________

  LV 2008 June 27.

  Here's what I get using ActiveTcl 8.5.2 (and teacup update):

   $ tclsh8.5
  % package require aes
   set key [string repeat - 16]
   set fullData {MalletData 9 q q q2 22}
   set encryptedData [aes::aes -dir encrypt -key $key $fullData]
   aes::aes -dir decrypt -key $key $encryptedData
   puts $errorInfo
  1.0.1
  % ----------------
  % MalletData 9 q q q2 22
  % I9â3òÌH£í<¯CUÜËÚ¤N|úÙdÜp
  % MalletData 9 q q q2 22
  % 

  Vale adds _________

  It's a bug in aes.tcl. After calling "binary scan binary-array I var", the numbers in var should be converted to unsigned 32-bit integers. You can define a procedure to do this.

          proc ::aes::to_unsigned {data} {
                  upvar $data d
                  set i 0
                  foreach num $d {
                          lset d $i [expr { $num & 0xffffffff }]
                          incr i
                  }
          }

  There are 5 places to do the convertion, 2 in ::aes::EncryptBlock, 2 in ::aes::DecryptBlock and 1 in ::aes::ExpandKey. You should call to_unsigned after calling of binary scan, like this:

      # original code
      if {[binary scan $block I4 data] != 1} {
          return -code error "invalid block size: blocks must be 16 bytes"
      }
      # bug-fix add here
      to_unsigned data


  AK, not from the wiki _________

  Note also the ChangeLog entry ...

  2008-05-12  Andreas Kupries  <andreask@activestate.com>

          * aes.tcl (DecryptBlock, EncryptBlock): Added code limiting the
          * aes.man: values to int32 range, to prevent going out of range
          * aes.test: when run by Tcl 8.5 and its bignums. Extended
          * pkgIndex.tcl: testsuite to catch a problematic case which fails
            without the change. Bumped version to 1.0.1.

  It may be that this is the same bug, that the fix made was not enough.
  Or a similar one.


tkt_uuid: 2593520fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: json
priority: 5 Medium
foundin: None
title: json one-line fix for number parsing
cmimetype: text/plain
submitter: zvr
assignee: hobbs
closer: hobbs
closedate: 2009-04-24T21:35:55
comment:
  in json::_json2dict, when parsing a number value
  (line 192ff.), the code essentially does:
  string is double -failindex last $txt
  set num [string range $txt 0 [expr {$last - 1}]]

  WHAT: this code works fine for cases like
  attr: 123,
  but not for cases with whitespace after the number,
  e.g. if it's the last attribute of an object
  attr: 123
          }

  WHY: due to "last" being set to failindex
  (the character that fails the "is double" test),
  the resulting "num" also contains all whitespace
  after the number and before the failing char.

  FIX: add a "string trimright" to the num definition.


tkt_uuid: 2595296fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: grammar_fa
priority: 5 Medium
foundin: None
title: state rename bugs then state has transition to itself
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-02-13T23:18:41
comment:
  Executing:
  -----
  grammar::fa fa
  fa state add a
  fa next a {} --> a
  fa state rename a b
  -----

  Produces:
  -----
  can't read "order(a)": no such element in array
      while executing
  "upvar #0 ${selfns}::trans_$order($sin) jump"
      ("foreach" body line 3)
      invoked from within
  "foreach srcitem $transinv($snew) {
  struct::list assign $srcitem sin sym
  upvar #0 ${selfns}::trans_$order($sin) jump
  upvar 0 jump($sym) destin..."
      ("rename" arm line 35)
  ----- the rest is skipped -----


tkt_uuid: 2597454fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math
priority: 5 Medium
foundin: None
title: Warnings in documentation
cmimetype: text/plain
submitter: andreas_kupries
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-02-23T15:24:39
comment:
  andreask@gila:~/lsf/tcllib> ./sak.tcl doc validate modules/math
  Validate  : ./modules/math/bignum.man
  Validate  : ./modules/math/combinatorics.man
  Validate  : ./modules/math/fourier.man
  Validate  : ./modules/math/linalg.man
  Validate  : ./modules/math/romberg.man
  Validate  : ./modules/math/optimize.man
  Validate  : ./modules/math/bigfloat.man
  Validate  : ./modules/math/calculus.man
  Validate  : ./modules/math/machineparameters.man
  DocTools Warning (depr_strong): In macro at line 11, column 4:
  DocTools Warning (depr_strong): Deprecated command "[strong]".
  DocTools Warning (depr_strong):         Please consider appropriate semantic markup or [emph] instead.
  DocTools Warning (depr_ltype): In macro at line 23, column 0:
  DocTools Warning (depr_ltype): Deprecated list type "bullet".
  DocTools Warning (depr_ltype):  Please use "itemized" instead.
  DocTools Warning (depr_bullet): In macro at line 24, column 0:
  DocTools Warning (depr_bullet): Deprecated command "[bullet]".
  DocTools Warning (depr_bullet):         Please use [item] instead.
  DocTools Warning (depr_bullet): In macro at line 25, column 0:
  DocTools Warning (depr_bullet): Deprecated command "[bullet]".
  DocTools Warning (depr_bullet):         Please use [item] instead.
  DocTools Warning (depr_ltype): In macro at line 106, column 0:
  DocTools Warning (depr_ltype): Deprecated list type "bullet".
  DocTools Warning (depr_ltype):  Please use "itemized" instead.
  DocTools Warning (depr_bullet): In macro at line 107, column 0:
  DocTools Warning (depr_bullet): Deprecated command "[bullet]".
  DocTools Warning (depr_bullet):         Please use [item] instead.
  DocTools Warning (depr_bullet): In macro at line 108, column 0:
  DocTools Warning (depr_bullet): Deprecated command "[bullet]".
  DocTools Warning (depr_bullet):         Please use [item] instead.
  DocTools Warning (depr_ltype): In macro at line 158, column 0:
  DocTools Warning (depr_ltype): Deprecated list type "bullet".
  DocTools Warning (depr_ltype):  Please use "itemized" instead.
  DocTools Warning (depr_bullet): In macro at line 159, column 0:
  DocTools Warning (depr_bullet): Deprecated command "[bullet]".
  DocTools Warning (depr_bullet):         Please use [item] instead.
  DocTools Warning (depr_bullet): In macro at line 160, column 0:
  DocTools Warning (depr_bullet): Deprecated command "[bullet]".
  DocTools Warning (depr_bullet):         Please use [item] instead.
  DocTools Warning (depr_bullet): In macro at line 167, column 0:
  DocTools Warning (depr_bullet): Deprecated command "[bullet]".
  DocTools Warning (depr_bullet):         Please use [item] instead.
  DocTools Warning (depr_bullet): In macro at line 170, column 0:
  DocTools Warning (depr_bullet): Deprecated command "[bullet]".
  DocTools Warning (depr_bullet):         Please use [item] instead.
  DocTools Warning (depr_bullet): In macro at line 171, column 0:
  DocTools Warning (depr_bullet): Deprecated command "[bullet]".
  DocTools Warning (depr_bullet):         Please use [item] instead.
  DocTools Warning (depr_bullet): In macro at line 172, column 0:
  DocTools Warning (depr_bullet): Deprecated command "[bullet]".
  DocTools Warning (depr_bullet):         Please use [item] instead.
  DocTools Warning (depr_bullet): In macro at line 173, column 0:
  DocTools Warning (depr_bullet): Deprecated command "[bullet]".
  DocTools Warning (depr_bullet):         Please use [item] instead.
  DocTools Warning (depr_bullet): In macro at line 174, column 0:
  DocTools Warning (depr_bullet): Deprecated command "[bullet]".
  DocTools Warning (depr_bullet):         Please use [item] instead.
  Validate  : ./modules/math/polynomials.man
  Validate  : ./modules/math/statistics.man
  Validate  : ./modules/math/rational_funcs.man
  Validate  : ./modules/math/roman.man
  Validate  : ./modules/math/fuzzy.man
  Validate  : ./modules/math/constants.man
  Validate  : ./modules/math/special.man
  Validate  : ./modules/math/geometry.man
  Validate  : ./modules/math/math.man
  Validate  : ./modules/math/interpolate.man
  Validate  : ./modules/math/qcomplex.man
  andreask@gila:~/lsf/tcllib>


tkt_uuid: 2605849fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: tkchat: use tk appname for use in windowmaker dock
cmimetype: text/plain
submitter: mpc_janssen
assignee: patthoyts
closer: patthoyts
closedate: 2009-03-04T00:28:49
comment:
  The windowmaker dock uses the WM_CLASS of the main window to check if the application is launched and to allow minimize to dock.
  When running tkchat from a starpack, the window class is not specific enough to allow reliable docking of the app without picking up other wish application.

  It would be nice if a distinctive [tk appname] is declared for the application.


tkt_uuid: 2646568fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: jpeg
priority: 5 Medium
foundin: None
title: jpeg::imageInfo opens files with r+
cmimetype: text/plain
submitter: kot
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-03-02T18:39:03
comment:
  The procedure never needs to write the file -- and really ought not to, of course.

  So, it is wrong for it to open the file with mode r+ -- doing so requires increased permissions (a program is unable to gather imageInfo on a file, that it is not allowed to overwrite), and is otherwise wrong.

  The simple patch is attached -- it will soon be part of FreeBSD's devel/tcllib port.

  Thanks.


tkt_uuid: 2662968fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: Have lappend method accept multiple values
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  I.e. make it consistent with the core built command.
  Look at nodes, arcs, the graph itself, and struct::tree as well.


tkt_uuid: 2680202fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: md5
priority: 5 Medium
foundin: None
title: memory leak
cmimetype: text/plain
submitter: mstrhh
assignee: patthoyts
comment:
  the problem is observed by repeatedly calculating the md5 sum on the files of a (preferrably well filled) directory in an interactive tcl shell and watching the mem size of the process:

  foreach n [glob DOWNLOAD/*] {md5::md5 -hex -file $n}

  Tested on openSuse 11.0, tcl 8.5.5 md5 2.0.7 (TEA version).

  Current workaround: exec md5sum works well so far.

  Test session:
  strobel@s11:~> tclsh
  % package require md5
  2.0.7
  %  exec ps -p [pid] v
    PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
   5935 pts/1    Sl+    0:00      0     3 24260  3716  0.0 tclsh
  %  foreach n [glob DOWNLOAD/*] {md5::md5 -hex -file $n}
  %  exec ps -p [pid] v
    PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
   5935 pts/1    Sl+    0:04      0     3 30104  9656  0.2 tclsh
  % foreach n [glob DOWNLOAD/*] {md5::md5 -hex -file $n}
  % exec ps -p [pid] v
    PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
   5935 pts/1    Rl+    0:08      0     3 36060 15632  0.3 tclsh
  %  foreach n [glob DOWNLOAD/*] {md5::md5 -hex -file $n}
  %  exec ps -p [pid] v
    PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
   5935 pts/1    Sl+    0:12      0     3 42136 21592  0.5 tclsh
  %


tkt_uuid: 2683544fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
title: clipped x-labels due to font size
cmimetype: text/plain
submitter: vera_soft
assignee: arjenmarkus
comment:
  I use in my application a bigger font with "font configure TkDefaultFont -size 11 -weight bold" and PlotChart 1.6.1. 
  In xy-plots the x-label is clipped, since there is a fixed size for the labels and tics (pymax), not a font-dependent size.


tkt_uuid: 2686560fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: crc
priority: 8
foundin: None
title: memleak in crc::cksum
cmimetype: text/plain
submitter: pedietz
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-04-21T20:08:25
comment:
  calling crc::cksum over and over causes a huge memleak.

  while { 1 } {
          set a [crc::cksum helloworld]
  }

  doing the same with crc::crc32 doesnt.


tkt_uuid: 2690366fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: Tk GUI for dtplite
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  Extend dtplite with a Tk GUI which is invoked when the app is run without arguments => Windows, double-click, becomes meaningful.
  No real ideas yet  about how this GUI should look like. Maybe follow the use cases we have for the command line and make it wizard-style.


tkt_uuid: 2691870fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
title: determineScale with close numbers
cmimetype: text/plain
submitter: relaxmike
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-03-20T18:19:51
comment:
  Hi,
  With Plotchart 1.6.1, used in Tcl 8.4.

  % package require Plotchart
  1.6.1
  % Plotchart::determineScale 0.99999999999999911  1.0000000000000007
  integer value too large to represent

  The cause is in the computation of nicemin :

  set nicemin [expr {$step*$factor*int($xmin/$factor/$step)}]

  Here the value of the factor is very low :

  dx = 1.55431223448e-015
  expon = -14
  factor = 1e-014
  step = 0.2
  xmin = 0.99999999999999911

  so that the value $xmin/$factor/$step is not representable as a 32 bit integer, used in Tcl 8.4.
  In fact, the relative shift between the 
  two numbers is 1.e-15, very close to the 
  precision of double precision floating 
  point numbers.

  A possible fix is to compute the relative shift,
  and to modify the inputs so that at least 8 significant digits are different.
  The modified version gives the result :

  % catch {Plotchart::determineScale 0.99999999999999911  1.0000000000000007 0 8} errmsg ; set errmsg
  expon = -8
  factor = 1e-008
  step = 0.2
  xmin = 0.999999995
  0.999999994 1.000000006 2e-009

  The patched version is in attachment of the bug report.

  Best regards,

  Michael


tkt_uuid: 2694992fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: exif
priority: 5 Medium
foundin: None
title: exif reports "Unrecognized EXIF Tag"
cmimetype: text/plain
submitter: stwitt
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-03-19T20:20:44
comment:
  Hi!

  My e-mail is
  mailto:stefan@witt-netz.de

  I am currently using your EXIF package to scan fotos for creation dates. In some fotos obviously originating from some Olympus camera, the EXIF package reports an error.
  See command sequence below:

  % set f [lindex $fl 17]
  p4190019.jpg
  % package require exif
  1.1.2
  % exif::analyzeFile $f
  Unrecognized EXIF Tag: 34850 (0x8822)
  % set h [open $f r]
  file5
  % exif::analyze -sadads $h
  can not find channel named "-sadads"
  % exif::analyze $h
  Unrecognized EXIF Tag: 34850 (0x8822)

  Target system is a laptop running Fedora 9,
  tcl_version 8.5, wish as executable & the latest yum-available tcllib.

  In my opinion, you might either want to
   - silently ignore unkonwn tags and just return the   known ones with associated values

  -introduce a -nocomplain flag upon which exif::analyze shows the a.m. behavior


  If you wouldn't mind sharing your thoughts with me - great! I might even spare some time in the near future to help you look into the source & find a fix.

  SourceForge bounced this request in the first place when I tried to include the foto causing the trouble (for size reasons, sure). Well, I'd e-mail the foto to you if you'd just drop me a mail.

  Best regards,

  Stefan Witt


tkt_uuid: 2695513fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: linearalgebra
priority: 5 Medium
foundin: None
title: MkBorder may be wrong
cmimetype: text/plain
submitter: relaxmike
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-03-20T17:57:45
comment:
  Hi,

  According to the definition given in Nash "Compact
  method", the diagonal of the Border matrix is 
  equal to 1.

  But one can check that this is not true with 
  tcllib :

  % package require math::linearalgebra
  1.0.3
  % ::math::linearalgebra::mkBorder 5
  {1.0 0.0 0.0 0.0 1.0} {0.0 1.0 0.0 0.0 0.5} {0.0 0.0 1.0 0.0 0.25} {0.0 0.0 0.0 1.0 0.125} {1.0 0.5 0.25 0.125 0.0}

  Notice that the last value is 0 instead of 1.

  See in the following page, and look 
  at the "BORDERBAND" routine with the sample 
  Border matrix of size 5 :
  http://orion.math.iastate.edu/burkardt/f_src/testmat/testmat.f90

  The following version of MkBorder tries to fix the bug :

  proc mkBorder { size } {
      set result {}
      for { set j 0 } { $j < $size } { incr j } {
          set row {}
          for { set i 0 } { $i < $size } { incr i } {
              set entry 0.0
              if { $i == $j } {
                  set entry 1.0
              } elseif { $j!=$size-1 && $i == $size-1 } {
                  set entry [expr {pow(2.0,-$j)}]
              } elseif { $i!=$size-1 && $j == $size-1 } {
                  set entry [expr {pow(2.0,-$i)}]
              } else {
                 set entry 0.0
              }
              lappend row $entry
          }
          lappend result $row
      }
      return $result
  }

  Best regards,

  Michaël


tkt_uuid: 2695564fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: linearalgebra
priority: 8
foundin: None
title: mkWilkinson+ may be wrong
cmimetype: text/plain
submitter: relaxmike
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-03-20T18:01:09
comment:
  Hi,

  Try 

  math::linearalgebra::show [math::linearalgebra::mkWilkinsonW+ 7]

  and see :

  3.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 
  1.0000 2.0000 1.0000 0.0000 0.0000 0.0000 0.0000 
  0.0000 1.0000 1.0000 1.0000 0.0000 0.0000 0.0000 
  0.0000 0.0000 1.0000 0.0000 1.0000 0.0000 0.0000 
  0.0000 0.0000 0.0000 1.0000 -1.0000 1.0000 0.0000 
  0.0000 0.0000 0.0000 0.0000 1.0000 2.0000 1.0000 
  0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 3.0000 

  but the diagonal must contain only positive 
  terms, as shown in :

  http://www.uni-kassel.de/hrz/server/UNIX+SW-Infos/graphics/MatLab-5.3/help/techdoc/ref/wilkinson.html

  The following fixes the problem :

  proc mkWilkinsonW+ { size } {
      set result {}
      for { set j 0 } { $j < $size } { incr j } {
          set row {}
          for { set i 0 } { $i < $size } { incr i } {
              if { $i == $j } {
              # int(n/2)+1-min(i, n- i+1)
                set min [expr {(($i+1)>$size-($i+1)+1? $size-($i+1)+1 : ($i+1))}]
                set entry [expr {int($size/2) + 1 - $min}]
              } elseif { $i == $j+1 || $i+1 == $j } {
                  set entry 1
              } else {
                  set entry 0
              }
              lappend row $entry
          }
          lappend result $row
      }
      return $result
  }

  math::linearalgebra::show [mkWilkinsonW+ 7]

  The problem was to correctly manage the 
  move for the mathematical formula (where i
  starts from 1) to Tcl (where i starts 
  from 0).

  Best regards,

  Michaël


tkt_uuid: 2695618fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: linearalgebra
priority: 8
foundin: None
title: MkWilkinson- is also false...
cmimetype: text/plain
submitter: relaxmike
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-03-20T18:00:47
comment:
  Compute the Wilkinson - matrix of size 5 :

  math::linearalgebra::show [math::linearalgebra::mkWilkinsonW- 5]
  2.0000 1.0000 0.0000 0.0000 0.0000 
  1.0000 3.0000 1.0000 0.0000 0.0000 
  0.0000 1.0000 4.0000 1.0000 0.0000 
  0.0000 0.0000 1.0000 5.0000 1.0000 
  0.0000 0.0000 0.0000 1.0000 6.0000

  Notice that the diagonal terms are increasing.
  But the formula gives 
  Aii= [n/2]+1-i
  so that the diagonal terms must decrease.

  The following is a fix :

  proc mkWilkinsonW- { size } {
      set result {}
      for { set j 0 } { $j < $size } { incr j } {
          set row {}
          for { set i 0 } { $i < $size } { incr i } {
              if { $i == $j } {
                  set entry [expr {int($size/2) + 1 - ($i+1)}]
              } elseif { $i == $j+1 || $i+1 == $j } {
                  set entry 1
              } else {
                  set entry 0
              }
              lappend row $entry
          }
          lappend result $row
      }
      return $result
  }

  math::linearalgebra::show [mkWilkinsonW- 5]

  2.0000 1.0000 0.0000 0.0000 0.0000 
  1.0000 1.0000 1.0000 0.0000 0.0000 
  0.0000 1.0000 0.0000 1.0000 0.0000 
  0.0000 0.0000 1.0000 -1.0000 1.0000 
  0.0000 0.0000 0.0000 1.0000 -2.0000 


tkt_uuid: 2695827fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: math :: fourier
priority: 5 Medium
foundin: None
title: Emphasise DFT vs. FFT choice up front.
cmimetype: text/plain
submitter: venksi
assignee: lars_h
comment:
  The first line says this: "The math::fourier package implements two versions of discrete Fourier transforms, the ordinary transform and the fast Fourier transform.".  That implies that both versions are available for use.  

  Reading top to bottom it sounds like there are only commands for dft (and none for fft), which is not true.

  "The math::fourier package uses the fast Fourier transform, if applicable, or the ordinary transform to implement the
  discrete fourier transform." might be more appropriate.    


tkt_uuid: 2762361fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ComboBox Backround error "ambiguous state"
cmimetype: text/plain
submitter: oehhar
assignee: damonc
closer: oehhar
closedate: 2009-06-10T08:07:52
comment:
  A backround error was invoked using a BWidget combo box:

  > ambiguous state "": must be active, disabled, or normal
  >     (processing "-state" option)
  >     invoked from within
  > "$path configure $realopt $value"
  >     (procedure "Widget::_test_tkresource" line 7)
  >     invoked from within
  > "$_optiontype($type) $option $value [lindex $optdesc 3]"
  >     (procedure "Widget::configure" line 31)
  >     invoked from within
  > "Widget::configure $path $args"
  >     (procedure "configure" line 2)
  >     invoked from within
  > "configure $path -state $_grab(oldstate)"
  >     (procedure "ArrowButton::_leave" line 6)
  >     invoked from within
  > "ArrowButton::_leave .wizard.layoutFrame.advanced.clientArea.c1.a.c"
  >     (command bound to event)

  This indicates, that the leave event may be invoked without a former enter event.

  To fortify the widget against this situation, the following two patches may be used:

  arrow.tcl Line 73:
  Old contents:
      array set _grab {current "" pressed "" oldstate "" oldrelief ""}
  New contents:
      array set _grab {current "" pressed "" oldstate "normal" oldrelief ""}

  Alternate patch:
  (Line 436)
  proc ArrowButton::_leave { path } {
  ...
  configure $path -state $_grab(oldstate)
  ...
  The configure line may be protected to empty string contents by:
  if {0 == [string length $_grab(oldstate)]} {
      configure $path -state $_grab(oldstate)
  }

  Version information:
  BWidget 1.8.0
  TCL8.4.16
  Windows XP (not shure)


tkt_uuid: 2767679fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tar
priority: 5 Medium
foundin: None
title: tar: uninitialized return value
cmimetype: text/plain
submitter: exgerhardr
assignee: afaupell
closer: afaupell
closedate: 2009-05-13T21:27:53
comment:
  In some error situations the return value of tar::* functions are not initialized which leads to a runtime error when returning "return $ret".


tkt_uuid: 2768634fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: json
priority: 5 Medium
foundin: None
title: cannot get last integer correctly
cmimetype: text/plain
submitter: kanryu6
assignee: hobbs
closer: kanryu6
closedate: 2009-04-17T23:22:35
comment:
  the following, it is not correctly.

  % json::json2dict {{"k" : 1.0
    }}
  k {1
    }
  %

  that should be
  % json::json2dict {{"k" : 1.0
    }}
  k 1
  %


tkt_uuid: 2769242fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: struct
priority: 5 Medium
foundin: None
title: Persistence for various data structures
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  The following url describe a stack class (perl) whose instances are persistent.
  http://search.cpan.org/~kesteb/Stack-Persistent-0.04/lib/Stack/Persistent.pm
  There is also a php class doing the same using sqlite as store.


tkt_uuid: 2779581fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: ldap
priority: 5 Medium
foundin: None
title: sid2SDDL function
cmimetype: text/plain
submitter: psidhu
assignee: mic42
comment:
  For converting sids to their text SDDL representations for further use in searches and/or saving to databases etc.


tkt_uuid: 2782256fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: two potential package bugs found
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-04-29T02:13:54
comment:
  When using the version of doctools provided by teapot, I see the following two errors:

  package require doctools::nroff::man.macros
  can't find package doctools::nroff::man.macros

  even though the file doctools/nroff/man.macros-0.1.tm appears to have been installed by teacup.

  Also, I am seeing

  package require doctools::paths
  conflicting versions provided for package "doctools::paths": 0.1, then 0


tkt_uuid: 2783019fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: scrollwindow bug - flickering scrollbar
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: oehhar
closedate: 2009-06-29T13:06:44
comment:
  The attached example shows a problem with scrolledwindow in bwidget. The scrolledwindow gets into an infinite loop between xscroll and yscroll when we zoom in out on this example.

  Tcl/tk version : 8.5.3
  BWidget version : 1.8


  package require Tcldot
  package require BWidget

  set graphstring {digraph graph5 {
          node [label="\N"];
          graph [bb="0,0,370,250"];
          "x" [label="AAA\n.Dl", fontsize=12, fontname=zzzfont, style=filled, fillcolor=white, shape=diamond, pos="150,214", width="2.69", height="1.00"];
          z [label=Hs, fontsize=12, fontname=zzzfont, style=filled, fillcolor=white, shape=rectangle, pos="53,64", width="1.47", height="0.50"];
          "y" [label="dl", fontsize=12, fontname=zzzfont, style=filled, fillcolor=white, shape=diamond, pos="247,64", width="3.42", height="1.78"];
          "x" -> z [fontsize=12, fontname=zzzfont, color=black, arrowsize="0.7", label=hs, pos="e,65,82 131,185 113,156 86,115 69,88", lp="152,153"];
          "x" -> "y" [fontsize=12, fontname=zzzfont, color=black, arrowsize="0.7", label=hs, pos="e,220,115 173,186 179,178 187,169 193,160 201,148 209,134 216,121", lp="236,153"];
  }}

  set g [dotstring $graphstring]

  toplevel .t
  set sw [ScrolledWindow .t.sw]
  set cvs [canvas .t.sw.cvs]
  $sw setwidget $cvs
  pack $sw -side top -fill both -expand yes
  bind $cvs <Button-4>  "zoom $cvs 1.1"
  bind $cvs <Button-5>  "zoom $cvs 0.9"
  eval [$g render $cvs dot]
  $cvs configure -scrollregion [$cvs bbox all]

  proc zoom {cvs factor} {
    $cvs scale all 0 0 $factor $factor
    $cvs configure -scrollregion [$cvs bbox all]
  }


tkt_uuid: 2783215fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: ldap
priority: 5 Medium
foundin: None
title: search result is incorrect with multibyte characters
cmimetype: text/plain
submitter: zhangweiwu
assignee: mic42
closer: zhangweiwu
closedate: 2009-04-30T03:38:23
comment:
  This problem is best explained with the screenshot I attached.

  In my case all Chinese characters are broken, I think other multibyte UTF-8 string data should also be broken. Easily reproducible, we have this problem on Windows as well as Linux (where the screenshot was taken). The screenshot was taken from a system with UTF-8 locale setting.


tkt_uuid: 2787849fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: comm
priority: 5 Medium
foundin: None
title: Can comm use Iocpsock under Windows
cmimetype: text/plain
submitter: dunkfan
assignee: andreas_kupries
comment:
  I have one report of comm not being able to open a windows socket.
  Ther error message was:
  couldn't open socket: no buffer space available
  while executing
  "::comm::comm_cmd_new ::comm::comm ::comm::comm -port 0 -local 1 -listen 1"

  I have a feeling that if comm were to use the Iocpsock package where available this could be taken care of.
  Thanks


tkt_uuid: 2787872fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: comm
priority: 5 Medium
foundin: None
title: default standard channel should not be created implicitely
cmimetype: text/plain
submitter: aldobu
assignee: andreas_kupries
comment:
   "comm" provides a default "communication channel" named "comm::comm" .

   If your app. doesn't need to "provide services", but just to call services, you should destroy it, and then create a simple outgoing channel.

   I think that when you load comm (package require comm), such standard channel should not be created automatically.
  Users should be explicitely create it 
     comm::comm new comm::comm


tkt_uuid: 2787933fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: md5
priority: 8
foundin: None
title: Leak: md5 or trf?
cmimetype: text/plain
submitter: msofer
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-05-07T05:33:06
comment:
  The following script leaks when Trf is loaded (run it under nice: tight busy loop!):

  package require md5 2
  set digits {0 1 2 3 4 5 6 7 8 9 A B C D E F}

  # any init will do
  set hx [::md5::md5 -hex {}]

  while {$hx ne [::md5::md5 -hex $hx]} {
      # bernoulli-like shift with random last hex
      set idx [expr {int(floor(16*rand()))}]
      set hx [string range $hx 1 end][lindex $digits $idx]
  }

  puts "Found it! It is '$hx'"


tkt_uuid: 2790985fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tar
priority: 5 Medium
foundin: None
title: fail to extract tar created by mks tools
cmimetype: text/plain
submitter: royterry
assignee: afaupell
closer: afaupell
closedate: 2009-05-13T21:23:29
comment:
  The 3rd call to readHearder blows up attempting to tar::untar this file made by windows tar.exe from MKS. Single file tar test case attached.
  FWIW, bsdtar windows exe running on same machine with same file) can extract the file fine. There is apparently confusion over the seek for preceding read as it seems not to return a proper header block. But bsdtar isn't affected. Thanks for any help.. Roy

  ERROR LOOKS LIKE THIS
  (app) 268 % ::tar::untar  ../dia/srch-30apr-01may-2009/test-mks.tar
  expected integer but got "0"


tkt_uuid: 2794454fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: cmdline
priority: 5 Medium
foundin: None
title: error in info command
cmimetype: text/plain
submitter: malfunction54
assignee: andreas_kupries
closer: malfunction54
closedate: 2009-05-20T18:24:52
comment:
  line 196 of the source code reads: "if {[info exist result(?)] || [info exists result(help)]} {"

  I believe that first "exist" should read "exists"


tkt_uuid: 2795699fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: yaml
priority: 5 Medium
foundin: None
title: does not work on TCL 8.4?
cmimetype: text/plain
submitter: al_chou
assignee: kanryu6
closer: kanryu6
closedate: 2009-05-24T03:28:43
comment:
  I tried copying the tcllib 1.11.1 yaml package into my ActiveTcl 8.4.19 lib and got "can't read data(current)" when I ran ::yaml::yaml2dict.  Looking at the yaml code, it looks like it relies on TCL 8.5 array behavior where "incr a(1)" is legal even if a(1) doesn't exist yet.  That wasn't legal in TCL 8.4, so despite the fact that dict was backported to 8.4 and yaml package requires dict if running on a TCL version < 8.5, it doesn't actually work in 8.4.

  I haven't gone through the code changing the incr calls on uninitialized data(current) because I was afraid there might be other TCL 8.4 incompatibilities beyond just those, but I may do that in the near future after my current project ships (until then I can't really justify a lot of yak shaving).


tkt_uuid: 2796712fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: new animated emoticons are damaged
cmimetype: text/plain
submitter: matzek
assignee: nobody
comment:
  Hi Pat,

  tkchat-1.470.kit with a ActiveTcl 8.5.7 shows the new animated :drunk: and :headbang: icons with pixel salad. The static versions seem to be ok.

  kind regards
  -- Matthias Kraft


tkt_uuid: 2798448fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: uri
priority: 5 Medium
foundin: None
title: uri::split makes host to path without scheme
cmimetype: text/plain
submitter: martinlemburg
assignee: andreas_kupries
comment:
  Hello,

  following code shows the bug in tcllib 1.11.1:

      % info patchlevel
      8.5.7
      % package require uri
      1.2.1
      % uri::split host.td
      port {} path host.td scheme http host {} query {}
      % uri::split http://host.td
      port {} path {} scheme http host host.td query {} pwd {} user {}
      % uri::split host.td ftp
      port {} path host.td scheme ftp host {} type {} user {} pwd {}
      % uri::split ftp://host.td
      port {} path {} scheme ftp host host.td type {} user {} pwd {}

  Best regards,

  Martin Lemburg


tkt_uuid: 2798450fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: uri
priority: 5 Medium
foundin: None
title: uri::split provides no user and pwd without (default) scheme
cmimetype: text/plain
submitter: martinlemburg
assignee: nobody
comment:
  Hello,

  following code shows the bug:

      % info patchlevel
      8.5.7
      % package require uri
      1.2.1
      % uri::split host.td
      port {} path host.td scheme http host {} query {}
      % uri::split host.td http
      port {} path host.td scheme http host {} query {}
      % uri::split http://host.td
      port {} path {} scheme http host host.td query {} pwd {} user {}
      % uri::split host.td ftp
      port {} path host.td scheme ftp host {} type {} user {} pwd {}
      % uri::split ftp://host.td
      port {} path {} scheme ftp host host.td type {} user {} pwd {}

  So, the more common summary must be narrowed a bit, that a missing "http" scheme in the url with or without the default scheme "http" causes "uri::split" to do not return a user and pwd result list element.

  Best regards,

  Martin Lemburg


tkt_uuid: 2800387fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: struct::graph:op::{kruskal,prim}
cmimetype: text/plain
submitter: lars_h
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-09-24T16:50:33
comment:
  The documentation for these commands should state their complexities, as that is the primary factor for choosing one or the other.

  I would also prefer it if the phrase "minimum spanning tree" was replaced by "minimum weight spanning tree", as that better highlights the dependence on this factor. The abbreviation MST is fine, however.

  Finally, it should be pointed out that returning only the arcs means all 1-vertex components are missing from the forest computed. This is not so likely to be an issue in real life, but the documentation is making a claim which is false in that situation.


tkt_uuid: 2800400fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: struct::graph:op::toAdjacencyMatrix issues
cmimetype: text/plain
submitter: lars_h
assignee: andreas_kupries
comment:
  Things that strike me as wrong with [struct::graph:op::toAdjacencyMatrix], just from reading the documentation:

  1. The return value is a matrix which mixes two element interpretations: node name and arc existence. Better would be to return a pair where the first element is the pure adjacency matrix and the second is the list of node names. Also, it is often useful to force an order of nodes, rather than work with what one is given; there should be an option which takes a list of node names as value which has the effect that it will be a prefix of the returned list of all node names.

  2. Matrix elements are documented as being "True" or "False". The canonical boolean string representations 1 or 0 would be more useful.

  3. The command ignores arc direction and multiplicity. This should rather be controlled through options, as several important applications of the adjacency matrix (e.g. counting walks of given length) requires that one takes them into account.

  4. Indeed, as there are many ways of combinig parallel arcs, one could even consider an option which takes as value a command prefix for this. A suitable syntax for this command prefix could be

    {*}$prefix $graph $arclist

  where the $arclist is the list of names of arcs that are to be combined, and the return value will be the adjacency matrix element. The multiplicity-counting prefix could then be

    {::apply {{G arclist} (llength $arclist}}}

  whereas one that calculates the combined capacities could be

    {::apply {{attr G arclist} (
       set res 0
       foreach arc $arclist {
          set res [expr {$res + [$G arc get $arc $attr]}]
       }
       return $res
    }}} capacity

  All in all, this is so much that maybe it is better to make a completely new adjacency matrix command.


tkt_uuid: 2801587fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: jpeg
priority: 5 Medium
foundin: None
title: ::jpeg::getThumbnail help example code
cmimetype: text/plain
submitter: didierprovost
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-06-05T19:38:22
comment:
  In ::jpeg::getThumbnail  help :
  If you open the file as given in the example : 
       set fh [open thumbnail.jpg w+]
  You get a corrupted thumbnail. In order to get a valid one, open it in binary mode :
       set fh [open thumbnail.jpg wb+]


tkt_uuid: 2801896fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: jpeg
priority: 5 Medium
foundin: None
title: jpeg package: adds support for GPS Exif tags
cmimetype: text/plain
submitter: mdplumlee
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-06-05T20:01:50
comment:
  I needed something to interpret GPS tags in Exif headers, so I found the jpeg package and added it.  Nice job whoever wrote the _exif routine--it was very easy to extend.  I haven't done a patch before, so I'm probably doing it all wrong--I'm attaching the whole file I updated, and just put comments in the vicinity of my changes (I didn't comment the place where I added an optional argument...)--look for "mdp".


tkt_uuid: 2804961fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 3 Low
foundin: None
title: combobox syntactic nit
cmimetype: text/plain
submitter: andreas_kupries
assignee: oehhar
closer: oehhar
closedate: 2009-06-12T07:44:01
comment:
  bwidget/combobox.tcl:28 (warnContinuation) possibly bad continuation line, blank line after backslash
          initialize {-relief sunken -borderwidth 2} \
                                                     ^


tkt_uuid: 2807147fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: buttonbox -homogeneous widths
cmimetype: text/plain
submitter: danckaert
assignee: hobbs
closer: oehhar
closedate: 2009-06-24T12:09:28
comment:
  In buttonbox.tcl, the code which is used to ensure homogeneous button widths is bad. It can't accomodate buttons of which the width changes after they are initially drawn. This can be solved by using grid's -uniform option instead of -minsize, as in the attached patch. The code is much cleaner too.


tkt_uuid: 2807160fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ComboBox should use unmanaged scrollwindow
cmimetype: text/plain
submitter: danckaert
assignee: hobbs
closer: oehhar
closedate: 2009-06-16T15:39:49
comment:
  When one of the values of a combobox contains a long string, not only the horizontal, but also the vertical scrollbar appears (even when there are only a few entries). It seems the window height is always [nr of entries]-1 in that case.

  Example:
    ComboBox .cb -textvariable v -values {a b somelooooooooooooooooooooooooongstring c d}
    pack .cb
  and click on the arrow button.

  The attached patch solves this.


tkt_uuid: 2807227fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ScrollableFrame issues
cmimetype: text/plain
submitter: danckaert
assignee: hobbs
closer: oehhar
closedate: 2009-06-24T11:35:45
comment:
  There are some problems with ScrollableFrame. The following code demonstrates them:

  pack [panedwindow .pw -orient vertical] -fill both -expand 1
  .pw add [set f [frame .pw.f -relief sunken -bd 1]] -minsize 30
  .pw add [set d [frame .pw.d -relief sunken -bd 1]] -minsize 30

  grid\
      [ScrollableFrame $f.sf -height 300 -yscrollcommand [list $f.yscroll set]]\
      [scrollbar $f.yscroll -orient vertical -command [list $f.sf yview]]\
      -sticky news
  grid rowconfigure $f 0 -weight 1
  grid columnconfigure $f 0 -weight 1

  set g [$f.sf getframe]

  update

  pack\
      [button $g.a -text A -command [list destroy $g.a]]\
      [button $g.b -text B -command [list destroy $g.a $g.b]]\
      [button $g.c -text C -command [list destroy $g.a $g.b $g.c]]\
      [button $g.d -text D -command [list destroy $g.a $g.b $g.c $g.d]]\
      [button $g.e -text E -command [list destroy $g.a $g.b $g.c $g.d $g.e]]\
      [button $g.f -text F -command [list destroy $g.a $g.b $g.c $g.d $g.e $g.f]]

  Now resize the panes of the panedwindow with the mouse (just a little bit). You will see that the scrollbar becomes active even though there is no reason (yet) for it.

  A second issue can be triggered by resizing the upper pane until just 2 or 3 of the buttons are still visible. Next, move the scrollbar down such that the last buttons (E and F) are visible. Now click the E button. You will see that the ScrollableFrame misbehaves.

  The attached patch solves these issues.


tkt_uuid: 2807256fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Combobox sets X-selection
cmimetype: text/plain
submitter: eriklns
assignee: oehhar
closer: oehhar
closedate: 2009-07-07T17:32:01
comment:
  When selecting an item in a Combobox, the X-selection is also set. Personally, I find this "feature" annoying. (I'm not sure about standards compliance, though.)

  The purpose of a combobox is to select an item from a list, not to select characters from a text for copy/paste actions.
  In case there is doubt about the usefulness of this feature, it could be made an option to the Combobox command.

  The attached patch against BWidget 1.8.0 turns this behaviour off.


tkt_uuid: 2811747fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: Tests for graph(ops) - Don't import struct::graph into ::
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-11-03T17:39:43
comment:
  Get rid of
     namespace import -force struct::graph
  in modules/struct/graph/tests/Xsetup.

  This can mask bugs [graph] vs [struct::graph] in graph operations, by making the command available in the global namespace.

  Also: graphops.test seems to depend on setup done by graph.test, cannot run without. Fix.


tkt_uuid: 2812473fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: math :: statistics
priority: 5 Medium
foundin: None
title: test-normal description is confusing or wrong
cmimetype: text/plain
submitter: anyeli
assignee: arjenmarkus
comment:
  The documentation for math::statistics::test-normal says it returns 1 if the data is distributed normally within the given confidence.
  I am not a statistician, but either I am severely confused or this is completely wrong.  It seems that this procedure returns 1 when the null hypothesis of a normal distribution should be rejected, which is the opposite of what I read.

  Also, the confidence specification seems backwards from the things I read---which admittedly are just Wikipedia and MATLAB help---which use significance (alpha), a small number, rather than confidence.  In fact, I don't even think confidence is the right word here, or at least I don't think you're talking about confidence intervals.

  package require math::statstics
  0.6


tkt_uuid: 2812832fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: statistics
priority: 5 Medium
foundin: None
title: unstable calculation of variance
cmimetype: text/plain
submitter: anyeli
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-07-14T11:12:22
comment:
  Variance is calculated in an unstable manner.

  Example (courtesy of Wikipedia):
  % ::math::statistics::var {4 7 13 16}
  30.0
  % ::math::statistics::var {1000000004 1000000007 1000000013 1000000016}
  0.0

  At the very least you should subtract off the mean before squaring to avoid losing significance.  For serious use you might also want to use compensated summation.


tkt_uuid: 2813069fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ftp
priority: 5 Medium
foundin: None
title: ftp client close hangs
cmimetype: text/plain
submitter: russellbell
assignee: andreas_kupries
comment:
  I've found a bug in the ftp client library 2.4.8 that bites
  when a connection is closed.  When you call ::ftp::Close $handle
  you sometimes get a TCL exception (thrown in an event handler
  so a catch around ::ftp::Close doesn't help) and sometimes
  you get an endless loop.  Depends on the ftp server you're
  talk to and doesn't happen consistently, but enough to be
  annoying.

  The faulty code is about line 35 of ::ftp::StateHandler which
  does "set number [gets $sock bufline]".  This code reads
  a continuation line, so normally isn't called after the
  socket is closed, but sometimes it is and an exception is
  the result.  The fix is to wrap in a catch.

  But then the second bug bites - this code is in a loop and
  if the gets returns <= 0, the loop is infinite.  The fix is to
  break from the loop, and change the code structure a little
  to ensure "if { [eof $ftp(CtrlSock)] } ..." gets called
  in this case.

  I believe this is a separate issue to 1076923 found by Keith
  Vetter - that was the gets on line 16 of ::ftp::StateHandler.

  If it's helpful I can provide source for the fix.


tkt_uuid: 2814050fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: fix [notebook itemconfigure -helptext]
cmimetype: text/plain
submitter: danckaert
assignee: hobbs
closer: oehhar
closedate: 2009-07-01T14:34:12
comment:
  This is a small fix for notebooks. When calling [itemconfigure -helptext] on a notebook tab, the helptext is currently not updated.
  The _set_help proc already contains code for checking whether the helptext has changed, but it is not called from itemconfigure.


tkt_uuid: 2814771fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: TkChat - Color Settings dialog bug
cmimetype: text/plain
submitter: tomk
assignee: eee
closer: eee
closedate: 2009-08-13T00:57:50
comment:
  TkChat v1.470 Using Tcl/Tk 8.5.6 - The "Color Settings" dialog resizes the button box instead of the dialog body when stretched vertially.


tkt_uuid: 2815302fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: Wrong usages of struct::set substract
cmimetype: text/plain
submitter: mantoniewski
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-07-10T16:27:06
comment:
  There are some wrong usages of "struct::set substract" command in graphops.tcl - Fleury and TarjanSub procedures and possibly more. 

  As "struct::set substract" works well only for arguments not containing whitespaces, changing it to "struct::set exclude" fixes the problem.


tkt_uuid: 2818958fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: linearalgebra
priority: 5 Medium
foundin: None
title: sizing of vectors
cmimetype: text/plain
submitter: dkf
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-07-20T10:47:25
comment:
  I was working (on http://rosettacode.org/wiki/Multiple_Regression#Tcl) with a collection of vectors which were both row-vectors and column-vectors (one being a transposition of the other) and I was trying to multiply them together to get a matrix. This was causing errors; apparently the 'shape' command from this package goes completely to pieces when faced with a list of length 1 (making everything else in the package fail miserably too).

  A scalar must be a 1x1 matrix. A vector must be a 1xN or Nx1 matrix. If these aren't true, many innocent algorithms die in a fire (and Carl Friedrich Gauss kills a kitten).


tkt_uuid: 2819151fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Development Tools
priority: 5 Medium
foundin: None
title: Link to SF webdav file upload form for releases
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-07-10T16:33:55
comment:
  The SF webdav file upload form for release archives is at.
  https://frs.sourceforge.net/webupload

  Save the info in the developer/release mgr docs.


tkt_uuid: 2820727fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: Linux standalone executable not working on x86_64
cmimetype: text/plain
submitter: christianrapp
assignee: patthoyts
comment:
  Using archlinux x86_64, just downloaded tkchat 1.465 standalone executable for linux. When i try to run it in a terminal i get:

  $  /home/saedelaere/Downloads/tkchat-linux-ix86
  couldn't load file "/tmp/tclfsB20G": libXft.so.2: wrong ELF class: ELFCLASS64
      while executing
  "load /home/saedelaere/Downloads/tkchat-linux-ix86/lib/tk8.5/../libtk8.5.so Tk"
      ("package ifneeded Tk 8.5.7" script)
      invoked from within
  "package require Tk  8.4"
      (file "/home/saedelaere/Downloads/tkchat-linux-ix86/bin/tkchat.tcl" line 36)
      invoked from within
  "source [file join $starkit::topdir bin tkchat.tcl]"
      (file "/home/saedelaere/Downloads/tkchat-linux-ix86/main.tcl" line 28)

  Some infos about my system
  $  uname -a
  Linux 2.6.30-ARCH #1 SMP PREEMPT Sat Jul 4 02:24:43 CEST 2009 x86_64
  tcl/tk 8.5.7

  Using a tclkit (8.5.1) and tkchat.kit works.

  Regards


tkt_uuid: 2820851fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: fix dynamichelp issues
cmimetype: text/plain
submitter: danckaert
assignee: nobody
closer: oehhar
closedate: 2009-07-14T09:23:14
comment:
  This patch fixes some issues with dynamic help. One of the issues is that help for a menu sometimes stays visible when the menu is unmapped (on Unix). This is an example script:

  pack [frame .f -width 200 -height 200]
  pack [label .l -textvariable statusvar]
  . configure -menu [menu .m -tearoff 0]
  .m add cascade -label "File" -menu [menu .m.f -tearoff 0]
  .m.f add command -label "New"
  DynamicHelp::add .m.f -type menu -variable statusvar
  DynamicHelp::add .m.f -type menu -index 0 -text "help for New"

  Now click on "File", and then move the mouse cursor upwards (out of the window), and click again. The menu is unmapped, but on Unix, the help stays visible. The patch should fix this.

  Other issues addressed in this patch are:
  - Make "-helpcmd" available also when dynamichelp is included in another widget.
  - Make sure that -helpcmd is always called at global scope (with uplevel #0).
  - Sometimes a <Leave> event may be called twice. Protect against this.
  - When _unset_help is called, the _top widget should only be destroyed when it is a balloon.


tkt_uuid: 2821416fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: smtp
priority: 5 Medium
foundin: None
title: smtp should not use [vwait]
cmimetype: text/plain
submitter: coldstore
assignee: mrose
comment:
  Since the smtp client uses [vwait] to run asynchronously, it cannot be used within an application which also uses [vwait].  Since that includes any networking program of any complexity, the smtp client's utility is substantially reduced.

  I have an event-driven smtp client written using coroutines and tcloo which doesn't suffer from this problem, to which you are welcome.

  The same problem appears (on cursory grepping) to be evident in several other tcllib networking packages including ldap, ftp and comm.


tkt_uuid: 2822970fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ScrollableFrame background
cmimetype: text/plain
submitter: danckaert
assignee: hobbs
closer: oehhar
closedate: 2009-07-17T15:27:10
comment:
  Here's another small patch for ScrollableFrame.
  When the frame does not take up the whole canvas space, the canvas background shows through. This is more apparent when using ttk, because the canvas is not themed. However, here's an example without ttk:

  option add *Canvas.background yellow
  grid\
      [ScrollableFrame .sf -yscrollcommand [list .yscroll set]]\
      [scrollbar .yscroll -orient vertical -command [list .sf yview]]\
      -sticky news
  grid rowconfigure . 0 -weight 1
  grid columnconfigure . 0 -weight 1
  set g [.sf getframe]
  grid [label $g.a -text AAAAAA] [label $g.b -text BBBBBBB]
  grid [label $g.c -text CCCCCC]


tkt_uuid: 2824771fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools test case 50.0.1 fails
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
comment:
  CVS head of tcllib and tcl 8.6, built on sparc solaris 8 using sun's c compiler.

  The following is one of several similar errors that occurred yesterday when I tried running the tcllib test suite against tcl 8.6 cvs head.

  ---- doctools-idx-50.0.1 start

  ==== doctools-idx-50.0.1 doctools::idx deserialize = docidx, nokeys, ok FAILED
  ==== Contents of test case:

              I deserialize = $data docidx
              doctools::idx::structure print [I serialize]
          
  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: Unable to locate or load plugin "docidx" (ERROR for slave interp
  1 : can not find channel named "stdout")
      while executing
  "::pluginmgr::Snit_methodload ::pluginmgr ::pluginmgr::Snit_inst1 ::doctools::id
  x::import::Snit_inst1::fmt-docidx ::doctools::idx::import::Snit_inst1::..."
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "$plugin load $format"
      (procedure "::doctools::idx::import::Snit_methodGetPlugin" line 12)
      invoked from within
  "::doctools::idx::import::Snit_methodGetPlugin ::doctools::idx::import ::doctool
  s::idx::import::Snit_inst1 ::IN ::IN docidx"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "$self GetPlugin $format"
      (procedure "::doctools::idx::import::Snit_hmethodimport_text" line 7)
      invoked from within
  "::doctools::idx::import::Snit_hmethodimport_text ::doctools::idx::import ::doct
  ools::idx::import::Snit_inst1 ::IN ::IN {[index_begin KWIC INDEX]
  [inde..."
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "$myimporter import text $data $format"
      (procedure "::doctools::idx::Snit_methodImport" line 17)
      invoked from within
  "::doctools::idx::Snit_methodImport ::doctools::idx ::doctools::idx::Snit_inst90
   ::I ::I docidx {[index_begin KWIC INDEX]
  [index_end]
  }"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "$self Import $format $data"
      (procedure "::doctools::idx::Snit_hmethoddeserialize_=" line 19)
      invoked from within
  "::doctools::idx::Snit_hmethoddeserialize_= ::doctools::idx ::doctools::idx::Sni
  t_inst90 ::I ::I {[index_begin KWIC INDEX]
  [index_end]
  } docidx"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "I deserialize = $data docidx"
      ("uplevel" body line 2)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== doctools-idx-50.0.1 FAILED


tkt_uuid: 2825354fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Tree node -helpcmd option
cmimetype: text/plain
submitter: danckaert
assignee: hobbs
closer: oehhar
closedate: 2009-07-23T08:01:08
comment:
  This patch ensures that the DynamicHelp -helpcmd option can be used in a Tree. Example:

  pack [Tree .t -padx 2]
  proc helpfor {n} {return "Help for $n"}
  .t insert end root node1 -text "Node 1" -helpcmd {helpfor node1}
  .t insert end root node2 -text "Node 2" -helpcmd {helpfor node2}
  .t insert end root node3 -text "Node 3" -helpcmd {helpfor node3}

  The patch also contains a slight visual adjustment of initial node of the tree. This is in fact a reversal of a patch which was introduced in version 1.49. I did not understand why this was changed back then. It made the tree appear more like a "fork" than a tree, which is also apparent in the example above.


tkt_uuid: 2828086fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Add <<TreeSelect>> event for keyboard navigation
cmimetype: text/plain
submitter: wordtech
assignee: hobbs
closer: oehhar
closedate: 2009-08-04T16:35:34
comment:
  The attached patch updates tree.tcl to support the <<TreeSelect>> virtual event for KeyPress-Up and KeyPress-Down. Many users use the keyboard to navigate tree widgets and this brings the BWidget tree in line with current UI best practices. 


tkt_uuid: 2829049fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: tklib
priority: 5 Medium
foundin: None
title: "failure" or missing feature in "getstring"
cmimetype: text/plain
submitter: martinlemburg
assignee: afaupell
comment:
  Hello,

  I would really like to see the attached changes in the package "getstring".

  Just because the current implementation has one bug and one annoyance:
  1. "wm withdraw" is called after the "UI" is already built, instead of right after creating the toplevel
  2. a given variable to contain the result of "getstring" is simply overwritten, instead of using its contents inside the entry and changing it at the end

  Best regards,

  Martin


tkt_uuid: 2831785fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: NoteBook page delete with destroyframe 0 has problems
cmimetype: text/plain
submitter: kjnash
assignee: damonc
closer: oehhar
closedate: 2009-08-04T06:58:09
comment:
  Using BWidget v1.8 via ActiveState teapot
  data($page,realized) should not be deleted if $destroyframe is 0

   # ---------------------------------------------------------------------------
   #  notebook.tcl
   #  This file is part of Unifix BWidget Toolkit
  -#  $Id: notebook.tcl,v 1.23 2005/01/26 01:01:26 hobbs Exp $
  +#  $Id: notebook.tcl,v 1.25 2009/07/01 14:41:30 oehhar Exp $
   # ---------------------------------------------------------------------------
   #  Index of commands:
   #     - NoteBook::create
  @@ -304,6 +304,7 @@
           destroy $path.f$page
       }
       _redraw $path
  +    unset data($page,width) data($page,realized)
   }


tkt_uuid: 2835712fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: statistics
priority: 5 Medium
foundin: None
title: interval-mean-stdev Seems to have a hard-coded variable n
cmimetype: text/plain
submitter: ericnelson101
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-08-12T18:25:08
comment:
  set erf1    0.682689492137
  set scaled1StdDev  [::math::statistics::interval-mean-stdev $data $erf1]
  can't read "student_t_table": no such variable

  The student_t_table variable is hard-coded somewhere in this function.


tkt_uuid: 2835744fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: tklib :: widget
priority: 5 Medium
foundin: None
title: widget:dialog button handling bug?
cmimetype: text/plain
submitter: andreas_kupries
assignee: hobbs
closer: hobbs
closedate: 2009-08-20T20:42:26
comment:
  The comments in the "close" method claim:
      # 'break' return code - don't withdraw
      # Withdraw on anything but 'break' return code
  for the handling of the results from the "-command" callback.

  However, as I found out this is not true if the dialog is configured -synchronous 1 (default).
  In that case the method "display" unconditionally withdraws the dialog.

  This affects -type okcancelapply, as the apply button will not act like it should, i.e. apply changes, keep dialog open.

  My guess is that this is a limitation of the "-synchronous 1" mode, and it simply has to be documented.

  The workaround is to make the dialog "-synchronous 0".
  I guess that is sensible anyway, due to the use of a "-command" callback.


tkt_uuid: 2840147fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: tar
priority: 5 Medium
foundin: None
title: Add prefix to name of file added to tarball
cmimetype: text/plain
submitter: lars_h
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-12-03T20:06:47
comment:
  The git-archive utility has an option --prefix described as:

    --prefix=<prefix>/
        Prepend <prefix>/ to each filename in the archive.

  I found this useful in the case that the the parent directory of what I'm wrapping up as a tarball isn't named the way I'd like root directory within the tarball to be named. However, I also needed to add a few files to the tarball, and my command-line tar didn't have a corresponding option. Therefore I turned to adding a -prefix option to the tcllib [tar::add] command.

  The main change needed to implement this was to split [tar::createHeader] into two commands [tar::statFile] and [tar::formatHeader], as [tar::createHeader] hardwired the in-archive name of a file to be the same as the name in the normal file system. I think this is a good change, as it also opens up for adding items to a tarball that don't first have to exist within the normal filesystem (a kind of [tar::put], if you will).

  Another change required was that [tar::writefile] takes another argument: the name to use in the archive. [tar::add] and [tar::create] have been modified accordingly.

  While testing this, I also discovered a bug in the current [tar::add]: one cannot in general assume that the end of an archive occurs 1024 bytes before the end of the file. The catch is that tarballs are written with a specific "blocksize" (often 20 records, i.e., 10Kb), and are supposed to consist of an integral number of complete blocks. Therefore there may be extra padding after the 1024 end-of-archive nulls, and it is then impossible to tell if an all-null record at the end of a tarball is nulls at the end of a file, end-of-archive nulls, or padding until the end of a block. The only safe way to find the end is to read the tarball from the beginning.

  I added a third option -quick to [tar::add] which selects the old seek-from-end method of finding where to put the header for the first new file, but made the default be to read the tarball from start.

  Being a tcllib developer, I can probably check this into CVS myself, but I think you should have a chance to look at it first.


tkt_uuid: 2840180fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: tar
priority: 5 Medium
foundin: None
title: Incorrect prefix/name split?
cmimetype: text/plain
submitter: lars_h
assignee: afaupell
comment:
  While digging around, I encountered a discrepancy between what the tar package does and how the tar file format is documented here:
  http://www.freebsd.org/cgi/man.cgi?query=tar&sektion=5&manpath=FreeBSD+8-current

  The problem is with how a filename is split between the name and prefix fields of the header, when the filename is longer than 100 characters. The tar package simply puts the last 100 characters in "name" and what comes before it in "prefix". That tar manpage rather says that the split _must happen at a slash_, and that a slash will be inserted between the prefix and name when joining the two up again.[Section "POSIX ustar Archives", description of "prefix"]

  I haven't been able to actually test what actual tar utilities do with name and prefix, however; some basic attempts (at tclsh prompt) of mine of making a tarfile with one item that has name "name" and prefix "prefix" just results in tar saying "This does not look like a tar archive" :-(


tkt_uuid: 2845453fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: ldap
priority: 5 Medium
severity: Minor
foundin: None
title: MessageReceiver fails to read sequence byte on empty socket
cmimetype: text/plain
submitter: kai-infopark
assignee: aku
closer: aku
closedate: 2456449.50274478
comment:
  A simple LDAP/SSL search query (objectclass filter, returning around 20 results) failed with the following message:
    Protocol error: Error reading SEQUENCE response for handle

  Debugging showed, that this occured when ldap::MessageReceiver tried to read the sequence byte. The reason was, that line 728
    728         foreach {code type} [ReceiveBytes $conn(sock) 1] {break}
  in combination with the following "default" branch of the switch statement expects the connection to return the byte immediately.

  This expectation was not met. I surrounded the above line with a loop which continues on "partial" results for some tries and limited time. The error disappeared this way. The byte could be read from the socket almost at the same millisecond, after 20-30 loops.

  More general, it is not wise to expect a non-blocking read to always return at least one byte.

  As a solution, either partial "No byte available" responses are dealt with in place, or a more sophisticated "Collect the given number of bytes (for some time)" method is called.

  The same query returned without an error when the non-secured ldap port (389) of the server was asked.


tkt_uuid: 2847341fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: md5
priority: 8
foundin: None
title: leak in md5 (critcl)
cmimetype: text/plain
submitter: msofer
assignee: patthoyts
comment:
  I confirmed the leak reported by echm [http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/a873bbc1ee78d776/b5ca31cdab5af4d6?lnk=gst&q=md5#b5ca31cdab5af4d6]

  The following script consumes ever increasing amounts of memory:

  % package require md5
  2.0.7
  % parray md5::accel
  md5::accel(critcl)   = 1
  md5::accel(cryptkit) = 0
  md5::accel(trf)      = 0
  % while 1 {md5::md5 testdata}

  % info patch
  8.5.7
  % parray tcl_platform
  tcl_platform(byteOrder)   = littleEndian
  tcl_platform(machine)     = x86_64
  tcl_platform(os)          = Linux
  tcl_platform(osVersion)   = 2.6.24-24-generic
  tcl_platform(platform)    = unix
  tcl_platform(pointerSize) = 8
  tcl_platform(threaded)    = 1
  tcl_platform(wordSize)    = 8


tkt_uuid: 2848168fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: crc
priority: 9 Immediate
severity: Minor
foundin: None
title: signmask incorrect in ::crc::Crc and ::crc::Crc32_tcl
cmimetype: text/plain
submitter: kchansen
assignee: aku
closer: aku
closedate: 2456449.50638971
comment:
  Both crc16.tcl and crc32.tcl use a variable named "signmask", that is constructed from another variable named "signbit".

  For 32-bit data, signbit is 0x8000000.

  For 32-bit CRCs, the signmask appears to be designed to mask off the high-byte, i.e. it should end up 0x00ffffff.  Signmask is computed as follows:

  set signmask [expr {~$signbit>>7}]

  Unfortunately when you paste this code into Tcl, (V8.4.14, V8.5.*, V8.6.*) you don't get 0x00FFFFFF, you get 0xFEFFFFFF.

  Now, this is *probably* a bug in EXPR or in the >> operator, but the code does not work the way it is currently written....


tkt_uuid: 2850031fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Tk hangs when creating MessageDlg with very long message
cmimetype: text/plain
submitter: grt
assignee: oehhar
closer: oehhar
closedate: 2009-09-03T17:34:57
comment:
  On my ActiveTcl 8.4.19 Windows Machine the following code freezes wish:

  package require BWidget
  set Msg [string repeat "########################\n" 1000]
  MessageDlg::create .tst -type user -buttons {OK Cancel} -message $Msg

  It's not best practice to let very long messages appear in that widget - but I think it should not freeze anyway.


tkt_uuid: 2853152fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: dns
priority: 5 Medium
foundin: None
title: fix async dns behaviour
cmimetype: text/plain
submitter: mezis
assignee: patthoyts
comment:
  In some cases, dns::resolve may end up closing its socket "twice". Since the socket name might have been re-allocated in the meantime, thi causes someone elese's socket to get closed.
  This patch fixes this by setting the socket name to "nil" just after closing it.


tkt_uuid: 2855302fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: LexNormalize should be a public routine
cmimetype: text/plain
submitter: apnadkarni
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-09-14T17:11:24
comment:
  It is often useful to be able to lexically normalize a path (removing . and ..) without going to the disk and without resolving links. fileutil already has a routine LexNormalize that does this but it is internal and not documented. This is a request to make the command an "official" part of the interface and document it.

  /Ashok


tkt_uuid: 2860843fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: csv
priority: 5 Medium
foundin: None
title: csv.man typos
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-09-17T20:30:57
comment:
  There are two minor typos in the csv.man file - the string "spcified" should be "specified" and the string "an representatation" should be "a representation".

  I am attaching a patch to this report that fixes these two nits.


tkt_uuid: 2861189fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ncgi
priority: 5 Medium
foundin: None
title: decode and encode: inconsistent handling of line breaks
cmimetype: text/plain
submitter: thomasmaeder
assignee: welch
comment:
  ncgi::encode (and http::formatQuery, for that matter) encodes "\n" as "%0d%0a". ncgi::decode decodes this sequence into "\r\n".

  The result is that if a multi-line string is passed from a program to a CGI script that uses ncgi for dealing with the parameters, the CGI script doesn't see the same string the program intended to send it.

  If implemented correctly, ncgi::encode and ncgi::decode should therefore be inverse operations, and the one to be adapted seems to be ncgi::decode.


tkt_uuid: 2866540fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: widget
priority: 5 Medium
foundin: None
title: calendar widget -textvariable does not work both ways
cmimetype: text/plain
submitter: lvirden
assignee: hobbs
closer: haertel
closedate: 2009-09-26T12:46:18
comment:
  I tried the following example, based on information from the man page:
   tclsh8.6
  % package require widget::calendar
  0.91
  % set t [widget::calendar -textvariable ::a .t]
  unknown subcommand "-textvariable": namespace ::widget::calendar does not export any commands
  % set t [widget::calendar .t -textvariable ::a]
  .t
  % pack .t
  % set ::a 9/25/2009
  9/25/2009
  % puts $::a
  09/21/2009
  % puts $::a
  09/26/2009
  % set ::a 10/10/2010
  10/10/2010
  % 
  When I clicked on different days on the widget, $::a changed value. HOWEVER, when I change the text variable, the widget's display does not change to reflect the difference.


tkt_uuid: 2872536fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: stripPath checks partial path components
cmimetype: text/plain
submitter: apnadkarni
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-10-27T19:18:44
comment:
  Example:
  (woof) 51 % fileutil::stripPath c:/temp c:/tempx/foo/bar
  foo/bar

  Should return c:/tempx/foo/bar

  My guess is it does a prefix string comparison without checking if next char is a dir seprator or not.


tkt_uuid: 2881739fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: interpolate
priority: 5 Medium
foundin: None
title: Cubic spline interpolation is wrong
cmimetype: text/plain
submitter: jmsanche1977
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-10-22T18:24:32
comment:
  Hi,

  I have discovered that the cubic splines interpolation in math::interpolate returns wrong results.

  Check this little example of a cuadratic function (from the tests):

      set xcoord {1 2 3 4 5}
      set ycoord {1 4 9 16 25}
      set coeffs [::math::interpolate::prepare-cubic-splines $xcoord $ycoord]

  I see a strange behaviour when evaluating the function close to one of the interpolated points:
  ::math::interpolate::interp-cubic-splines $coeffs 2.0 -> Result: 4.0
  ::math::interpolate::interp-cubic-splines $coeffs 1.96 -> Result:3.847744 (Seems ok)
  ::math::interpolate::interp-cubic-splines $coeffs 2.04 -> Result:4.19061942857 (Seems slightly inaccurate...)

  ::math::interpolate::interp-cubic-splines $coeffs 2.96 -> Result:9.58423771429 (Fully wrong! It is even much higher than 3^2)
  ::math::interpolate::interp-cubic-splines $coeffs 3.0  -> Result: 9.0
  ::math::interpolate::interp-cubic-splines $coeffs 3.04 -> Result:9.26423771429

  From this results it also looks like there is a discontinuity at x=3.0, which can not be.
  ::math::interpolate::interp-cubic-splines $coeffs 2.9999 -> Result: 9.85645715143
  ::math::interpolate::interp-cubic-splines $coeffs 3.0001 -> Result: 9.00065715143

  I suggest that somebody should check the algorithm implementation.

  As a comparison and additional help, here are the results I get when I use a cubic spline interpolation algorithm coded in Fortran (also assuming zero second derivative at the extremes of the interpolated interval):
       1.9600000000000    3.8477440000000
       2.0000000000000    4.0000000000000
       2.0400000000000    4.1563337142857
  ...
       3.9600000000000    15.676333714286
       4.0000000000000    16.000000000000
       4.0400000000000    16.327744000000

  Best regards,
  JM


tkt_uuid: 2886893fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: ldap
priority: 5 Medium
foundin: None
title: fix documentation for ldapx's ldap class
cmimetype: text/plain
submitter: cmay
assignee: mic42
comment:
  ldapx's ldap class documentation contains two errors showing "::ldapx::ldap create" when it should be "::ldapx::entry create".  Patch attached.


tkt_uuid: 2890065fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: stringprep
priority: 5 Medium
foundin: None
title: Stringprep fixes (bidi and folding)
cmimetype: text/plain
submitter: teopetuk
assignee: patthoyts
closer: patthoyts
closedate: 2009-11-02T00:18:53
comment:
  Hi!

  I'd like to propose three fixes for the stringprep module:

  1) There was a bug in prohibited_bidi procedure (variable $first_bidi was never assigned and $have_l calculated incorrectly - it should cumulatively set to 1 if there are left-to-right characters in a string).
  2) The script tools/gen_stringprep_data.tcl failed to process one folding case (for character U+33C6) in table B.2 because it couldn't process mapping to 4 symbols (only up to 3).
  3) (trivial bug) In register procedure -prohibit is a number but it was initialized as an empty string.

  The attached patch fixes these bugs and contains diff  for regenerated stringprep_data.tcl

  The patch also includes fixes to three failed tests (bugs 1897839, 1897841, 1897843): tests for failed bidi are passed now if their results are changed from invalid_bidi to prohibited_bidi (as in stringprep::stringprep). Test for nameprep can't be fixed because it contains symbol U+1D7BB which can't be represented in Tcl, so I left this test as is (with knownBug status) and added another one without U+1D7BB.


tkt_uuid: 2890743fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: comm
priority: 5 Medium
foundin: None
title: comm crashes on large amount of data from server
cmimetype: text/plain
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-11-04T17:52:35
comment:
  Since Tcl 8.0, using lindex and lreplace forces comm to have received a well-formed list from the comm server. If there is a large amount of data from the server, it is possible that the list does not become well-formed before running up against memory constraints resulting in a crash.


tkt_uuid: 2895994fffffffffffffffffffffffffffffffff
type: Patch
status: Open
resolution: None
subsystem: tklib :: tooltip
priority: 8
foundin: None
title: extend tooltip to the treeview widget
cmimetype: text/plain
submitter: keithv
assignee: hobbs
comment:
  Using the same logic as listbox, extend tklib tooltip to work with ttk::treeview.

  Don't know how to update the doc, but here's some demo code
  pack [::ttk::treeview .tree -height 15 -show tree]
  foreach txt {first second third} {
      set id [.tree insert {} end -text "$txt item" -open 1]
      ::tooltip::tooltip .tree -item $id "tooltip for $txt item"
      for {set i 0} {$i < 3} {incr i} {
          set child [.tree insert $id end -text "child $i"]
          ::tooltip::tooltip .tree -item $child "tooltip for child $i"
      }
  }


tkt_uuid: 2897419fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: statistics
priority: 8
foundin: None
title: beta-distribution-1.0 test failure (sol 2.8, sparc, 8.4.19)
cmimetype: text/plain
submitter: andreas_kupries
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-11-18T08:00:15
comment:
  Enclosed a test failure on a solaris 2.8 / sparc machine. Tcl 8.4.19/HEAD.

  ==== beta-distribution-1.0 Test pdf-beta FAILED
  ==== Contents of test case:

      set x [list  [::math::statistics::pdf-beta 1.3 2.4 0.2]  [::math::statistics::pdf-beta 1 1 0.5]  [::math::statistics::pdf-beta 3.7 0.9 0.0]  [::math::statistics::pdf-beta 1.8 4.2 1.0]  [::math::statistics::pdf-beta 320 400 0.4]  [::math::statistics::pdf-beta 500   1 0.2]  [::math::statistics::pdf-beta 1000 1000 0.50]]

  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: floating-point value too small to represent
      while executing
  "expr {exp($term1 + $term2)}"
      (procedure "::math::statistics::pdf-beta" line 24)
      invoked from within
  "::math::statistics::pdf-beta 500   1 0.2"
      invoked from within
  "list  [::math::statistics::pdf-beta 1.3 2.4 0.2]  [::math::statistics::pdf-beta 1 1 0.5]  [::math::statistics::pdf-beta 3.7 0.9 0.0]  [::math::statist..."
      invoked from within
  "set x [list  [::math::statistics::pdf-beta 1.3 2.4 0.2]  [::math::statistics::pdf-beta 1 1 0.5]  [::math::statistics::pdf-beta 3.7 0.9 0.0]  [::math::..."
      ("uplevel" body line 2)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: ARITH UNDERFLOW {floating-point value too small to represent}
  ==== beta-distribution-1.0 FAILED

  Any ideas where I should look in code or test for the problem ?


tkt_uuid: 2898640fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: snit
priority: 5 Medium
foundin: None
title: "info instances" method fails
cmimetype: text/plain
submitter: duquette
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-11-16T23:54:05
comment:
  If a snit::type or snit::widget's type namespace has a child namespace other than the instance namespaces, then the call "$type info instances" will fail with the following error:

      can't read "instance": no such variable

  The error is in the routine ::snit::RT.typemethod.info.instances, which loops over [namespace children $type], thereby presuming that all child namespaces are instance namespaces.  This need not be the case.  The call to [namespace children] should use a pattern that matches "${type}::Snit_inst*".

  The same idiom also exists in ::snit::RT.typemethod.destroy, which implements the "$type destroy" command.


tkt_uuid: 2903927fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Development Tools
priority: 5 Medium
foundin: None
title: tklib test suite failure on CVS head
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-11-25T20:02:18
comment:
  I configure and install tklib, then I type:

  $ gmake test
  /projects/sprs_lwv/tcl86/bin/tclsh8.6 `echo ../sak.tcl` test
  Command missing

      test -- Execute testsuites

      sak test run ?-s|--shell PATH? ?-l|--log STEM? ?-g|--valgrind? ?-v? ?MODULE ...?

          Run the testsuites of the specified modules, using the shell
          running SAK for the testsuites as well. If no modules are
          specified the testsuites of all modules are run.

  :
  and more stuff
  :
  gmake: *** [test] Error 1


tkt_uuid: 2906306fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: md5
priority: 5 Medium
foundin: None
title: md5::md5 -file option error on close
cmimetype: text/plain
submitter: coldstore
assignee: patthoyts
comment:
  calling md5:
     set result "WUB[::md5::md5 -hex -file [dict get $req -file]]"

  bgerror: {can not find channel named "file51"} {-code 1 -level 0 -errorcode {TCL LOOKUP CHANNEL file51} -errorinfo can\ not\ find\ channel\ named\ \"file51\"\n\ \ \ \ while\ executing\n\"close\ \$opts(-channel)\"\n\ \ \ \ (procedure\ \"::md5::md5\"\ line\ 44)\n\ \ \ \ invoked\ from\ within\n\"::md5::md5\ -hex\ -file\ \[dict\ get\ \$req\ -file\]\"\n\ \ \ \ (procedure\ \"etag\"\ line\ 4)...

  pardon my backslashes.


tkt_uuid: 2906751fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
title: right and left axes confused
cmimetype: text/plain
submitter: kennykb
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-12-10T09:53:19
comment:
  If I create an XYplot with a right axis, the data are displayed in the correct locations, but the left axis's ticks show the scale of the right axis.  The right axis's ticks show the correct scale, but there doesn't seem to be any way to set their format.

  The attached script demonstrates the problem.


tkt_uuid: 2907556fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: ncgi
priority: 5 Medium
foundin: None
title: importFile fails, if the client filename contains a ;
cmimetype: text/plain
submitter: fridolin
assignee: welch
comment:
  The problem is in parseMimeValue. It's to simple to split by ;

  I attach parseMimeValue.tcl. It simply contains the modified proc parseMimeValue.


tkt_uuid: 2909184fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tklib: request for new module
priority: 5 Medium
foundin: None
title: new menubar command
cmimetype: text/plain
submitter: tomk
assignee: andreas_kupries
closer: tomk
closedate: 2009-12-18T01:57:20
comment:
  I have written a menubar command that I think could be a candidate for include in tklib at some point in the future. I have attached the code (tar.gz) for you to try out and give me your thought and suggestions. The code is pure tcl/tk but makes use of TclOO so will need 8.6. The tarball contains a man page (created with doctools) which explains the new command. The tarball also contains a vfs directory which has the menubar code (in lib) and demo application code that you can take a look at to see how the commands can be used on an application. 

  To get a feel for what the new menubar command can do create multiple toplevels (using New). Tearoff menus for each of the toplevels and then play with the check buttons and radio buttons. Next do File->Show Macro Menu in one of the toplevel windows then tearoff the marco menus and play with them.

  Tom Krehbiel


tkt_uuid: 2909962fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: json
priority: 5 Medium
foundin: None
title: Faster, more readable implementation of json parser
cmimetype: text/plain
submitter: thomasmaeder
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-12-10T17:51:14
comment:
  When parsing documents of some nontrivial size (i.e. >100kB), I have found the json parser package 1.0 to be far too slow.

  Here is a considerably faster implementation (I have measured speed gains of a factor of 30). The main difference is that a regular expression is used for tokenizing the json text.

  This means that the parsing process restrict itself to a sequence of recognized tokens; it is blind to non-whitespace text between recognized tokens. I have therefore added a proc json::validate which can be used to test the validity of the entire text.

  I have not touched the *2json procs.

  The code is commented according to our internal guidelines; adaptations to the tcllib guidelines may thus have to be made if it is to be published in a future tcllib release.

  I haven't changed the package version number, and my CVS has tampered with the CVS mark in the header.


tkt_uuid: 2910682fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: yaml
priority: 5 Medium
foundin: None
title: yaml's dict package needs
cmimetype: text/plain
submitter: dgp
assignee: kanryu6
comment:
  Testing tcllib-1.12 with Tcl 8.4.19, I see:

  [*   ]  [8.4.19]  yaml                  Error in huddle.tcl: bad subcommand "with": must be append, create, ...

  The [dict with] command is not part of Tcl 8.4, and
  the [package require dict] is apparently getting a
  version of the dict package not recent enough to
  have the required subcommand.  Adding a version
  requirement should help guard against this.

  Also, the stanza,

  if {$::tcl_version < 8.5} {
      package require dict
  }

  is buggy.  Use [package vcompare]
  instead of trying to treat version numbers
  as if they were real decimal numbers.


tkt_uuid: 2912295fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Documentation
priority: 5 Medium
foundin: None
title: random(n) manpage needs to be renamed
cmimetype: text/plain
submitter: bharder
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-12-11T18:23:24
comment:
  simulation::random has a manpage random(n) which has a naming collision w/ the memchan projects random(n) manpage. As discussed in #tcl with Andreas, error is in tcllib.


tkt_uuid: 2913700fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Rejected
subsystem: mime
priority: 5 Medium
foundin: None
title: extra character in range [!..~]
cmimetype: text/plain
submitter: jeremy_c
assignee: eee
closer: eee
closedate: 2013-01-11T03:59:53
comment:
  When parsing email messages, I ran across 1 message of thousands that mime would not parse. It's a spam message, none the less, it should parse? The error is:

  expecting character in range [!..~]
      while executing
  "$state(encoding) -mode decode  -- $state(string)"
      (procedure "mime::getbody" line 104)
      invoked from within
  "mime::getbody $m"
      (procedure "_body" line 5)
      invoked from within
  "_body $m"
      (procedure "insert" line 55)
      invoked from within
  "insert $content"
      (procedure "import_file" line 17)
      invoked from within
  "import_file {*}$args"
      (procedure "::mailroom::message::import" line 5)
      invoked from within
  "::mailroom::message import -file $filename"
      ("foreach" body line 3)
      invoked from within
  "foreach filename $messages {
    puts "Importing $filename"
    ::mailroom::message import -file $filename
  }"
      (file "test.tcl" line 12)


tkt_uuid: 2915921fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
title: Add commands for extended punctuation (em-dash, en-dash)
cmimetype: text/plain
submitter: flatworm
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-07-06T18:49:44
comment:
  It would be convenient to have a set of markup commands which would produce special punctuation signs on output.
  Of most interest are "wide dashes", namely, em-dash and en-dash.
  Such commands could be named as [mdash] and [ndash] respectively, and produce:
  [mdash]: &mdash; in HTML and \(em in nroff;
  [ndash]: &ndash; in HTML and \(en in nroff.

  Ideally, it would be nice to have a generic framework for defining special markup commands which would generate assigned Unicode characters on output, but I think this can't play together with nroff as it's not yet really Unicode-aware (while it's being developed to finally become UTF-8 compliant).
  So the two commands I proposed above could facilitate creation of a bit more beautiful manpages while being portable.


tkt_uuid: 2926387fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: csv
priority: 5 Medium
foundin: None
title: csv::read2queue mishandles embedded newlines
cmimetype: text/plain
submitter: dvrsn
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-01-19T20:22:49
comment:
  Just a typo.  read2queue correctly buffers incomplete lines, but then calls split on the last line read rather than on the buffered multiline data.  


tkt_uuid: 2928355fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ftpd
priority: 5 Medium
foundin: None
title: ftp::Rename causes ftpd to crash
cmimetype: text/plain
submitter: martinao
assignee: andreas_kupries
comment:
  Calling ftp::Rename as client causes the ftp-daemon into which I logged in to crash in proc ::ftpd::command::RNTO, because the variable sock is unknown. Including "upvar #0 ::ftpd::$sock data" - as used in the other procs - resolves the application error.


tkt_uuid: 2933130fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: fuzzy
priority: 5 Medium
foundin: None
title: math::fuzzy::tlt returns incorrect value
cmimetype: text/plain
submitter: scottbutcher
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2010-01-18T10:32:05
comment:
  [::math::fuzzy::tlt 1.0 1.1] returns 1 which is correct.
  [::math::fuzzy::tlt 1.1 1.0] however, also returns 1 which is not correct.

  (Tcl) 37 % package require math::fuzzy
  0.2
  (Tcl) 38 % ::math::fuzzy::tlt 1.0 1.1
  1
  (Tcl) 39 % ::math::fuzzy::tlt 1.1 1.0
  1


tkt_uuid: 2935339fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftpd
priority: 5 Medium
foundin: None
title: ::ftpd::config not idempotent
cmimetype: text/plain
submitter: keithv
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-01-20T18:16:25
comment:
  Calling ::ftpd::config a subsequent time with a different option resets all previously set options. The problem is is that it uses cmdline::getoptions but supplies the application defaults for unspecified options instead of current values.

  Example:
   ::ftpd::config -authUsrCmd myAuthUsrCmd
   ::ftpd::config -logCmd myLogCmd 
  ==> the authUsrCmd has been reset


