# ticket

tkt_uuid: 1471885fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
resolution: Invalid
title: snit2.tcl - faulty "in" keyword
comment:
  Don't know what the deal is..


  -@- -) tclsh
  % info tclversion
  8.5
  % info patchlevel
  8.5a2
  % package require snit
  2.0
  % snit::type dog { }
  syntax error in expression "$name in $arglist": extra 
  tokens at end of expression


  So I look in the source and find
      if {$name in $arglist} {
  replace it with
      if {[lsearch $arglist $name] != 1} {
  and recompile which fixes that 'bug'.


  -@- -) tclsh
  ...
  % snit::type dog { }
  ::dog
  % snit::type dog {option -color brown}
  syntax error in expression "$option in $compile
  (delegatedoptions)": extra tokens at end of expression


  So I find all instances of:
      if {X in Y} {
  replace them with
      if {[lsearch Y X] != 1} {
  and recompile to fix.


  But what gives? I can't find "X in Y" used anywhere 
  else in tcllib, and the only clue I have is the "in" 
  procedure for xifo objects.

  Dylan.


tkt_uuid: 1061100fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: dns
priority: 5 Medium
foundin: None
resolution: Works For Me
title: ip::equal should only look at significant bits
comment:
  It seems that the comparison, the two must have identical bits in the 
  longest match, but I think what is actually wanted is identical bits in 
  the shortest match.  

  Both the first and second comparisons should match, but the
  first succeeds and the second doesn't.  The third succeeds
  when I make sure that the longest has the same bits as the
  shortest.

  The fourth example is what I would use this for most commonly (is 
  this address a part of this subnet - would it match a route in the
  routing table, eg)?  However it will always fail since the subnet
  doesn't have all the significant bits of the /32.  

  I hope this is a bug and not purposeful because I would really like the 
  other feature.  :)

  % ip::equal 129.12/16 129.12/24
  1
  % ip::equal 129.12/12 129.12/16
  0
  % ip::equal 129/12 129/16
  1

  % ip::equal 129.12/16 129.12.1.1/24        
  0

  % ip::equal 129.12/16 129.12.1.1
  0
  % ip::equal 129.12/16 129.12.0.1/24
  1
  % ip::equal 129.12/16 129.12.1.1/24        
  0


tkt_uuid: 681119ffffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: bwidget - Add percentage text to progressbar
comment:
  Attached is a patch that shows the percentage of the 
  progressbar.  This new behavior is optional and by 
  default, it is disabled.


tkt_uuid: 2144802fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: snit
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: snit's from command underdocumented, and possible flaw
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: 1416774fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Fixed
title: mime: test suite bugs
comment:
  with -debug 1:

  * mime 1.4.1
  test name 'mime-7.1' re-used; prior use in
  /local/src/tcllib/modules/mime/mime.test
  env array elements created:     TZ


tkt_uuid: 520907ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Out of Date
title: Notebook tab color bug (and patch)
comment:
  Motivation:

  Using another color than the standard grey, I saw that
  the Notebokk tabs do not honor the chosen background
  color. The submitted patch goes a step further and adds
  a -tabbackground (similar to -activebackground) option
  to be able to specify another colour if wanted.

  The attached tar contains a diff to the actual head,
  the complete new notebook.tcl source and the updated
  documentation should the patch be accepted.


tkt_uuid: 1385688fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: pop3
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: pop3 - New retrieval method + minor performance improvement
comment:
  Attached is the entire pop3.tcl with the proposed 
  changes.  I took the liberty of bumping up the 
  version from 1.6.3 to 1.7.  Note that this code has 
  actually been in operation for almost two years.

  First a minor performance improvement in RetrFast - 
  don't spend time splitting potentially large message 
  if not doing any debug logging.

  Second is a new retrieval method - tofile.
  Since POP3 messages can be very large, with 
  attachments that may never need to be processed in 
  tcl, to minimize memory usage, it may be best to 
  write the retrieved message to a temp file and return 
  the temp filename instead of the entire message.

  # Alex Hisen (alex@am.net) 2005-12-18:
  # In order to provide support for the new tofile 
  retrieval method
  # we need a way to generate temporary file 
  paths/names.
  # We first try to use an AOLserver command if 
  available.
  # If not we try to see if our version of Tcl supports
  # the file tempfile subcommand (see TIP #210:
  # http://www.tcl.tk/cgi-bin/tct/tip/210.html )
  # Finally we fallback to the tcllib fileutil package.
  # Note that our package require fileutil is caught, 
  so even
  # if you don't have any of the three methods, this 
  package
  # will work fine as long as you don't use tofile 
  retrieval.
  #
  # The Tempfile proc we create in our namespace 
  operates
  # the way TIP #210 prescribes - it opens the file for 
  write,
  # returns the open file channel, and sets the 
  supplied variable
  # to the full path and name of the created temporary 
  file. 


tkt_uuid: 526404ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: tclbench
priority: 5 Medium
foundin: None
resolution: Accepted
title: new [catch] benchmark: complex bodies
comment:
  On finding an error, [catch] scans all exceptionRanges
  of the bytecode. I am planning to patch
  GetExceptRangeForPc (in generic/tclExecute.c) with a
  faster algorithm (see Tcl-patch  #453709).

  I enclose here a patch which is necessary to illustrate
  the improvement, as it is only important when [catch]
  is part of a complex proc body, with many ranges and
  many nesting levels.

  Any comments before I commit?


tkt_uuid: 459186ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: stats - deprecated
priority: 4
foundin: None
resolution: Out of Date
title: counter & stats modules are almost same
comment:
  A cursory look at the diffs of counter.tcl and stats.tcl files
  gives the impression that both are essentially the same.
  Moreover, the ChangeLog file under counter module says:

  2000-10-02  Brent Welch <welch@ajubasolutions.com>

          * NAME CHANGE from "stats" to "counter"
          * counter.tcl: Changed shading of histogram labels.


  I think having two such modules with almost the same 
  functionality can lead to several problems, including confusing
  users on which module to use as well as code maintenance.

  Therefore, it would be best to delete one of the two modules
  -- I don't care which one. It it is not possible to delete one of the
  modules then the procs common to both should be merged into
  a single new library module and then both the modules should 
  refer/call the procs in the new library module.


tkt_uuid: 548832ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Fixed
title: Tcl version of mime::qp_encode broken
comment:
  The mime package has a preference for Trf's
  quoted-printable command, but falls back to a pure Tcl
  implementation when Trf is not present.

  In tcllib 0.8 (mime package version 1.2 iirc),
  mime::qp_encode correctly encoded the equal sign as
  =3D.  Currently in tcllib 1.2 (mime package version
  1.3.1) mime::qp_encode does NOT encode the equal sign. 
  This causes the quoted-printable output of the mime
  package to not be decodable by many other programs
  (such as pine).

  A (rather simple) patch is attached.


tkt_uuid: 457489ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
title: httpd
comment:
  Add the kernel of an HTTP server as module.
  Just the core part, i.e. collection of incoming
  requests. Dispatch via a singe callback. Everything
  else can be grafted to this from there.

  Not a replacement for TclHTTPd, much more lightweight
  Could be used as part of TclHTTPd. See the ftpd
  module for an example (No storage access in the
  module itself, only hooks to delegate this to the
  sourrounding code).

  Jeff mentioned a micro server used in the testsuite
  of tcl. This could be a useful starting point.


tkt_uuid: 2418580fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: log
priority: 5 Medium
foundin: None
resolution: Fixed
title: log debug level is suppressed by default
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: 486547ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: struct :: graph
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: note for future struct::graph developmen
comment:
  Perl has a number of modules dealing with graphs -
  perhaps some useful code could be garnered by looking
  at modules such as
  http://www.cpan.org//authors/id/N/NE/NEILB/ where the
  author has a collection of
  modules for reading and writing directed graphs in a
  variety of formats. 


tkt_uuid: 1951544fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 6
foundin: None
title: YAML module add
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: 1099581fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Accepted
title: New module submission: docstrip
comment:
  This is a suggested new module for tcllib, containing two 
  packages 'docstrip' and 'docstrip::util'.

  What the docstrip package provides is primarily the ability 
  to use source files that are not in the traditional "raw code" 
  form, but may contain also much other material (typically 
  documentation). Secondarily this makes it convenient to use 
  a form of literate programming that is very common in the 
  LaTeX community also for Tcl programs.

  (For an example, see
    http://cvs.sourceforge.net/viewcvs.py/alphatcl/Developer/
  Source/dialogs/dialogsNew.dtx?rev=HEAD&view=log   
  (source file)
  and
    http://cvs.sourceforge.net/viewcvs.py/alphatcl/Help/
  Dialogs%20Help.pdf?rev=HEAD&content-type=application/
  pdf   (typeset form of the above)
  .)

  The attached archive contains seven files.
    docstrip.tcl
    docstrip.man
    docstrip.test
    docstrip_util.tcl
    docstrip_util.man
  are the traditional .tcl sources, doctools-style 
  documentation, and test suite required a tcllib module. The 
  sixth file
    tcldocstrip.dtx
  is the _actual_ source for the entire module. The first five 
  files can be regenerated from it by LaTeXing the seventh file
    tcldocstrip.ins
  For what good would a source documentation system be if 
  one couldn't use it to document itself?


tkt_uuid: 2691870fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
resolution: Fixed
title: determineScale with close numbers
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: 1034580fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: htmlparse
priority: 5 Medium
foundin: None
resolution: Fixed
title: Failure in parsing <??? /> tags
comment:
  It seems that htmlparse module failes to handle tags of 
  the form <tag_name attr_1=val ... />. A quick fix is the 
  following:

  Add to line 329 of htmlparse.tcl:

  # Convert the HTML string into a script.
  set sub "\}\n$cmd {\\1} {/} {\\2} \{"
  regsub -all -- {<([^\s>]+)\s*([^>]*)/>} $html $sub 
  html
  set sub "\}\n$cmd {\\2} {\\1} {\\3} \{"
  regsub -all -- {<(/?)([^\s>]+)\s*([^>]*)>} $html $sub 
  html

  I simply add a new regular expression, that handles only 
  this special case.

  George


tkt_uuid: 453519ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 7 High
foundin: None
resolution: Out of Date
title: 10.5 Needs Tk 8.4 (TIP 44) update
comment:
  Question 10.5 refers to redefining the commands
  [tk{Text|Entry}Insert] and accessing the 
  variable tkPriv to implement an overwrite
  mode for the text or entry widgets.

  These instructions are out of date now that
  private internal commands of Tk have been
  moved into the ::tk namespace for Tk 8.4
  (see TIP 44).


tkt_uuid: 1272836fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math :: bignum :: float
priority: 5 Medium
foundin: None
resolution: None
title: math::bigfloat - failed tests with Tcl 8.5
comment:
  ==== bigfloat-round-1.0 eval : 'tostr [round [fromstr
  $x]]' FAILED
  ==== Contents of test case:
  uplevel 1 $code
  ---- Result was:
  1
  ---- Result should have been (exact matching):
  0
  ==== bigfloat-round-1.0 FAILED


  ==== bigfloat-round-1.0 eval : 'tostr [round [fromstr
  $x]]' FAILED
  ==== Contents of test case:
  uplevel 1 $code
  ---- Result was:
  -1
  ---- Result should have been (exact matching):
  0
  ==== bigfloat-round-1.0 FAILED


tkt_uuid: 547245ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 8
foundin: None
resolution: Fixed
title: Tree widget -selectcommand
comment:
  This option is not documented.

  Usage of this option (see method selection) is 
  incomplete. IOW, we currently cannot use it to track 
  all changes to the selection.

  A patch will be supplied ...


tkt_uuid: 2840180fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: tar
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Incorrect prefix/name split?
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: 905132ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Accepted
title: time.tcl (version 1.8) fails to catch TCP connection timeout
comment:
  time.tcl fails to catch a timeout on the TCP socket
  connect, though it handles the UDP situation correctly.
   When used in TCP mode, either without the UDP package
  loaded or by specifying -protocol tcp, if there is
  nothing listening on the port of the specified server,
  the program ends with "connection refused".

  Also - this package is MISREPRESENTED. It does NOT
  implement the Network Time Protocol, RFC 1305, port
  123, nor does it claim to. It implements RFC 868, the
  system-independent time protocol, port 37, often
  implemented with other "simple server" protocols, like
  echo, chargen, and so forth (on Unix-derived systems,
  right in inetd). Whoever registered this within the tcl
  offering as NTP didn't do their homework.

  To make matters worse, if you really connect this thing
  to the REAL ntp on port 123, it doesn't recognize the
  fact, and it returns a WRONG VALUE. If I get time, I'll
  see if I can get it to return an error instead of a
  wrong value, but with the early, simple protocols,
  that's not always practical. I will also see how
  difficult it would be to get a value from the REAL NTP,
  though I'm not going to attempt to implement the
  convergence algorithms, just grab the time - though
  that isn't quite what it was intended for.


tkt_uuid: 1430694fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: smtp
priority: 7 High
foundin: None
resolution: Not Applicable Here
title: smtp or socket issue causes error 400 in Windows XP Pro
comment:
  I thought I had submitted this back in 2005 but I do 
  not see it in the bug database so I am sumbitting 
  again.

  I am using tcllib mime and smtp to send email from a 
  tcl tool. Unfortunately, it seems that a socket error 
  is being thrown if the body size gets beyond around 
  10KB. I'm unsure if it's a socket issue or a tcllib 
  issue. It seems to be consistent as I have tried this 
  with 3 different body texts. I already sumbitted this 
  to ActiveState and they referred me over here. Please 
  see the submission on ActiveStates bug system. The 
  bug ID is 42067. I have upload several files there. I 
  would really appreciate it if you guys could take a 
  look at this.

  Thanks,
  Robert Joy


tkt_uuid: 1465066fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: logger
priority: 3 Low
foundin: None
resolution: Not Applicable Here
title: logger does not print correct args when passed multiple args
comment:
  (bin) 49 % package require logger
  0.6.2
  (bin) 50 % set f [logger::init foo]
  ::logger::tree::foo
  (bin) 51 % ${f}::debug foo bar baz
  [Wed Apr 05 17:41:43 Westeuropäische Normalzeit 2006]
  [bar] [debug] 'baz'
  (bin) 52 % 

  This should print:
  'foo bar baz'

  seems like the origin tracking code is not robust enough.

  Michael


tkt_uuid: 1400838fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: MessageDlg bug, LabelEntry bug, demo bug
comment:
  I have found 2 bugs in BWidgets and 1 bug in BWisgets-demo 
  (ActiveState Tcl/Tk 8.4 12 WindowsXP).
  BWidgets bug1: MessageDlg abort-retry-ignore -
  "-default must 
  not be """ 
  BWidgets bug2: Dialog focus bug with LabelEntry.
  Dialog draw LabelEntry - LabelEntry not request focus.
  When I change LabelEntry with tk-entry - all OK.

  BWidgets demo bug: Notebook page 'Basic' - 'Entry' 
  In entry command must be space before and after ';'.
  When I 
  press Enter on entry - error genrates. After adding
  space all 
  works ok.


tkt_uuid: 3106208fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: tree itemconfigure mishandling of node names
comment:
  The original description, as submitted to ActiveState:
  ========================================
  I am currently using version 1.8 of the BWidget library. I have found an  error (or lack of documentation) in the Tree library. I am using the tree structure in my software to display connections between devices. Each node in  my tree is named using the unique ID of the device which the tree node represents (these are integer values). When doing an "itemconfigure" in my code I run into an error. The error is caused by using integer values for node names. The error is described below.

  In the code section (below) taken from Tree::itemconfigure there exists a case when a node name is the same value as a flag value (in my system I had a node named 16 and a flag value that turned out to be 16). When doing the lsearch to find the idx of the node, the search finds the index of the flag value 16 (and assumes this is the node). When it does the incr to get the corresponding flag value it is really picking up a node name. In my system I also have node names that are strings. In my case the code was picking up a node name that was a string and when trying to set the flag it was doing an "|" with a flag value and a string (which causes Tcl to crash).

   if { $data(upd,level) < 3 && $flag } {
        if { [set idx [lsearch -exact $data(upd,nodes) $node]] == -1 } {
           lappend data(upd,nodes) $node $flag
        } else {
           incr idx
           set flag [expr {[lindex $data(upd,nodes) $idx] | $flag}]
           set data(upd,nodes) [lreplace $data(upd,nodes) $idx $idx $flag]
        }

  I do not see any documentation stating that node names cannot be integer values. As a result, I deem this to be a bug that should be addressed.
  If you are not the people who deal with Tcl bug, please pass this on to the people who fix bugs. Thanks.
  ========================================

  My fix for the problem is attached.


tkt_uuid: 483838ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 6
foundin: None
resolution: Fixed
title: minor changes to several BWidget widgets
comment:
  I've attached the result of a 'cvs diff' between my
  local BWidget
  sources and the current CVS head (20-nov-2001). This
  diff
  contains the following changes:

  1) tree.tcl

  Added a 'recursive' argument to 'Tree::opentree' and 
  'Tree::closetree'

  2) dialog.tcl

  Added '-transient' and '-place' flag

  3) listbox.tcl

  Added '-selectmode' flag and 2 possible select-modes:
  single and 
  multiple

  4) widget.tcl

  Select element 4 (was 3) from the config-options to get
  value from 
  optiondb

  5) progressbar.tcl

  Added new type 'nonincremental_infinite' and modified
  movement of 
  progressbar when in 'infinite' or
  'nonincremental_infinite' mode. The
  'nonincremental_infinite' can be used when a certain
  process 
  monitored by a ProgressBar returns a total count and
  not an 
  increment count.

  6) panedw.tcl

  Added '-weights' flag with possible value 'extra' or
  'available'. 
  Since BWidget-1.3.1, the meaning of the '-weight' flag
  for the 
  'PanedWindow::add' command was changed. This made it
  difficult to 
  create a layout where the panes occupy a certain amount
  of the 
  screen. When using the '-weights extra' flag when
  creating a 
  PanedWindow widget, the >=1.3.1 behavior is used: the
  weights
  for the different panes are only used for extra space.
  When using 
  the '-weights available' flag, the weights for the
  different panes are 
  used to set the size of each panes relative to the
  total available 
  space.

  Impact of changes to existing code: 
   
  None, behaviour is exactly the same when not specifying
  one of the 
  new flags or arguments (these have default values
  corresponding to 
  the old behavior), except for movement of ProgressBar
  in 
  one of the 'infinite' modes.


tkt_uuid: 3183064fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: pt (parsetools)
priority: 5 Medium
foundin: None
resolution: Fixed
title: package provide statement not correct.
comment:
  When generating a parser for snit or TclOO the final substitution of the parser package name is not correctly substituted into the package provide statement on the second to last line of the output.


tkt_uuid: 582828ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: exif
priority: 5 Medium
foundin: None
resolution: Accepted
title: Patches exif.tcl for Digital IXUS
comment:
  I've been trying to use the tcllib Exif parser to process
  pictures taken with my Canon Digital IXUS camera.
  It turns out that the IXUS's image files contain a
  »makerNote« field which doesn't have various fields
  used by other Canon cameras. The attached patch
  upgrades the »makerNote« procedure to do some
  more checks for non-existing fields and such.


tkt_uuid: 899211ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ntp
priority: 9 Immediate
foundin: None
resolution: Fixed
title: time-1.3 fails on 64-bit
comment:
  ==== time-1.3 time::unixtime FAILED
  ==== Contents of test case:

      global token
      list [catch {
          set t [time::unixtime $token]
          expr {(0 <= $t) && ($t <= 2147483647)}
      } m] $m

  ---- Result was:
  0 0
  ---- Result should have been (exact matching):
  0 1
  ==== time-1.3 FAILED


  This appears to test that the result
  of [time::unixtime] is a positive 32-bit
  signed integer?

  Should it be so on a 64-bit system?
  Maybe this is just testing the wrong thing?


tkt_uuid: 1063774fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: textutil
priority: 5 Medium
foundin: None
resolution: Accepted
title: [splitn string ?len=1?] split string in chunks of length len
comment:
  Dear tcllib maintainers, 
   
  This is a patch against tcllib, adding a new procedure splitn to 
  split.tcl and in addition having relevant tests in split.test. 
   
  [splitn string ?len=1?] will split string into chunks of length $len.  
  These are returned in a list.  If the string length is not an entire 
  multiple of $len, the last chunk will be short.  With an empty 
  string the empty list is returned.  And a nonpositive len will result 
  in an error. 
   
  The implementation used for splitn is almost identical to code 
  submitted by Bryan Oakley in a ``contest'' I did on c.l.t ... as this 
  was the first submitted code that used more than one algorithm 
  depending on the string length, I asked B.O. if I could use it.  
  Unfortunately I got no reply sofar.  But my spare time is running 
  short, so I will submit this patch now.  Once I get B.O.'s reply I 
  will forward it to the tcllib project. 
   
  Except as stated above the code is in the public domain. 
   
  Best regards, Robert S. 


tkt_uuid: 1154619fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Accepted
title: segfault in tkchat
comment:
  On Solaris 9, with Tcl/Tk 8.4.9,
  and tile 0.4, the tkchat.tcl
  program Revision 1.263
  segfaults at startup at line 4416

    catch {destroy $w}

  Upgrading to tile 0.5 corrects
  the problem.

  I recommend updating tkchat
  to [package require tile 0.5]


tkt_uuid: 548224ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Fixed
title: hpupdate status incorrectly displays
comment:
  The idea in this demo is that one will, on a
  regular basis, update a series of files and then upload
  them via ftp to an http server.

  It depends on a proc called Touch to update a file's
  update date , which then it uses to determine which
  files were changed since that date.

  On my SPARC Solaris 8, using Tcl/Tk 8.4, the Touch
  proc does NOT update the file.  This results in the
  demo program not functioning properly.

  The strange thing is that I don't see a reason for it
  to fail.  And in fact, no errors occur - but the file's
  date never changes.

  I will continue searching for a solution.


tkt_uuid: 1739359fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ip
priority: 5 Medium
foundin: None
resolution: Fixed
title: "ip::version" is too permissive
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: 1906274fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: pop3
priority: 7 High
foundin: None
resolution: Not Applicable Here
title: pop3 module doesn't support pop3s
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: 647974ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: fileutil
priority: 7 High
foundin: None
resolution: Fixed
title: find has problems recursing a metakit fs
comment:
  The command 'fileutil::find' has problems when recursing 
  a directory structure coming from a metakit filesystem 
  (fr example starkit). It reports the first file per directory 
  (and the directory), but nothing else.

  I believe the reason for this is that the metakit FS 
  returns bogus i-node information to [file stat]. And 'find' 
  uses 'file stat' to get i-node information to stop the 
  recursion for already visited files and directories. This 
  part of its handling of symbolic links, to break circular 
  link chain.

  A bug will be entered a tclvfs too, refering to this report.


tkt_uuid: 2881739fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math :: interpolate
priority: 5 Medium
foundin: None
resolution: Fixed
title: Cubic spline interpolation is wrong
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: 3581373fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: base64
priority: 2
foundin: None
resolution: Fixed
title: "::base64::encode -maxlen 0" not documented
comment:
  Documentation of tcllib command "::base64::encode"

  It should be explicitly documented, that a value of "0" of the parameter "-maxlen" would disable the insertion of wrap characters.


tkt_uuid: 520279ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Accepted
title: New package - dns lookups in Tcl
comment:
  I have produced a dns package to permit Tcl-only Domain
  Name Service lookups using the usual fileevent
  framework to allow for timeouts and asynchronous
  network transmission. This is modelled on the http package.

  Also extends the uri package to support the dns URI
  scheme. This code should probably end up in the uri
  package later on.

  For example:
   set tok [dns::resolve www.google.com]
   dns::address $tok
   dns::cleanup $tok

   dns::resolve "dns:tcl.tk;type=MX" -command handler

  No tests but there is a .man page.


tkt_uuid: 3288977fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Accepted
title: client hangs on bad multi-line server responses
comment:
  If the server doesn't speak strict RFC-959 when it comes to multi-line responses, it can cause the client to hang.

  For example, this was causing Tcllib ftp code to have an infinite loop  and eat 100% cpu.

      RETR blah
      150 Opening BINARY mode data connection for blah (180 bytes).
      226 Transfer complete.
      QUIT
      221-You have transferred 180 bytes in 1 files.

      ^^^ notice no "221 Goodbye."

  Most likely the network I was using was dropping the last couple of packets after the client said QUIT, that included the "221 Goodbye" response that the code was waiting for.

  This is the same issue described in the latter half of 2813069. I couldn't upload files to it, so I created a new bug and have attached a patch.


tkt_uuid: 1240910fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
resolution: None
title: Error in math::interpolate::neville
comment:
  Dear

  I have found out a situation where this function
  generates an error.

  The arguments that I let it pass through this function is :

  set arg1 "45 45 63 81 99 135 135 135 135 135 135 297
  324 351 369 396 423 450 477 504 531 558 585 603 630 657
  684 711 738 765 792 819 846 864 891 918 945 972 990
  1017 1044"

  set arg2 "2 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62
  66 70 74 78 82 86 90 94 98 102 106 110 114 118 122 126
  130 134 138 142 146 150 154 158 162"

  set arg3 268

  In calling:
  math::interpolate::neville $arg1 $arg2 $arg3

  it generates the error:
  *********************************************************
  divide by zero
  divide by zero
  while executing
  "expr { $w / ( $ho - $hp ) }"
  (procedure "math::interpolate::neville" line 42)
  invoked from within
  "math::interpolate::neville [lindex $ipt 0] [lindex
  $ipt 1] $width"
  (procedure "adjustFont" line 3)
  invoked from within
  "adjustFont $font $width $ipt"
  (procedure "configureBinding" line 2)
  invoked from within
  "configureBinding title {{45 45 63 81 99 135 135 135
  135 135 135 297 324 351 369 396 423 450 477 504 531 558
  585 603 630 657 684 711 738 765 792 819 84..."
  (command bound to event) error :
  ********************************************************

  Has anyone an idea

  Best regards
  SaigonKid


tkt_uuid: 1725324fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: uri
priority: 5 Medium
foundin: None
resolution: None
title: uri::split does not parse hosts with no dots (.) in them
comment:
  uri::split parses hosts with no dots (.) in them incorrectly:
  uri::split "http://3531454999:80/XXX/YYY"  returns an array with a "host" entry set to ""

  uri::split also fails with the following URIs:
  http://0xc9.0x02.0xdf.0x11:80/XXX/YYY
  http://0x5061bf3f/XXX/YYY


tkt_uuid: 1323295fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: sasl
priority: 9 Immediate
foundin: None
resolution: None
title: sasl test failure for Tcl 8.5
comment:
  Create one then move this bug
  report to it:

  The following test fails against
  the curren Tcl HEAD on 32-bit
  platforms:

  ==== SASL-NTLM-1.1 NTLM client response FAILED
  ==== Contents of test case:

      list [catch {
          set ctx [SASL::new -mechanism NTLM -callback
  NTLMCallback]
          SASL::step $ctx ""
          SASL::step $ctx [base64::decode $Chk(2)]
          set response [SASL::response $ctx]
          SASL::cleanup $ctx
          base64::encode -maxlen 0 $response
      } res] $res

  ---- Result was:
  0
  TlRMTVNTUAADAAAAGAAYAGoAAAAYABgAggAAAAwADABAAAAACAAIAEwAAAAWABYAVAAAAJoAAAABAgAAAAAAAABEAE8ATQBBAEkATgB1AHMAZQByAFcATwBSAEsAUwBUAEEAVABJAE8ATsM3zVy9RPyXgqZnr21CfG3mfCDC0+d8VoLTftHx9ZaM2NlnEeJBCjvPm4ryx3aR4A==
  ---- Result should have been (exact matching):
  0
  TlRMTVNTUAADAAAAGAAYAGoAAAAYABgAggAAAAwADABAAAAACAAIAEwAAAAWABYAVAAAAJoAAAABAgAAAAAAAEQATwBNAEEASQBOAHUAcwBlAHIAVwBPAFIASwBTAFQAQQBUAEkATwBOAMM3zVy9RPyXgqZnr21CfG3mfCDC0+d8ViWpjBwx6BhHRmspst9GgPOZWPuMITqcxg==
  ==== SASL-NTLM-1.1 FAILED

  It's possible the actual bug is really in Tcl, but
  assistance of the sasl maintainers will be
  helpful to determine that.


tkt_uuid: 1165525fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: Listbox bug, a non-stop loop cause the shaking of the widge
comment:
  Following is a test code, run it and your will see a
  ScrolledWindow shaking. Before you run it, please make
  sure that "CP: 555  * AAA-I am shaking wildly 10mm dia:
   59.5 mm" is in a single line. The length of the list
  item name really matters.

  ######### test code starts ######################
  set bwidget_path *YOUR BWIDGET PATH HERE*
  lappend auto_path $bwidget_path
  package require BWidget
                                                        
                           
  toplevel  .shaking
                                                        
                           
  set f [frame .shaking.butF]
                                                        
                           
  set sw [ScrolledWindow $f.sw -auto both\
              -relief sunken -borderwidth 2]
                                                        
                           
  set marksList [ListBox $f.lb -relief flat -borderwidth 0 \
                  -padx 0 -height 8 -width 40 -bg white]
                                                        
                           
  $sw setwidget $marksList
                                                        
                           
  grid $sw -row 0 -column 0 -columnspan 6 -pady 0 -padx 2m
                                                        
                           
  $marksList insert end 1 -text "1"
  $marksList insert end 2 -text "2"
  $marksList insert end 3 -text "3"
  $marksList insert end 4 -text "CP: 555  * AAA-I am
  shaking wildly 10mm dia:  59.5 mm"
  # make sure that "CP: 555  * AAA-I am shaking wildly
  10mm dia:  59.5 mm" is a single line
  $marksList insert end 5 -text "5"
  $marksList insert end 6 -text "6"
  $marksList insert end 7 -text "7"
  $marksList insert end 8 -text "8"
                                                        
                           
  pack $f       
  #### test code ends #################################

  #### test environment ################################
  If you run it by wish8.3, no problme at all, 
  if you run it by wish8.4, you got  a shaking widget.

  My testing environment:
        1. Redhat Linux  2.4.21-9.ELsmp
        2. BWidget-1.7.0, tcl 8.4, and tk 8.4
        3. Default font

  #### Code analysis ##################################
  Bwidget induces an endless loop through a "bind" command.
  (In Bwidget-1.7.0),
  In line 105 of listbox.tcl:
    bind ListBox <Configure> [list ListBox::_resize  %W]

  In proc ListBox::_resize, line 1139 of listbox.tcl:
    it call _update_scrollregion :
   } else {
          if {[Widget::cget $path -selectfill]} {
              _update_select_fill $path
          }

          _update_scrollregion $path
      }

  in proc ListBox::_update_scrollregion, line 918 of
  listbox.tcl
    it call $path.c configure -scrollregion [list 0 0 $w $h]

  This triggered bind ListBox <Configure> event and call
  _resize again, forming a loop.

  If you put in "puts " command in _resize and
  _update_scrollregion
  you will see _resize and _update_scrollregion called
  alternatively
   Reason:
  Bwidget induces a endless loop by "bind" command.
  (In Bwidget-1.7.0),
  In line 105:
    bind ListBox <Configure> [list ListBox::_resize  %W]

  In proc ListBox::_resize, line 1139 of listbox.tcl:
    it call _update_scrollregion 

  in proc ListBox::_update_scrollregion, line 918 of
  listbox.tcl
    it call $path.c configure -scrollregion [list 0 0 $w $h]

  This triggered bind ListBox <Configure> event and call
  _resize again, forming a loop.


tkt_uuid: 767522ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: tree
priority: 8
foundin: None
title: add tree command list processing
comment:
  NOTE: This builds on the use of the "-key ?Pattern?" 
  enhancement request that I made earlier.


  I think it would be very useful to allow ::struct::tree 
  commands to hadle and return list inputs based on either 
  a ::struct::tree command or another tcl 
  command/variable that a user may wish to use.

  EXAMPLE GOAL: Extract a set of keys from a node, 
  extract all of the key-names/values to an array

  array set myArray [myTree getall [myTree get %n -key 
  paramValue*]]

  The point here is 3 fold:
  1) extract a group of keys by a pattern match
  2) get key values based on a list of keys
  3) getall keys/values based on a list of extracted node 
  keys and put into an array.


  As you can see, if the above example was implemented, 
  there would be significantly less coding required to 
  extract simple or complex ::stree::tree keys or values 
  (or both) as compared to several processes/variables to 
  track the same things.

  I realize that a user could simple convert the entire 
  structure into an array, but that is not the goal, 
  the ::struct::tree has the potential to be more 
  functional and useful if it had the abilities to truely 
  loop/break and had filtering capabilities.

  Questions?

  Dave Bigelow


tkt_uuid: 1969847fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: yaml
priority: 5 Medium
foundin: None
resolution: Fixed
title: Testsuite failures
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: 638236ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: BWidget: Entry "-state disabled" doesn't gray
comment:
  There is a difference between TK's entry and BWidget's
  Entry
  concerning the -state disabled option.

  % package require BWidget
  1.4.1
  % pack [label .l1 -text "Tk entry"]
  % pack [entry .e1]
  % pack [label .l2 -text "BWidget Entry"]
  % pack [Entry .e2]

  # Make both entries yellow ==> okay
  % .e1 configure -bg yellow
  % .e2 configure -bg yellow

  # Disable both entries ==> !!! .e1 becomes gray, .e2
  stays yellow
  % .e1 configure -state disabled
  % .e2 configure -state disabled

  # Disable both entries ==> okay, yellow
  % .e1 configure -state normal
  % .e2 configure -state normal 

  # Get -disabledbackground option==> BWidget fails
  %  .e1 cget -disabledbackground 
  SystemButtonFace
  %  .e2 cget -disabledbackground
  unknown option "-disabledbackground"
  %  .e2 cget -disabledforeground
  SystemDisabledText


tkt_uuid: 687923ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: stooop
priority: 6
foundin: None
resolution: Fixed
title: tcllib.sourceforge.net/doc/stooop.html points to itself
comment:
  At the end of the document above, a link points to the
  full HTML documentation for stooop.
  Unfortunately, it points to the current document, which
  is the HTML version of the manual page, instead of the
  large HTML document shipped with stooop.
  As the author, is there anything I can do to help
  resolve this issue?

  Many thanks in advance,  Jean-Luc (jfontain@free.fr)


tkt_uuid: 862491ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: fileutil
priority: 7 High
foundin: None
resolution: Fixed
title: fileutil::find ... no catch around 'cd'
comment:
  Cd sequences are not checked to see if the succeed. 
  I.e. failed due to permissions. 
  If failure occurs the code terminates. I would rather 
  it skip the problem children in a find. This problem has 
  been reproduced in both WIN32 & HP-UX


tkt_uuid: 891024ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Fixed
title: color handling problems for unrecognised users
comment:
   can't read "Options(Color,<[A]bomination>,Web)": no
  such element in array
      while executing
  "string compare $Options(Color,$nick,Web) $clr"
      (procedure "checkNick" line 23)
      invoked from within
  "checkNick $nick $clr"
      (procedure "addAction" line 3)
      invoked from within
  "addAction $clr "<$truenick>" $msg $mark"
      (procedure "addMessage" line 35)
      invoked from within
  "addMessage "" $nick $msg HISTORY"
      (procedure "::tkchat::LoadHistoryLines" line 15)
      invoked from within
  "::tkchat::LoadHistoryLines"
      ("after" script)


tkt_uuid: 2123397fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ip
priority: 5 Medium
foundin: None
resolution: Accepted
title: bad [string first] in [::ip::version]
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: 2829049fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: tklib
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: "failure" or missing feature in "getstring"
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: 556504ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Fixed
title: fileutil::cat won't read empty files
comment:
  fileutil::cat won't read non-empty "empty" files (where
  [file size] == 0, but the file isn't empty), as is the
  case with the files in the /proc filesystem on Linux.

  fileutil::cat /proc/[pid]/maps currently returns the
  empty string.  With the attached patch it returns the
  actual data as expected.


tkt_uuid: 3357765fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftpd
priority: 5 Medium
foundin: None
resolution: Accepted
title: Many commands assume a socket is established, may not be so.
comment:
  When using PASV the client may not connect to the server until after the command that needs the data connection is issued.  Currently Fs commands are just given the sock handle of "" when this happens.

  The FTP RFC indicates that it is acceptable for the client not to have connected to the port described by the result of the PASV command until after a command that needs it is issued.


tkt_uuid: 1603273fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tar
priority: 5 Medium
foundin: None
resolution: Fixed
title: Error in handling filenames with spaces in untar
comment:
  When file names contains spaces untar fails because of comparing a brace delimited string (list representation) with a "normal" string.

  Patch provided.

  Another problem I fell in was the fact that the parameter calles "files" is interpreted as list of files.
  Whereas a single file maybe entered in this situation it fails when specifying a file name with spaces.
  For clarity reasons I would prefer the expression "filelist" in these procedures.

  Best regard,
    Gerhard


tkt_uuid: 1081971fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: htmlparse
priority: 5 Medium
foundin: None
resolution: None
title: &ob; and &cb; don't seem to exist?
comment:
  The htmlparse::PrepareHtml procedure has this line:

      return [string map [list "\{" "&ob;" "\}" "&cb;"
  "\\" "&bsl;"] $html]

  I don't think &ob; and &cb; are really HTML for {}.  At
  least they don't work in my browser.  Best just to use
  the numeric versions, &#123; and &#125;.


tkt_uuid: 1272913fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: profiler
priority: 5 Medium
foundin: None
resolution: Fixed
title: profiler - failed test with Tcl 8.5
comment:
  ==== profiler-7.2 sortFunctions FAILED
  ==== Contents of test case:

      set c [interp create]
      interp alias $c parentSet {} set
      set result [$c eval {
          set auto_path [parentSet auto_path]
          package require profiler
          profiler::init
          proc ::foo {} {
              set foobar 0
          }
          proc ::bar {} {
              set foobar 1
          }
          foo; foo; bar;
          profiler::sortFunctions calls
      }]
      interp delete $c
      set result

  ---- Result was:
  {::tcl::clock::scan 0} {::tcl::clock::format 0}
  {::tcl::clock::add 0} {::bar 1} {::foo 2}
  ---- Result should have been (exact matching):
  {::bar 1} {::foo 2}
  ==== profiler-7.2 FAILED


tkt_uuid: 740474ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: DropSite::register documenation error
comment:
  The current DropSite HTML page says:

  --- quotation start ---
  DropSite::register  path  ?option value...?
      This command is used to declare path as a drop
  site. Options are:

  -dropcmd
      This command is called when user release the drag
  icon over a valid drop target widget. It takes the same
  arguments as -dragovercmd command. Its return values is
  passed as a result to the -dragendcmd command of the
  drag source widget. 
  --- quotation end ---

  The reference to "-dragovercmd" in the -dropcmd is
  strange, because there isn't either a -dragovercmd
  implemented nor documentation for it.

  Probably, this is a typo and that "-dragovercmd" should
  read as "-dropovercmd". But even this isn't fully
  corret. It seems, the -dropcmd exptects the same args
  as -dropovercmd, with the expection of the "event" arg
  (which indeed would be senseless for the -dropcmd). In
  other words (and as a propose for a minimum text).

  Arguments passed to the command are:

      * pathname of the drop target (the widget itself),
      * pathname of the drag source,
      * root x-coordinate of the pointer,
      * root y-coordinate of the pointer,
      * operation,
      * type of the dragged data,
      * dragged data. 


tkt_uuid: 3606620fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
resolution: Fixed
title: test strangeness - math-12.1 !error reading
comment:
  Running test on math module I get following error:

  ++++ math-11.1 PASSED
  ---- math-12.1 start
  error reading package index file ./lib/pkgIndex.tcl: permission denied
  error reading package index file ./pkgIndex.tcl: permission denied
  error reading package index file $p(:573:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:572:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:571:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:570:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:569:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:568:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:567:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:566:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:565:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:564:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:563:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:562:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:561:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:560:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:559:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:558:)/pkgIndex.tcl: not allowed to invoke subcommand exists of file
  error reading package index file $p(:556:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:555:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:554:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:553:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:552:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:550:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:549:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:548:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:547:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:546:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:545:)/pkgIndex.tcl: no such file or directory


tkt_uuid: 1708110fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: png
priority: 7 High
foundin: None
resolution: Fixed
title: [png::removeComments] destroy a png file.
comment:
  Hi.
  I noticed the bug that png::removeComments destroy a file.
  Version of png is CVS HEAD. It seems to me that the 
  cause is that output encoding isn't binary. 

  Please see attached patch.


tkt_uuid: 467835ffffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: app: tkchat
priority: 5 Medium
foundin: None
resolution: Invalid
title: tkchat retrieve menu item
comment:
  This patch adds a Retrieve menu item to the debug menu
  which delegates to tkchat::Retrieve and obtains the
  current HEAD revision from the SourceForge CVS tree.
  The user may then re-source from the new version.

  Taken from tkcon and modified slightly for tkchat.


tkt_uuid: 1376903fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: app: tkchat
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: tkchat - aqua mods - set app name + unhide on alert
comment:
  A could of mods to tkchat to make it "nicer" for AquaTk users

  The first sets the application name (i.e. the left most menu name in the 
  menu bar) to TkChat.

  The second "unhides" the chat window on alert. Previously only minimised 
  (i.e. iconified) windows were de-iconified.

  Both changes use Ffidl - thanks to Daniel Steffen for the pointers on how 
  to use it.

  A starkit containing the changes + Ffidl for OSX is at http://mini.net/
  sdarchive/tkchat.kit


tkt_uuid: 3471182fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: Documentation
priority: 5 Medium
foundin: None
resolution: Fixed
title: funny mistake in struct_tree manual
comment:
  A funny, yet harmless, mistake appears in the struct_tree manual page, where explanation for  subcommand 'exists' reads "Remove true if the specified node exists in the tree" instead "Returns true...."


tkt_uuid: 1416730fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: csv
priority: 5 Medium
foundin: None
resolution: Fixed
title: csv: test suite bugs
comment:
  with -debug 1:

  * csv 0.6
  WARNING: cleanupTests deleting
  /local/src/tcllib/eval-out1.csv...
  WARNING: cleanupTests deleting
  /local/src/tcllib/eval-out2.csv...
  WARNING: cleanupTests deleting
  /local/src/tcllib/eval-out3.csv...


tkt_uuid: 3504018fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: htmlparse
priority: 5 Medium
foundin: None
resolution: Duplicate
title: callback command gets called with varying arguments
comment:
  Another problem related to badly formed html, here I think the problem is an open tag inside an attribute value, combined with a xhtml-style null end tag.

  %  htmlparse::parse {<img src="x<y" /> <i></i>}
  ==> hmstart {} {} {}
  ==> img {} src=\"x
  ==> y\" {} {} {}
  ==> img / {} { <i} {}
  ==> i / {} {}
  ==> hmstart / {} {}

  The html is malformed, so parsing is a guessing game, but the parser should try to be as resilient as possible.  What happens in this case is that the callback command, documented as always being called with 4 arguments, is called with 3 and 5 arguments.  This causes an error if your callback command has formal arguments instead of "args".


tkt_uuid: 839066ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: bwidget - Binding for whole Tree Area
comment:
  I'm using BWidgets for creating a user interface for a
  test system.
  Among other things this user interfaces shows and
  handles data presented as a tree (which I have realized
  by BWidgets). By this I have to be able to show a
  context menu when the mouse is clicked upon the
  BWidgets tree. This means I need a binding not only for
  the text or the image of a node but for the entire tree
  area.

  I made a litte enhancement in the module tree.tcl which
  offers me the command
      $tree bindArea $event $script

  I added the following lines:
  15d14
  < #     - Tree::bindArea
  443,448d441
  < #
  ----------------------------------------------------------------------------
  < #  Command Tree::bindArea (added by MHO - Sigos GmbH)
  < #
  ----------------------------------------------------------------------------
  < proc Tree::bindArea { path event script } {
  <   bind $path.c $event $script
  < }


  I think this enhancement is useful for all users of
  BWidgets and therefore I would be encouraged, if you
  could take this enhancement over into the next version
  of BWidgets.

  Best regards
  Monika Holzammer

  E-Mail: Monika.Holzammer@sigos.de


tkt_uuid: 1507713fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Accepted
title: Documentation error: -opencmd option for Tree widget
comment:
  According to the documentation of the -opencmd option
  for he Tree widget the path to the tree widget and the
  node that was opened are both appended to the command.

  However, in the "current" implementation (1.7 as
  delivered with ActiveTcl 8.4.12) only the node is appended.

  It is probably best to adapt the documentation, not the
  code:
  - The value for -opencmd is a "command prefix" 
  - The node that was opened is appended
  - To get the tree widget use something like:
   
    -opencmd "mycmd .tree"


tkt_uuid: 918099ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: smtp
priority: 7 High
foundin: None
resolution: Accepted
title: SMTP AUTH support (RFC 2554)
comment:
  This patch adds support for the SMTP AUTH extension
  (RFC 2554). Currently this only deals with the LOGIN
  authentication mechanism but additional support for
  CRAM-MD5 and DIGEST-MD5 is planned.


tkt_uuid: 490151ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: pop3
priority: 5 Medium
foundin: None
resolution: Fixed
title: bugs in ::pop3::retrieve (RetrSlow)
comment:
  In ::pop3::retrieve with retr-mode "slow" or "list" with fallback to slow, 

  following call is missing just before calling set msgBuffer [RetrSlow $chan]

  ::pop3::send $chan "RETR $index"

  Consequences: The retrieve call will hang for ever. The call waits for data from
  the E-Mail server but the E-Mail server never got a Retrieve command to deliver data.

  The last code part in RetrFast looks very similar to functionality of RetrSlow

  P.s. Good work. Like the new structure in the package.

  In the meantime there do exist MS-Exchange Server that do understand 
  crlf. (-msex ). 
  Better rename the -msex option to tran-mode. Is more neutral.


tkt_uuid: 556509ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: doctools
priority: 3 Low
foundin: None
resolution: Fixed
title: mpexpand nroff header comments
comment:
  'mpexpand nroff' inserts some comments in the header
  that probably do not belong there. It assigns copyright
  to the person who ran the converter (the original
  author may disagree with this :-), and inserts an
  unexpanded CVS revision tag (CVS: $Id$), which is
  inappropriate for an output file.

  It also adds the mysterious admonition "do not modify
  the .SH NAME line immediately below!" -- I don't think
  there's any reason to keep this particular coke bottle
  around.

  The attached patch removes the above stuff.


tkt_uuid: 2807147fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Accepted
title: buttonbox -homogeneous widths
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: 1798427fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Fixed
title: Doctools HTML output
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: 3004301fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Bad images.tgz files in CVS
comment:
  The images.tgz files in the CVS seem to be corrupted. Maybe they were not marked as binary files to CVS ?

  % tar tvfz ./themes/keramik_alt/images.tgz
  drwxr-xr-x oberdo/catia      0 2009-08-04 16:37:48 images/
  tar: Skipping to next header

  gzip: stdin: invalid compressed data--crc error

  gzip: stdin: invalid compressed data--length error
  tar: Child returned status 1
  tar: Error exit delayed from previous errors

  % gzip -t ./themes/keramik_alt/images.tgz
  gzip: ./themes/keramik_alt/images.tgz: invalid compressed data--crc error
  gzip: ./themes/keramik_alt/images.tgz: invalid compressed data--length error


tkt_uuid: 481023ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: csv
priority: 5 Medium
foundin: None
title: read2matrix new functionality requested
comment:
  If the matrix being filled in has not had the number of
  columns set, I would like to request that this value be
  set based on the first record read - perhaps only if a
  special flag is present?


tkt_uuid: 1187273fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: app: tkchat
priority: 5 Medium
foundin: None
resolution: Accepted
title: Restore window to same state after minimising to icon
comment:
  Currently, if is chat window is zoomed and is 
  minimised to the system tray, when it is deiconified 
  it reappears in normal state instead of zoomed.
  This patch allows it to be restored to zoomed state.


tkt_uuid: 554475ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: doctools
priority: 6
foundin: None
resolution: Fixed
title: tcllib 'build' warning msgs
comment:
  the latest cvs head of tcllib, obtained from
  activestate's snapshot ftp site, generates the
  following warning during the tmml gen step:

  Gen (tmml):
  /vol/tclsrcsol/tcl84/tcllib/modules/html/html.man
  Warning: Cannot start context section dd li

  This occurs for quite a number of the man pages,
  including stoop, sha1, report, log, expander, smtpd,
  and more


tkt_uuid: 514494ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: uri
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Information about uri schemes
comment:
  The following place lists existing uri schemes
  and specifications.

  http://www.w3.org/Addressing/schemes


tkt_uuid: 415001ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: xpm2image/bwidget
comment:
  Hi,
  it seems that not all graphic programs produce the same
  XPM output.

  Here's the difference:

  a sample line by "pixmap"
  "#c #feb66c",

  a sample line by "Gimp"
  "# c #feb66c",

  The problem is that there is no tab between "#" and "c"
  with the line of Gimp and xpm2image fails

  Greets

  Simon


tkt_uuid: 492156ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: textutil
priority: 5 Medium
foundin: None
resolution: Accepted
title: New expand method 'textcmd'
comment:
  Enclosed a patch which reintroduces 
  the 'raw_text_hook' known to the expand application in 
  the form of 'textcmd', a macro which is run for all 
  plain text encountered in a template.


tkt_uuid: 664392ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: uri
priority: 6
foundin: None
resolution: Not Applicable Here
title: Test failures in uri module for Win32
comment:
  The uri package is failing the recent uri::canonicalize
  tests under Win32 systems.

  The problem is some of the tests are using the file
  scheme with a hostname part:
    file://localhost/a/b/c

  When using Windows a split and join operation results in
    file://localhost:/a/b/c
  due to code in the uri::join for the file scheme.

  Common usage under windows is to permit the drive
  letter to be used as the host part and we are
  supporting this - however, we must also support the RFC
  specification too.

  We can expect to use  file://c:/autoexec.bat (although
  this should strictly be file:///c:/autoexec.bat - thus
  using a null host part). Also we must permit
  file://localhost/c:/ as this is what the RFC specifies.

  Other problems: the path section must be in the URL/URI
  style.
  % uri::join scheme file path {c:\windows}
  file://c:\windows

  This _MUST_ be file://c:/windows. Backslashes are
  illegal in URLs. This goes for Mac's and VMS too. I
  believe that [file normalize] will fix the host's path
  into very nearly correct RFC style. Probably just need
  some quoting of illegal characters (like space). [file
  native] should probably be invoked in the uri::split
  function too.


tkt_uuid: 792796ffffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Let ::mime::parsepart accept a header only with multipart
comment:
  When calling ::mime::initialize with a header only and the 
  header includes a multipart description, ::mime::parsepart 
  will return an end-of-file error.
  This patch fixes that by counting the lines after the 
  header. If no lines are found, no error is thrown.

  This is useful when you want to parse a mail header only 
  with help of the mime package.

  Something to think of:
  This only works if the last newline character returned 
  from ::pop3::top is removed prior to calling ::mime::
  initialize. I thought of patching pop3 too, but thought 
  that it's correct that the last line returned also contains 
  a newline character.
  To help the user so he not needs to think of removing the 
  last newline character, maybe ::mime::parsepart should 
  count non-blank lines after the header, instead of just 
  counting lines.


tkt_uuid: 2814050fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Accepted
title: fix [notebook itemconfigure -helptext]
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: 484117ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: html
priority: 5 Medium
foundin: None
resolution: Accepted
title: new html function
comment:
  I attached a new function for the html module. This
  function creates a bulleted list of links given a list
  of label, URL pairs. 

  Result: A <ul><li><a...><\li>.....<\ul> fragment


tkt_uuid: 2782256fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Fixed
title: two potential package bugs found
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: 1924065fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: tiff
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: tiff - addEntry doesn't overwrite
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: 519189ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: Combobox bugs (and patch)
comment:
  Hello,

  the combobox has some small bugs I included a patch
  for:

  1. the selection is not cleared when the widget loses
  the focus
      (resulting in weird colour display when explicitly
  setting colours 
       other than the default)
  2. the dropdown list does not honour the the colours
  requested for      the entry widget (always displayed
  in dark grey).

  I have included a diff as well as the complete new
  combobox source.

  Regards,
            Bastien


tkt_uuid: 1206499fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: list
priority: 5 Medium
foundin: None
resolution: Fixed
title: struct::list flatten throws error for valid list
comment:
  this script throws error:
  %set a [list \[a\] \[b\]]
  {[a]} {[b]}
  %  struct::list flatten $a
  invalid command name "a"

  this is the errorInfo:
  invalid command name "a"
      while executing
  "a"
      invoked from within
  "::lappend result [a]"
      ("eval" body line 1)
      invoked from within
  "eval [::list ::lappend result] $item"
      (procedure "::struct::list::Lflatten" line 26)
      invoked from within
  "::struct::list::Lflatten {{[a]} {[b]}}"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 [linsert $args 0 ::struct::list::$sub]"
      (procedure "struct::list" line 15)
      invoked from within
  "struct::list flatten $a"


tkt_uuid: 621331ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: Allow delete of selected Tree nodes
comment:
  Hi,

  damon@unreality.com (Damon Courtney) reported a problem
  on CLT where deletion of selected nodes in a Tree
  widget failed. Attached is a new Tree::delete proc
  which fixes this problem.

  Jos.


tkt_uuid: 917798ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Invalid
title: No redraw during scrolling
comment:
  I'm on Mac OS 10.3.3 , TCL-TK 8.4.6 with BWdiget 1.70 and TKAqua

  package require BWidget
  proc test_scroll {} {
  toplevel .test
  ScrolledWindow .test.sc
  ScrollableFrame .test.sc.f
  .test.sc setwidget .test.sc.f
  set path [.test.sc.f getframe]

  for {set i 0} {$i < 20 } {incr i} {
  checkbutton $path.b$i -text "Probando probando" -variable 
  prueba
  checkbutton $path.c$i -text "HOLY HOLY" -variable prueba
  pack $path.b$i -side top
  pack $path.c$i -side top

  }
  pack .test.sc
  }

  With this script, when I scroll, the content into the frame is not 
  redraw. The content of the frame is not updated until I stop 
  scrolling.
  Do you know how can I fix that? 


tkt_uuid: 783878ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: FTP library responding WAY to slow on ftp connect timeout.
comment:
  I am currently programming a tcl script for an 
  eggdrop(www.egghelp.org) which shall tell me if a list of 
  ftp's are up and running or not. For making the coding a 
  lot more easy for me I am using the FTP library package 
  and I am running TCL 8.4.4 (did also try with 8.3.4). It is 
  a really great library and all seems to work ok, but a 
  rather large problem occurs when I am trying to connect 
  to a server which ends up with a timeout. It takes just 
  way to long time for the tcl library to give me the right 
  response: "-1".

  When I connect to this server in FlashFXP in Windows it 
  says;
  Connecting to 123.456.789.123
  Connection failed (Connection timed out)
   
  This is what I type & get in tcl cmd line;
  % ftp::Open 123.456.789.123 username password 
  -timeout 2 -port 12345 -mode passive
  -1
   
  As you can see, this works in theory, but it takes several 
  minutes before I get the "-1" response, even though I've 
  set the "timeout" setting.
   
  Those minutes causes my eggdrop to totally "crash" for 
  some minutes and usually disconnects from the IRC 
  server because of this... In short; I need it to tell me 
  MUCH faster if the ftp is responding or not...
   
  If this is not a bug in the tcl library, how can/shall I solve 
  my problem? If it is a bug, would it be possible for any of 
  you guys to give me a 
  fix? A fix is appreciated!
   
  Thanks!


tkt_uuid: 534334ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: doctools
priority: 8
foundin: None
resolution: Fixed
title: add tk-specific man page macro: tkoption
comment:
  standard tk widget man pages have a section 
  named "Widget Specific Options" that has a format that 
  is tedious to code with the existing mpexpand formats. 
  Options are typically described like this:

  -----------------------
  Command-Line Name: -value
  Database Name: value
  Database Class: Value


  Specifies the value for the foo widget.
  -----------------------

  To mark this up with the existing man page markup one 
  needs to create a definitions list for the list of 
  option names, which is tedious. I suppose there are 
  other ways, too. 

  I propose a special keyword just for this construct. 
  I've written one for the html renderer as a prototype. 
  It is used like this:

  ------------------------
  [tkoption -value value Value "Specifies the value for 
  the foo widget."]
  ------------------------

  It takes four arguments: the command line name, the 
  database name, the database class, and a description. 
  The description could be left off of the API, since 
  normal paragraphs would work, too. In my prototype 
  implementation, if the db name or class is null, those 
  parts don't appear in the output. This, for 
  megawidgets that may not have option database support.

  I've attached my hacked version of fmt.html with the 
  proposed macro. To make it work, one also needs to add 
  the macro to a foreach command in mpexpand where it 
  makes interp aliases for each of the macros. I don't 
  know if this is the best implementation, but it's a 
  starting point...


tkt_uuid: 955187ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Unknown state "<whatever>_sent"
comment:
  Most of the time it's Unknown state "type_sent" ... but 
  this time it's pwd_sent .... -shrug-

  --[ Error as follows. ]--

  Unknown state "pwd_sent"
      while executing
  "error "Unknown state \"$ftp(State)\"""
      ("default" arm line 2)
      invoked from within
  "switch -regexp -- $ftp(State) {
          list {
              fileevent $sock readable [list [namespace 
  current]::HandleList $s $sock]
              set ft..."
      (procedure "::ftp::InitDataConn" line 27)
      invoked from within
  "::ftp::InitDataConn 0 sock6 <cut> 56721"


tkt_uuid: 2935339fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftpd
priority: 5 Medium
foundin: None
resolution: Fixed
title: ::ftpd::config not idempotent
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


tkt_uuid: 2807227fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Accepted
title: ScrollableFrame issues
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: 1566389fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: tests fail in fileutil 1.9
comment:
  @@ Tcl 8.4.14
  @@ MatchTests *
  @@ SkipFiles l.*.test
  @@ MatchFiles *.test
  @@ Start 1159368646
  @@ Module fileutil
  @@ Testsuite modules/fileutil/fileutil.test
  - tcllib::testutils 1.1
  - cmdline 1.2.5
  * fileutil 1.9]

  ...

  ==== install-2.1 install a directory FAILED
  ==== Contents of test case:

      list [catch {
          fileutil::install [file join installSrc subdir]
  installDst
          set result [lsort [glob -tails -directory [file
  join installDst subdir] [file join . / *]]]
          file delete -force installDst
          set result
      } err] $err

  ---- Result was:
  0 {/subfile1 /subfile2 /subfile3}
  ---- Result should have been (exact matching):
  0 {subfile1 subfile2 subfile3}
  ==== install-2.1 FAILED

  ---- install-2.2 start

  ==== install-2.2 install a directory FAILED
  ==== Contents of test case:

      list [catch {
          fileutil::install [file join installSrc subdir]
  installDst
          set result [lsort [glob -directory [file join
  installDst subdir] [file join . / *]]]
          file delete -force installDst
          set result
      } err] $err

  ---- Result was:
  0 {installDst/subdir//subfile1
  installDst/subdir//subfile2 installDst/subdir//subfile3}
  ---- Result should have been (exact matching):
  0 {installDst/subdir/subfile1
  installDst/subdir/subfile2 installDst/subdir/subfile3}
  ==== install-2.2 FAILED


tkt_uuid: 1048995fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Fixed
title: ::fileutil::find filtercmd needs cwd
comment:
  ::fileutil::find should have been perfect for me to use in 
  traverse a directory with tens of thousands of files. The 
  problem is filtercmd only gets the rootname of the file 
  making it useless to do any processing. The alternative 
  of not using a filter and walking the resulting list is 
  unworkable due to the large number of files.

  I'd like to request either fully qualifying the filename or 
  passing in $cwd.


tkt_uuid: 1027730fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: smtp
priority: 5 Medium
foundin: None
resolution: Fixed
title: Covering case: undetectable originator
comment:
  I bumped into this case while trying to find out why
  smtp cannot send mail from a Rivet script. 

  I was getting the following error:

  -------- cut here --------
  can't read "aprops(error)": no such element in array
      while executing
  "if {$aprops(error) != ""} {
              error "error in $who: $aprops(error)"
          }"
      (procedure "smtp::sendmessage" line 152)
      invoked from within
  "smtp::sendmessage $token -recipients $recipient
  -servers $email_server"
      (procedure "send_simple_message" line 8)
  -------- cut here --------

  I have found otu that while the too many senders
  (originators) case was covered:

  -------- cut here --------
  set addrs [::mime::parseaddress $originator]
  if {[llength $addrs] > 1} {
              error "too many mailboxes in $who: $originator"
          }
  -------- cut here --------

  the no sender (actually, undetectable sender) case was
  not covered.
  I am suggesting the following three lines be added to
  smtp.tcl to cover the no sender case and thus give a
  more comprehensive error message.

  -------- cut here --------
  # diff -u /usr/lib/tcllib1.6/mime/smtp.tcl~
  /usr/lib/tcllib1.6/mime/smtp.tcl---
  /usr/lib/tcllib1.6/mime/smtp.tcl~2004-05-27
  03:17:10.000000000 +0200+++
  /usr/lib/tcllib1.6/mime/smtp.tcl2004-09-13
  17:41:59.000000000 +0200@@ -252,6 +252,9 @@        
  if {[llength $addrs] > 1} {             error "too
  many mailboxes in $who: $originator"         }+     
    if {[llength $addrs] == 0} {+            error
  "could not detect sender address"+        }        
  array set aprops [lindex $addrs 0]         if
  {$aprops(error) != ""} {             error "error in
  $who: $aprops(error)"
  -------- cut here --------

  Optionally, the following note could be added to
  smtp(3tcl):

  -------- cut here --------
  # diff -u smtp.3tcl~ smtp.3tcl
  --- smtp.3tcl~2004-09-14 09:03:28.000000000 +0200
  +++ smtp.3tcl2004-09-14 09:10:18.000000000 +0200
  @@ -314,6 +314,11 @@
   added to the outgoing message as necessary to ensure
  that a valid
   822-style message is sent.
   .sp
  +NOTE: it could be necessary to specify the originator
  address with
  +the -originator option, especially when
  ::smtp::sendmessage is used
  +in server-side scripts such as e.g. Rivet scripts, in
  which case it
  +could happen that the originator address cannot be
  detected.
  +.sp
   The command returns a list indicating which recipients
  were
   unacceptable to the SMTP server. Each element of the
  list is another
   list, containing the address, an SMTP error code, and
  a textual
  -------- cut here --------

  Thank you.


tkt_uuid: 856280ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: log
priority: 5 Medium
foundin: None
title: Add deletion callbacks to logger
comment:
  At the moment there is no (public) way to do a clean
  shutdown of the logger system. If one uses a custom
  logproc that opens files etc. it is not possible to
  detect the correct time a logfile should be closed etc. 

  So a mechanism to associate a destructor with the
  logging service would be very nice to cleanup things,
  without extra bookkeeping.

  Either a new subcommand of ${log} or as an option to
  logger::init, the procs should be called when a delete
  operation is performed, walking the tree from the
  children to the root of the tree.

  Michael 


tkt_uuid: 528287ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: smtp
priority: 5 Medium
foundin: None
resolution: Invalid
title: Explodes for 'From: <>'
comment:
  I have some code to replicate a pop3 box by downloading
  it
  and resending it to N other popboxen via SMTP.

  Care is taken to pass the message thru "as is",
  from headers to MIME body.

  Running it against a real-world pop that had 14Mb of
  email,
  it blew up on the RFC valid "bounce" syntax of 'From:
  <>'.

  ----

  -header {Date {Wed, 20 Feb 2002 20:34:04 -0400 (EDT)}} 
  \
  -header {From <>}  \
  -header {Subject {Home Based Employment - No Selling}} 
  \
  -header {Bcc {}}  \
  -header {Message-id <805913@635096>}  \
   '.
  error in From: expecting mailbox in local-part (found
  >)
      while executing
  "error "error in $who: $aprops(error)""
      (procedure "smtp::sendmessage" line 144)
      invoked from within
  "smtp::sendmessage $part -servers vpop1.superb.net  
  -recipients
  [redacted]@orwellian.org,[redacted]@orwellian.org
  -header {Return-path <>}  \
  -header {..."
      ("eval" body line 1)
      invoked from within
  "eval $Build_SMTP"
      (procedure "Main" line 57)
      invoked from within
  "Main
  "
      (file "./Multiplier.tcl" line 130)
  Exit 1


tkt_uuid: 723692ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: tree
priority: 8
foundin: None
title: ADD: ::struct::tree -copy -- myTree myTree2
comment:
  Currently there appears to be no way to copy 
  a ::struct::tree without walking the tree and setting 
  contents to a new tree structure.

  CURRENT METHOD:

  # note - "myTree" already exists in this example (which 
  does not account for keys and values - just node 
  transfer)

  # New Tree Structure
  ::struct::tree myTree2

  ::struct::tree walk root -command {
      if {"%n" != "root"} {
         myTree2 insert [myTree parent %n] end %n
      }
  }


  PROPOSED METHOD:
  ::struct::tree -copy -- myTree myTree2


  This command would greatly simplify and enhance the 
  ability to duplicate a tree and all of the attributes within it 
  and it's nodes as compared to the the current work 
  around.

  Any Questions?

  David Bigelow
  davidhbigelow@compuserve.com


tkt_uuid: 780704ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: Clear value of combobox
comment:
  When a BWidget ComboBox has an empty list of values,
  the value can no longer be cleared. This patch addes an
  'clearvalue' proc.

  Jos.


tkt_uuid: 756893ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: smtpd
priority: 5 Medium
foundin: None
resolution: Invalid
title: Error in rcpt
comment:
  When I use a "command" rcpt , I receive an eror:
  ----
  mail from:x
  501 Syntax error in parameters or arguments
  ----

  In server a message log is:

  ----
  debug     received: mail from: x
  debug     MAIL failed wrong # args: should be "array
  set arrayName list"
  ----

  I get tcllib1.4, tcl8.4.3 and tk8.4.3 today.

  When I use tcllib1.3 with same program I don't receive
  this error.

  For test only, I downgrade for "tcllib1.3", execute the
  same program, and the er

  In "telnet localhost 25"
  -----
  mail from:x
  250 OK
  -----

  In SERVER
  -----
  debug     received: mail from:x
  debug     MAIL FROM: x@fb.home
  -----

  Thank you.

  FB

  P.S.: I'm sorry, my english is bad!!!!


tkt_uuid: 3493711fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: amazon-s3
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: S3: Fix wasteful string conversion of large binary object
comment:
  In our app S3::Get is used to download large binary objects from AWS (many hundreds of MB).
  The current code stores the downloaded object in "x" then does: S3::debug "Body: $x"
  This causes "x" to be converted to a string, and creates a second huge string "Body: .....".
  The patch below passes the large object directly from the binary network channel to the result dict entry.

  A small test program that downloads a 5MB file uses 24MB before the patch vs 9MB with the patch.

  --- /System/Library/Tcl/tcllib1.12/amazon-s3/S3.tcl.orig2012-02-25 15:32:45.000000000 +1100
  +++ /System/Library/Tcl/tcllib1.12/amazon-s3/S3.tcl2012-02-25 15:33:25.000000000 +1100
  @@ -580,9 +580,7 @@
   if {[dict exists $thunk orig outchan]} {
       fcopy $s3 [dict get $thunk orig outchan]
   } else {
  -    set x [read $s3]
  -    dict set thunk outbody $x
  -    S3::debug "Body: $x"
  +    dict set thunk outbody [read $s3]
   }
   return [S3::nextdo all_done $thunk readable]
       } else {


tkt_uuid: 446799ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
title: add suspend/resume API to profiler
comment:
  In addition to ::profiler::reset functionality, the
  profiler module should also contain ::profiler:suspend
  and ::profiler::resume API.

  I am attaching the patch for its implementation code as
  well as for the docs.

  Hemang.


tkt_uuid: 1656200fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: struct
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: struct man name inconsistencies
comment:
  It is confusing for some of the man pages, on Unix anyways, to be installed with a ''struct_'' prefix and the others not. It would be useful to at least install a linked version of the pages to all have the same prefix. If developers feel strongly about also having the man pages installed without the prefix, that is fine.

  Consistency of reference doc naming is important


tkt_uuid: 3574004fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: aes
priority: 5 Medium
foundin: None
resolution: Fixed
title: decrypt/encrypt fails for data beginning with '-'
comment:
  % set data_block -[string repeat \\0 15]
  -\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
  % aes::aes -hex -mode cbc -dir encrypt -key $nil_block $data_block
  bad option "-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0": must be one of -chunksize, -dir, -hex, -in, -iv, -key, -mode, -out

  The last item in the args list is always the data (or the in stream name).
  It is never a "-" option and should not be treated as one even if it starts with a "-".

  I have a server system that has been running for more than a year before happening to have some data beginning with a "-".
  Very hard to test for unless you already know what the problem is.

  Suggested fix: terminate argument processing when the args list length gets to 1...

  --- tcllib-1.14.orig/modules/aes/aes.tcl2012-07-25 10:53:21.000000000 +1000
  +++ tcllib-1.14/modules/aes/aes.tcl2012-10-03 12:19:44.000000000 +1000
  @@ -519,7 +519,7 @@
       set opts(-iv) [string repeat \0 16]
       set modes {ecb cbc}
       set dirs {encrypt decrypt}
  -    while {[string match -* [set option [lindex $args 0]]]} {
  +    while {[llength $args] > 1 && [string match -* [set option [lindex $args 0]]]} {
           switch -exact -- $option {
               -mode      { set opts(-mode) [SetOneOf $modes [Pop args 1]] }
               -dir       { set opts(-dir) [SetOneOf $dirs [Pop args 1]] }


tkt_uuid: 1272798fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: exif
priority: 2
foundin: None
resolution: Fixed
title: exif - failed test with Tcl 8.5
comment:
  ==== exif-makernote-19.0 makernote field 19 (afpoint)
  is optional FAILED
  ==== Contents of test case:

      # AFPoint == AutoFocus Point

      set f [open [file join $::tcltest::testsDirectory
  noafpoint.jpg] r]
      fconfigure $f -translation binary
      set res [dictsort [exif::analyze $f]]
      close $f
      set res

  ---- Result was:
  AFPointsUsed {3 right} AperatureValue 7.1 AutoFocusMode
  {AI servo} CameraMake Ca
  non CameraModel {Canon PowerShot S100} ColorSpace 1
  ComponentsConfigured 0x00030
  201 Contrast Normal DateTime {2004:09:06 05:22:56}
  DateTimeDigitized {2004:09:06
   05:22:56} DateTimeOriginal {2004:09:06 05:22:56}
  ExifImageHeight 1200 ExifImage
  Width 1600 ExifInteroperabilityOffset 1088 ExifVersion
  0210 ExposureBiasValue 0 
  ExposureTime {1/250.0 seconds} FNumber 7.1 FileSource
  {3 - Digital camera} Firmw
  areVersion {Firmware Version 1.0} Flash no FlashMode
  auto FlashPixVersion 0100 F
  ocalLength {5.40625 mm} FocalPlaneResolutionUnit inch
  FocalPlaneXResolution 7766
  .9902912621355 FocalPlaneYResolution 7741.935483870968
  ISO unknown ImageFormat {
  IMG:JPEG file} ImageNumber 140-4060 ImageQuality Fine
  ImageSize large MacroMode 
  normal MeteringMode unknown Orientation 1 Owner Irochka
  ResolutionUnit inch Satu
  ration Normal SensingMethod 2 Sharpness Normal
  ShootingMode {Single frame} Shutt
  erSpeedValue {250 Hz} SubjectDistance {3.358 m}
  UnknownTag-0x10 100925440 UserCo
  mment {554 - } WhiteBalance Auto XResolution 180.0
  YCbCrPositioning {Center of p
  ixel array} YResolution 180.0
  ---- Result should have been (exact matching):
  AFPointsUsed {3 right} AperatureValue 7.1 AutoFocusMode
  {AI servo} CameraMake Ca
  non CameraModel {Canon PowerShot S100} ColorSpace 1
  ComponentsConfigured 0x00030
  201 Contrast Normal DateTime {2004:09:06 05:22:56}
  DateTimeDigitized {2004:09:06
   05:22:56} DateTimeOriginal {2004:09:06 05:22:56}
  ExifImageHeight 1200 ExifImage
  Width 1600 ExifInteroperabilityOffset 1088 ExifVersion
  0210 ExposureBiasValue 0 
  ExposureTime {1/250.0 seconds} FNumber 7.1 FileSource
  {3 - Digital camera} Firmw
  areVersion {Firmware Version 1.0} Flash no FlashMode
  auto FlashPixVersion 0100 F
  ocalLength {5.40625 mm} FocalPlaneResolutionUnit inch
  FocalPlaneXResolution 7766
  .99029126 FocalPlaneYResolution 7741.93548387 ISO
  unknown ImageFormat {IMG:JPEG 
  file} ImageNumber 140-4060 ImageQuality Fine ImageSize
  large MacroMode normal Me
  teringMode unknown Orientation 1 Owner Irochka
  ResolutionUnit inch Saturation No
  rmal SensingMethod 2 Sharpness Normal ShootingMode
  {Single frame} ShutterSpeedVa
  lue {250 Hz} SubjectDistance {3.358 m} UnknownTag-0x10
  100925440 UserComment {55
  4 - } WhiteBalance Auto XResolution 180.0
  YCbCrPositioning {Center of pixel arra
  y} YResolution 180.0
  ==== exif-makernote-19.0 FAILED


tkt_uuid: 821126ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: base64
priority: 7 High
foundin: None
resolution: Fixed
title: uninitialized "$output" in ::base64::decode
comment:
  Bug: '$output' is not defined in some situations at the
  end of
  proc ::base64::decode

  Rationale:
  Citing base64::decode comments:
       # RFC 2045 says that line breaks and other
  characters not part
       # of the Base64 alphabet must be ignored, and that
  the decoder
       # can optionally emit a warning or reject the
  message.  We opt
       # not to do so, but to just ignore the character.
  So, if you pass to base64::decode a totally bad string,
  you should
  get "" on return, not an error, since for the empty
  string we get "".

  How to reproduce:
  tcl>package require base64
  tcl>base64::decode "  "
  Error: can't read "output": no such variable

  Proposed patch:
  At the beginning of base64::decode (base64.tcl, line 281):
  set output ""


tkt_uuid: 1377937fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: missing tcl.m4
comment:
  The bwidget 1.7.0 source tarball is missing tcl.m4,
  which is needed by autoconf in order to build the
  configure script.

  Please either include tcl.m4 or generate the configure
  script before making a source tarball.


tkt_uuid: 861287ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: htmlparse
priority: 5 Medium
foundin: None
resolution: Fixed
title: htmlparse: comment delimiters
comment:
  htmlparse::parse doesn't parse comments correctly.
  One example:

  htmlparse::parse "<pre>&lt;-- a comment --></pre>"

  The closing delimiter "-->" gets turned into \01, and
  never gets turned back.  (This is legal HTML BTW, found
  in the wild).

  It also fails to recognize comments if there is a space
  between the final COM (--) and MDC (>) delimiters.


tkt_uuid: 1897846fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: list
priority: 7 High
foundin: None
resolution: Fixed
title: assign test 4.4 fails
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: 899207ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
resolution: Fixed
title: snit test failures
comment:
  In the tcllib 1.6 release,
  with Tcl/Tk 8.4.6 on Solaris 9:

  - snit 0.93

  ==== install-2.2 Delegate option * for a shadowed
  option.  Foreground is declared
      as a non-delegated option, hence it will pick up
  the option database
      default.  -foreground is not included in the
  "delegate option *", so
      the text widget's -foreground option will not be
  set from the
      option database. FAILED
  ==== Contents of test case:

      cleanup

      widget myframe {
          option -foreground white
          delegate option * to text

          typeconstructor {
              option add *Myframe.foreground red
          }

          constructor {args} {
              install text using text $win.text
          }

          method getit {} {
              $text cget -foreground
          }
      }

      myframe .frm
      set a [.frm cget -foreground]
      set b [.frm getit]
      destroy .frm
      tkbide

      list $a $b

  ---- Result was:
  red #000000000000
  ---- Result should have been (exact matching):
  red Black
  ==== install-2.2 FAILED


  ==== widgetclass-1.6 implicit widgetclass applied to
  hull FAILED
  ==== Contents of test case:

      cleanup

      widget dog { 
          typeconstructor {
              option add *Dog.background green widgetDefault
          }

          method background {} {
              $hull cget -background
          }
      }

      dog .dog
      
      set bg [.dog background]

      destroy .dog
      
      set bg

  ---- Result was:
  #FF00D6009000
  ---- Result should have been (exact matching):
  green
  ==== widgetclass-1.6 FAILED


  ==== widgetclass-1.7 explicit widgetclass applied to
  hull FAILED
  ==== Contents of test case:

      cleanup

      widget dog { 
          widgetclass DogWidget

          typeconstructor {
              option add *DogWidget.background green
  widgetDefault
          }

          method background {} {
              $hull cget -background
          }
      }

      dog .dog
      
      set bg [.dog background]

      destroy .dog
      
      set bg

  ---- Result was:
  #FF00D6009000
  ---- Result should have been (exact matching):
  green
  ==== widgetclass-1.7 FAILED


tkt_uuid: 723318ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: tree
priority: 8
foundin: None
title: struct::tree -- Report maxdepth of struct from node
comment:
  myTree depth $node -- Depth of Current Node
  myTree size $node -- Returns number of Children for 
  that Node


  How about a:

  myTree maxdepth $node -- Return the maximum depth 
  from that node to the last branch within it.

  root
   1
   2
   3
     \
      4
      5
      6
       \
        7
        8
        9
        10

  For Example:

  myTree maxdepth root
  ---> 3

  myTree maxdepth 6
  ---> 3

  myTree maxdepth -relative -- 6
  ---> 1


  the -relative option would be used to adjust the response 
  from the command to show the depth from the current 
  node.

  Any Questions?

  David Bigelow
  davidhbigelow@compuserve.com


tkt_uuid: 1859693fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
title: Submission: Poisson distribution
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: 1393804fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: asn
priority: 5 Medium
foundin: None
resolution: Fixed
title: asnPeekByte contains a typo which prevents it from working
comment:
  procedure asn::asnPeekByte contains a typo:

  It starts with lines

   proc ::asn::asnPeekByte {data_var byte_var} {
      upvar $data_var data $byte_var $byte

  which obvoisly cause error "Cannot read byte - no such
  variable" 

  Should be 

   proc ::asn::asnPeekByte {data_var byte_var} {
      upvar $data_var data $byte_var byte


tkt_uuid: 951568ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: smtp
priority: 9 Immediate
foundin: None
resolution: Fixed
title: Problems sending long messages.
comment:
  From Peter Campbell on comp.lang.tcl
  Message-ID: <DSSnc.1164$FN.128726@news02.tsnz.net>

  I have done some more debugging and found the problem
  to be with the "Trf"
  package, an incompatibility. The transform function of
  the "trf" package
  sends back a command "query/ratio" which the
  "smtp::wdata" function does not
  know - this returns the error.

  I included some debugging information in the mime
  package to delve deeper
  into the code and find the original error messages,
  rather than the message
  as reported by the application.

  By editing "smtp.tcl" and removing the usage of Trf the
  sending of the email
  works.
  ie: remove the trf line at the top, so create our own
  transform procedure.
  smtp.tcl; line 37:
  if {[catch {package require Trf  2.0}]} {
      # Trf is not available, but we can live without it
  as long as the
      # transform and unstack procs are defined.

      # Warning!
      # This is a fragile emulation of the more general
  calling sequence
      # that appears to work with this code here.

      proc transform {args} {
   upvar state mystate
   set mystate(size) 1
      }
      proc unstack {channel} {
          # do nothing
          return
      }
      set ::smtp::trf 0
  }

  The following is the output from my debugging:



  The following is the output from my debugging:

  (Desktop) 11 % smtp::sendmessage $multiT -servers [list
  {localhost}] -debug
  1 \
  >  -header [list From "<pc@acs.co.nz>"] \
  >  -header [list To pc@acs.co.nz] \
  >  -header [list Subject "Invoice TEST"]
  Trying localhost...
  <-- 220 hermes.acs.co.nz ESMTP Sendmail 8.11.6/8.11.6;
  Tue, 11 May 2004
  09:39:31 +1200
  --> EHLO localhost (wait upto 300 seconds)
  <-- 250-hermes.acs.co.nz Hello dhcp67.acs.co.nz
  [192.168.100.67], pleased to
  meet you
  <-- 250-ENHANCEDSTATUSCODES
  <-- 250-8BITMIME
  <-- 250-SIZE
  <-- 250-DSN
  <-- 250-ONEX
  <-- 250-ETRN
  <-- 250-XUSR
  <-- 250 HELP
  --> ONEX (wait upto 300 seconds)
  <-- 250 2.0.0 Only one transaction
  --> MAIL FROM:<pc@acs.co.nz> (wait upto 600 seconds)
  <-- 250 2.1.0 <pc@acs.co.nz>... Sender ok
  --> RCPT TO:<pc@acs.co.nz> (wait upto 3600 seconds)
  <-- 250 2.1.5 <pc@acs.co.nz>... Recipient ok
  --> DATA (wait upto 300 seconds)
  <-- 354 Enter mail, end with "." on a line by itself
  result =
  ecode = NONE
  einfo = Unknown command "query/ratio"
      while executing
  "error "Unknown command \"$command\"""
      ("default" arm line 2)
      invoked from within
  "switch -- $command {
   create/read
       -
          create/write
              -
          clear/write
              -
          delete/write {
              set s..."
      (procedure "::smtp::wdata" line 6)
      invoked from within
  "::smtp::wdata ::smtp::1 query/ratio {}"


  I am sure the correct way to solve this problem is to
  update the
  "smtp::wdata" procedure to handle the "query/ratio"
  command (and any others
  that the Trf package provides).

  Plus enhance the flow of error messages within the
  mime/smtp package so the
  original error information is not lost.


tkt_uuid: 602279ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: app: tkchat
priority: 5 Medium
foundin: None
resolution: Rejected
title: tkchat - Shared whiteboard
comment:
  This patch implements a shared whiteboard that hitches
  a ride on tkchat for its communication protocol. 
  Naturally, it needs more polishing before it is perfect
  for use...


tkt_uuid: 1078504fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 3 Low
foundin: None
resolution: Out of Date
title: application generates error
comment:
  Attempt to startup tkchat today results in this error
  being raised:

   $ tkchat.tcl
  Error in startup script: can't find package jlib
      while executing
  "package require jlib            "
      (procedure "logonChat" line 13)
      invoked from within
  "logonChat"
      (procedure "::tkchat::Init" line 202)
      invoked from within
  "::tkchat::Init"
      ("eval" body line 1)
      invoked from within
  "eval [linsert $argv 0 ::tkchat::Init]"
      invoked from within
  "if {![info exists ::URLID]} {
      eval [linsert $argv 0 ::tkchat::Init]
  }"
      (file "/projects/xopsrc/bin/tkchat.tcl" line 6560)

  What is jlib and where does one get it to install it?
  Seems like either tkchat should come with it, or it
  should come in tcllib or the tcl distribution if tkchat
  is going to depend on it.
  I don't even see a README in the tclapps distribution
  that references the library.

  There is, however, a note about irbridge being
  dependent on jlib.


tkt_uuid: 2220159fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: snit
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Missing in snitfaq: limitiation on names for options
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: 1491894fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: comm
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: comm "-listen 0" causes race conditions
comment:
  I observed this behavior using comm 4.3 as delivered with ActiveTcl 
  8.4.11.

  Today for the first time I tried creating multiple comm channels in
  one program.  (Hitherto I'd just used comm::comm directly.)  According
  to the man page, if you do this:

      comm::comm new mychan -listen 0

  you get a channel with an ID of "0".  You can send out with it, but
  there's no listening socket, so you can't connect to it; it has to
  connect out.  Well and good; I thought that was what I wanted.

  So suppose I send a command to a comm(n) channel at port 10001:

     mychan send 10001 {some command}

  The receiver sees the command as coming from sender with id 0.  In
  short, the receiver can't distinguish between commands coming from
  multiple senders which specify -listen 0 (assuming they are all on
  the same host).

  This is a problem for me at the application level, because I want to
  distinguish between the different clients who connect to my server.
  But it also appears to be a problem for comm as well: if I
  start up several clients with channels that use -listen 0, my server
  starts outputting ugly messages like "commIncoming race condition: 
  0".

  The work around is simply to use "-listen 1"....but it makes me
  wonder whether "-listen 0" is actually useful for anything.

  William.H.Duquette@jpl.nasa.gov


tkt_uuid: 1847125fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math :: statistics
priority: 5 Medium
foundin: None
resolution: Fixed
title: Modified pnorm function
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: 1344350fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: app: tkchat
priority: 5 Medium
foundin: None
resolution: Accepted
title: Enable browser launch for links in MacOS X
comment:
  The tkchat.tcl has code to allow clicking on URLs in the chat 
  window. The ::tkchat::gotoURL procedure then calls an appropriate 
  browser to open the URL. The code differenciates between 
  platforms via $tcl_platform(platform) and therefore uses the code 
  for $tcl_platform(platform) == "unix" also for MacOS X. This does 
  not work, since launching a program in MacOS X is done via the 
  "open -a" command and not directly like in other unices.

  The attached patch adds another case inside the "unix" branch of 
  the switch statement in ::tkchat::gotoURL to handle MacOS X 
  (using $tcl_platform(os)). It tries to launch the browser specified in 
  the $Options(BROWSER) variable. If this fails, the code tries to 
  launch the Safari browser, which should be available at all times. If 
  this also fails, an error message is displayed.


tkt_uuid: 3599839fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Duplicate
title: fileutil::findByPattern dies when encountering link on Win 7
comment:
  This has already been reported for Windows XP but since the defect is 3 yrs old and the fix is included in the prior defect report and I can find no way to update the comments section I am entering a new defect to "up" the visibility of this bug. 


tkt_uuid: 3497592fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: ListBox problem (at least with V1.9.5)
comment:
  The options selectfill and autofocus are read-only, This should be documented or modified to support write access after widget creation.


tkt_uuid: 806420ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: comm
priority: 5 Medium
foundin: None
resolution: Fixed
title: comm uses wrong fconfigure options
comment:
  Comm loses unicode chars on the way.

  This originates from a bug in the configuration of the
  channel, it is configured with:

  proc ::comm::commNewConn {chan id fid} {
      ...
      fconfigure $fid -trans binary -blocking 0
      ...
  }

  which kills all unicode chars above ascii, as encoding
  is set to binary, which strips high bytes from unicode
  chars.

  This should really be:
      fconfigure $fid -translation lf -encoding utf-8
  -blocking 0


tkt_uuid: 524712ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: md5
priority: 5 Medium
foundin: None
resolution: Invalid
title: md5::md5 fails with Trf2.1p2 (tcllib1.2)
comment:
  In tclsh (8.3):

  % package require tcllib
  1.2
  % md5::md5 507
  ::hex: wrong # args, all options require an argument

  I have Trf 2.1p2 installed, which means the following
  code is executed from md5.tcl:
  -------------------------------------------
  # Trf is available, so implement the functionality
  provided here
      # in terms of calls to Trf for speed.

      proc ::md5::md5 {msg} {
  string tolower [::hex -mode encode [::md5 $msg]]
      }
  -------------------------------------------

  The reason for the failure is that [::md5 $msg] returns
  a binary result starting with '-', which causes the
  ::hex to think there is another option.
   
  The fix is to insert "--" following the "encode":

  -------------------------------------------
      proc ::md5::md5 {msg} {
  string tolower [::hex -mode encode -- [::md5 $msg]]
      }
  -------------------------------------------

  There is at least one other occurrence of the same bug
  in md5.tcl, and I would imagine this could also occur
  where ::hex or other encoding functions are called.

  I'm willing to fix this bug.


tkt_uuid: 1566437fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: units
priority: 5 Medium
foundin: None
resolution: Fixed
title: units-10.1 fails with Tcl 8.5
comment:
  Testing units-2.1 (tcllib-1.9-rc1):

  ==== units-10.1 leading zero is not octal FAILED
  ==== Contents of test case:

      ::units::convert 09mm meter

  ---- Result was:
  0.009000000000000001
  ---- Result should have been (exact matching):
  0.009
  ==== units-10.1 FAILED


tkt_uuid: 3167248fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Fixed
title: Release file tcllib-1.13.tar.gz is corrupt
comment:
  The distribution file tcllib-1.13.tar.gz is corrupt. After downloading, trying to unpack yields
  $ tar zxf tcllib-1.13.tar.gz 

  gzip: stdin: unexpected end of file
  tar: Unexpected EOF in archive
  tar: Unexpected EOF in archive
  tar: Error is not recoverable: exiting now

  Same error with different mirrors (ufpr and switch)
  The file tcllib-1.13.tar.bz2 unpacks correctly.


tkt_uuid: 2840147fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: tar
priority: 5 Medium
foundin: None
resolution: Accepted
title: Add prefix to name of file added to tarball
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: 1276561fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 7 High
foundin: None
resolution: Fixed
title: Handling of dates/times
comment:
  Dates/times are handled incorrectly in tcllib in
  non-English locales.
  Look at this piece of code from mime.tcl:

  --------- piece of code ------
              set gmt [clock format $clock -format "%d %b
  %Y %H:%M:%S" \
                             -gmt true]
              if {[set diff [expr {($clock-[clock scan
  $gmt])/60}]] < 0} {
                  set s -
                  set diff [expr {-($diff)}]
              } else {
                  set s +
              }
  ------------------------------
  Time in this format doesn't get scanned back into
  seconds by clock scan,
  because, for example, in Russian locale (ru_RU.KOI8-R)
  in looks like:

  30 <unicode string> 2005 11:32:07

  Unicode string here transcribes as "avgust" which is
  russian name for
  August. So Tcl error "unable to convert date-time
  string" appears.
  I suggest to replace it with something like:

              set gmt [clock format $clock -format
  "%Y-%m-%d %H:%M:%S" \
                             -gmt true]

  Also I suggest to check in other such places (use of
  clock format / clock scan) in tcllib's code.


tkt_uuid: 437950ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: mclistbox
priority: 5 Medium
foundin: None
resolution: None
title: mclistbox snapshot does not build
comment:
  after downloading the mclistbox nightly snapshot from
  scriptics ftp site, an attempt to configure it
  the first time results in:
  creating cache ./config.cache
  configure: error: can not find install-sh or install.sh
  in config /vol/tclsrcsol
  /tcl84/mclistbox/config
  make: *** No targets specified and no makefile found. 
  Stop.


  Either the code should come with instructions for
  installation or with the files it needs.

  Will this code be integrated into tklib?  That
  would probably be better than spending a lot of time on
  a stand alone distribution.


tkt_uuid: 1172938fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: profiler
priority: 7 High
foundin: None
resolution: Fixed
title: profiler does not store descendent time
comment:
  I am a little confused about the tcllib profiler
  package.  I am using
  the 8.4.9 distribution on Windows XP, which includes
  profiler 0.2.2.

  Here is my elaborate test program.

     package require profiler
     ::profiler::init
     proc c1 { a } { for {set i 0} {$i<2000} {incr i} {;} }
     proc c2 { a } { for {set i 0} {$i<2000} {incr i} {;} }
     proc parent { } { for {set i 0} {$i<2000} {incr i} {
  c1 $i ; c2 $i }
  }

     parent
     ::profiler::dump ::parent

  The output is:

     ::parent {callCount 1 callerDist {GLOBAL 1}
  compileTime 2816000
     totalRuntime 2816000 averageRuntime 0 stddevRuntime 0
     covpercentRuntime 0 descendantTime 0
  averageDescendantTime 0
     descendants {}}

  The descendants data I would expect is like {c1 2000 c2
  2000}.
  The time reporting also seems wrong; how can all the
  time be
  reported as compile time with zero descendant time? 
  All the
  time is spent in the children.

  Am I missing something, or is this output completely
  wrong? 


tkt_uuid: 3091244fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: htmlparse
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: parsing doesn't respect pre tag & trims trailing whitespaces
comment:
  tcllib 1.11.1 - htmlparse 1.1.3:
  ========================

  Parsing of preformatted text in HTML data enclosed by the HTML tag "pre" leads to the loss of trailing whitespaces.

  The procedure 2treeCallback must be fixed for example like this:

      set  tag  [string tolower $tag]
      if {$tag ne "pre"} {
          set  textBehindTheTag [string trim $textBehindTheTag]
      }

  Perhaps there are still other tags to think over a specialized handling.


tkt_uuid: 1473699fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: cmdline
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: -? and -help broken
comment:
  cmdline lists the Options -? and -help per default but
  they doesn't work with the dash.

  Example Script:
  #!/bin/sh
  #\
  exec tclsh "$0" "$@"
  #
  package require cmdline
  #
  set options {
     {h              "print this message"}
  }
  #
  # set usage string
  set usage ": name \[options\] \[value\]"
  #
  # parse commandline arguments into array
  array set cmdopt [::cmdline::getoptions argv $options
  $usage]
  #
  #EoF

  Gives errors:
  ./example_script.tcl -?
  ./example_script.tcl -help

  Works as expected:
  ./example_script.tcl ?
  ./example_script.tcl help


tkt_uuid: 1042420fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: png
priority: 9 Immediate
foundin: None
resolution: Fixed
title: png/crc: 237 failed tests! (64-bit)
comment:
  About half of the tests on the
  png 0.1 package  (or is it
  the crc32 1.2 package?) are
  failing.  Many produce CKSUM
  where OK is expected.

  Others throw a "header checsum failed"
  error.

  Suggest one common error that hits
  a large number of tests.

  I see these failures on a 64-bit
  system, so I suspect they all
  derive from some place where
  the code has assumed 32-bit operations.


  NOTE: no "png" Category to assign to


tkt_uuid: 1346298fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: tkpiechart
priority: 2
foundin: None
resolution: Fixed
title: tkpiechart demo.tcl should go into examples dir
comment:
  Currently the tkchat tkpiechart module dir contains a
  file demo.tcl, which should probably be moved to the
  examples dir of the tklib, like the other examples.


tkt_uuid: 827436ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Fixed
title: smtp::sendmail does not send correct ending sequence
comment:
  I've been using the smtp::sendmail and mime types to
  send attachements (base64 encoded). The system I use is
  Windows 2000. 

  I use the SMTP server which comes with Windows 2000
  IIS. When ending a SMTP mail the server expects the
  sequence 

  <CR><LF>.<CR><LF>

  the sent sequence is just "."

  If I change line 1254 in smtp.tcl from:

  set result [talk $token $secs .]

  to 

  set result [talk $token $secs "\r\n.\r\n"]

  the SMTP server correctly registers the end sequence
  and sends the mail. 

  Now I'm not sure that this is a bug with the SMTP
  server deviating from the standards or the tcl module
  not listening to what the end sequence should be. 


tkt_uuid: 1970893fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: Serialize Helper
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: 1539479fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: asn
priority: 5 Medium
foundin: None
resolution: Accepted
title: mispelled variable in asnContext
comment:
  ::asnContext has appeard in rev 1.10 of asn.tcl.
  However, there is a mispelled variable ("out" should 
  be "data") in the function body since this rev.
  The attached patch (against current asn.tcl) resolves 
  this problem.


tkt_uuid: 587533ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: tree
priority: 5 Medium
foundin: None
resolution: Fixed
title: lappend error message misquoted.
comment:
  In the ::struct::tree::_lappend routine, when the incorrect 
  number of arguments is supplied, the error message 
  states

  "wrong # args: should be tree set node ?-key key? value"

  I think that what should be in this error message is

  "wrong # args: should be tree lappend node ?-key key? 
  value"


tkt_uuid: 577055ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct
priority: 5 Medium
foundin: None
title: Add struct::list
comment:
  Add a new command [::struct::list] to the struct package.

  This should be the extended subcommand [list] or "listx"
  that has been discussed so many times.

  Let's have an implementation of it in tcllib, so future
  discussions about are not theoretical.


tkt_uuid: 1515267fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: Installation
priority: 5 Medium
foundin: None
resolution: Fixed
title: installation process broken with latest CVS
comment:
  a typo in the installed_modules.tcl file keeps tcllib
  from installing, 1.8.0.1

  I'm attaching a patch.


tkt_uuid: 479935ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: MainFrame font configuration added
comment:
  Motivation:
  There is currently no way to set the menu and status
  bar fonts (sometimes needed for e.g. visually impaired)
  for the MainFrame widget.

  Remedy:
  This patch adds code to support options: -menubarfont,
  -menuentryfont and -statusbarfont at creation time of
  the widget as well as subsequent configures.

  Compatibility:
  The code extends the MainFrame configurability and does
  not interfere with older version usage.

  Bugs:
  None known so far. Documentation of these features must
  be included in the doc if accepted.

  Patch:
  The attached file contains a contextual diff and the
  complete new mainframe.tcl. BEWARE: the diff is based
  on my personal version of mainframe.tcl that already
  contains another patch (SF #470273: BWidget: MainFrame
  menu inconsistency), the new mainframe.tcl has it also
  incorporated.


tkt_uuid: 923055ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftpd
priority: 5 Medium
foundin: None
resolution: Fixed
title: Generic arg processing is bogus, trips on spaces in paths
comment:
  I've adapted the /tcl/demos/Tcllib/ftpd/ftpd.test -
  script to a full-functional ftp-daemon, especially
  using a modified proc like

  proc fakefs {cmd path args} {
      # Use the standard unix fs, i.e.
  "::ftpd::fsFile::fs", but rewrite the incoming path
      # to stay in the /tmp directory.

      set path [file join / tmp [file tail $path]]
      eval [linsert $args 0 ::ftpd::fsFile::fs $cmd $path]
  } 

  if transferring files with blanks in the filename, the
  $path-variable in fakefs() already holds an incorrect
  value: the cutted filename up until the first blank!

  I've been looking around the ftpd.tcl code, but someone
  with deeper knowledge of the program-logic there is
  required!

  I think this has something to do with the use of EVAL
  somewhere, because EVAL removes one level of grouping
  (so surrounding the destination-spec with "" doesn't
  solve the problem!).

  I haven't found a simple workaround yet.

  mailto:M.Hoffmann@hmk.info


tkt_uuid: 474859ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: app: tkchat
priority: 5 Medium
foundin: None
resolution: Accepted
title: interpreter startup string
comment:
  The current tkchat.tcl has a full path name to wish
  in the first line.  This tiny patchlet changes that to
  look for wish in the user's path.


tkt_uuid: 1414589fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: snit
priority: 7 High
foundin: None
resolution: Fixed
title: [package require snit] stomps on $::dir
comment:
  % set dir "Important Data"
  Important Data
  % package require snit     
  1.1
  % set dir
  /local/src/tcllib/modules/snit


  Stay in your own namespace, snit!


  :)


tkt_uuid: 3141163fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: None
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Login at hosted accounts in Rest API gdocs API
comment:
  Posting this here since there isn't any category for the rest library candidate. The gdocs example API interface should include "accountType HOSTED_OR_GOOGLE" in the static_args list of the gdocs(auth) table in order to allow login at "regular" google docs accounts, but also at hosted accounts.


tkt_uuid: 1220195fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: smtpd
priority: 5 Medium
foundin: None
resolution: Fixed
title: -deliverMIME option takes command not script prefix
comment:
  smtpd.tcl line 500 reads:

  set err [catch {$deliverMIME $tok} msg]

  should read:

  set err [catch {eval $deliverMIME $tok} msg]

  to be consistent with handling of -validate_* options,
  which take a script prefix and not a command.  This is
  noticable as a problem if one implements deliverMIME as
  (say) an object method.


tkt_uuid: 539952ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 3 Low
foundin: None
resolution: Fixed
title: odd mime/smtp/Trf interaction
comment:
  in using Tcl 8.3.2nb2 and Trf2.1 with the current 
  tcllib, two odd things happen.

  first, trf sends a create/read and a delete/read on 
  the outgoing smtp channel, which smtp.tcl isn't 
  expecting.

  second, one of the my applications generates a CTE of 
  8bit, which the mime serializer complains about.

  patches attached.

  /mtr


tkt_uuid: 1391776fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: asn
priority: 5 Medium
foundin: None
resolution: Accepted
title: asn::asnObjectIdentifier incorrectly encodes OIDs
comment:
  I've found that routine asn::asnObjectIdentifier
  produces incorrect encoding of OIDs, which is not
  understandable by OpenSSL 0.9.8a ASN1 parser.

  According to ITU-T recommendation X.690 subidentifiers
  less than 128 should be encoded as one byte, but
  asn.tcl version 1.7 as downloaded from CVS today,
  encodes them as two bytes with first byte equal to
  0x80. Some ASN1 parsers such as dumpasn1 utility,
  understand this and some don't.

  Example:

   $ tclsh
   % source asn.tcl
   % set bad [asn::asnObjectIdentifier {1 2 643 2 2 31 1}]
   %  foreach char [split $bad ""] { append hex [format "
       %02x" [scan $char %c]]}
   $puts $hex
  06 0b 2a 85 03 80 02 80 02 80 1f 80 01

  where correct encoding of this OID should be
  06 07 2a 85 03 02 02 1f 01

  Attached patch fixes this problem and also removes
  debugging puts from asn::asnObjectIdentifier routine


tkt_uuid: 720318ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Out of Date
title: modules can't be requested in safeBase
comment:
  Code to demonstrate the problem:

  % ::safe::interpCreate test
  test
  % test eval {package require base64}
  permission denied

  Problem:
  related to [Bug 599306].

  The modules subdirs of tcllib are not included in the
  default valid access path for safeBase, as they are not
  inside the auto_path. So simple load of tcllib modules
  isn't possible.

  Workaround:
  Add all needed tcllib modules subdirs to the accessPath
  option of ::safe::interpCreate.

  A decision should be made how safe interpreter support
  is handled by tcllib.


tkt_uuid: 1512671fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: Improved delete for StatusBar
comment:
  When deleting the first item of a StatusBar an obsolete
  seperator is left at the front. This patch deletes this
  obsolete seperator when deleting the first item of a
  StatusBar. I've attached the patch as well as an
  example script to show the improved delete.


tkt_uuid: 1784637fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math :: linearalgebra
priority: 5 Medium
foundin: None
resolution: Fixed
title: Changes in matmul between vers. 1.0 and 1.0.1
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: 1153603fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Fixed
title: tkchat errs out on a disconnection
comment:
  (this is msw from tcl'ers chat)
  This happened when my router reconnected itself:

  can't read "x(-body)": no such element in array
  can't read "x(-body)": no such element in array
      while executing
  "tkchat::addSystem "Network error $x(-body)""
      ("networkerror" arm line 3)
      invoked from within
  "switch -- $cmd {
      connect {
          tkchat::addSystem "Connection to Jabber Server
  Established"
      }
      disconnect {
          cleanup
          scheduleReconnect
      }
  ..."
      (procedure "::tkjabber::ClientCB" line 4)
      invoked from within
  "::tkjabber::ClientCB ::jlib::jlib4 networkerror"
      ("uplevel" body line 1)
      invoked from within
  "uplevel #0 $lib(clientcmd) [list $jlibname
  networkerror]     "
      (procedure "::jlib::recvsocket" line 16)
      invoked from within
  "::jlib::recvsocket ::jlib::jlib4"

  this is tkchat 1.263 and tcl 8.4.9 as tclkit.


tkt_uuid: 3141568fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Fixed
title: find errors out on broken directory soft links
comment:
  fileutil::find errors out on broken directory soft links.  I am running ActiveTcl 8.5.9.1 on
  Windows XP and fileutil 1.14.4 from the Activestate Teapot.

  See attached error.tcl script.  Basically, the link1_test link points to a non-existent
  directory, and then "glob -nocomplain -directory link1_test -- *" errors out.  (One could
  argue that this should not error out because "glob -nocomplain -directory non_existent_dir -- *"
  does not error out, but that's not a tcllib issue.)

      [510] ./error.tcl
      first find results: ./.error.tcl.un~ ./error.tcl ./error.tcl+ ./.error.tcl.swp ./dir1_test ./link1_test
      couldn't read directory "C:/temp/tmp/link1_test/*": no such file or directory
          while executing
      "glob -nocomplain -directory $current -types f          -- *"
          (procedure "GLOBF" line 2)
          invoked from within
      "GLOBF $current"
          (procedure "find" line 48)
          invoked from within
      "find . {string match *}"
          invoked from within
      "set findResults2 [find . {string match *}]"
          (file "./error.tcl" line 19)

  I worked around this by adding a test at the beginning of GLOBF and GLOBD.

      proc ::fileutil::GLOBF {current} {
          if {([file type $current] eq {link}) && ![file exists [file readlink $current]]} {
              return {}
          }
          ...


tkt_uuid: 2825354fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Accepted
title: Tree node -helpcmd option
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: 1416760fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math :: bignum :: float
priority: 5 Medium
foundin: None
resolution: Fixed
title: bigfloat: test suite bugs
comment:
  with -debug 1:

  * math::bigfloat 1.2
  test name 'bigfloat-add-1.0' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-add-1.0' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-add-1.0' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-add-1.0' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-add-1.0' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-add-1.0' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-add-1.0' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-add-1.0' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-add-1.0' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-add-1.0' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-add-1.0' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-add-1.0' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-add-1.0' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sub-1.1' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sub-1.1' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sub-1.1' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sub-1.1' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sub-1.1' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sub-1.1' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sub-1.1' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sub-1.1' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sub-1.1' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sub-1.1' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sub-1.1' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sub-1.1' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sub-1.1' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mul-1.2' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-div-1.3' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-div-1.3' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-div-1.3' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-div-1.3' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-div-1.3' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-div-1.3' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-div-1.3' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-div-1.3' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mod-1.4' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mod-1.4' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mod-1.4' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mod-1.4' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mod-1.4' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mod-1.4' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mod-1.4' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-mod-1.4' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-round-2.6d' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-round-2.6e' re-used; prior use in
  /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.1.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.1.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.1.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.2.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.2.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.2.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.3.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.3.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.3.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.4.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.4.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.4.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.1.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.1.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.1.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.2.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.2.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.2.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.3.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.3.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.3.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.4.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.4.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.4.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.1.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.1.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.1.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.2.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.2.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.2.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.3.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.3.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.3.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.4.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.4.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.4.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.1.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.1.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.1.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.2.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.2.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.2.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.3.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.3.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.3.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.4.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.4.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.4.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.1.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.1.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.1.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.2.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.2.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.2.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.3.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.3.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.3.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.4.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.4.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.4.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.1.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.1.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.1.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.2.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.2.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.2.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.3.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.3.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.3.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.4.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.4.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.4.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.1.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.1.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.1.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.2.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.2.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.2.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.3.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.3.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.3.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.4.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.4.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.4.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.1.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.1.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.1.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.2.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.2.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.2.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.3.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.3.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.3.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-cosh-4.7.4.0.0' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-sinh-4.7.4.0.1' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test
  test name 'bigfloat-tanh-4.7.4.0.2' re-used; prior use
  in /local/src/tcllib/modules/math/bigfloat.test


tkt_uuid: 450453ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Wont Fix
title: tcllib/ChangeLog not being maintained
comment:
  The tcllib/ChangeLog file that appears in the nightly
  cvs tar files hasn't been updated since July 18 -
  either there is something wrong with the snapshot
  utility or the file isn't being updated with changes.
  Either case makes life miserable for people trying
  to use the library and wanting to know what changes
  have recently went into the package.


tkt_uuid: 663394ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: None
priority: 6
foundin: None
resolution: Not Applicable Here
title: Update all.tcl
comment:
  dgpThe all.tcl file in tcllib could be greatly 
  simplified by [package require Tcl 8.3; package require 
  tcltest 2.2]
  dgpthough even then, [getErrorMessage] would 
  need to be defined, probably in a "loadScript"
  akuPossibly. Are you willing to draw up a patch ?
  akugetErrorMessage - yes, because the change 
  happened in 8.4
  dgpIf you want to register a brief FR in tcllib 
  about updating all.tcl and assign to me, that's OK./
  dgpI don't expect to attack it with a high priority 
  though./
  dgpIt'
  dgps
  akuOk.


tkt_uuid: 784515ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: Documentation
priority: 7 High
foundin: None
resolution: Fixed
title: Obsolete module instructions in README
comment:
  The overall tcllib README file describes how to add new 
  modules to Makefile.in.  A casual inspection of Makefile.in 
  reveals that it's not done this way anymore.  README should 
  be updated to reflect the new method.


tkt_uuid: 665737ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: exif
priority: 7 High
foundin: None
resolution: Fixed
title: (v1.3) coding error causes failure in exif::makerNote
comment:
  In tcllib 1.3's exif module, in the exif::makerNote
  procedure, under the "$tag == 15" elseif (line 544),
  there are eight references in 'if' expressions to '$v'
  instead of the proper '$value'.  This bug goes
  unnoticed in many cases, but an error will occur if
  '$v' happens to contain a value that TCL can't convert
  to a boolean.  In my case, parsing JPEGs from a Canon
  EOS-D60, 3 files out of 150 caused a problem.  In each
  case, $v returned "+1/3", which TCL refused to booleanize.

  The fix ($v => $value in the eight 'if' clauses) fixed
  things nicely.


tkt_uuid: 861277ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: htmlparse
priority: 5 Medium
foundin: None
resolution: Fixed
title: htmlparse.tcl: backslashes in content
comment:
  htmlparse::parse fails if backslashes appear in content:

  htmlparse::parse "<p>\\</p>"
    ==> error "Missing close-brace"


tkt_uuid: 2381524fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: log
priority: 5 Medium
foundin: None
title: RFE: [logger] print all arguments passed to logger API
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: 514475ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 8
foundin: None
title: request to add listx to tcllib
comment:
  listx is a project by one or more of the Tcl community
  to create an integrated list handling command for tcl.
  It would consist of a superset of (all?) commonly
  existing extension Tcl list handling functions.  See
  http://www.purl.org/net/akupries/tcltk.html for details
  .


tkt_uuid: 1862246fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: None
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: tcl tutorial
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: 520940ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : request for new app
priority: 5 Medium
foundin: None
title: New application bundle - tcldevapps
comment:
  I'd like to suggest a new bundle created in tcllib -
  this might be called tcldevapps.  The idea would be
  development tools for the Tcl programmer.

  The first application I would like to see in that suite
  would be tkinspect.  Another might be one of the
  debugging tools.  There are likely other applications
  that are of use to the developer that would fall into
  this category.


tkt_uuid: 1897839fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: stringprep
priority: 5 Medium
foundin: None
resolution: Fixed
title: stringprep test 2.3 fails
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: 505465ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: 2 new commands for PanedWindow
comment:
  What about 2 new commands for the PanedWindow to 
  hide/show a frame?

  Here is what I wrote to do this:

  proc PanedWindow::show { path num } {
    variable _panedw
    if { $num < $_panedw($path,nbpanes) } {
    }
    if [winfo exists [set pane "$path.f$num"]] {
      set side  [Widget::getoption $path -side]
      grid $pane
      if { ![string compare $side "top"] || ![string 
  compare $side "bottom"] } {
          grid columnconfigure $path [expr {2*$num}] \
              -weight  [Widget::getoption $path.f$num -
  weight]
      } else {
          grid rowconfigure $path [expr {2*$num}] \
              -weight  [Widget::getoption $path.f$num -
  weight]
      }
      if { [expr $num + 1] < $_panedw($path,nbpanes) } {
        set sash "$path.sash[expr $num + 1]"
      } elseif { $num > 0 } {
        set sash "$path.sash$num"
      }
      if [winfo exists $sash] {
        grid $sash
      }
    }
  }

  proc PanedWindow::hide { path num } {
    variable _panedw
    if { $num < $_panedw($path,nbpanes) } {
    }
    if [winfo exists [set pane "$path.f$num"]] {
      set side  [Widget::getoption $path -side]
      grid remove $pane
      if { ![string compare $side "top"] || ![string 
  compare $side "bottom"] } {
          grid columnconfigure $path [expr {2*$num}] \
              -weight  0
      } else {
          grid rowconfigure $path [expr {2*$num}] \
              -weight  0
      }
      if { [expr $num + 1] < $_panedw($path,nbpanes) } {
        set sash "$path.sash[expr $num + 1]"
      } elseif { $num > 0 } {
        set sash "$path.sash$num"
      }
      if [winfo exists $sash] {
        grid remove $sash
      }
    }
  }


tkt_uuid: 719616ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: None
priority: 8
foundin: None
resolution: Fixed
title: alter install.tcl to support re-installs
comment:
  Index: install.tcl
  =========================================
  ==========================
  RCS file: /cvsroot/tcllib/tcllib/install.tcl,v
  retrieving revision 1.2
  diff -w -b -r1.2 install.tcl
  18c18
  <             file copy $file $sub
  ---
  >             file copy -force -- $file $sub

  30c30
  < file copy pkgIndex.tcl $installdir
  ---
  > file copy -force -- pkgIndex.tcl $installdir


tkt_uuid: 967906ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: bwidget - Font Chooser Cursor Usage
comment:
  In the font chooser, the listbox cannot be navigated with the cursor key. Adding the bottom two lines to  SelectFont::create corrects this

  bind $lbf <space>           $script
  bind $lbf <1>               [list focus %W]
  +bind $lbf <Up>    $script
  +bind $lbf <Down>   $script


tkt_uuid: 1961881fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 6
foundin: None
resolution: Fixed
title: mime - termination string missing error
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: 1425947fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Duplicate
title: mime::parsedatetime - error on months
comment:
  When using ::mime::parsedatetime on months ( long and
  short ) as well as on "proper", there are errors
  handling months. there are more ways to fix the error,
  but I think the easiest is :

  Change variables to :

    variable MONTHS_SHORT [list None Jan Feb Mar Apr May
  Jun Jul Aug Sep Oct Nov Dec]
    variable MONTHS_LONG  [list None January February
  March April May June July                             
         August Sepember October November December]

  You need the first element to be "None" ( could be
  dummy), because %m (clock format option) returns values
  from 1-12 not from 0-11

  Also you must change clock format option %e to %m on
  all month related functions, because %e returns the day
  of the month not the month.

  Change the line that read :

  return [lindex $MONTHS_LONG [clock format $clock
  -format %e]]

  to :

  return [lindex $MONTHS_LONG [clock format $clock
  -format %m]]

  Change the line that read :

  return [lindex $MONTHS_SHORT [clock format $clock
  -format %e]]

  to :

  return [lindex $MONTHS_SHORT [clock format $clock
  -format %m]]

  Change the line that read :

   set mon [lindex $MONTHS_SHORT [clock format $clock
  -format %e]]

  to :

   set mon [lindex $MONTHS_SHORT [clock format $clock
  -format %m]]


tkt_uuid: 1846923fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: math
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Submission: incomplete Gamma function
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: 1359041fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: patch adding -autopost option to ComboBox
comment:
  I wanted a ComboBox that would automatically post as
  soon as the user started typing, and would scroll to
  the value that is most similar to the entry's input. 
  The following patch adds an "-autopost" boolean
  configuration option that performs this behavior. 
  Furthermore it handles up and down arrow key events to
  let the user instead select an item from the listbox. 
  Pressing the escape key while the entry has focus
  causes the listbox to unpost.

  This patch is against BWidget 1.7.


tkt_uuid: 907904ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: None
priority: 8
foundin: None
resolution: Accepted
title: Patches to adjust startup for modules and examples
comment:
  These are the patches used in the OpenBSD port of
  Tcllib to adjust the 'exec tclsh' lines of scripts.


tkt_uuid: 501339ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: None
priority: 6
foundin: None
resolution: Accepted
title: CRC32 from Wiki - Call for comments.
comment:
  I've tcllib-ized the CRC32 Cyclic Redundancy Check
  implementation that is available from
  http://mini.net/tcl/2259.tcl by Wayland Augur and
  posted by Arjen Markus. We currently have sha, md5 and
  base64 modules so keeping with this style I propose a
  new crc module with the attached code etc.

  What does everyone think?


tkt_uuid: 2063144fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: snit
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Snit method name collision
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: 1225870fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: control
priority: 5 Medium
foundin: None
title: [try] command
comment:
  Here's a [try] command using the features of TIP#90,
  perhaps for adding to the control package. I'm
  perfectly happy with the code being published under the
  normal tcllib license.

  proc try {script args} {
      upvar 1 try___msg msg try___opts opts
      if {[llength $args]!=0 && [llength $args]!=2} {
  return -code error "wrong \# args: should be \"try
  script ?finally script?\""
      }
      if {[llength $args] == 2} {
  if {[lindex $args 0] ne "finally"} {
      return -code error "mis-spelt \"finally\" keyword"
  }
      }
      set code [uplevel 1 [list catch $script try___msg
  try___opts]]
      if {[llength $args] == 2} {
  uplevel 1 [lindex $args 1]
      }
      if {$code} {
  dict incr opts -level 1
  return -options $opts $msg
      }
      return $msg
  }


tkt_uuid: 777568ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: None
title: tklib ipentry widget pkgIndex.tcl bug
comment:
  the pkgEntry.tcl file for ipentry says:
  i# Tcl package index file, version 1.1

  Installing this causes all tcl package require calls to
  fail due to the way package require reads all
  pkgIndex.tcl files and insists that none fail...


tkt_uuid: 2499603fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Fixed
title: fileutil::jail returns wrong results in repeated execution
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: 1687902fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: tree
priority: 5 Medium
foundin: None
title: Documentation improvement
comment:
  Today, for the first time, I took a proper look at the struct::tree package to figure out what it was for. Unfortunately, I had to go source-diving to really understand what it was doing...

  Apparently the documentation can be improved. What I got hung up on was the fact that the meaning of a "node", as used with most of the subcommands, was not clear from the start. After having gone source-diving and rereading the man page I find some hints, but apparently these are not prominent enough for me to spot them on the first reading.

  Some concrete possibilities for how to improve things:

  1. In the Description:

    A tree is a collection of elements, called nodes, one of 
    which is distinguished as a root, along with a relation 
    ("parenthood") that places a hierarchical structure on 
    the nodes.

  insert "(strings)" after "elements". I think this would actually have been sufficient for me, but as it were I was at a loss about the nature of these elements.

  2. Extend the Description with a paragraph comparing trees to arrays, e.g.:

    A tree is thus similar to an array, but with three important differences:
    1. Trees are accessed through an object command, whereas arrays are accessed as variables. (This means trees cannot be local to a procedure.)
    2. Trees have a hierarchical structure, whereas an array is just an unordered collection.
    3. Each node of a tree has a separate collection of attributes and values. This is like an array where every element is a dictionary.

  It might also be good to place a paragraph detailing any restrictions on the names of nodes somewhere above the command descriptions, as that is often useful information when planning interfaces for other things to be built on top of trees. (E.g., if spaces are not allowed in node names then one probably cannot use [list] to construct node names.)


tkt_uuid: 1844111fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
title: snitfaq: $self destroy restrictions?
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: 1855635fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Fixed
title: tkchat: Error message on opening current history in new pane
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: 777061ffffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: None
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: add images to widget::balloonhelp
comment:
  Allow images in the balloonhelp label for
  balloonhelp.tcl using -image name.  For tcl 8.4, also
  accept -compound position.  

  Use resources to define the label properties.  

  Have label wrap at 3i.


tkt_uuid: 2976290fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: base64
priority: 5 Medium
foundin: None
resolution: Fixed
title: decode fails
comment:
  This code:

  ::base64::decode s=GQMRAk5WXhsABh0NEx4RXBocBVgBHQMXHRgEFltMQENQXEFOExJVQ0RAQERUQ0dAEhYEExVIRRVVFENWKxMKABsPGBI6LRoYLhsEFhsXGFkXEwZXGQMIHg==

  produce an error:
  can't use empty string as operand of "&"
      while executing
  "expr {($v << 2) | (($w & 0x30) >> 4)}"
      (procedure "::base64::decode" line 27)
      invoked from within
  "::base64::decode s=GQMRAk5WXhsABh0NEx4RXBocBVgBHQMXHRgEFltMQENQXEFOExJVQ0RAQERUQ0dAEhYEExVIRRVVFENWKxMKABsPGBI6LRoYLhsEFhsXGFkXEwZXGQMIHg=="
      ("uplevel" body line 1)
      invoked from within
  "uplevel #0 {::base64::decode s=GQMRAk5WXhsABh0NEx4RXBocBVgBHQMXHRgEFltMQENQXEFOExJVQ0RAQERUQ0dAEhYEExVIRRVVFENWKxMKABsPGBI6LRoYLhsEFhsXGFkXEwZXGQMIHg=..."

  The source string may be invalid, but the code should not fail like this.


tkt_uuid: 2597454fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
resolution: Fixed
title: Warnings in documentation
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: 768610ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Works For Me
title: NoteBook can't accept page named "C:\foo\bar"
comment:
  % NoteBook .book
  % .book insert end {C:\foo\bar} -text {C:\foo\bar}

  throws an error:

  bad window path name ".altab0.pages.fC:\foo\bar"
      while executing
  "frame $path.f$page 
   -relief flat

  ...


tkt_uuid: 1007762fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: ctext
priority: 5 Medium
foundin: None
resolution: Fixed
title: Several options not working as expected in ctext widget
comment:
  I ran into a few oddities while using ctext to create a
  syntax-sensitive editor:

  After creation:

  .c configure -linemap 0 ==> unknown option 

  While creating the widget:
  -font has no effect (it is suppressed) but afterwards
  it does have. It seems to me unnecessary to suppress
  this option.


tkt_uuid: 1720144fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftpd
priority: 8
foundin: None
resolution: Fixed
title: Unable to ftp files with multiple spaces together
comment:
  In ftp::read there is a line:

  set parts [split $command]

  The problem with splitting on a space is that multiple spaces will turn into empty list elements {}.

  I understand the split is needed to make sure $command is a valid list, but perhaps there could be some sort of statement to remove empty list elements.  Something like:

  set parts [string map {\{\} ""} [split $command]]


tkt_uuid: 458011ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct
priority: 5 Medium
foundin: None
resolution: Fixed
title: Limitations to the _names_ of nodes
comment:
  Hello,

  I found some annoying errors/limitations in the tree
  library 
  included in tcllib (at least in version 0.4, but
  nothing seems
  changed in 0.8).

  For my purposes, the limitations can be overcome, but
  the
  annoyance
  comes from the fact that they were not documented:

  - The names of nodes can not include :: or a space
  (probably tabs
    are forbidden as well). Using :: maked Tcl complain
  about a 
    missing parent namespace and a space caused a message
  about
  missing
    data elements (in my memory serves me).

    All these errors occurred after I successively
  created the
  node!

  - I had to examine the code to see that the index of
  the insert 
    subcommand may be "end" as well as an integer.

  - The version of Tcl that is required is later than 8.0
  (the
    one which I used initially).

  As far as I am concerned, the changes to be made are:

  - Verify that the name of the node is consistent with
  the
  limitations,
    while creating it with the insert subcommand.
  - Verify the version of Tcl
  - Add the above limitations to the documentation. 

  Regards,

  Arjen Markus


tkt_uuid: 492563ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: relative domain when parsing email addresses
comment:
  I am submitting a request for a feature for
  mime::
  package.
  If I do mime::parseaddress on some addresses,
  I am getting them parsed against the machine name.
  But I have a very complicated server with a lot of
  domain names pointed to it. I need an option for
  mime::parseaddress to parse addresses relative
  not to machine name but to domain directly provided.
  for example
  set zinfo [mime::parseaddress -mydomain qq.com
  "addr1@qq.com"]
                                  Thank you
                                  Denis Medvedev
  P.S. where is a distribution of tcllib1.1?
  I can't download it from sourceforge - bad requests...
  If you can, please update the distribution of tcllib
  on ftp.scriptics.com - there is only  version 0.8


tkt_uuid: 1897843fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: stringprep
priority: 5 Medium
foundin: None
resolution: Fixed
title: saslprep test 1.7 fails
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: 3382519fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: bwidget 1.x
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: "Font" option configuration for selected page of NoteBook
comment:
  In documentation for BWidget it is stated that with "itemconfigure" command user can query/modify any option that can be used during NoteBook widget creation.
  With current version of BWidget (1.9.5) there is no possibility to change "-font" option for single page.
  I've made few modifications to file "notebook.tcl", and right now it is possible to do that.
  Modified file is attached to this report - maybe it is worth to include it in official release.

  Best regards to all,
  Michal.


tkt_uuid: 485717ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: csv
priority: 5 Medium
foundin: None
title: add csvdiff to examples directory
comment:
  during the development of the csv module, the author,
  andreas kupries, wrote a csvdiff application that
  demonstrates yet again the usefulness of the
  application.


tkt_uuid: 224477ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: pop3
priority: 5 Medium
resolution: Fixed
title: pop3::list and pop3::top can hang
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: 530056ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: textutil
priority: 5 Medium
foundin: None
resolution: Fixed
title: Misleading error message in expander
comment:
  When a user of the expander does not pop all the 
  contexts it pushed during the expansion process the 
  core expander will access the wrong context when 
  trying to restore bracket information of an outer 
  invocation. The generated error message refers to the 
  lb variable, telling us that it is missing. But the 
  root cause is that there are still user contexts open.

  Change the expander to check that before/after levels 
  of contexts are the same and generate a better error 
  message if the levels are not the same. Maybe even 
  name the contexts which were not popped.


tkt_uuid: 2023543fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: amazon-s3
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: S3.test and xsxp.test fail during tcllib make test
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: 3309165fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: math
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: math::bigfloat::isInt returns 1 on non-integers
comment:
  Tcl 8.5
  math::bigfloat version 2.0.1

  The procedure math::bigfloat::isInt performs a very naive check to distinguish BigFloats from integers, but the check isn't nearly comprehensive enough to cover all or even most cases.  The doc states that the proc should be able to distinguish standard Tcl 8.5 integers from other values.  But note for example:

  % isInt 2.0
  1
  % isInt 0.5
  1
  % isInt 1/2
  1
  % isInt [expr exp(1)]
  1
  % isInt i
  1
  % isInt HAM_SANDWICH
  1

  A better implementation might be something like:

  proc isInt {n} {
  if {[catch {set n [expr abs($n)]}]} {return 0}
  if {[string first . $n] > -1} {return 0}
  return 1
  }


tkt_uuid: 2909184fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tklib: request for new module
priority: 5 Medium
foundin: None
title: new menubar command
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: 3609346fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: Installation
priority: 7 High
foundin: None
resolution: Accepted
title: /usr/bin/dia: filename clash
comment:
  Hi!

  The newly released tklib 0.6 installs the dia application into /usr/bin/. Though there is another dia (http://projects.gnome.org/dia/). It's unfortunate that two applications have the same name. Could you rename it somehow?


tkt_uuid: 1615159fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: diagrams
priority: 5 Medium
foundin: None
resolution: Out of Date
title: tklib::Diagrams examples need fix
comment:
  The code in draw_anchor.tcl , draw_fraction.tcl , and draw_heater.tcl need changed to use
  package require Diagrams
  instead of 
  source draw_diagram.tcl
  I think they all need a 
  package require Tk
  as well.
  The other examples may need modified to also use the package - I think they might include the package inline.


tkt_uuid: 708502ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: struct
priority: 7 High
foundin: None
resolution: Accepted
title: Longest common subsequence of two lists
comment:
  The core of a differential file comparison program,
  such as Unix 'diff', is the ability to compute or
  approximate the longest common subsequence
  of two lists. In response to requests from Pascal
  Scheffers and Jean-Claude Wippler for a pure-Tcl
  'diff' for wikit, I've developed Tcl code that implements
  the Hunt-McIlroy algorithm for longest common
  subsequence.

  It strikes me that this fits the [chart of proposed
  additional list functionality] that Andreas has
  placed on the Wiki, and that a natural place to
  put it in Tcllib would be as

       [::struct::list lcs $list1 $list2]

  But of course, we don't have the ::struct::list
  command yet, so I've no framework in which to
  fit this.

  I'm attaching source code, test suite, and a
  draft manual page for the comparison code
  to this article for your review.  I'm presuming
  that it should fit nicely with feature request
  # 577055. But I think that Andreas should
  review it and commit if he approves, since he
  seems to be the leader for this functionality.


tkt_uuid: 2943788fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ntp
priority: 5 Medium
foundin: None
resolution: None
title: couldn't open socket: connection refused
comment:
  proc tz:gettime { server } {
    package require time;
    set time "";
    while {$time == ""} {
      set tok [::time::gettime $server];
      set time [::time::unixtime $tok];
    }
    return $time;
  }

  puts [tz:gettime "pool.ntp.org"];

  Tcl error [tz:gettime]: couldn't open socket: connection refused

  How to I get around this error so it tries another server...


tkt_uuid: 442474ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Fixed
title: BWidget: minor changes to PanedWindow
comment:
  I've attached a small patch (diff -c format) for the
  BWidget paned.tcl file.

  Motivation:
  --------
  1) The paned windows are divided by sashes. At the
  moment, the shape of the sash handler is defined by the
  OS the application is running: button for UNIX, line
  for Windows. It would be nice to be able to define it
  by hand (many users prefer the complete line as sash
  handler, buttons are easily overseen and very ...
  fumbly).

  2) The actual minimum setable values for the sash
  widths consume too much screen estate.

  Remeddy:
  -------
  1) introduce a new optional argument (say: -activator)
  width the values 'button' and 'line'. If set, use this
  as sash handler; if not set, use the old OS dependent
  mechanism.
  2) allow lower values for optional argument -width

  Impact of changes to existing code:
  -------------------------
  None, behaviour is exactly the same, except lower
  values for -width argument don't throw an error.


tkt_uuid: 1903306fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: xyplot xconfig / yconfig -scale not working
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: 3607261fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: tklib :: widget :: dateentry
priority: 5 Medium
foundin: None
resolution: Duplicate
title: Calendar closes by clicking year/month navigation arrow.
comment:
  I have modified dateentry <ButtonPress> binding not to close a calendar by clicking items tagged with "cbutton".


tkt_uuid: 974034ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Rejected
title: ArrowButton attributes insensitive to [option add]
comment:
  The command [option add *ArrowButton.$property 20 100]
  has no effect for at least the properties "width" and
  "height". (While it does have effect for the options
  "background" and "foreground").

  I have been using BWidget 1.7 in combination with
  Tcl/Tk 8.4.6


  Sincerely,

  Erik Leunissen


tkt_uuid: 1998628fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
resolution: Fixed
title: Tcl lib and safe interpreter
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: 2812473fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: math :: statistics
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: test-normal description is confusing or wrong
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: 2028993fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: htmlparse
priority: 5 Medium
foundin: None
resolution: Accepted
title: ::htmlparse::mapEscapes doesn't handle the &apos; entity
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: 3062782fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: graph
priority: 5 Medium
foundin: None
resolution: Invalid
title: graphops.test fail
comment:
  ==== modules/struct/graphops.test graphop-ttcl-gtcl-stcl-sttcl-qtcl-bipartite-3.2 FAILED =========
  ==== Contents of test case:

      SETUP_D
      set result [struct::graph::op::isBipartite? mygraph]
      mygraph destroy
      set result

  ---- Result was:
  ---- Return code should have been one of: 0 2
  ---- errorInfo: can't read "qret": no such variable
      while executing
  "llength $qret"
      (class "::struct::queue::queue_oo" method "size" line 3)
      invoked from within
  "$pending size"
      (procedure "struct::graph::op::isBipartite?" line 49)
      invoked from within
  "struct::graph::op::isBipartite? mygraph"
      ("uplevel" body line 3)
      invoked from within
  "uplevel 1 $script"
  ---- Result should have been:

  ==== modules/struct/graphops.test graphop-ttcl-gtcl-stcl-sttcl-qtcl-bipartite-3.2 ====


  Then most (all?) the rest of the tests in graphops.test
  also fail because the tests are not independent.  The
  failure of one test to properly cleanup causes later
  tests to fail.

  Actual bug appears to be in queue_oo.tcl ?


tkt_uuid: 1747945fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: profiler
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Patch to avoid inflation of the 'statTime' array
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: 826145ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: comm
priority: 7 High
foundin: None
resolution: Invalid
title: wrong eval of send arguments with blanks (e.g lists)
comment:
  when the send is called with arguments containing lists the 
  evaluation on the receiving side is one level too deep. 
   
  line 1066 of tcllib1.5/comm.tcl (comm 4.1) reads: 
           set err [catch [concat [list uplevel #0] $buffer] ret] 
  this evaluates the passed buffer one time too much. 
  if changed to: 
           set err [catch {uplevel #0 $buffer} ret] 
   
  it correctly expands the passed lists. 
   
  Could this please be checked and changed in the next version. 
   
  Thanks. 
   
  Benno Lange 


tkt_uuid: 3440058fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: pki
priority: 5 Medium
foundin: None
title: (pki) Key related stuff
comment:
  ::pki::rsa::generate and ::pki::pkcs::parse_key procs only handles the n,e,d vaules of a key, and calculates the size.  On file attached, there is the full info of the rsa key set.

  There is a new proc to converts the tcl stored key to pem, also with DES password encryption option, which is fully recognized by openssl.  (Not sure if it is named properly)

  However, there is a little bug i can not find yet after generating a rsa key, which sometimes makes crash the ::pki::pkcs::create_csr process, but it can be fix by generating a key then convert to pem then parse it back.

  btw, i get an "integer value too large to represent" error when generating a 4096bit length key on ::pki::_isprime, should i post it as a bug?

  Regards,

  -=Raul=-


tkt_uuid: 1059528fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct
priority: 5 Medium
foundin: None
title: lock-free data structures
comment:
  Would you like to see non-blocking implementations 
  of common data structures be added to a TCL library 
  module?
  - http://www.cs.chalmers.se/~noble/
  - http://groups.google.de/groups?
  threadm=YVyfd.10491%24HA.550%
  40attbi_s01&group=comp.programming.threads


tkt_uuid: 466011ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Fixed
title: option rc file saved w/open permissions
comment:
  when tkchat creates its $HOME/.tkchatrc file , tkchat
  should probably do something about setting the files
  permissions to rw------- / 600 on unix.


tkt_uuid: 548540ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: ftp::Put success on control timeout
comment:
  On numerous Tcl versions (up to 8.3) and ftp
  library versions (1.2, 2.2, 2.3) we have
  experienced false successes for ftp::Put.
  Recently, we have noticed that these occur when
  ftp::Put encounters the error:
  "Timeout of control connection"

  If a sequence of files are being sent by ftp::Put,
  then subsequent files after the erroneous success
  will have their data written to the wrong file name.

  E.g.

  ftp::Put A is OK

  ftp::Put B times out

  ftp::Put C sends C's contents to the file B!

  As a work-around I set a flag in the
  ftp::DisplayMsg procedure within the error
  branch.  If this flag is set despite ftp::Put
  indicating success, then I treat this as a 
  failed ftp::Put.  I then quit the connection
  to try again.

  Additionally, a couple of times after experiencing
  these false-positive results when we have attempted
  to quit the connection, we have encountered an
  inifinite loop:

  bgerror failed to handle background error.
      Original error: Unknown state "quit_sent"
      Error in bgerror: invalid command name "bgerror"
  bgerror failed to handle background error.
      Original error: too many nested calls to 
  Tcl_EvalObj (infinite loop?)
      Error in bgerror: too many nested calls to 
  Tcl_EvalObj (infinite loop?)

  (This is using ftp_lib.tcl 2.3 with Tcl 8.3 on
  Solaris)


tkt_uuid: 618241ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: ftp::Get <source> -variable <var> bombs
comment:
  ftp::Get <source> -variable <var>  is used by ftpvfs
  and fails everytime. 

  Test code:
    package require ftp

    set ftp [ftp::Open cdaftp.harvard.edu ftp  
  john@cfa.harvard.edu]
    ftp::Get $ftp  
  pub/science/ao03/cat4/3672/primary/acisf03672N001_1_sum2.html
  -var

    puts $X
    exit


  I don't see how this ever worked.  If -variable is set
  then $dest gets set to the $source.

  If $ftp(inline) then no $dest should be expexted,
  $dest should only be set on !$ftp(inline).


  ftp.tcl:
  1955c1955
  <     if {$ftp(inline) != 2} {
  ---
  >     if {$ftp(inline) == 0} {


tkt_uuid: 726275ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: general request
priority: 3 Low
foundin: None
resolution: Not Applicable Here
title: distinguish tcllib man pages from other packages
comment:
  When a Tcl extension installs, care needs to be taken
  that the manual pages do not overwrite pages from some
  other package.

  To do this, perhaps it is necessary to install man
  pages to match
  the namespace of the module:

  struct::tree.n

  for instance - or, if the :: are a problem , then perhaps 
  struct_tree.n


tkt_uuid: 1028668fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Fixed
title: exif -- make field(19) optional
comment:
  Our old Canon PowerShot S100 camera generates files, 
  which cause the following error from exif::analyze: 
   
  can't read "field(19)": no such element in array 
  % set errorInfo 
  can't read "field(19)": no such element in array 
      while executing 
  "expr {$field(19)-0x3000}" 
      (procedure "makerNote" line 130) 
      invoked from within 
  "makerNote $data $offset" 
      (procedure "exifSubIFD" line 18) 
      invoked from within 
  "exifSubIFD $data $offset" 
      (procedure "app1" line 62) 
      invoked from within 
  "app1 $data $thumbnail" 
      (procedure "exif::analyze" line 30) 
      invoked from within 
  "exif::analyze file7" 
      ("uplevel" body line 1) 
      invoked from within 
  "uplevel #0 {exif::analyze file7}" 
   
  The attached patch makes the code check for the presence 
  of field(19) prior to using it. 


tkt_uuid: 410198ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Accepted
title: New module: logging facility
comment:
  This patch provides a full-fledged logging facility for
  tcl applications and libraries. It was reaped from my
  own Pool_Base and modified too fit into tcllib.

  Missing from the patch is documentation, but this will
  follow shortly.


tkt_uuid: 475846ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: control
priority: 5 Medium
foundin: None
resolution: Fixed
title: install leaves control broken
comment:
  The control package makes use of Tcl's auto-loader
  to load only the commands that are actually used.
  In order for this to work, a "tclIndex" file must
  be generated and installed, but tcllib's 'make install'
  does not do this.

  Note also that 'make install' blindly installs all
  *.tcl files, assuming they are all part of the package.
  If other Tcl scripts (developer aids, etc.) are
  included in the source directory, they need to have
  a name not matching *.tcl so they are not mistakenly
  installed.

  Proposed fix to control:
  rename index.tcl -> genIndex
  generate tclIndex and check it in to CVS
      now developer responsbility to keep it
      up to date.

  Proposed fix to tcllib Makefile:
  have 'make install' install files named
      'tclIndex' as well as '*.tcl'

  As currently shipped with tcllib 1.1, control 0.0
  does not work at all.


tkt_uuid: 1307714fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: ftp - NList Documentation problem
comment:
  In the ftp documentation --> NList command:
  ::ftp::NList handle ?directory? 

  When I try passing a pattern (like the List command)
  it seems to work.

  eg. ftp::NList $h_ftp "*.xml"
  Works altough not documented


tkt_uuid: 1869943fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: base64
priority: 5 Medium
foundin: None
resolution: Rejected
title: base64::decode fails while decoding invalid base64 strings
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: 756948ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: html
priority: 7 High
foundin: None
resolution: Invalid
title: html::select's use of ncgi not correct ?
comment:
  tcllib CVS head.

  Looking at the implementation of html::select I believe 
  that its use of ncgi::valueList together with lsearch is 
  incorrect.

  The result of valueList is a list of lists. I.e each element 
  of the result is a 2-element list containing metadata and 
  the value. Using that in lsearch -exact means that the 
  string searched for has to be the same. But the string is 
  actually only the value of the form element.

  Either we have to lindex the result of valueList to strip 
  the outer list, or we have to use ncgi::value to get only 
  the value for the form element.

  Note: The form element select has only one value, not 
  multiple ones. 


tkt_uuid: 900041ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: htmlparse
priority: 5 Medium
foundin: None
resolution: Fixed
title: htmlparse does not supprt empty elements
comment:
  htmlparse 1.3 (as well as 2.0) does not support
  empty elements of the form:

  <e ... />

  I think this is supported in the HTML standard.

  e.g.
  <list name="List1" />
  <list name="List2" />
  results in
     list {} {name="List1"} {}
     list {} {name="List2"} {}
  rather than
     list {} {name="List1"} {}
     list {/} {} {}
     list {} {name="List2"} {}
     list {/} {} {}

  The first case results in havoc for 2Tree.

  A quick fix is to perform the cmd substitutions in
  2 passes (a necessary evil?)

  htmlparse 1.3 change (I think the Class code was
  removed in later versions):

  set w " \t\r\n";# white space
  set exp1 <(/?)([CClass ^$w>]+)[CClass $w]*([CClass 
  ^/>]*)>
  set exp2 <(/?)([CClass ^$w>]+)[CClass $w]*([CClass 
  ^/>]*)/>

  set sub1 "\}\n$cmd {\\2} {\\1} {\\3} \{"
  set sub2 [concat $sub1 "\}\n$cmd {\\2} \{/\} \{\} \{"]  

  regsub -all -- $exp1 $html $sub1 html
  regsub -all -- $exp2 $html $sub2 html

  Any comments?

  Tony Grimm
  grimmt@agilent.com


tkt_uuid: 1234831fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Fixed
title: runtime-error when owner of file is wrong
comment:
  Hi,

  I do a anonymous ftp from a UNIX machine to a "windows
  2000 server" (in passive mode):

  The owner of the file is Administrator, i try to
  overwrite it
  with anonymous account (i-user on windows).

  This should give a ftp error 550 instead I get 
  the error at the end of this post.

  After deleting the files and re-creating them with
  anonymous account my problem was solved, small
  non-blocking issue for me...

  Regards,

  Christophe

  :<<
  can't unset "ftp(state.data)": no such element in array
      while executing
  "unset ftp(state.data)"
      ("default" arm line 4)
      invoked from within
  "switch -exact -- $rc {
                  1 -
  2 {
                      set ftp(State) put_close
                  }
                  default {
              ..."
      ("put_sent" arm line 2)
      invoked from within
  "switch -exact -- $ftp(State) {
          user { 
              switch -exact -- $rc {
                  2 {
                      PutsCtrlSock $s "USER $ftp(U..."
      (procedure "::ftp::StateHandler" line 78)
      invoked from within
  "::ftp::StateHandler 0 sock5"
  >>


tkt_uuid: 473656ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: pop3
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: pop3::retrieve blocking forever
comment:
  Hi folks!

  I tried to use pop3::retrive and found a problem. It
  blocks while reading
  the message. I examined the code and found that it
  blocks on line 

  set msgBuffer [read $chan $size]

  I made a few tests and found that the message size if
  always less than
  $size. This was tested with qpopper v2.43, qpopper
  v4.0.3, cucipop v1.31.

  Another problem is handling "^\.". When a line begins
  with a dot (.) it is
  prefixed with a (.). It is client responsability to
  remove this extra (.)
  before exibiting the message.

  The patch below (seems to) fix both problems.

  I apologize for my poor english.

  Thanks in advance,

  Edesio
  edesio@ieee.org


tkt_uuid: 527114ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: Import pop3 demon in Pool
comment:
  Import the pop3 demon in package
  Pool_Net into tcllib, possibly
  modified. This will make testing
  the pop3 client possible. And it
  completes the pop3 implementation.


tkt_uuid: 1412021fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: sasl
priority: 5 Medium
foundin: None
resolution: Accepted
title: Ignoring -service option in DIGEST-MD5
comment:
  Option -service is ignored in DIGEST-MD5 SASL auth
  method. digest-uri is always set to smtp/$realm.

  Possible fix is to replace smtp for $ctx(service).


tkt_uuid: 1272899fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
resolution: Fixed
title: math::combinatorics - failed tests with Tcl 8.5
comment:
  ==== combinatorics-2.7 math::factorial, exponent
  overflow FAILED
  ==== Contents of test case:

      catch { math::factorial 171 } msg
      list $msg $::errorCode

  ---- Result was:
  Infinity {ARITH DOMAIN {argument to math::factorial
  must be greater than -1.0}}
  ---- Result should have been (exact matching):
  {floating-point value too large to represent} {ARITH
  OVERFLOW {floating-point value too large to represent}}
  ==== combinatorics-2.7 FAILED


  ==== combinatorics-3.10 math::choose big args FAILED
  ==== Contents of test case:

      catch { math::choose 1500 750 } msg
      list $msg $::errorCode

  ---- Result was:
  Infinity {ARITH DOMAIN {second argument to math::choose
  must be non-negative, or both must be integers}}
  ---- Result should have been (exact matching):
  {floating-point value too large to represent} {ARITH
  OVERFLOW {floating-point value too large to represent}}
  ==== combinatorics-3.10 FAILED


  ==== math-7.4 math::cov FAILED
  ==== Contents of test case:

      catch { math::cov 0 2 1 0 } msg
      set msg

  ---- Result was:
  Infinity
  ---- Result should have been (exact matching):
  divide by zero
  ==== math-7.4 FAILED


tkt_uuid: 1646625fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: doctools
priority: 9 Immediate
foundin: None
resolution: Not Applicable Here
title: doctools - html backend - backslashes wrong in doc example
comment:
  Looking at http://tcllib.sourceforge.net/doc/des.html I see that the backslashes in the example are doubled. This has proved very confusing to at least one user, and caused him to have needless problems.


tkt_uuid: 480945ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
title: consolidate tcllib examples
comment:
  Currently tcllib has examples in a higher level example
  directory as well as within several of the module
  directories.

  For consistency sake, moving them all into the higher
  level examples directory would be appreciated.


tkt_uuid: 471418ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: textutil
priority: 5 Medium
foundin: None
title: csv to formatted output function?
comment:
  A function that would be useful to have is
  a 'template' type module - perhaps even generalized
  enough to be used with things other than csv - but
  basically that would allow you to supply
  'records'/arrays/csv lines (some kind of input) and out
  would come 'formletter' type output.

  This probably could even be used with the report
  modules, etc.

  Basically, a way of specifying output that might
  not be 'report' oriented (letters, post cards, web
  pages, etc.)


tkt_uuid: 882402ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: textutil
priority: 7 High
foundin: None
resolution: Fixed
title: -full option ignored in ::textutil::adjust command
comment:
  In the textutil package, which is a part of Tcllib, the -full 
  option (which should stop multiple consecutive space 
  characters being replaced with a single space) seems to 
  be ignored. This is in ActiveTcl 8.4.3.0, textutil version 
  0.6 . There are three [regsub] commands executed near 
  the beginning of ::textutil::adjust; it seems that they 
  should only be run if the -full option wasn't given.


  Original submitter:
  m_j_griffiths@talk21.com

  Original location of the bug:
  http://bugs.activestate.com/show_bug.cgi?id=28867


tkt_uuid: 891254ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: utils.tcl, place proc: does not place left or top
comment:
  BWidget V1.7 has very minor changes in the place proc 
  of utils.tcl (compared to V1.6).
  child windows will not display on top or to the left side of 
  the parent window. Probably coordinates run out of a 
  valid range.

  When I substitute the old place procedure within the 
  new utils.tcl, all works well.

  NOTE: the Activestate 8.4.5 distribution contails 
  BWidget V1.7, but the subdirectory under "lib" is still 
  named "bwidget1.6".


tkt_uuid: 1800344fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Accepted
title: Extra <br> tags before new definition list
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: 1968596fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: aes
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: add -padding to aes package
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: 523109ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: textutil
priority: 5 Medium
foundin: None
resolution: None
title: expand handling of plain text
comment:
  When using macro arguments the processor does not run 
  the constant parts of such arguments through the 
  handler for plain text. It should.

  Example:

  In
     [bla "ditz   [foo] bla"]
           *******     ****

  the parts marked with * should be run through the
  handler for plain text before invoking the macro "bla"

  Doing this change ensures that macros can always be 
  sure that all special characters and what not are 
  already handled when they are invoked. I.e. they
  can assume that their arguments are already formatted
  for the requested output format.

  This issue came up with in doctools.

  Joe, anything else to say, or different ?


tkt_uuid: 701077ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclbench
priority: 9 Immediate
foundin: None
resolution: Fixed
title: normbench can't process newest runbench output
comment:
  normbench.tcl fails to process the results of the latest 
  runbench.tcl, with this stack trace.

  TCL_INTERP: 1:8.4.2 2:8.4.2
  STARTED 2003-03-10 12:42:02 (runbench.tcl v1.15)
  Benchmark 1:8.4.2 ./tclkit-cc/tclsh8.4
  bbccdeeeffghkllmmmmpprrssstuvw 00:04:28 elapsed
  can't read "format": no such variable
      while executing
  "switch -exact -- $format {
              text { puts stdout [normalize-text $norm $line] }
              list { puts stdout [normalize-list $norm $line] }
              csv  {
          ..."
      (procedure "normalize" line 22)
      invoked from within
  "normalize $opts(norm) [read -nonewline $opts(fid)]
  "
      (file "./normbench.tcl" line 202)


  The offending line in the runbench.tcl output is 
    251591 milliseconds
  which passes the header-skipping [string match] at the 
  top of the 'normalize' proc, but it doesn't fall into any of 
  the version detection cases.

  You could fix this by changing the output format from 
  runbench, so that this line doesn't have numeric first 
  characters.

  A better solution might be to improve the header 
  detection section to check for string matches against 
  the format patterns.  For example (untested)

    set format "unknown"
    foreach line $lines {
        if {$format=="unknown"} {
            switch -glob -- $line {
                "0,VER*" {set format csv}
                ....
            }
        continue
        }
       ....


tkt_uuid: 1123327fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: counter
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: histograms do not handle negative reals correctly.
comment:
  When I do this: 
  ::counter::init h -hist 10
  ::counter::count h 9.1
  ::counter::count h -9.2

  I end up with bin 0 incremented twice.  I should have
  incremented bin -1 once and bin 0 once.

  proc ::counter::count is incorrect.  This fixes
  (counter.tcl) that problem. 

  -hist {
          upvar #0 counter::H-$tag histogram
  set bucket [expr int([expr floor([expr {$delta /
  $counter(bucketsize)}])])]
          if {![info exists histogram($bucket)]} {
              set histogram($bucket) 0
          }
          incr histogram($bucket)

  The problem is that int(-0.9) == 0 and int(0.9) == 0


  The html output is also incorrect as the labels are off
  by one.  I simply subtracted one in proc
  histHtmlDisplayBarChart

      #set x [expr {$i * $counter(bucketsize) *
  $counter(mult)}]
      set x [expr {($i-1) * $counter(bucketsize) *
  $counter(mult)}]



  There are still problems with the -skip option


tkt_uuid: 3608240fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: queue
priority: 5 Medium
foundin: None
resolution: Fixed
title: struct::queue error, procs peek and get
comment:
  Last action "qp peek [qp size]" gives an incorrect result [1 2 3 4 5] instead of [2 3 4 5]

  script:

  package require struct::queue
  struct::queue qp
  qp put 1 2 3
  puts [qp peek [qp size]]
  qp get
  puts [qp peek [qp size]]
  qp put 4 5
  puts [qp peek [qp size]]

  output:

  1 2 3
  2 3
  1 2 3 4 5


tkt_uuid: 1825092fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Fixed
title: lost char when extracting (some) parts
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: 1766381fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: Build System & Testing
priority: 5 Medium
foundin: None
resolution: Fixed
title: sak.tcl doc warning and error msgs
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: 2680202fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: md5
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: memory leak
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: 766245ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: inifile
priority: 5 Medium
foundin: None
resolution: Fixed
title: ini::commit bug
comment:
  Bug description added to the code ...

      # NOTE: Possible bug. Not closing the fh here
      # may cause problems if the written data is
      # less than there was in the file before. As it
      # is done here the old data after the last
      # byte written remains in existence. This can
      # cause bad syntax, causing errors when reading,
      # or even leace data in existence which was
      # supposedly deleted from the file.
      #
      # Closing and reopening the file should do the
      # trick, however this also assumes that the
      # newly opened file gets the same handle as the
      # one we closed. This assumption is wrong in the
      # case of a multi-threaded interpreter, as other
      # threads may create their own files between
      # the commands to close and reopen here.
      #
      # The full solution is to decouple the externally
      # visible handle for the ini file from the channel
      # handle.


tkt_uuid: 466078ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: general request
priority: 5 Medium
foundin: None
title: Add modules to tcllib tar file
comment:
  Please add Bwidgets, mclistbox, and other tcl based
  extensions currently in this project in the tcllib tar
  files that are created during a release.


tkt_uuid: 3292977fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 3 Low
foundin: None
resolution: Fixed
title: Error when Themed Label foreground changed
comment:
  An error arises when foreground color of a themed label widget is changed.
  Use -foreground instead -fg for ttk::label.

  This was corrected on CSV.


tkt_uuid: 504350ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: calendar
priority: 3 Low
foundin: None
resolution: Duplicate
title: install for calendar code fails
comment:
  Version: tcllib 2002-01-14 version from cvs (using A.
  Kupries cvs snapshot tar file).

  After doing a configure and then a make and then a make
  install, I get this error:

  Installing documentation for base64
  Installing documentation for calendar
  Can't open
  /vol/tclsrcsol/tcl84/tcllib/modules/calendar/*.n
  /projects/gnu/sparc-sun-solaris2.6/bin/ginstall:
  installing multiple files, but last argument,
  `/usr/tcl84/man/mann/wm.n' is not a directory
  Try `/projects/gnu/sparc-sun-solaris2.6/bin/ginstall
  --help' for more information.


tkt_uuid: 1483168fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
resolution: Fixed
title: Namspaced snit objs are not commands in their ns
comment:
  package require snit
  namespace eval ns { }

  proc ns::someProc {msg} {
      puts "From $msg"
  }

  proc ns::anotherProc {} {
      someProc "ns::anotherProc"
  }

  snit::type ::ns::myObj {
      constructor {args} {
          someProc "::ns::myObj"
      }
  }

  ns::anotherProc
  ns::myObj foo


tkt_uuid: 467876ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Out of Date
title: tkchat pops up User Info boxes
comment:
  After clicking on a user's name the site responds 
  with USERINFO lines. These get interpreted by 
  showInfo to display pop up boxes. When the display is 
  refreshed the same info is displayed repeatedly 
  filling the screen with User Info windows. 

  The attached patch keeps track of the User Info 
  strings displayed and only creates a toplevel if the 
  string is new.

  The patch also fixes the say proc a little to remove 
  unneeded puts.  

  Steve


tkt_uuid: 833034ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: ScrolledWindow fails after managed widget is destroyed
comment:
  ScrolledWindow should be more robust, when the managed
  widget is destroyed, like it was for BWidget 1.5.

  Application background:
  -----------------------
  (1) After creating a ScrolledWindows $sw it has no
  widget and displays a gray background.
  (2) After assigning a widget [$sw setwidget $w] it
  manages the widget $w.
  (3) With 1.6 's not possible anymore to return to state
  (1).

  With BWidget 1.5 it was possible to destroy the widget $w.
  But BWidget 1.6 fails to display anything even after a
  fresh     
  [$sw setwidget ...].

  It would also be nice to have a
      $sw setwidget {}
  making the ScrolledWindow $sw manage no widget.

  Script illustrating the problem
  (runs with 1.5, fails with 1.6):
  -----------------------------
  catch {console show}
  package require -exact BWidget 1.6

  set sw [ScrolledWindow .sw -scrollbar both -auto both]
  pack $sw -fill both -expand yes
  wm geometry . 400x600

  for {set i 0} {$i < 2} {incr i} {
      text .text$i
      .text$i insert end [string repeat "This is text
  window $i\n" 5]
  }

  puts "The ScrolledWindow has no widget"
  after 3000 {$sw setwidget .text0; puts "Set widget 0"}
  after 6000 {destroy .text0; puts "Destroy widget 0"}
  after 9000 {$sw setwidget .text1; puts "Set widget 1"}


tkt_uuid: 477753ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: add irc module
comment:
  Irc module available at 

  http://people.debian.org/~davidw/

  Please add or request changes necessary for addition.


tkt_uuid: 1166235fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Out of Date
title: NoteBook delete reindexing
comment:
  version 1.7

  In NoteBook::delete

      foreach tmpPage [lrange $data(pages) $newPos end] {
  set pageToIndex($page) $newPos

  needs to be 

      foreach tmpPage [lrange $data(pages) $newPos end] {
  set pageToIndex($tmpPage) $newPos


tkt_uuid: 1753433fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: math
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Code and man page for lognormal income distribution library
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: 981771ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tklib: plotchart
priority: 5 Medium
foundin: None
title: Add radial diagram to the repertoire
comment:
  Often semi-numerical data (scores on categories) are
  represented in a circular diagram. Each score is a
  point on a spoke of the circle and these scores are
  then connected by lines.

  Such a diagram could be a useful addition to Plotchart
  too.


tkt_uuid: 842066ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: ncgi
priority: 5 Medium
foundin: None
title: need ncgi::exists
comment:
  Hi, 

  I need this simple function:

  proc ::ncgi::exists { var } {
     variable value
     return [info exists value($var)]
  }

  ncgi::empty does _not_ what i want.

  Thanks,
  Christoph


tkt_uuid: 1800413fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Fixed
title: dtplite errors/warnings reported twice
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: 2499641fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Fixed
title: stripPath does not correctly handle mixed case paths
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: 3189786fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: cmdline
priority: 5 Medium
foundin: None
resolution: Fixed
title: option processing default incorrect for .arg and .secret
comment:
  It looks like a regexp is not escaped properly, so an option myarg creates a default m in the argument array.

  I think the code
      if {[regsub -- .arg$ $name {} name] == 1} {

  should be
      if {[regsub -- {\.arg$} $name {} name] == 1} {

  I think the change needs to be done in two procs, ::cmdline::GetOptionsDefaults and ::cmdline::usage, with .arg and .secret, for a total of 4 lines changed.

  Run the attached script "arg -h".


tkt_uuid: 676976ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: uri
priority: 5 Medium
foundin: None
resolution: Fixed
title: Regexp in uri::split allows ',' characters
comment:
  The first regexp command in the uri::split function 
  is:

  regexp -- {^([a-z0-9+-.][a-z0-9+-.]*):} $url 
  dummy scheme

  I think it should be:

  regexp -- {^([a-z0-9+.-][a-z0-9+.-]*):} $url 
  dummy scheme

  The way it is currently, the range of characters '+' 
  through to '.' are included, which incorrectly 
  includes ',' in addition to the intended 
  characters '+', '-', and '.' (assuming ASCII character 
  set).


tkt_uuid: 1113348fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: logger
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: No way for logproc to discover servicename
comment:
  Currently there is no way for a logproc to discover its
  servicename.

  Example:
  set log [logger::init foo]
  proc customized {txt} {
     puts "How shall i find my servicename with this
  signature?: $txt"
  }
  ${log}::logproc error customized

  There is a workaround using the older logproc syntax
  though.

  set log [logger::init bar]
  proc customized {service txt} {
     puts "Logging service $service : $txt"
  }
  ${log}::logproc error txt {
     variable service
     ::customized $service $txt
  }

  The signature of the custom logproc should be enhanced
  with the loglevel, the service and the text and
  possible an args for future extensions.

  Michael


tkt_uuid: 1023867fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Out of Date
title: Tk dependency in version 1.7
comment:
  BWidget 1.4 TitleFrame does not work with Tk 8.2

  $ wish8.2
  %  package require BWidget
  1.7
  % pack [TitleFrame .tf -text Test]
  error while autoloading "TitleFrame": unknown option
  "-state"


  $ wish8.4
  %  package require BWidget
  1.7
  % pack [TitleFrame .tf -text Test]
  %

  In some version the "-state" option has been added to
  the TitleFrame Widget, which is which is handled over
  th the Tk label widget. The "label" in Tk 8.2 does not
  support "-state", but the Tk 8.4 label does have this
  method.
  In the BWidgets 1.2 no "-state" method of the
  TitleFrame was present, so this version works with Tk
  8.2.

  I don't know how the situation is in Tk 8.3, neither do
  I know when the "-state" has been added to the
  TitleFrame.

  By,
  Gerhard


tkt_uuid: 1448800fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Rejected
title: PagesManager not themable
comment:
  The PagesManager widget doesn't check 'BWidget::theme'
  and therefore always uses a tk::frame instead of a
  ttk::frame.  This means when a theme (e.g. Aqua on
  MacOSX) needs interesting frames with textured
  backgrounds, the PagesManager looks totally out of place.


tkt_uuid: 1735135fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: math
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: tcllib math::linearalgebra additions (matrix stuff)
comment:
  you can find at the bottom of this page http://wiki.tcl.tk/778 additions made by me for linearalgebra package.

  I hope you can include it into the tree.

   (actually only matrix rank is missing, but it would require combinatory functions; matrix determinant is computed with cofactor expansion, that -yes- is cpu expensive. I'll do a better version using Gauss-Jordan elimination in the future)


tkt_uuid: 3601370fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: doctools
priority: 9 Immediate
foundin: None
resolution: Fixed
title: Doctools nroff/groff output not supported by tcltk-man2html
comment:
  This is related to Tcl bug 3600058 "Doctools nroff/groff output not supported by tcltk-man2html" (https://sourceforge.net/tracker/index.php?func=detail&aid=3600058&group_id=10894&atid=110894).  Most of the cases listed here are invalid input or invalid nroff.  Valid nroff not supported by the Tcl tool is being addressed in the Tcl bug.

  Required action: most of the issues below have proposed fixes, and those fixes have been implemented (or are being implemented) in a patch.  Mostly I need to get a YES/NO on each proposed fix (and for NO a suggested approach).

  Issue #1: Rendering of Copyright is inappropriate for files in the public domain

  c_get_copyright in doctools/mpformats/_common.tcl currently renders public domain as "Copyright (c) Public domain".  Suggested fix is to handle "public domain" as a special case that doesn't get a "Copyright (c)" prefix.

  Issue #2: Some Copyright statements include the word "copyright"

  Invalid input problem; examples are amazon-s3/S3.man and amazon-s3/xsxp.man.  Option A is to strip leading "copyring" and/or "(c)" from the copyright parameter.  Option B is to fix the .man pages, but I'm hesitant to do so as (i) this probably should require the copyright holder's approval; and (ii) if any authors maintain their own upstream repositories the change should be committed there.  Proposed fix is A (as a workaround), and to request authors to approve or make a change to the source.

  Issue #3: Doctools can generate nroff output where non-directive lines start with a period (invalid nroff)

  See for example snit/snitfaq.man, where [example] blocks may contain widget names like '.text'.  Suggested fix is that the nroff formatter (mpformats/_nroff.tcl) should quote leading "." on non-directive lines.

  Issue #4: Doctools can still generate nroff output where non-directive lines start with a period

  Parts of the nroff output are explicitly handled by mpformats/fmt.nroff, in particular the output of keywords.  If a keyword starts with a period (e.g. .dtx in docstrip/docstrip.man) it will be sorted to the front of the keyword list and result in invalid nroff output.  Suggested fix is to explicitly check for a quote a leading period in the keyword line (in fmt.nroff).

  Issue #5: Bad output from ldap/ldap.man

  This turns out to be a bad input problem - the .man file has "[call ::ldap::searchInit]" in the middle of a paragraph, instead of "[cmd ::ldap::searchInit]".

  Issue #6: Bad output from pop3/pop3.man

  This turns out to be a bad input problem - the .man file has a trailing period on the line "[opt_def -retr-mode ...].".

  Issue #7: Spaces in man page names

  struct/graph1.man, struct/matrix1.man, and struct/struct_tree1.man all have [manpage_begin] statements in which the name contains a space: {struct::graph v1} {struct::matrix v1} and {struct::tree v1} respectively.  Proposed fix is to use underscore (_) instead of space, giving struct::graph_v1, struct::matrix_v1, and struct::tree_v1.

  Issue #8: Inappropriate copyright statements

  A number of files contain copyright statements in formats that may not have appropriate legal effect.

    No date:
    expander: COPYRIGHT: merge-copyrights: unrecognised format: Copyright (c) William H. Duquette, http://www.wjduquette.com/expand
    smtpd: COPYRIGHT: merge-copyrights: unrecognised format: Copyright (c) Pat Thoyts <patthoyts@users.sourceforge.net>
    Invalid date:
    namespacex: COPYRIGHT: merge-copyrights: unrecognised format: Copyright (c) 200? Neil Madden (http://wiki.tcl.tk/12790)
    namespacex: COPYRIGHT: merge-copyrights: unrecognised format: Copyright (c) 200? Various (http://wiki.tcl.tk/1489)
    soundex: COPYRIGHT: merge-copyrights: unrecognised format: Copyright (c) ????, Algorithm: Donald E. Knuth
    Weird date:
    OpenTcp: CATEGORY: merge-copyrights: unrecognised date format: Copyright (c) 1996-7 Sun Microsystems, Inc.

  I'm really not sure how to handle these.  Best option may be to request the authors to fix their copyright statements.  The effect is that for now these authors won't (necessarily) be reflected in the summary of copyright holders that is added to the table of contents.

  Issue #9: Multiple definitions for coroutine, doctools::idx, interp, tie, try, 

  Tcllib packages define man pages with the same name as Tcl core commands coroutine, interp and try.  Proposed fix is to add a "tcllib" prefix to Tclllib pages, and fix up references.

  Within Tcllib there are multiple man pages providing definitions of doctools::idx and tie.  Proposed fix is to add a version suffix (as for graph/matrix/tree) and fix up references.

  Issue #10: Unvestigated

  Once the above issues are resolved there remain three more types of error when converting .man --(doctools)--> .n --(tcltk-man2html)--> .html:

  A. struct_list: make-manpage-section: ignoring .TP after .TP
  B. treeql: EXAMPLES: output-directive: unrecognized format directive: ... TODO ...
  C. calculus.n: reference error: Out of place end-quote: {<PRE>Dy'' + ky = 0
  x = 0: y = 1
  x = L: y = 0</PRE>}

  The causes have not yet been investigated.


tkt_uuid: 1329212fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: pop3
priority: 8
foundin: None
resolution: Fixed
title: Many test failures in module pop3
comment:
  Please, find the log-file attached. Any fixes for the
  code and/or tests would be highly appreciated.

  I'm seeing these on FreeBSD-6/amd64.

  pop3d tests, seem fine, however.


tkt_uuid: 1204345fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: report
priority: 5 Medium
foundin: None
resolution: Rejected
title: variable size cell
comment:
  Here is a patch that allows a reports to formatted in
  such a manner that the cell widths are variable in
  size, just big enough to fit the value. If one were to
  define a style that converts a matrix to csv format,
  the current implementation would produce something like
  the following

  foo, bar , ack ick
  I   , love , tcl      

  This patch provides the a new key word "var" for column
  size and allows the integer value "0" to indicate that
  cells in that column should be just big enough to hold
  the data. For example, the following code fragment
  would alter the results in the example below.

  $report size 0 var
  $report size 1 var
  $report size 2 0 ; # integer value 0 to indicate
  variable size

  The new output would be

  foo, bar, ack ick
  I, love, tcl      


tkt_uuid: 1111153fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Duplicate
title: fileutil::findByPattern fails during recursive search on XP.
comment:
  fileutil::findByPattern fails during recursive search on 
  Windows XP.     


  () 143 % set fileList [ fileutil::findByPattern c:\\ * ]
  couldn't change working directory to "sys": no such file 
  or directory
  (bind) 144 % 

  bin) 74 % fileutil::findByPattern c:/ *
  couldn't change working directory to "sys": no such file 
  or directory
  (bind) 75 % 

  Stack trace. 

  couldn't change working directory to "sys": no such file 
  or directory
      while executing
  "cd $basedir"
      (procedure "find" line 12)
      invoked from within
  "find $filename $filtercmd"
      (procedure "find" line 34)
      invoked from within
  "find $filename $filtercmd"
      (procedure "find" line 34)
      invoked from within
  "find $filename $filtercmd"
      (procedure "find" line 34)
      invoked from within
  "find $filename $filtercmd"
      (procedure "find" line 34)
      invoked from within
  "find $filename $filtercmd"
      (procedure "find" line 34)
      invoked from within
  "find $filename $filtercmd"
      (procedure "find" line 34)
      invoked from within
  "find $basedir [list $cmd $patterns]"
      (procedure "fileutil::findByPattern" line 23)
      invoked from within
  "fileutil::findByPattern c:\\ * "
      invoked from within
  "set fileList [ fileutil::findByPattern c:\\ * ]"
      ("uplevel" body line 1)
      invoked from within
  "uplevel #0 {set fileList [ fileutil::findByPattern c:\\ * ]}"


tkt_uuid: 737162ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Accepted
title: prevent infinite loop on unterminated multipart
comment:
  in mime.tcl, change
  set line "--$boundary--"
  to
  set x [string length [set line "--$boundary--"]]
  (apparently works, and not setting x is obviously faulty)

  however, since missing MP boundaries are very frequent
  in spam and very rare in legitimate mail, I'd suggest
  to remove the comment sign from the preceeding line
  error "termination string missing in $state(content)"
  (or make it a config option)


tkt_uuid: 519594ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Invalid
title: parseaddress can't cope with spaces
comment:
  mime::parseaddress fails on simple, common cases. Specifically, it fails for some fairly typical user 
  input

       somebody@some.org someoneelse@other.com

  When I try to stress it and send mail to 

       foo<>bar@grill.com

  The parse "succeeds" but the send fails.


tkt_uuid: 3090738fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: graph
priority: 5 Medium
foundin: None
resolution: Fixed
title: Minor doc typo in graphops manpage
comment:
  The graphops manpage contains a small typo in several places.  The attached diff patches tcllib 1.12  graphops manpage to remove the typo.


tkt_uuid: 1224755fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: ftp mode active/passive performance
comment:
  When I connect to a server though a firewall using
  the unix ftp command both active an passive mode work
  fine (tested with the dir command).

  When using active mode (the default) via tcllib(v 1.7)
  ftp it takes
  in my case more than 40seconds before I get a response
  with ftp::NList. When setting to passive mode it works fine
  without the delay.

  Why the difference ?


tkt_uuid: 1740574fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: javascript
priority: 5 Medium
foundin: None
resolution: Fixed
title: typographical errors in javascript package
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: 1885638fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 2
foundin: None
resolution: Works For Me
title: Tree "see" problem in some situations
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: 1007934fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: None
title: Typo in man page for struct::pool
comment:
  Example 2 for the struct::pool extension mentions:

      set fd {open "|backendApplication" w+}

  Of course, this should be:

      set fd [open "|backendApplication" w+]


  I probably had the "Caps Lock" on when typing this,

  Greetings,

  Erik Leunissen
  ============


tkt_uuid: 1733098fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: tklib: khim
priority: 5 Medium
foundin: None
resolution: Accepted
title: Misc fixes + RU, PL and UK msg catalogs
comment:
  Short summary of changes:

  1. Added title to KHIM help window. It's translated where appropriated.

  2. Colors of character picker made more consistent.

  3. Added check for existence of character map window -- closes the bug occuring on, say, triple strikes of composition key.

  4. Added Russian, Polish and Ukrainian message catalogs.

  Note: unified diff is UTF-8.


tkt_uuid: 548233ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: more hpupdate bug reports
comment:
  When I start hpupdate 2.0, it displays the local set of
  files, with highliting to show which ones have changed
  since the last upload.

  If I then select File / Connect , the remote directory
  is read, parsed, and displayed and the local info is
  'refreshed'.  This means that any changes the user
  might have made in terms of selecting what s/he wished
  to upload is now gone.

  Also, once an upload is done, hpupdate does a
  disconnect (the not connected icon appears) but the
  File menu isn't updated to display Connect instead of
  Disconnect.

  Finally, the upload process appears to not do the cd's
  necessary so that the uploaded files appear in the
  appropriate directories.  Instead, all files, including
  ones from subdirectories, go into the top level
  directory, clobbering any files by the same name that
  are present there.


tkt_uuid: 565281ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Fixed
title: tcllib documentation bugs
comment:
  Two issues when building tcllib's documentation.

  ./configure
  make
  ...
  Gen (html): ./modules/control/control.man
  Manpage error (nolistcmd), "section LIMITATIONS" :
  Command not allowed inside of a list.
  ...
  Gen (nroff): ./modules/control/control.man
  Manpage error (nolistcmd), "section LIMITATIONS" :
  Command not allowed inside of a list.
  ...


  Then when the docs are built, two empty files
  are left behind: html-doc and nroff-doc


tkt_uuid: 1545931fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: ldap
priority: 5 Medium
foundin: None
resolution: Accepted
title: A proposal for "ldapx", a new package
comment:
  Here is "ldapx", a proposal for a new Tcllib package.

  This package provides a new, extended high-level 
  interface to LDAP
  diretories and LDIF files. It makes use of the Snit 
  object type to
  provide three classes: ldap directories, ldif files 
  and individual
  entries.

  This new package is built upon existing packages: 
  uri.tcl, asn.tcl
  and ldap.tcl (to provide low level access).

  Here is the proposed documentation (both in .man 
  format and in PDF)
  and the ldapx.tcl code. The ldapx.tcl code needs a 
  very current
  Tcllib (uri.tcl patch committed, asn.tcl patch 
  committed, and
  ldap.tcl patches currently being reviewed by Michael 
  Schlenker).


tkt_uuid: 1695111fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: doctools - Gather markup statistics
comment:
  Extend engine to gather statistics about the use of markup commands in a set of documents, and print them. Both only on demand.

  Note: To get the actual commands used (i.e. deprecated ones) this has to be done in the syntax checking layer. Backend is too late, it sees only the canonical commands, and some are filtered out already (include, comments, ...)


tkt_uuid: 1960369fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math :: bignum :: float
priority: 5 Medium
foundin: None
resolution: Fixed
title: todouble returns 0.0 when it should not
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: 1519755fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: struct :: record
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Unable to delete record
comment:
  I'm using a combination of incr TCl and struct::record

  I can create and edit a records and records inside of
  records, but unable to delete with no error.

  please review


tkt_uuid: 531799ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftpd
priority: 6
foundin: None
resolution: Fixed
title: checks for wrong tcl version
comment:
  ftpd did not run on tcl8.2.2 for win32.
  Reason: The use of "lsort -unique" which is new in 
  tcl8.3.

  The problem: pkgIndex.tcl from ftpd does not check the 
  right tcl version:

  if {![package vsatisfies [package provide Tcl] 8.2]} 
  {return}

  Must be: 
  if {![package vsatisfies [package provide Tcl] 8.3]} 
  {return}

  Also i miss any information in the manpage about the 
  smallest tcl-version ftpd needs.


tkt_uuid: 1029144fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: bwidget listbox multi selection handles ctrl key wrong
comment:
  the multi-selection mode of listbox has a rather non-
  intuitive "feature": when holding down ctrl key and 
  clicking on an unselected item it selects it - so far so 
  good - when clicking on a selected item nothing changes.

  One would expect (from experience with other listboxes) 
  that clicking on a selected item with Ctrl-key held would 
  de-select the item.

  Tested with: BWidget 1.6 and CVS-Head as of 2004-09-
  16


tkt_uuid: 753170ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Invalid
title: ScrolledWindow hang
comment:
  A dialogue box that works OK with a frame causes a hang
  when it is replaced by a ScrolledWindow -- sorry there
  is so much stuff in the attached example file but I
  couldn't get the hang to happen with just the
  ScrolledWindow on its own

  [jaspert@spirograph Run]$ uname -r
  2.4.20-8
  [jaspert@spirograph Run]$ /usr/local/ActiveTcl/bin/wish
  % info patchlevel
  8.4.3
  % package require BWidget
  1.6
  % source disag.tcl
  % Disaggregate .mswindow00001.canvas {Desktop} white
  generated 1.0 {} Default {} {} 0 0 0

  <at this point it is hung>


tkt_uuid: 530907ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: exif
priority: 5 Medium
foundin: None
resolution: Fixed
title: exif 1.0 bug patch
comment:
  I found some bugs into exif 1.0.
  Maybe these are original bugs.
  I've improved on FlashPixVersion, ShutterSpeedValue,
  SubjectDistance, Flash and FlashMode.
  Here is a patch I've made.


tkt_uuid: 1660234fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: ico
priority: 5 Medium
foundin: None
resolution: Fixed
title: Bugs in ico::getFileIcon
comment:
  There are a few errors in ico.tcl which stop ico::getFileIcon from working correctly for me. I've put a revised copy of it below, with the changes commented, and the problems I was getting without those changes...

  proc ::ico::getFileIcon {file args} {
      set ext [file extension $file]
      if {[catch {registry get HKEY_CLASSES_ROOT\\$ext ""} doctype] || \
          [catch {registry get HKEY_CLASSES_ROOT\\$doctype\\DefaultIcon ""} icon]} {
          set icon "%SystemRoot%\\System32\\shell32.dll,0"
      } ;# (1)
      set index [lindex [split $icon ,] 1]
      set icon [lindex [split $icon ,] 0]
      if {$index == ""} { set index 0 }
      set icon [string trim $icon "@'\" "]
      while {[regexp -nocase {%([a-z]+)%} $icon -> var]} {
          set icon [string map [list %$var% $::env($var)] $icon] ;# (2)
      }
      set icon [string map [list %1 $file] $icon]
      if {$index < 0} {
          if {![catch {eval [list getIconByName $file [string trimleft $index -]] $args} output]} {
              return $output
          }
          set index 0
      }
      return [eval [list getIcon $icon [lindex [icons $icon] $index]] $args] ;# (3) and (4)
  }


  (1) There was an extra period before the $ext in the if which caused it to fail to find all file extensions
  (2) The patterns to map were quoted, instead of using [list], which caused backslashes in the paths to be removed, breaking them and preventing the files from being found correctly later on
  (3) The [list] was closed after the $args, instead of before, so the $args didn't expand properly, and getIcon was throwing errors like 'unknown option "res 32"'
  (4) Changed both uses of $file to $icon, otherwise you get "unsupported file type <type>" errors for everything but .exe, .ico and .dll (ie, files which actually contain icons themselves, rather than having an icon registered for them in the registry)

  With those changes, it works without any problems (tested with a half-dozen different file types, including files containing icons (.exe and .ico), and ones which don't (.tcl, .txt, .pub, .hlp, .fakeFileType), all of which showed the right icon, with no options and with -res 32). All of this is on Windows XP Home SP2, incidently:

  % parray tcl_platform
  tcl_platform(byteOrder) = littleEndian
  tcl_platform(machine)   = intel
  tcl_platform(os)        = Windows NT
  tcl_platform(osVersion) = 5.1
  tcl_platform(platform)  = windows
  tcl_platform(user)      = User
  tcl_platform(wordSize)  = 4

  Hope that's some help,
  Mike Griffiths (talvo@talvo.com)


tkt_uuid: 1451784fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Out of Date
title: Bwidget notebook highlight looks bad on OS X
comment:
  The Bwidget notebook on OS X has a glitch in which the notebook tab, 
  when it has focus, turns black and obscures the label. I went into 
  notebook.tcl and added a switch statement with a specific color 
  (LightSkyBlue) for OS X. Diff and before/after screenshots attached.


tkt_uuid: 1061218fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: app: tkchat
priority: 5 Medium
foundin: None
resolution: Accepted
title: Misc tkchat fixes
comment:
  Here's some fixes I've got applied that make tkchat a
  bit better for me.

  Ask for tile 0.5 (as distributed with ActiveTcl 8.4.7.1)
  Add [entry] to the list of widgets where we can access
  the classic versions if needed.
  Force one widget in the the font selector to use a
  classic [entry].
  Make it so that the catch in the winico handling code
  only protects the [package require] so other bugs won't
  get lost.


tkt_uuid: 1120152fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: log
priority: 5 Medium
foundin: None
title: logger: maintain callstack for custom logprocs
comment:
  Hi,

  In logger package, custom logprocs should be able to
  use "uplevel 1 .." to execute code in the caller's
  scope. This currently works but is not documented.
  There are several benefits for providing this feature,
  such as:

  * The default logger output does not include the caller
  proc which is very useful. So I have defined a custom
  logproc which uses [info level $lvl] cmd to get the
  caller proc name.

  * Execute code in caller's stack using uplevel cmd.
  Instead of writing if stmts:

  if {log::currentloglevel == "debug"} {
      log::debug "diagnosis = [runDiag $a]"
  }

  I prefer calling it as:

  log::debug {diagnosis = [runDiag $a]}

  and let custom proc for log::debug invoke [runDiag $a]
  in the caller's scope and print/log the output returned
  by it.

  Hemang.


tkt_uuid: 1253947fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Invalid
title: installer script fails with non-existing directories
comment:
  I updated the complete directory tree for Tcllib, using
  cvs update (without any options) and then ran the
  installer script like this:

  > tclsh installer.tcl

  The only option I set in the GUI that came up was to
  use a "dry run." 

  The script initially failed with error messages from
  [glob] complaining about asn/*.tcl and so on. When I
  removed this and other directories that were not
  present in my directory tree but were listed in
  "installed_modules.tcl", it all worked, that is the
  "dry" installation produced a long list of files that
  were detected and actions that were supposedly taken.

  Presumably I should have used the ./configure script
  and the resulting make file, but "installer.tcl" is
  such an inviting name ;)


tkt_uuid: 1854986fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: list
priority: 7 High
foundin: None
resolution: None
title: repeat-4.x test suite failures
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: 1224203fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Rejected
title: Tree widget substitutes wrong path for %W in command binding
comment:
  If you put %W in the command bound to an action on a
  Tree widget you expect to get the path of the tree
  widget in its place when the command is invoked. But
  instead you get a canvas called c which is a child of
  the tree widget, as in this simple example...

  [jaspert@nacho Simile]$ wish
  % package require BWidget
  1.7
  % pack [Tree .t]
  % .t insert end root foo -text FOO
  foo
  % proc putall {args} {puts $args}
  % .t bindText <Button-1> "putall %W"
  % # now click on the text FOO...
  % .t.c foo
  .t.c foo
  .t.c foo


tkt_uuid: 1815519fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: fileutil::find does not return symlinks
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: 1007764fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: tklib :: ctext
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: ctext - Clarifications needed in the documentation
comment:
  I would like to point out a few missing details in the
  documentation of ctext:

  1. You need to use the command "hightlight" when the
  widget has been filled to get the colouring to show.
  (Presumably also after each new addClass command)

  2. You need to use unique tag names if you want more
  than one regular expression to work for the same
  colouring (e.g. alternative formats for comment)

  3. Line numbering could interfere with the -elide
  option. It appears possible to use the linemap
  facilities to make the two work together, but this has
  not been described in any detail.


tkt_uuid: 1428544fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math :: linearalgebra
priority: 5 Medium
foundin: None
resolution: None
title: Incorrect results from math::linearalgebra::matmul
comment:
  Make this 2 rox 1 column matrix using mkMatrix and setrow:
  {2.333 6.7801}
  Call this A so A is:
  2.333
  6.7801

  Now transpose it and call it At so it is:
  2.333 6.7801

  now do math::linearalgebra::matmul $A $At:

  The result is the error: "can't use empty string as
  operand of "*" "

  when it should be: 51.4126

  Now do math::linearalgebra::matmul $At $A:

  The result is: 51.4126
  when is should be:
      5.4429   15.8180
     15.8180   45.9698

  Other multiplication operations seem to work, it is
  this vector case that look like it fails...


tkt_uuid: 595240ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
title: patch for mime & mbot example files
comment:
  andreas - attached are two files

  1. a small patch to mime.tcl that makes it more robust with 
  respect to a common mime encoding error

  2. some new files that go under modules/mime/examples/

  thanks!

  /mtr


tkt_uuid: 2376321fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Fixed
title: bug in fileutil::TempDir
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: 528433ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
resolution: Duplicate
title: Update for "calculus" module
comment:
  Sorry, I am not quite sure how to upload new versions
  of the source code, so I use the bug tracking system
  for this.

  The attached file is an update for the calculus module:
  improved sources, improved documentation.


tkt_uuid: 717594ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: dns
priority: 8
foundin: None
resolution: Fixed
title: bgerror in dns::TcpEvent
comment:
  if a dns reply comes back that is too short (e.g.,
  server doesn't wait for tcp connection to gracefully
  drain, the call to "binary scan" won't create variable
  "id" and "flags", which will cause a bgerror to get
  thrown when those variables are references a few lines
  later.


tkt_uuid: 1501874fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: Can't change selectmode after ListBox creation
comment:
  If a ListBox widget is created with a certain
  selectmode, then a different selectmode is desired, the
  configure command fails actually to switch modes, and
  one is stuck with the original selectmode.

  % package require BWidget 1.7
  1.7
  % set lb [ListBox::create .lb -selectmode single]
  .lb
  % $lb configure -selectmode multiple
  % $lb cget -selectmode
  single


tkt_uuid: 1105010fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: html
priority: 1 Zero
foundin: None
resolution: Fixed
title: Font properties are printed twice
comment:
  In my tests with Tcllib 1.6:

  % ::html::font size="18"

  <font size="18"size="18">

  I inspected the source and found this in line 1183:

  ::set param [tagParam font [join $args]][join $args]

  [join $args] is called twice for some reason. I guess that is what causes the bug.

  The source of Tcllib 1.7 looks just the same.

  Luciano ES


tkt_uuid: 3107991fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Invalid
title: ref:1470818-Wrong monthname returned by mime::parsedatetime
comment:
  This is valid for all versions since 1.8.  I found a minor issue with the fix for this issue. "Clock format $clock -format $m " returns a value between 01 - 12 but MONTHS_SHORT expects a value from 0-11 so the date is still off by a month when no date header is provided when this patch is applied.  I've applied the following patch to mime.tcl to fix the issue in procedure mime::parsedatetime in every place that MONTHS_SHORT is accessed.
              set mon [lindex $MONTHS_SHORT [expr [scan [clock format $clock -format %m] %d] - 1]]


tkt_uuid: 1480703fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: app: tkchat
priority: 5 Medium
foundin: None
resolution: Accepted
title: console support for platforms without native support
comment:
  TkChat only provides console support if either tkcon is 
  available or the platform is non-unix and has a console 
  built in. This patch (adopted from http://wiki.tcl.tk/
  786) makes the Tk console available also if there is no 
  native ::console command.

  Note that the patch is for the version 1.334 since I 
  can not currently fetch the most current version (due 
  to sourceforge outage ...)


tkt_uuid: 1655119fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tar
priority: 5 Medium
foundin: None
resolution: Fixed
title: Possible permissions problem with tar
comment:
  (Some of this was posted to comp.lang.tcl):

  I have a simple script that uses the tcllib tar command.  It tar creates a tar file containing a directory.  The directory contains subdirectories.  Each of those sub-directories contain the following
  sub-directories:

  exec/
  export/
  server/
  lib/

  The directory tree looks this way:

  devdir_4.1/
          subdir1/
                     exec/
                              bin/
                                  file1
                                  file2
                                  file3

                     export/
                                  file1
                                  file2
                                  file3

                     lib/
                                  file1
                                  file2
                                  file3

                     server/
                              bin/
                                  file1

          subdir2/
                     exec/
                              bin/
                                  file1
                                  file2
                                  file3
                     export/
                                  file1
                                  file2
                                  file3

                     lib/
                                  file1
                                  file2
                                  file3

                     server/
                              bin/
                                  file1

  ...  etc

  The problem I am having is that it is not archiving the exec/ directory.   The export/ directory does contain some of the same executables that are located in the exec/ directory.  But, when you do a tar tvf on the tarfile that is created, there is one instance of the
  exec directory in one of the subdirs, but none of the others.  It's as if the exec/ directory gets passed over.

  Here is my script:

  #!/usr/bin/tclsh

  lappend auto_path /export/kdp/dev/tcl/lib
  package require tar

  ::tar::create tarball.tar devdir_4.1 

  I got an e-mail respnse from an Aaron F. requesting a tarball so he could look at the problem.  Because of company proprietary issues, I could not send the originals.  So, I dummied up a set of files in a tarball.  I created a directory structure that contained files from /bin and /lib (on my linux box) to simulate the kind of files each directory contained.  When I ran the script against the new tarball, it worked just fine.  So, apparently, there is  something else weird going on.    I'm thinking now it may be some sort of permissions problem.  Other notes of interest:

  - I am grabbing files from across a local network via NFS.
  - None of the files are symbolically linked.
  - The directory that I am tarring from was populated by various operating systems (Solaris, HP-UX, Linux, AIX).

  Thanks for your great work.  
  Have a nice day,
  Keith Pickett


tkt_uuid: 495976ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 8
foundin: None
resolution: Fixed
title: install copies from base dir not modules
comment:
  install.sh tries to copy from the base directory, not
  the modules subdirectory, so cp does not find the
  module directories:

  daruma# ./install.sh
  cp: cannot stat `base64/*.tcl': No such file or directory
  [etc]

  Fix: either cd to modules before the for loop, or
  change the cp commands in the for loop from:

      cp -f $j/*.tcl $TCLINSTALL/lib/tcllib1.1/$j ; \
      cp -f $j/*.n   $TCLINSTALL/man/mann ; \

  to:

      cp -f modules/$j/*.tcl $TCLINSTALL/lib/tcllib1.1/$j ; \
      cp -f modules/$j/*.n   $TCLINSTALL/man/mann ; \


tkt_uuid: 501577ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: pop3
priority: 8
foundin: None
resolution: Works For Me
title: Delete reorders requests?
comment:
  On a mailbox with multiple messages, the following does not process all of them:

  package require pop3 ; # from TclLib

  proc checkmail {} {
      set chan [::pop3::open pop-server.san.rr.com xxxxx secret]
      set x [lindex [::pop3::status $chan] 0]
      puts "x=$x"
      for {set i 0} {$i < $x} {incr i} {
          set msg [::pop3::retrieve $chan [expr $i+1]]
          puts "len msg=[string length $msg]"
          ::pop3::delete $chan [expr $i + 1]
      }
      ::pop3::close $chan
  }

  checkmail

  Instead, it seems to only process the first few messages, failing to retrieve or delete the others.

  If the messages are being renumbered by the deletion, then the man page entry stating
  Note, the indices are not reordered on the server,
  should be fixed, but that doesn't seem to be the problem.


tkt_uuid: 2082457fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: cursor
priority: 5 Medium
foundin: None
resolution: Fixed
title: Cursor is not restored with mega-widgets
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: 2250870fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: improvements for fileutil::traverse
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: 1565836fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ldap
priority: 5 Medium
foundin: None
resolution: Fixed
title: ldapx man page ambiguous
comment:
  I grabbed the latest tcllib cvs snapshot from the
  activestate repository this morning. I ran the
  makefile, with a goal of installing it with tcl 8.5.

  I get this set of warnings:

  Generating /volws/lwv27/ldatae/man/mann/ldapx.n
  Manpage warning (sectambig): (Sub)Section title "Data"
  causes ambiguous section 
  references.
  Manpage warning (sectambig): (Sub)Section title
  "Options" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title
  "Example" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title "Data"
  causes ambiguous section 
  references.
  Manpage warning (sectambig): (Sub)Section title
  "Options" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title
  "Methods" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title
  "Example" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title "Data"
  causes ambiguous section 
  references.
  Manpage warning (sectambig): (Sub)Section title
  "Options" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title
  "Example" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title "Data"
  causes ambiguous section 
  references.
  Manpage warning (sectambig): (Sub)Section title
  "Options" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title
  "Methods" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title
  "Example" causes ambiguous secti
  on references.


tkt_uuid: 911281ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
title: snit - Optimize for space
comment:
  An empty snit::type comes with 37 K of runtime code.
  Optimize the generator ot include only the parts of the
  runtime support which are necessary (i.e. not widget
  stuff for snit:type's, no delegate handling if there
  are no delegates declared, etc.)


tkt_uuid: 1808431fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: dns
priority: 5 Medium
foundin: None
resolution: Works For Me
title: ::ip::version errors when argument is not of form */*
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: 832488ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: None
priority: 8
foundin: None
resolution: Not Applicable Here
title: License woes
comment:
  Tcllib has three licenses:

  tcllib/license.terms: BSD-style, ok.
  tcllib/modules/textutil/expander_license.txt:
  BSD-style, ok.

  tcllib/modules/comm/comm.LICENSE: Seems BSD-ish,
  paragraphs 2 and 5 seem problematic.

  Is there something that can be done to clean this up?

  Thanks,

  Stu


tkt_uuid: 957919ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: uri
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: uri::split fails on "http://a.b.c/idx?path=/idx"
comment:
  uri::split "http://a.b.c/idx?path=/idx"
  results in
  path: "idx?path=/idx"
  query: ""

  I think the "/" in the query confuses the regexp 
  in "SplitHttp"

  Fixing:
  variable charN {[a-zA-Z0-9$_.+!*'(,)?:@&=-]}
  to:
  variable charN {[a-zA-Z0-9$_.+!*'(,)?:@/&=-]}
  (Note the "/")
  results in the correct result.

  I'm not quite sure if this does affect other functions?

  I ran the "uri.test" but got 12 failures (before and after 
  my change!).

  I'm using uri 1.1.3 (with tcl 8.4.5 on WindowsXP).


tkt_uuid: 1394840fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Fixed
title: Module assumes wrong global $:: level
comment:
  Under cygwin, I directly sourced:

  source $::Tcllib/md5/md5.tcl
  source $::Tcllib/base64/base64.tcl
  source $::Tcllib/mime/mime.tcl
  source $::Tcllib/mime/smtp.tcl

  It blew up.

  The MIME module gave me this error:

  can't read "::major": no such variable
  while executing
  "if {$::major < 2} {

  I altered the other two references to $major to $::major
  to get around this error.

  I've mentioned this before: bugid 979894.

  You are assuming some namespace wrapping or something.

  Don't do that.


tkt_uuid: 820807ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math
priority: 7 High
foundin: None
resolution: Fixed
title: Bug in ::math::statistics::mean ?
comment:
  I am running math version 1.2.2 and statistics version0.06.

  The following line of code:
  ::math::statistics::mean "0.06 0.06 0.06 0.06 0.06 0.06
  0.06 0.06"

  returns error:
  domain error: argument not in valid range

  After reducing the number of elements from 8 to 7, the
  bug no longer shows up.

  Thanks.  


tkt_uuid: 1800411fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Fixed
title: Missing CSS class names
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: 726352ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: bwidget configure/Makefile fails to install
comment:
  The currently distributed configure.in and Makefile.in
  that are in bwidget CVS result in a Makefile that looks
  for config/mkinstalldirs , but that file is no longer a
  part of the TEA 2 sample extension's distribution.

  Either a set of config directory files need to be
  included in bwidget, or the configure.in/makefile.in
  files need to be updated to TEA 2 or alternative (Tcl
  Script Extension Architecture - TSEA ?).


tkt_uuid: 3608943fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: dns
priority: 5 Medium
foundin: None
resolution: Fixed
title: [::ip::version] crashes when receives empty string
comment:
  tcllib version 1.15, when empty string passed as arg, proc ip::version crashes:
  % package require dns
  1.3.3
  % ip::version {}
  can't read "addr": no such variable
  % set errorInfo
  can't read "addr": no such variable
      while executing
  "IPv4? $addr"
      (procedure "ip::version" line 4)
      invoked from within
  "ip::version {}"

  One of possible ways to correct it - check for an empty string in proc, or lassign can be used instead of foreach:
  proc ::ip::version {ip} {
      set version -1
      if {$ip eq {}} {return $version}
      foreach {addr mask} [split $ip /] break
      # or: lassign [split $ip /] addr mask
      if {[IPv4? $addr]} {
          set version 4
      } elseif {[IPv6? $addr]} {
          set version 6
      }   
      return $version
  }


tkt_uuid: 753770ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: None
title: unwanted log output
comment:
  The ftp-modules in tcllib 1.4 produces a line of output
  for every transfer: "xxxx bytes sent in yyy seconds
  (zzzz Bytes/sec)".

  This should only be produced, if verbose output is wanted.

  ftp.tcl has a namespace variable VERBOSE, which is
  honored in every call to DisplayMsg, except in
  procedure ElapsedTime.

  The attached patch should change this.


tkt_uuid: 449531ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Fixed
title: Package to iterate over lines of files
comment:
  Here is a package I've been working on that I
  would like to offer for Tcllib. It is basically
  a Tcl-only clone of the Python fileinput module,
  i.e., it contains syntactic sugar for iterating
  over the lines of a number of files, with
  optional in-place editing and backups. This
  allows code like

    # Number lines
    package require fileinput
    ::fileinput::foreach line $argv {
        puts [format "%d %s" [::fileinput::lineno] $line
    }

  I have included a manual page for the package.
  Please let me know if this is acceptable or if
  there is anything I ought to change.


tkt_uuid: 1500946fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tklib: plotchart
priority: 5 Medium
foundin: None
title: histogram plot type
comment:
  Hi,

  is it possible to add a new plot type function :
  Plotchart::createHistogram
  in the same way that
  math::statistics::plot-histogram
  i.e. with continuous x-axis variable.

  Thanks

  dcobac@free.fr


tkt_uuid: 741653ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: comm
priority: 5 Medium
foundin: None
resolution: Duplicate
title: hooks not installed when channel namespaced
comment:
  If the chan arg to comm::comm new is namespace 
  qualified, 
  e.g  comm::comm new ::mychan
  or even
  comm::comm new ::comm::mychan
  then hooks don't get properly installed.
  parray on comm::comm shows most members with 
  the specified chan, e.g
  ::comm::comm(::comm::mychan,listen)    = 1
  but the hooks are shown as:
  ::comm::comm(mychan,hook,incoming)   = {...
  and they don't fire.
  Maybe one just isn't supposed to supply anything 
  other than a simple name to comm::comm new, in 
  which case I guess this is just a doc issue.

  On a related note, it'd be nice if comm::comm new 
  actually returned the fully qualified name of the 
  channel it just built so you don't have to 
  guess/know where it puts it.
  Seems strange that channels are listed unqualified 
  by 'comm::comm channels'.
  Maybe I'm a bit confused - but something appears 
  wrong.


tkt_uuid: 720934ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math
priority: 9 Immediate
foundin: None
resolution: Fixed
title: Test failures in math::fuzzy
comment:
  When running the testsuite for 'math' I get three
  failures in the math::fuzzy testsuite. Attached the log
  for the whole math package.


tkt_uuid: 1323146fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: dns
priority: 9 Immediate
foundin: None
resolution: Fixed
title: dns: ip test fail on 64-bit systems
comment:
  Did this testing with Tcl 8.4.11-cvs
  to avoid any question whether bignum
  bugs were at fault.

  These tests fails on a 64-bit system:

  ==== ::ip:maskToInt-2 dotted form FAILED
  ==== Contents of test case:

          ::ip::maskToInt 255.255.255.255
      
  ---- Result was:
  -1
  ---- Result should have been (exact matching):
  4294967295
  ==== ::ip:maskToInt-2 FAILED


  ==== ::ip:nextNet-7 1.1.1.1/32 -> 1.1.29.0 by 2 FAILED
  ==== Contents of test case:

          ip::nextNet 1.1.1.1 255.255.255.255 2
      
  ---- Result was:
  0xffffffff01010103
  ---- Result should have been (exact matching):
  0x01010103
  ==== ::ip:nextNet-7 FAILED


tkt_uuid: 1316061fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: tree
priority: 4
foundin: None
resolution: Fixed
title: struct/tree.test prints extra info
comment:
  tree.test includes gratuitous puts commands, cluttering
  the log.  It prints something about "impl. performance."


tkt_uuid: 1615255fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: Installation
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: The "notes" in INSTALL.TXT are wrong
comment:
  The tcllib-1.9/INSTALL.TXT file has notes at the bottom saying how it interacts with other versions. They don't appear accurate.

  They refer to previous versions of Tcllib, implying an install will clobber them. If the install actually does for some reason clobber old versions, this should be made more emphatic I believe. But it doesn't appear to.


tkt_uuid: 1076400fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: html
priority: 5 Medium
foundin: None
resolution: Fixed
title: html lib doesn't seem to support DOCTYPE tag
comment:
  the html library doesn't seem to support the DOCTYPE 
  directive that should be present at the beginning of an 
  HTML document to be W3C HTML 4.* compliant.

  A suggested solution would be the addition of 
  an ::html::doctype command that would take the doc 
  type arguments e.g:

  ::html::doctype {HTML PUBLIC "-//W3C//DTD HTML 4.0 
  Transitional//EN"}

  This would cause the appropriate code be generated 
  when ::html::head is called, etc.


tkt_uuid: 3433470fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: Development Tools
priority: 9 Immediate
foundin: None
resolution: Fixed
title: Expired certificates
comment:
  The certificates 'receiver.crt' and 'transmitter.crt' have expired, causing test failures in modules 'comm' and 'pop3' if 'tcltls' is installed at the time the test suite is run.
  Also, the README in the devtools directory mentions that only the 'pop3' tests use these files, which is not true, as noted above.
  Please regen these certs with much later expiry dates.


tkt_uuid: 823346ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: htmlparse
priority: 5 Medium
foundin: None
resolution: Accepted
title: Minor updates to htmlparse
comment:
  The attached patch contains some minor updates to
  htmlparse, so that it uses string functions in some
  places where regexp/regsub isn't needed and simplifies
  some code.

  Changes:
  MapEscapes now uses string map where possible.
  DoMap eliminated
  parse now uses string last for detection of incomplete
  html, instead of the 10x slower regexp...
  CClass eliminated, and re rewritten with \s shorthands
  in parse
   
  Overall performance improvement is minor (1% vor 150k
  using debugCallback), but MapEscapes should be faster
  than before.


tkt_uuid: 2794454fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: cmdline
priority: 5 Medium
foundin: None
resolution: None
title: error in info command
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: 654762ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: doctools
priority: 7 High
foundin: None
resolution: Not Applicable Here
title: doctools - Add backend 'docbook'
comment:
  It would be nice to have a backend for doctools that
  produces docbook.  Because docbook has more information
  than doctools, this transformation cannot be completely
  automated, and requires human intervention to complete,
  but at least it would be a start.

  Eventually, it would be nice to see Tcl itself make use
  of docbook, but I  don't suppose that will happen any
  time soon.


tkt_uuid: 1911513fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: struct :: tree
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: deserialise into a branch of a tree
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: 715193ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: htmlparse
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: unwanted PCDATA space trim
comment:
  ### test code ###

  package require cmdline 1.1
  package require htmlparse 0.3

  set html {<html><head><title>Title</title>
  <body><b>BB</b> RR <b>BB</b> <i>II</i></body></html>}

  catch {t destroy}
  struct::tree t
  htmlparse::2tree $html t
  t walk node1 -order both -command {puts [list %n %a [t
  getall %n]] }

  ### result ###
  ...
  node7 enter {type b data {}}
  node8 enter {type PCDATA data BB}
  node8 leave {type PCDATA data BB}
  node7 leave {type b data {}}
  node9 enter {type PCDATA data RR}
  node9 leave {type PCDATA data RR}
  node10 enter {type b data {}}
  node11 enter {type PCDATA data BB}
  node11 leave {type PCDATA data BB}
  node10 leave {type b data {}}
  node12 enter {type i data {}}
  node13 enter {type PCDATA data II}
  node13 leave {type PCDATA data II}
  node12 leave {type i data {}}
  ...

  ### expected result ###

  ...
  node9 enter {type PCDATA data { RR }}
  ...
  node12 enter {type PCDATA data { }}
  ...

  ### discussion ###

  Due to "string trim $textBehindTheTag",
  significant PCDATA spaces are destroyed.
  The code should distinguish if PCDATA is expected
  or not expected. It must rely on a sort of simplified DTD.


tkt_uuid: 1155390fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: asteroids
priority: 5 Medium
foundin: None
resolution: Fixed
title: app:asteroids: missing music reset
comment:
  The "music" in the game asteroids does not reset to its
  initial speed when you start a new game. After playing
  a fair number of games, it's going at a silly speed
  even on the initial level...


tkt_uuid: 614591ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Fixed
title: ::namespace::cmd vs namespace::cmd
comment:
  In some modules - control and mime, for instance,
  commands don't start with a leading '::'.  In most of
  the rest of them, :: is used.  This should be
  consistent throughout.


tkt_uuid: 637770ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: sha1
priority: 5 Medium
foundin: None
resolution: Accepted
title: Fix for sha1 on Tcl 8.4/MacOSX
comment:
  I'm not sure whether this code is actually necessary,
  but it seems to fix problems with the sha1 code as used
  by some people on MacOSX with Tcl 8.4 (I'm not sure if
  the code is actually needed with the HEAD of tcllib
  though, or whether that does the right thing anyway.
  This patch should be relatively harmless though, and
  won't hit performance all that badly either.)


tkt_uuid: 2593520fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: json
priority: 5 Medium
foundin: None
resolution: Fixed
title: json one-line fix for number parsing
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: 1897848fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: list
priority: 5 Medium
foundin: None
resolution: Fixed
title: repeat test suite failures
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: 886304ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: BWidgets1.7.0 bug in Notebook:bindtabs command
comment:
  I am using ActiveTcl8.4.4.0 with BWidgets1.7.0. The 
  Notebook widgets bindtabs command seems to be 
  stripping off the first two characters of the tabname. 
  Here is a small script to replicate the bug. 

  #!/bin/env wish

  proc print_tab_name {tab} {
  puts $tab
  }

  # Load BWidget package into the interpreter
  package require BWidget

  wm withdraw .

  # Create Notebook
  set notebook [NoteBook .nb]
  $notebook insert end TestTab -text "Test Tab"
  $notebook compute_size
  pack $notebook -fill both -expand yes -padx 4 -pady 4
  $notebook raise [$notebook page 0]
  $notebook bindtabs <Button-1> "print_tab_name"

  wm deiconify .


tkt_uuid: 718985ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: irc
priority: 8
foundin: None
resolution: Accepted
title: Potential infinite loop
comment:
  The Tcllib IRC module is capable of going into an
  infinite loop if the IRC server closes the socket
  unexpectedly.

  The problem is that the GetEvent procedure in irc.tcl
  doesn't make any attempt to close the socket once [eof]
  has been received, and [gets] does not generate an
  error when you try to read from a remotely-closed
  socket (it just retrieves an empty string and returns
  -1).  Hence if the socket enters the [eof] state
  through premature closure by the remote end, the Tcl
  end never gets closed; the fileevent handler returns
  with the socket in the eof state and gets immediately
  reinvoked (becaused part-closed sockets are always
  readable; the underlying read() calls don't block,
  since they can definitely return that no data was
  available.)

  I suggest this version of that routine instead (which
  is mostly just reordering):

    proc GetEvent { } {
       variable linedata
       variable sock
       array set linedata {}
       if {[catch {
          gets $sock line
       } err]} {
          close $sock
          ${irc::log}::error \
                  "Error receiving from network: $err"
          return
       }
       # Since we're using blocking sockets, testing the
       # result of [gets] is sufficient to detect EOF
       if {$err < 0} {
          if {[info exists dispatch(EOF)]} {
             $dispatch(EOF)
          }
          close $sock
       }
       if {[string match :* $line]} {
          DispatchServerEvent [string range $line 1 end]
       } else {
          # Should this command get an empty string on
          # end-of-file?  If not, add a return after
          # the close above.
          DispatchServerCmd $line
       }
    }


tkt_uuid: 1613224fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: too much braced message header values (::mime::getheader)
comment:
  Hello,

  currently experienced, that an eMail had for one message part a Content-ID like "abc$def$ghi@jklmnop".

  Using ::mime::getheader on that message part returned:

      % set header [::mime::getheader ::mime::3-2]
      Content-ID {{<002401c71848_6fba22d0$a500a8c0@dittc48ca0f6af>}}
      % dict get $header Content-ID
      {<002401c71848_6fba22d0$a500a8c0@dittc48ca0f6af>}
      % ::mime::getheader ::mime::3-2 Content-ID
      {<002401c71848_6fba22d0$a500a8c0@dittc48ca0f6af>}

  I expected to get a once-braced value, but not a twice-braced value.

  I used the mime package v1.5 from the tcllib 1.9 in tcl/tk 8.4.13 and 8.5a4.

  IMHO this is a misbehaviour, a bug.

  Thanks,

  Martin Lemburg


tkt_uuid: 1416819fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tie
priority: 5 Medium
foundin: None
resolution: Fixed
title: tie: test suite bug
comment:
  with -debug 1:
  modules/tie/tie_file.test
  - tcllib::testutils 1.0
  - snit 1.1
  - tie 1.0.1
  * tie::std::file 1.0.1
  WARNING: removeFile removing
  "/local/src/tcllib/jtest/journal":
    not created by makeFile
  WARNING: removeFile removing
  "/local/src/tcllib/jtest/journal":
    not a file


tkt_uuid: 879812ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: log
priority: 5 Medium
foundin: None
resolution: Accepted
title: Patch for FRE 879451
comment:
  An initial patch for better introspection and a new
  interface for logproc to optionally use an existing proc.


tkt_uuid: 3552226fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: docs specify -part, but the option is -parts
comment:
  in mime.man and mime.tcl, -part is specified as the option to ::mime::initialize, but the option is actually -parts


tkt_uuid: 603953ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Duplicate
title: Scrolledframe on Mac OSX - 10.1.5
comment:
  It looks like scrolled frames/windows don't work properly under 
  Mac OSX 10.1.5. The scrollbars appear but cannot be moved. I 
  see the same behaviour in the demos provided with BW and my 
  own code.

  Thanks


tkt_uuid: 532774ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ncgi
priority: 5 Medium
foundin: None
resolution: Accepted
title: ncgi::nvlist very slow for large queries
comment:
  Obtaining the results of form submissions where a 
  field contains a large amount of data ( >5-10kb ) 
  causes the CPU to max out for long periods of time 
  (several minutes for 40kb on a reasonably fast PC).

  The problem is caused by the regular expression:

  regexp -- (.*)=(.*) $x dummy varname val

  which doesn't seem to handle really large strings well.

  My fix was to use the following:

  set pos [string first "=" $x]
  set len [string length $x]

  if { $pos>=0 } {
      if { $pos == 0 } { # if the = is at the 
  beginning ...
          if { $len>1 } { # ... and there is something 
  to the right ...
              set varname anonymous
              set val [string range $x 1 [expr $len-1]]
          } else { # ... otherwise, all we have is an =
              set varname anonymous
              set val ""
          }
      } elseif { $pos==[expr $len-1] } { # if the = is 
  at the end ...
          set varname [string range $x 0 [expr $pos-1]]
          set val ""
      } else {
          set varname [string range $x 0 [expr $pos-1]]
          set val [string range $x [expr $pos+1] [expr 
  $len-1]]
      }
  } else { # no = was found ...
      set varname anonymous
      set val $x
  }

  in place of:

  if {![regexp -- (.*)=(.*) $x dummy varname val]} {
      set varname anonymous
      set val $x
  }

  in ncgi::nvlist in tcllib/ncgi. I know that the 
  problem exists in tcllib version 1.1 and 1.2.


tkt_uuid: 2010798fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: md5
priority: 5 Medium
foundin: None
resolution: Fixed
title: variable pollution on package require md5
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: 782367ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: ftp.tcl: file list empty after file get
comment:
  when I list a dir from root, say
  list /pub/linux/redhat

  I get a listing as usual. If I then do:

  get /pub/linux/redhat/readme.txt

  I get readme.txt , ok.

  If I now do :

  list /pub/linux/mandrake

  I get an empty dirlisting. If I do :

  list /pub/linux/mandrake

  I get the dirlisting with twice the contents .....
  pub is a symbolic link in root.

  If I do list, get, cd, list I get a normal listing.
  This problem occurs with different ftp daemons.


tkt_uuid: 2798450fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: uri
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: uri::split provides no user and pwd without (default) scheme
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: 2683544fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: clipped x-labels due to font size
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: 528929ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: Dynamic balloonhelp bug (and patch)
comment:
  In some rare cases (race condition depending on
  balloonhelp configuration and user mousemovements), the
  procedure for destroying a balloonhelp interferes with
  the procedure still building the display, causing
  errors like:

  bad window path name ".help_shell"
      (procedure "DynamicHelp::_show_help" line 22)
      invoked from within
  "DynamicHelp::_show_help .bla.topf.tb0.bbox4.b1 329
  198"
      ("after" script)

  Hard to reproduce with a script, sorry.

  A quick resolution to this is to check if the targeted
  help window still exists in the ::_show_help procedure
  (see attached diff file, it's a twoline patch).


tkt_uuid: 2853152fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: dns
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: fix async dns behaviour
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: 492234ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: Documentation toolbox
comment:
  Enclosed a tar archive implementing a 
  module 'doctools', currently providing
  a simple tcl-nased markup for writing
  manpages and a processor for converting
  this format into TMML, HTML, and nroff.
  Other formats can be added at will.


tkt_uuid: 470211ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: uri
priority: 5 Medium
foundin: None
resolution: Accepted
title: urn: scheme handling for uri module
comment:
  This is a package to extend the uri module of tcllib to
  handle the urn: scheme.

  package require uri::urn
  uri::split urn:uddi-org:app
  etc.


tkt_uuid: 466094ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: tkchat 'logging' info move
comment:
  Currently tkchat produces logging info to stdout .
  An option to either log it to a file or to
  a tk window would be a useful addition.


tkt_uuid: 1000716fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: tree
priority: 8
foundin: None
resolution: Fixed
title: Unset of last attribute followed by delete results in error
comment:
  Unsetting the last attribute of a node and then
  deleting that node results in an error.

  Here is a unit test that shows this behavior:

  test tree-2.6.6 {unset followed by node delete} {
      tree mytree
      set     result [list]
      set n [mytree insert root end]
      mytree set $n foo bar
      mytree unset $n foo
      mytree delete $n
      set result [mytree exists $n]
      mytree destroy
      set result
  } 0

  Here is the result when executed:
  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: can't unset "::mytree::": no such variable
      while executing
  "unset ${name}::$attribute($node)"
      (procedure "KillNode" line 12)
      invoked from within
  "KillNode $name $node"
      (procedure "::struct::tree::_delete" line 27)
      invoked from within
  "::struct::tree::_delete ::mytree node1"
      ("_delete" body line 1)
      invoked from within
  "mytree delete $n"
      ("uplevel" body line 7)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== tree-2.6.6 FAILED

  One fix that causes the above test to pass without
  breaking any of the other unit tests in tree.test is to
  change the line in ::struct::tree::_unset that says:

  set attribute($node) {}

  to

  unset attribute($node)


tkt_uuid: 1886577fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: swaplist
priority: 5 Medium
foundin: None
resolution: None
title: swaplist fails if reorder == 0
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: 1891251fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: tklib: plotchart
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Support of long ylabels in horizontal bar charts
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: 1393564fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
resolution: Fixed
title: erorr in ::math::linearalgebra::angle
comment:
  Hello,

  There is an error in:

  ::math::linearalgebra::angle

  instead of:

  set n1 [norm_2 $vect1]
  set n2 [norm_2 $vect2]

  it should be:

  set n1 [norm $vect1]
  set n2 [norm $vect2]

  or also:

  set n1 [norm_two $vect1]
  set n2 [norm_two $vect2]

  Also, there is no cross product fucnction in the
  package. It is a VERY common need for 3D vectors.

   Regards,


tkt_uuid: 954328ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 8
foundin: None
resolution: Fixed
title: require md5 then mime, throws error
comment:
  From a clean CVS install of tcllib:

  tclsh 
  % package require md5 
  2.0.0 
  % package require mime 
  version conflict for package "md5": have 2.0.0, need 1.0 
  %  

  whereas the opposite order works:

  tclsh 
  % package require mime 
  1.4 
  % package require md5 
  1.4.3 
  %


tkt_uuid: 1879622fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: tooltip
priority: 5 Medium
foundin: None
resolution: Fixed
title: tooltip::show fails when window has been destroyed
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: 433970ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Fixed
title: frink/procheck results
comment:
  Applied frink 2.1.1 and procheck to the script code in
  tcllib. The enclosed patch is the results, fixing bugs,
  warnings, partially supressing warnings which are
  bogus.


tkt_uuid: 1305988fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: Insufficient PagesManager documentation
comment:
  The documentation does not specify much in the way of usage. I 
  bumped into some confusion when I tried to pack the separate pages 
  returned by [add]. Apparently this is not the correct usage. Only 
  widgets inside the pages are GMed separately, as well as the 
  PagesManager itself. In addition, it was not totally clear that [page] 
  takes a new identifier as an argument, not the path of an existing 
  widget. Perhaps it should state something like the following:

  Add a new page identified by 'page', which is an arbitrary identifier. 
  The pathname of the new page is returned and widgets for the page 
  should be created with this as the parent or ancestor. However, 
  PagesManager manages its own geometry. [pack], [grid] or an 
  equivalent should not be used with the pathname returned by [add].

  It also does not explain that no page is raised on creation and this 
  must be done with a call to [raise] to view any page.


tkt_uuid: 3122382fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: tablelist
priority: 5 Medium
foundin: None
resolution: None
title: findTabs returns 0 and callers fail
comment:
  The first loop from tablelist::findTabs is able to return 0 without providing data to idx1Name and idx2Name ... thus commands like tablelist::addActiveTag will crash with error "can't read tabIdx1: no such variable"

  seen in version tklib0.5

  thx


tkt_uuid: 1017743fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: pop3d
priority: 5 Medium
foundin: None
resolution: Fixed
title: pop3d test suite failure
comment:
  platform: sparc blade 100 solaris 8 sun c compiler tcl
  8.4.7 latest tcllib cvs snapshot (from aug 26, 2004).

  I am seeing the following error messages

  Module: pop3d
  modules/pop3d/pop3d.test
  - pop3d 1.0.2
  - udb   1.1
  - dbox  1.0.1
  - mime  1.4
  - md5   2.0.1
  NONE
  can't read "conn()": no such element in array
      while executing
  "upvar $conn($sock) cstate"
      ("state" arm line 6)
      invoked from within
  "switch -exact -- $cmd {
          list {
              if {[llength $args] > 0} {
                  return -code error "wrong # args:
  should be \"$name conn list\""
              }
              return ..."
      (procedure "::pop3d::_conn" line 3)
      invoked from within
  "::pop3d::_conn pop3d40 state {}"
      ("eval" body line 1)
      invoked from within
  "eval [list ::pop3d::_$cmd $name] $args"
      (procedure "::pop3d::Pop3dProc" line 14)
      invoked from within
  "$srv conn state [$srv conn list]"
      invoked from within
  "set res [$srv conn state [$srv conn list]]"
      ("after" script)

  ==== pop3-srv-7.2 auth, APOP/USER FAILED
  ==== Contents of test case:

      newfsrv
      set res ""
      set trace [subshellpar {
          package require md5 2
          set c [socket localhost $port]
          regexp {(<.*>)} [gets $c] -> id
          set hash [string tolower [md5::md5 -hex
  ${id}smash]]
          puts $c "APOP ak $hash" ; flush $c
          set line [gets $c]
          puts $c "USER foo" ; flush $c
          puts "$line [gets $c]"
          after 5000
          close $c
      } {
          after 3000 {
              set res [$srv conn state [$srv conn list]]
          }
      } port [$srv cget -port]] ; # {}
      
      # Postprocess state to remove variable data from
  comparison
      set res [ppcstate $res]
      delfsrv
      list $trace $res

  ---- Result was:
  {+OK congratulations -ERR client already authenticated} {}
  ---- Result should have been (exact matching):
  {+OK congratulations -ERR client already authenticated}
  {deleted {} id <==@%%> l
  ogon {} msg 3 name ak remotehost 127.0.0.1 remoteport
  {} server 1 size 3 state t
  rans storage usr0}
  ==== pop3-srv-7.2 FAILED
  NONE
  can't read "conn()": no such element in array
      while executing
  "upvar $conn($sock) cstate"
      ("state" arm line 6)
      invoked from within
  "switch -exact -- $cmd {
          list {
              if {[llength $args] > 0} {
                  return -code error "wrong # args:
  should be \"$name conn list\""
              }
              return ..."
      (procedure "::pop3d::_conn" line 3)
      invoked from within
  "::pop3d::_conn pop3d42 state {}"
      ("eval" body line 1)
      invoked from within
  "eval [list ::pop3d::_$cmd $name] $args"
      (procedure "::pop3d::Pop3dProc" line 14)
      invoked from within
  "$srv conn state [$srv conn list]"
      invoked from within
  "set res [$srv conn state [$srv conn list]]"
      ("after" script)

  ==== pop3-srv-7.4.0 APOP FAILED
  ==== Contents of test case:

          newfsrv
          set res ""
          set trace [subshellpar {
              package require md5 2
              set c [socket localhost $port]
              gets $c line ; regexp {(<.*>)} $line -> id
              set hash [string tolower [md5::md5 -hex
  ${id}$pass]]
              puts $c "APOP $user $hash" ; flush $c ;
  gets $c line
              after 3000
              close $c
              puts $line
          } {
              after 2000 {
                  set res [$srv conn state [$srv conn list]]
              }
          } port [$srv cget -port] user $user pass $pass]
  ; # {}

          # Postprocess state to remove variable data
  from comparison
          set res [ppcstate $res]
          delfsrv
          list $trace $res
      
  ---- Result was:
  {-ERR authentication failed, sorry} {}
  ---- Result should have been (exact matching):
  {-ERR authentication failed, sorry} {deleted {} id
  <==@%%> logon {} msg 0 name f
  oo remotehost 127.0.0.1 remoteport {} server 1 size 0
  state auth storage {}}
  ==== pop3-srv-7.4.0 FAILED

  NONE
  can't read "conn()": no such element in array
      while executing
  "upvar $conn($sock) cstate"
      ("state" arm line 6)
      invoked from within
  "switch -exact -- $cmd {
          list {
              if {[llength $args] > 0} {
                  return -code error "wrong # args:
  should be \"$name conn list\""
              }
              return ..."
      (procedure "::pop3d::_conn" line 3)
      invoked from within
  "::pop3d::_conn pop3d44 state {}"
      ("eval" body line 1)
      invoked from within
  "eval [list ::pop3d::_$cmd $name] $args"
      (procedure "::pop3d::Pop3dProc" line 14)
      invoked from within
  "$srv conn state [$srv conn list]"
      invoked from within
  "set res [$srv conn state [$srv conn list]]"
      ("after" script)

  ==== pop3-srv-7.4.1 APOP FAILED
  ==== Contents of test case:

          newfsrv
          set res ""
          set trace [subshellpar {
              package require md5 2
              set c [socket localhost $port]
              gets $c line ; regexp {(<.*>)} $line -> id
              set hash [string tolower [md5::md5 -hex
  ${id}$pass]]
              puts $c "APOP $user $hash" ; flush $c ;
  gets $c line
              after 3000
              close $c
              puts $line
          } {
              after 2000 {
                  set res [$srv conn state [$srv conn list]]
              }
          } port [$srv cget -port] user $user pass $pass]
  ; # {}

          # Postprocess state to remove variable data
  from comparison
          set res [ppcstate $res]
          delfsrv
          list $trace $res
      
  ---- Result was:
  {-ERR authentication failed, sorry} {}
  ---- Result should have been (exact matching):
  {-ERR authentication failed, sorry} {deleted {} id
  <==@%%> logon {} msg 0 name a
  k remotehost 127.0.0.1 remoteport {} server 1 size 0
  state auth storage {}}
  ==== pop3-srv-7.4.1 FAILED

  NONE
  can't read "conn()": no such element in array
      while executing
  "upvar $conn($sock) cstate"
      ("state" arm line 6)
      invoked from within
  "switch -exact -- $cmd {
          list {
              if {[llength $args] > 0} {
                  return -code error "wrong # args:
  should be \"$name conn list\""
              }
              return ..."
      (procedure "::pop3d::_conn" line 3)
      invoked from within
  "::pop3d::_conn pop3d46 state {}"
      ("eval" body line 1)
      invoked from within
  "eval [list ::pop3d::_$cmd $name] $args"
      (procedure "::pop3d::Pop3dProc" line 14)
      invoked from within
  "$srv conn state [$srv conn list]"
      invoked from within
  "set res [$srv conn state [$srv conn list]]"
      ("after" script)

  ==== pop3-srv-7.4.2 APOP FAILED
  ==== Contents of test case:

          newfsrv
          set res ""
          set trace [subshellpar {
              package require md5 2
              set c [socket localhost $port]
              gets $c line ; regexp {(<.*>)} $line -> id
              set hash [string tolower [md5::md5 -hex
  ${id}$pass]]
              puts $c "APOP $user $hash" ; flush $c ;
  gets $c line
              after 3000
              close $c
              puts $line
          } {
              after 2000 {
                  set res [$srv conn state [$srv conn list]]
              }
          } port [$srv cget -port] user $user pass $pass]
  ; # {}

          # Postprocess state to remove variable data
  from comparison
          set res [ppcstate $res]
          delfsrv
          list $trace $res
      
  ---- Result was:
  {+OK congratulations} {}
  ---- Result should have been (exact matching):
  {+OK congratulations} {deleted {} id <==@%%> logon {}
  msg 3 name ak remotehost 1
  27.0.0.1 remoteport {} server 1 size 3 state trans
  storage usr0}
  ==== pop3-srv-7.4.2 FAILED

  modules/pop3d/pop3d_dbox.test
  - pop3d::dbox 1.0.1
  - mime        1.4
  - md5         2.0.1
  modules/pop3d/pop3d_udb.test
  - pop3d::udb 1.1

  Module: profiler
  modules/profiler/profiler.test
  - profiler 0.2.2


tkt_uuid: 782735ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ncgi
priority: 5 Medium
foundin: None
resolution: Fixed
title: import file
comment:
  documentation refers to [importFile] but implementation 
  still has [import_file]

  attempt to invoke import_file gives
  invalid command name "pre"

  which is not surprising


tkt_uuid: 1000259fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: win98 demo->DIalog Tab->Abort,Retry,Ignore->Show -- Fails
comment:
  win98 demo->DIalog Tab->Abort,Retry,Ignore->Show -- 
  Fails

  Windows98
  BWidget 1.7 (ActiveTcl 8.5.0.0 beta-2)

  Trace:
  bad -default value "": must be abort, retry, ignore, ok, 
  cancel, no, or yes
  bad -default value "": must be abort, retry, ignore, ok, 
  cancel, no, or yes
      while executing
  "tk_messageBox -message {Message for 
  MessageBox} -default {} -icon error -parent . -title Fehler -
  type abortretryignore"
      ("eval" body line 1)
      invoked from within
  "eval [list tk_messageBox] [array get tkMBoxArgs]"
      (procedure "MessageDlg::create" line 81)
      invoked from within
  "MessageDlg .msgdlg -parent .  -message "Message for 
  MessageBox"  -type    $msg(type)  -icon    $msg(icon)  -
  buttons $msg(buttons)"
      (procedure "DemoDlg::_show_msgdlg" line 5)
      invoked from within
  "DemoDlg::_show_msgdlg"
      invoked from within
  ".mainframe.frame.nb.fdemoDlg.titf3.f.but invoke"
      ("uplevel" body line 1)
      invoked from within
  "uplevel #0 [list $w invoke]"
      (procedure "tk::ButtonUp" line 24)
      invoked from within
  "tk::ButtonUp .mainframe.frame.nb.fdemoDlg.titf3.f.but"
      (command bound to event)


tkt_uuid: 3506188fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: logger
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: level none cannot be inherited
comment:
  minimal example (responsens with indentation for readability):

  expect:/tmp$ package require logger
      0.9
  expect:/tmp$ ::logger::init xy
      ::logger::tree::xy
  expect:/tmp$ foreach lvl [::logger::levels] {::logger::tree::xy::disable $lvl}
  expect:/tmp$ ::logger::tree::xy::currentloglevel
      none
  expect:/tmp$ ::logger::init xy::z
      Invalid level 'none' - levels are debug info notice warn error critical alert emergency
      while evaluating {::logger::init xy::z}
  expect:/tmp$ 


tkt_uuid: 466317ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: app: tkchat
priority: 5 Medium
foundin: None
resolution: Accepted
title: Cleanup of tkchat sources
comment:
  Added on behalf of Larry Virden (lvirden) the enclosed
  patch cleans up the tkchat in several places noted as
  problematic by static code checkers.


tkt_uuid: 466091ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: tkchat memory
comment:
  I would like for tkchat to remember things like resized
  window size.

  Also, when I start up tkchat and look at its font drop
  down, no font name or size is highlighted - should
  these not be set upon the value being used, and then
  remembered if the user changes them?


tkt_uuid: 3053446fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: multiplexer
priority: 7 High
foundin: None
resolution: Works For Me
title: multiplexer fails self-test, tcllib 1.11 and TCL 8.5.8
comment:
  Hi,

  I'm trying to build tcllib 1.11 with TCL 8.5.8 (not threaded) from FreeBSD ports. When running self-tests, 
  this stands out:

  [    ]  [8.5.8] multiplexer ~~ FAILS T     9 P     8 S     0 F     1

  The other self-tests run just fine. Followed by:
  ----
  ...
  *** Error code 1

  Stop in /usr/ports/devel/tcllib/work/tcllib-1.11.
  *** Error code 1

  Stop in /usr/ports/devel/tcllib/work/tcllib-1.11.
  ==== multiplexer-5.2 add access filter which denies access FAILED
  ==== Contents of test case:

      set ::forever {}
      set mp [multiplexer::create]
      ${mp}::Init 37465
      ${mp}::AddAccessFilter DenyAccessFilter
      set sk1 [socket localhost 37465]
      set sk2 [socket localhost 37465]
      update
      fconfigure $sk1 -buffering none
      if { [catch {
          puts $sk1 "boom"
      } err] } {
          set result "socket blocked"
      } else {
          set result "socket not blocked"
      }
      ${mp}::destroy
      set result

  ---- Result was:
  socket not blocked
  ---- Result should have been (exact matching):
  socket blocked
  ==== multiplexer-5.2 FAILED


  @@ End 1282808621
  all.tcl:        Total   9       Passed  8       Skipped 0       Failed  1
  Sourced 1 Test Files.
  Files with failing tests: multiplexer/multiplexer.test
  ============================================================

  @@ Host monthu.*
  @@ Platform FreeBSD-8.1-RELEASE-i386
  @@ CWD /usr/ports/devel/tcllib/work/tcllib-1.11
  @@ Shell /usr/local/bin/tclsh8.5
  @@ Tcl 8.5.8
  @@ MatchTests *
  @@ SkipFiles l.*.test
  @@ MatchFiles *.test
  @@ Start 1282808621
  @@ Module ncgi
  @@ Testsuite modules/ncgi/ncgi.test
  - tcllib::testutils 1.2
  * ncgi 1.3.2
   [8.5.8] multiplexer ~~ FAILS T     9 P     8 S     0 F     1
  FreeBSD monthu.* 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Aug  2 00:03:54 CEST 2010     root@monthu.*:/usr/obj/usr/src/sys/MONTHU  i386
  Please, analyze and report the test failures
  Be sure to use the latest available microversion
  of TCL-8.5, however.
  ----

  Is there some way to fix this? If so, how?

  Thanks!


tkt_uuid: 3312900fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftpd
priority: 5 Medium
foundin: None
resolution: Fixed
title: CWD operation does not perform basic checks
comment:
  CWD operation should check for existence of file (using the filesystem callback "exists" to prevent changing directories to a file)

  --- ftpd1.2.5/ftpd.tcl(revision 2177)
  +++ ftpd1.2.5/ftpd.tcl(working copy)
  @@ -824,7 +824,14 @@
   return
       }
   
  -    set data(cwd) [file join $data(cwd) $relativepath]
  +    set path [file join $data(cwd) $relativepath]
  +
  +    if {[::ftpd::Fs exists $path]} {
  +        puts $sock "550 not a directory"
  +        return
  +    }
  +
  +    set data(cwd) $path
       puts $sock "250 CWD command successful."
       return
   }


tkt_uuid: 1949752fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ncgi
priority: 5 Medium
foundin: None
resolution: Fixed
title: Documentation - misprint
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: 722192ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 3 Low
foundin: None
resolution: Fixed
title: Use lsearch -exact in bwidget/tree.tcl
comment:
  The attached patch is mechanical ly replaces all
  occurrences of [lsearch] in tree.tcl with [lsearch
  -exact]; this is to avoid problems in case node IDs
  contain  "*" or other glob characters.

  I'm *pretty* sure that [lsearch -exact] is the right
  thing in all cases, since the Tree widget isn't
  documented to use glob-matching in any operation, but
  this ought to be double-checked before committing.


tkt_uuid: 1224575fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: smtpd
priority: 5 Medium
foundin: None
resolution: Fixed
title: 'MAIL FROM <>' fails, but shouldn't
comment:
  in proc ::smtpd::MAIL, around line 624, the result from
  split_address is parsed using ::mime::parseaddress,
  which will fail if it is passed a "", ie if the form
  'MAIL FROM <>' is received.

  However, RFC 821 (3.6.  RELAYING) provides: 'it is
  permissible to leave the reverse-path null.  A MAIL
  command with a null reverse-path appears as follows:
  MAIL FROM:<>'.  This is used in some bounce messages,
  and serves to prevent bounce loops.

  I recommend that the result from split_address be
  inspected, and if it is "", the address is not parsed,
  but simply taken as is, and passed to validate_sender, etc.

  I can provide patches if necessary.  Please advise.


tkt_uuid: 1267178fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 8
foundin: None
title: Aes module for tcllib
comment:
  Hi,

  I've written a Tcl-Implementation of the Advanced
  Encryption Standard (AES) for my so-called "individual
  project" at university and thought it might be usefull
  for the tcllib.

  Since it's my first (real) program in Tcl, it may not
  be perfect, but I would be glad, if it would be
  considered helpful in some way.

  I've added a small manpage (in doctools format) and
  test-suite, but I'm not sure if I did it the way it is
  desired. So tell me if something is missing or can be
  improved.

  Thorsten 


tkt_uuid: 3325112fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Accepted
title: ftp -- too enthusiastic use of reverse DNS
comment:
  The calls to [fconfigure -peer/sockname], which incur reverse DNS lookups, are not ideally placed in the code. This matters when the reverse DNS lookup is likely to fail slowly (with a timeout). TYpical are ill-configured resolvers. Especially the lookup on the client's own IP is likely to fail when it's NATted. See https://groups.google.com/group/comp.lang.tcl/browse_frm/thread/65b6637a503f4966?hl=fr# .

   (1) [fconfigure -peername] is called unconditionally, but uses the result only in the VERBOSE case (!)

   (2) [fconfigure -sockname] is called unconditionally for the data connection, though it is only useful in active mode.


tkt_uuid: 649383ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: -textvariable mapped to label and entry
comment:
  If I want to bind the entry of a LabelEntry to a text
  variable by option -textvariable, not only the entry
  but also the label field is bound to it. So I can't
  give a fix text for the label and bind the value typed
  in by the user to a variable automatically.

  Solution:
  I handle the option -textvariable in the same way as
  width, font, anchor, ..., i.e. add it to the prefix
  list of the Label - now the option -textvariable is
  only used for the entry field.

  Here is the diff of the original version of file
  'labelentry.tcl' and my corrected version:

  20c20
  <         prefix {label -justify -width -anchor -height
  -font -textvariable} \
  ---
  >         prefix {label -justify -width -anchor -height
  -font} \


tkt_uuid: 1229352fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct
priority: 8
foundin: None
title: add unget to queues
comment:
  It would be useful to have an 'unget' operation
  available for queues, having the functionality of
  inserting items at the head of the queue.  The main
  purpose for this would be exception handling:


  while {[$q length] > 0} {
      if {[catch {
          set i [$q get] 
          process-item $i
      }]} {
          $q unget $i
      }
  }

  The same functionality can easily be achieved using
  peek initially and then using get to discarding the
  item in success cases, but to me handling it as an
  exceptional case reads cleaner.


tkt_uuid: 2912295fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: Documentation
priority: 5 Medium
foundin: None
resolution: Fixed
title: random(n) manpage needs to be renamed
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: 2915921fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
title: Add commands for extended punctuation (em-dash, en-dash)
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.


