# ticket

tkt_uuid: 3000293fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: ListBox bindText <Button-1> stops selection
comment:
  Given a Listbox with the patch of bug 2995969 (which uses ButtonRelease events instead Button for selection) and the following script:
  pack [ListBox .l -selectmode single]
  .l insert end list:#auto -text 111
  .l insert end list:#auto -text 222
  .l insert end list:#auto -text 333
  .t.l configure -width 10
  proc p {args} {puts "p $args"}
  ListBox::bindTag .t.l <Button-1> p
  ---
  After the bindTag command, selection will not work any more.


tkt_uuid: 2890065fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: stringprep
priority: 5 Medium
foundin: None
resolution: Accepted
title: Stringprep fixes (bidi and folding)
comment:
  Hi!

  I'd like to propose three fixes for the stringprep module:

  1) There was a bug in prohibited_bidi procedure (variable $first_bidi was never assigned and $have_l calculated incorrectly - it should cumulatively set to 1 if there are left-to-right characters in a string).
  2) The script tools/gen_stringprep_data.tcl failed to process one folding case (for character U+33C6) in table B.2 because it couldn't process mapping to 4 symbols (only up to 3).
  3) (trivial bug) In register procedure -prohibit is a number but it was initialized as an empty string.

  The attached patch fixes these bugs and contains diff  for regenerated stringprep_data.tcl

  The patch also includes fixes to three failed tests (bugs 1897839, 1897841, 1897843): tests for failed bidi are passed now if their results are changed from invalid_bidi to prohibited_bidi (as in stringprep::stringprep). Test for nameprep can't be fixed because it contains symbol U+1D7BB which can't be represented in Tcl, so I left this test as is (with knownBug status) and added another one without U+1D7BB.


tkt_uuid: 2999022fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: map
priority: 5 Medium
foundin: None
resolution: Fixed
title: map::slippy Losing floating point in a few methods
comment:
  map::slippy tile 2geo tile  and  map::slippy point 2geo point  have there first/inter most computations returning integers instead of floating points. 
  Code from  map::slippy tile 2geo tile:
    set lat   [expr {$radtodeg * (atan(sinh($pi * (1 - 2 * $row / $tiles))))}]   <--  $row/$tiles  should be between 0-1 but always computes to 0.
    set lon   [expr {$col / $tiles * 360.0 - 180.0}]   <---  Same with $col/$tiles.

  Evample:
  (LBA_OSM_NEW) 5 % ::map::slippy tile 2geo [list 11 504 775]
  11 85.05112877983284 -180.0
  (LBA_OSM_NEW) 6 % ::map::slippy tile 2geo [list 11 775 504]
  11 85.05112877983284 -180.0


  Easy fix by casting with a 1.0*$row ...   By the way, great package.

  Thanks,

  -Matt


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: 1566439fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: list
priority: 5 Medium
foundin: None
resolution: Fixed
title: assign-4.4 fails with Tcl 8.5
comment:
  testing:
  @@ Testsuite modules/struct/list.test
  - tcllib::testutils 1.1
  * struct::list 1.6
  (tcllib-1.9-rc1)

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

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

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


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: 1407811fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: csv
priority: 7 High
foundin: None
resolution: Accepted
title: read2* incorrect for multi-line data
comment:
  This patch applies to read2matrix, but each API that
  reads from a channel needs to account for multiline CSV
  data.

  Index: csv.tcl
  ===================================================================
  RCS file: /cvsroot/tcllib/tcllib/modules/csv/csv.tcl,v
  retrieving revision 1.22
  diff -u -r1.22 csv.tcl
  --- csv.tcl     30 Sep 2005 23:03:20 -0000      1.22
  +++ csv.tcl     17 Jan 2006 01:10:58 -0000
  @@ -166,10 +166,19 @@
          }
       }

  +    set data ""
       while {![eof $chan]} {
          if {[gets $chan line] < 0} {continue}
  -       if {$line == {}} {continue}
  -       Split2matrix $alternate $m $line $sepChar $expand
  +       # Why skip empty lines?  They may be in data.
  +       #if {$line == {}} {continue}
  +       append data $line
  +       if {[regexp -all \" $data] % 2} {
  +           # Odd number of quotes - must have embedded
  newline
  +           append data \n
  +           continue
  +       }
  +       Split2matrix $alternate $m $data $sepChar $expand
  +       set data ""
       }
       return
   }


tkt_uuid: 1513382fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: Proxy password cannot be saved
comment:
  Currently it is not possible to save the proxy 
  password. This means that with every startup the proxy 
  password will have to be provided again.
  Would it be possible to add a checkbox similar to the 
  one for the chat password to save the proxy password?


tkt_uuid: 1067394fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Out of Date
title: BWidget 1.6: ListBox arrow key handling is buggy
comment:
  The ListBox::_keyboard_navigation function doesn't make
  the right item visible if the index of the item
  selected is not identical with its position in the list.

  The last line of this function is:
   $path see $sel
  (where $sel contains the line number in the display)
  while it should be
   $path see [$path selection get]
  (because this returns the user assigned index in the
  data list of the ListBox, which is expected by
  ListBox::see)


tkt_uuid: 2695618fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math :: linearalgebra
priority: 8
foundin: None
resolution: Fixed
title: MkWilkinson- is also false...
comment:
  Compute the Wilkinson - matrix of size 5 :

  math::linearalgebra::show [math::linearalgebra::mkWilkinsonW- 5]
  2.0000 1.0000 0.0000 0.0000 0.0000 
  1.0000 3.0000 1.0000 0.0000 0.0000 
  0.0000 1.0000 4.0000 1.0000 0.0000 
  0.0000 0.0000 1.0000 5.0000 1.0000 
  0.0000 0.0000 0.0000 1.0000 6.0000

  Notice that the diagonal terms are increasing.
  But the formula gives 
  Aii= [n/2]+1-i
  so that the diagonal terms must decrease.

  The following is a fix :

  proc mkWilkinsonW- { size } {
      set result {}
      for { set j 0 } { $j < $size } { incr j } {
          set row {}
          for { set i 0 } { $i < $size } { incr i } {
              if { $i == $j } {
                  set entry [expr {int($size/2) + 1 - ($i+1)}]
              } elseif { $i == $j+1 || $i+1 == $j } {
                  set entry 1
              } else {
                  set entry 0
              }
              lappend row $entry
          }
          lappend result $row
      }
      return $result
  }

  math::linearalgebra::show [mkWilkinsonW- 5]

  2.0000 1.0000 0.0000 0.0000 0.0000 
  1.0000 1.0000 1.0000 0.0000 0.0000 
  0.0000 1.0000 0.0000 1.0000 0.0000 
  0.0000 0.0000 1.0000 -1.0000 1.0000 
  0.0000 0.0000 0.0000 1.0000 -2.0000 


tkt_uuid: 465768ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Fixed
title: Browser invocation broken on Unix
comment:
  Clicking on a URL is intended to launch 
  a browser, but that fails on Unix.

  Problem is that [findExecutable] uses
  [upvar] and [gotoUrl] passes env(BROWSER)
  as the variable name to be linked to by
  [upvar] -- the global ::env array.

  Linking to an element of the ::env array
  via [upvar] has been broken in Tcl since
  release 8.1 -- this is Tcl Bug 219372.

  We should be able to work around this by
  change "env" to any other global array
  variable name.


tkt_uuid: 2557046fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: list
priority: 5 Medium
foundin: None
resolution: Fixed
title: struct::list test suite case assign-4.4 fails w/Tcl 8.6
comment:
  Tcl 8.6 cvs head, and tcllib cvs head from activestate ftp site snapshot.

  sparc solaris 8, Sun C compiler

  After building and installing tcl, I configured the tcllib and ran the test suite.

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

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

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

  is different from most of the test case failures. It appears not to be related to changing error message syntax, but instead, something working that wasn't expected to work.


tkt_uuid: 3584575fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: cmdline
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Improved error messages
comment:
  Hi,

  At present, typedGetoptions does not mention which condition failed the argument processing and return the whole error message. It would be great to have   typedGetoptions return the condition which failed.

  -Amit


tkt_uuid: 2807256fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Accepted
title: Combobox sets X-selection
comment:
  When selecting an item in a Combobox, the X-selection is also set. Personally, I find this "feature" annoying. (I'm not sure about standards compliance, though.)

  The purpose of a combobox is to select an item from a list, not to select characters from a text for copy/paste actions.
  In case there is doubt about the usefulness of this feature, it could be made an option to the Combobox command.

  The attached patch against BWidget 1.8.0 turns this behaviour off.


tkt_uuid: 466228ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: tkchat, Cut, copy, paste should work
comment:
  The chat currently has no cut/copy/paste 
  functionality. It should be added (especially for 
  pasting urls inot a message).


tkt_uuid: 971076ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: tklib: request for new module
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: snitbutton widget
comment:
  A working snit-port of the itcl-gbuttons-widget. That
  way the wikit-tkGui can also be used on platforms where
  itcl is not available (like MacOS 9). 

  All feature to use it instead of gButton inside a wikit
  as a tkGUI are already supplied in the implementation on:

  http://mini.net/tcl/11794

  regards,
  Detlef Groth

  <dgroth (at) gmx.de>


tkt_uuid: 1110076fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: 'jail' filenames
comment:
  One of the uses of commands such as stripPwd is as part
  of a system to 'jail' filenames in a certain directory.

  A 'jail' command that prevents URLs from escaping from
  that directory would be useful.  It would work
  something like this:

  fileutil::jail /var/www/ $somefile

  and returns an absolute pathname within /var/www

  $somefile is turned into a nativename

  if $somefile starts with /var/www, the filename is
  returned.

  otherwise, $somefile is appended to the 'jail', /var/www


tkt_uuid: 1167772fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: tklib: ctext
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: code/block expansion
comment:
  I've sat on this long enough, and I lack the motivation
  to work on the ctext 3.x series much anymore.  So,
  here's an email with some code that could be merged in
  to provide code expansion, or whatever it's called when
  you click the + to expand a block.  He also mentions a
  bug that should be fixed.

  Date: Tue, 12 Oct 2004 12:27:03 +0200
  From: Jos Decoster <decoster@retarget.com>
  To: GeorgePS@XMission.com
  Subject: ctext and tags
  Parts/Attachments:
     1 Shown    84 lines  Text, "message body text"
     2          24 KB     Application
  ----------------------------------------


  Dear mister Staplin,

  I'm using your ctext widget in an application. Syntax
  highlighting works fine. But when I use tags, the ctext
  widget reports errors. 

  In my application, I modify the text based on tags I
  placed during insert. The ctext widget however removes
  tags during insert and delete (all but _cComment).
  Consider the example at the end of the mail. It uses
  both the text and ctext widget to show the differences.
  Double clicking on a line will show or hide a '+' at
  the beginning of the line.

  After modifying the ctext widget to prepend each tag
  added by ctext with __ctext and to only delete __ctext
  tag during insert and delete, the example works as
  expected.

  I attached the modified code in case you would find
  this modification usefull.

  Kind regards,

  Jos.


  set t [text .t]
  set c [ctext .c -linemap 0]

  bind $t <Double-1> [list toggle_prefix $t %x %y]
  bind $c <Double-1> [list toggle_prefix $c %x %y]

  pack .t .c

  proc test_insert { txt ln dta } {
      $txt insert end " >" [list 1.$ln prefix] \
          [format " %5d : " $ln] [list 1.$ln line] \
          $dta [list 1.$ln source] \
          "\n" ""
  }

  proc toggle_prefix { txt x y } {

      global line_char

      set tl [$txt tag names @$x,$y]
      set line -1
      foreach t $tl {
          puts "t = $t @ $x,$y"
          if { [regexp {^([0-9]+)[.]([0-9]+)$} $t match
  p1 p3] } {
              if { $p1 == 1 } {
                  set line $p3
                  break
              }
          }       
      }

      if { $line < 0 } {
          puts "No line found!"
          return
      }

      set iidx [expr {[$txt index 1.$line.first]}]
      
      puts "iidx = $iidx"

      $txt delete $iidx

      if { [info exists line_char($txt,$line)] && 
           [string equal $line_char($txt,$line) "+"] } {
          $txt insert $iidx " " 1.$line
          set line_char($txt,$line) " "
      } else {
          $txt insert $iidx "+" 1.$line   
          set line_char($txt,$line) "+"
      }
  }

  set dtal [list qwerty azerty test foo bar brol]
  set ln 1

  foreach dta $dtal {
      test_insert $t $ln $dta
      test_insert $c $ln $dta
      incr ln
  }


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

  * struct::graph 1.2.1
  test name 'graph-0.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-0.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-0.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-0.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-0.5' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-0.6' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-1.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-1.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-1.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-2.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-2.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-3.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-4.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-4.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-4.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-4.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-5.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-5.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-5.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-5.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-5.5' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-5.6' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-6.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-6.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-6.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-6.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-6.5' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-7.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-7.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-8.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-8.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-9.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-9.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-9.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-9.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-10.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-10.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-10.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-10.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-10.5' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-10.6' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-10.7' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-10.8' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-10.9' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-10.10' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-10.11' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-10.12' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-11.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-11.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-11.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-11.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-11.5' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-12.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-12.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-12.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-12.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-13.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-14.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-14.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-14.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-14.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-15.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-15.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-15.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-16.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-16.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-16.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-16.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-16.5' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-17.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-17.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-17.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-17.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-17.5' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-18.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-18.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-18.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-18.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-19.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-19.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-19.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-19.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-19.5' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-19.6' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-19.7' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-19.8' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-19.9' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-19.10' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-19.11' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-19.12' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-20.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-20.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-20.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-20.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-20.5' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-20.6' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-22.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-22.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-22.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-23.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-23.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-23.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-24.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-24.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-24.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-25.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-25.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-25.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-26.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-26.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-26.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-26.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-27.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-27.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-27.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-27.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-28.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-28.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-28.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-28.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-29.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-29.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-29.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-29.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-30.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-30.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-30.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-30.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-31.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.5' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.6' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.7' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.8' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.9' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.10' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.11' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.12' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.13' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.14' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.15' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.16' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.17' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.18' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.19' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.20' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.21' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-21.22' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-33.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-33.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-33.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-34.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-34.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-34.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-34.4' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-34.5' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-35.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-35.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-35.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-36.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-36.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-37.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-37.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-38.1' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-38.2' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test
  test name 'graph-38.3' re-used; prior use in
  /local/src/tcllib/modules/struct/graph.test


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: 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: 1963364fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math :: roman
priority: 5 Medium
foundin: None
resolution: Fixed
title: Namespace is math::roman
comment:
  The manpage calls the commands of this package ::roman::toroman, ::roman::tointeger, etc., when in fact they live in the math::roman namespace, and should thus be specified as math::roman::toroman (or ::math::roman::toroman).

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


tkt_uuid: 3555995fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: A Category Is Missing
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Latest version download link on sourceforge
comment:
  The "Download latest version" link on sourceforge tcl-lib project actually downloads bwidget. Please correct the link to point to tcllib instead of bwidget.


tkt_uuid: 1281136fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: A Category Is Missing
priority: 5 Medium
foundin: None
resolution: Accepted
title: Bug #1280529
comment:
  --- ini-old.tcl 2005-07-19 19:40:19.000000000 +0200
  +++ ini.tcl     2005-09-03 08:28:27.891839136 +0200
  @@ -12,6 +12,8 @@
   package provide inifile 0.1
    
   namespace eval ini {
  +    variable nexthandle
  +    variable commentchar
       set nexthandle 0
       set commentchar \;
   }
  @@ -28,6 +30,9 @@
       fconfigure $tmp -translation crlf
    
       namespace eval ::ini::$fh {
  +        variable data
  +        variable comments
  +        variable sections
           array set data     {}
           array set comments {}
           array set sections {}


tkt_uuid: 795585ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Fixed
title: regular expression bug in fileutil::fileType
comment:
  The test to determine if a file is an interpreted
  script file has an error:

  The line
      if { [ regexp {^\#\!(\S+)} $test -> terp ] } {
  does not accomodate the fact that whitespace is valid
  after the #!

  A file that begins
      #! /bin/sh
  has its type reported as simply "text" instead of the
  proper "text script /bin/sh"

  The appropriate regex should be {^#!\s*(\S+)} 


tkt_uuid: 1714668fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: asn
priority: 5 Medium
foundin: None
resolution: Duplicate
title: asnGetApplication bitmask is too restrictive
comment:
  The library function ::asn::asnGetApplication in tcllib1.9 and tcllib1.8 use the following mask

      if {($tag & 0xE0) != 0x060} {
          return -code error \
              [format "Expected Application (0x60), but got %02x" $tag]
      }

  This should be rewitten as

      if {($tag & 0xD0) != 0x040} {
          return -code error \
              [format "Expected Application (0x40), but got %02x" $tag]
      }

  The extra bit codes for whether the data is simple or constructed. Types NetworkAddress and TimeTicks of RFC-1155 are simple.


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: 479482ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Accepted
title: RFC: new smtpd module.
comment:
  I am submitting a skeleton Simple Mail Transfer
  Protocol daemon (smtpd) for inclusion into tcllib. This
  was written to permit testing of mail sending software
  (SOAP over SMTP) on the windows platform but may have
  other uses.

  The skeleton talks SMTP and will accept mail subject to
  validation of the host, sender and recipients. Once
  received the mail is passed to a user-specified
  delivery procedure for processing.

  I suggest creating a new subdirectory under
  tcllib/modules as has been done for the ftp/ftpd
  client/server packages.

  Comments please!


tkt_uuid: 727694ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: general request
priority: 8
foundin: None
title: sak validate imposes [package provide] format
comment:
  Several packages in tcllib had a structure like:

  namespace eval foo {
      variable version 1.0.2
  ...
      package provide foo $version
  }

  but they were changed to have a literal value
  in the [package provide] command, like:

  namespace eval foo {
  ...
  }

  set ::foo::version 1.0.2
  package provide foo 1.0.2

  This was done to meet the limitations of
  the Swiss Army Knife tool in validating
  the modules against the release plan,
  and is explained in devdoc/notes.txt.

  I request that sak.tcl remove this limitation,
  so the original structure of these packages
  can be restored.

  A simple [source] into a slave interp should
  suffice for determining the provided version,
  rather than the current attempt to parse Tcl
  code with regexps.


tkt_uuid: 1735588fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: grammar_peg
priority: 3 Low
foundin: None
resolution: Fixed
title: Relation to context-free grammars
comment:
  One thing that had me rather confused the first time I 
  read the peg manpage was that it didn't say anything 
  about context-free languages or grammars -- despite 
  the fact that it all looked very similar. I might have 
  been constantly wondering "where's the catch?", or 
  perhaps not, but the issue left me a bit anxious and 
  not particularly eager to try it out.

  Yesterday I read a paper by Bryan Ford that clarified 
  the issue: the class of parsing expression languages is 
  really distinct from the class of context-free languages: 
  It might be that CFL is a subset of PEL (since the 
  classical a^n b^n c^n example of a non-context-free 
  language turns out to a PEL), but more likely the two 
  classes are incomparable.

  I think it would be useful if a note about this was 
  added somewhere in the manpage, either in the top 
  of the TERMS & CONCEPTS section, or somewhere in 
  the PARSING EXPRESSION GRAMMARS section, but I 
  think the former is preferable. The first paragraph
  could be something like:

  "PEGs are similar to context-free grammars, but not 
  equivalent; in some cases PEGs are strictly more 
  powerful than context-free grammars (there exist PEGs 
  for some non-context-free languages). The formal 
  mathematical definition of parsing expression and 
  parsing expression grammar can be found in the 
  section PARSING EXPRESSION GRAMMARS."


tkt_uuid: 1030051fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Fixed
title: Incorrect use of http::status
comment:
  The [Debug|Retrieve Script] menu option uses 'if
  {[http::status $token] == "ok"} { ... }' to test
  whether or not the download was successful.

  This is incorrect: [http::status] only reflects whether
  the HTTP transaction completed, it's still necessary to
  check if [http::ncode] is 200 to see if the resource
  was actually retrieved.  404, 502, and various other
  error conditions are possible and $status will still be
  "ok".


tkt_uuid: 625327ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: smtp
priority: 5 Medium
foundin: None
resolution: Works For Me
title: Problem using i as a counter at level 0
comment:
  set mailHost localhost
  set mailPort 25
  set myAddress lduperval@yahoo.com

  set addresses {
  lduperval@yahoo.com
  }

  proc send_simple_message {recipient subject body} {
      package require smtp
      package require mime
      global mailHost
      global mailPort
  global myAddress

      set token [mime::initialize -canonical text/plain
  -string $body]
      mime::setheader $token Subject $subject
      smtp::sendmessage $token -recipients $recipient
  -servers $mailHost\
        -ports $mailPort -originator $myAddress
      mime::finalize $token
  }

  for {set i 0} {$i < [llength $addresses]} {incr i} {
  puts "Sending [expr {$i+1}]/[llength $addresses]"
  send_simple_message [lindex $addresses $i] "Test: ne
  pas répondre"\
    "Ceci n'est qu'un test. Il n'est pas nécessaire de
  répondre.\n\nL"
  }

  This is the error I get:

  Sending 1/1
  can't read "i": no such variable
      (reading value of variable to increment)
      invoked from within
  "incr i"
      ("for" loop-end command)
      invoked from within
  "for {set i 0} {$i < [llength $addresses]} {incr i} {
  puts "Sending [expr {$i+1}]/[llength $addresses]"
  send_simple_message [lindex $addresses $i] "Te..."
      (file "sendmail.tcl" line 27)

  Now, if I change "i" to "ii", it works.


tkt_uuid: 815405ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: pop3
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: pop3::top Hangs under wish/tkcon
comment:
  I have a script that runs fine under tclsh84.
  When run by wish it hangs and then begins to
  take 100% of cpu. May work with 1 or 2 messages but 
  hangs consistently with more.

  I haved tried supplying a bgerror handler and supplying  
  a do-nothing log::log proc. Still hangs when

  Script attached

  INPUT: (add to top of script)
  mailserver
  login
  pass


  Windows 2000
  Tcl/Tk 8.4.2


tkt_uuid: 594263ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Out of Date
title: bug in tkchat message dissector
comment:
  if a person using the web interface to the
  Tcl'ers Chat has no special color attached
  to their name, then the line of text which
  is output when they speak isn't wrapped by
  <FONT COLOR="#whatever"></FONT>. If such a
  person post a multi-line message, then the
  tkchat program gets confused, and all but
  the first line of the message are handled
  as "help" messages, and shown in popup windows,
  one window per line.


tkt_uuid: 607745ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: BWidget 1.4.1 ListBox Binding Bug
comment:
  ### Iv'e noticed a report similar to this, but am not 
  ### sure this is exactly the same bug, so here you go:

  ### create some ListBox with some junk in it
  package require BWidget 1.4.1
  image create photo p1 -file 
  c:/tcl/lib/bwidget1.4.1/images/open.gif
  ListBox .l
  pack .l
  .l configure -multicolumn 0  -bg SystemWindow
  .l insert end i1 -image p1 -text hello
  .l insert end i2 -image p1 -text hello
  .l insert end i3 -image p1 -text hello
  .l insert end i4 -text hello
  .l selection set i1

  ### This works as expected
  .l bindText <Enter> ".l selection set "

  ### This does not work as expected, %W is replaced 
  with the canvas
  ### widget name instead of the ListBox's name
  .l bindText <Enter> "%W selection set "

  ### You can fix this error by adding the following line
  ### To ListBox::bindText
  ### regsub -all {%W} $script $path script
  ###


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: 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: 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: 2001539fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math :: calculus
priority: 5 Medium
foundin: None
resolution: None
title: calculus::solveTriDiagonal bug
comment:
  The execution of :math::calculus::solveTriDiagonal on a 3x3 matrix, such as  :
     set X [::math::calculus::solveTriDiagonal {3 3} {1 1 1} {2 2} {1 0 0}]
  returns a liste of length 2 :
     { 1 0 }

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



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


  The for loop should pbly go one step further.


tkt_uuid: 3281791fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: csv
priority: 5 Medium
foundin: None
resolution: Fixed
title: CSV example documentation fix
comment:
  I think the documentation fix for 3061815 is incomplete.  The last line in the Example section:

      As can be seen only item (d) is different, now a " instead of the empty string.

  should be: ... item (d) is different, now the empty string instead of a ".

  By the way, when does the html get updated?  http://tcllib.sourceforge.net/doc/csv.html
  does not have the 3061815 fix.


tkt_uuid: 1289692fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Out of Date
title: bug in installer.tcl
comment:
  Hi,

    I get the error from the bottom of the page:

  the problem are the two variables:
  tcl_pkgPath</global/mqm/home/mqusers/mqm/otto/Proj
  ects/OpMenu2/ext/lib>
  libdir</global/mqm/home/mqusers/mqm/otto/Projects/Op
  Menu2/ext/lib>

  the tclsh was build on a other node where /global is 
  available... the current node does has no /global avilable 
  but tcl tries to install the components in a /globale/... 
  directory

  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  >make install-libraries
  /export/home/mqusers/mqm/scripts/OpMenu/tclsh 
  `echo ./installer.tcl` \
          -pkg-
  path   /export/home/mqusers/mqm/scripts/OpMenu/ext/li
  b/tcllib1.7 \
          -no-examples -no-html -no-nroff \
          -no-wait -no-gui
  Installing Tcllib 1.7
  You have chosen the following configuration ...

  Packages:      /export/home/mqusers/mqm/scripts/OpM
  enu/ext/lib/tcllib1.7
  Applications:  /global/mqm/home/mqusers/mqm/otto/Proj
  ects/OpMenu2/ext/bin
  Examples:      Not installed.
  Documentation: Not installed.

  ..................................................................................
  ..................................................................................
  ..................................................................................
  ...................................................
  Generating /export/home/mqusers/mqm/scripts/OpMenu/
  ext/lib/tcllib1.7/pkgIndex.tcl
  can't create directory "/global": permission denied
      while executing
  "file mkdir [file dirname  $adst]"
      (procedure "ainstall" line 14)
      invoked from within
  "ainstall"
      (procedure "doinstall" line 26)
      invoked from within
  "doinstall"
      (procedure "main" line 11)
      invoked from within
  "main"
      (file "./installer.tcl" line 540)
  make: *** [install-libraries] Error 1
  mpsun17:mqm:/export/home/mqusers/mqm/scripts/OpM
  enu/src/tcllib-1.7\>


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: 1408494fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: BWidget Tree bug with autoscroll (when dragging)
comment:
  Tree::_auto_scroll calls Tree::_scroll with 2 parameters,
  but _scroll has 3 parameters. Error generates and
  auto_scroll not works. Proc _scroll correct, only
  last 2 parameters packed in list.
       With this all works ok:
  ##################################
  proc Tree::_scroll { path scroll } {
      variable $path
      upvar 0  $path data
  set cmd [lindex $scroll 0]
  set dir [lindex $scroll 1]
      if { ($dir == -1 && [lindex [$path.c $cmd] 0] > 0) ||
           ($dir == 1  && [lindex [$path.c $cmd] 1] < 1) } {
          $path.c $cmd scroll $dir units
          set data(dnd,afterid) [after 50 [list
  Tree::_scroll $path $scroll]]
      } else {
          set data(dnd,afterid) ""
          DropSite::setcursor dot
      }
  }
  ######################################
  Kapkaev@inbox.ru


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

  * snit 1.1
  test name 'htypemethod1.5' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'dtypemethod-1.3' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'dtypemethod-1.8' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'dtypemethod-4.7' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'creation-1.7' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'creation-1.8' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'creation-1.9' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'method-1.5' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'method-1.9' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'method-1.10' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'hmethod-1.5' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'dmethod-1.3' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'dmethod-1.8' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'dmethod-4.7' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'widgetadaptor-1.9' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'widgetadaptor-1.11' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'installhull-1.4' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'iinfo-1.1' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'tinfo-1.1' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'typevar_var-1.5' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'optionsyntax-2.2' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'optionsyntax-2.3' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'optionsyntax-2.4' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'cgetcache-1.3' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'configurecache-1.3' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'validatemethod-1.3' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'hastypeinfo-1.2' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'hastypedestroy-1.2' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'hasinstances-1.2' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'hasinstances-1.3' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test
  test name 'hasinfo-1.2' re-used; prior use in
  /local/src/tcllib/modules/snit/snit.test


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: 611595ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: ncgi
priority: 8
foundin: None
resolution: Accepted
title: file upload support + fix for binary
comment:
  the attached path adds two functions to ncgi to support
  file upload. ncgi::import_file gives information about
  an uploaded file (modelled on the cgi.tcl interface but
  adds a -data option to get the data without writing it
  to a local file)  ncgi::tempfile is used to generate a
  temporary filename, maybe that belongs in fileutils. 

  I've also fixed a bug (I think) relating to uploading
  binary files which is to put stdin into -translation
  binary -encoding binary before reading the form data.
  Without this I was seeing translation of cr to nl cr in
  the uploaded data.  The changed version passes the test
  suite no problem but then so does the original so the
  binary test obviously isn't triggering this bug. 
  haven't got time just now to put together a test that
  does trigger the bug, sorry.


tkt_uuid: 1944037fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: ico
priority: 5 Medium
foundin: None
resolution: None
title: written icons have a doubled height
comment:
  To build the starpack icon file "tclkit.ico" I wanted to add several single icons to a new one (tclkit.ico), but the tclkit wrapper didn't recognized this new tclkit.ico file, because all added icons have the right width, but an invalid height.

  To get into details:

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

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

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

  The result output of the attached test script is:

      Loaded the tklib package ico v1.0.2

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

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


tkt_uuid: 2512528fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: crc
priority: 5 Medium
foundin: None
resolution: Invalid
title: crc32 wrong with -seed option
comment:
  Generating crc32 of the strings '?' and 'Hello' generates the correct values as tested agains other code and online crc generators.

  Using the command crc::crc32 -seed [crc::crc32 ?] Hello produces the crc 0x4cc062a6 other tools generate the crc of 0xC2A6E6F2. Trf and critcl not used.


tkt_uuid: 429388ffffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: control
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: execCmd procedure: improved exec (UNIX)
comment:
  Attached procedure for execution of external commands on UNIX systems. This routine provides 
  much more flexibility and doesnt have a lot of the caveats that catch{exec} has. Refer to the 
  description and instructions in the file.


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: 1329207fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: fileutil :: magic
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: mimetype, filetype result empty for text files
comment:
  modules/fumagic/filetypes.test
  - tcltest 2.2.8
  - fileutil::magic::filetype 1.0
    - fileutil::magic::rt     1.0

  ==== fumagic.filetype-1.2 test file directory FAILED
  ==== Contents of test case:

      set f [file join $dir fileTypeTest]
      set res [catch {fileutil::magic::filetype $f} msg]
      regsub {file[0-9]+} $msg {fileXXX} msg
      list $res $msg

  ---- Result was:
  0 {}
  ---- Result should have been (exact matching):
  1 {error reading "fileXXX": illegal operation on a
  directory}
  ==== fumagic.filetype-1.2 FAILED

  modules/fumagic/mimetypes.test
  - tcltest 2.2.8
  - fileutil::magic::mimetype 1.0
    - fileutil::magic::rt     1.0

  ==== fumagic.mimetype-1.2 test file directory FAILED
  ==== Contents of test case:

      set f [file join $dir fileTypeTest]
      set res [catch {fileutil::magic::mimetype $f} msg]
      regsub {file[0-9]+} $msg {fileXXX} msg
      list $res $msg

  ---- Result was:
  0 {}
  ---- Result should have been (exact matching):
  1 {error reading "fileXXX": illegal operation on a
  directory}



  In fact, trying to apply to a text file, such as
  /var/log/messages or /COPYRIGHT returns nothing --
  [rt::resultv] seems to be an empty list.

  Using the procedure on some other things -- like
  picture files -- seems to work, however.


tkt_uuid: 582668ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Fixed
title: ftp::Get with -variable fails
comment:
  By using a construct like

  ftp::Get $ftphandle directory/file -variable data

  ftp raises an error, if no local directory "directory"
  exists:

  ftp::Get, directory "directory" for destination
  "directory/file" does 
  not exist

  ftp checks for a local directory, even if the data
  should never go to this directory, but to a variable.


tkt_uuid: 443124ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: bwidget
priority: 7 High
foundin: None
title: add 'Color' to list of bwidget option types
comment:
  It's not unusual to add an option to a megawidget that 
  represents a color, but there's no option type 
  for "Color".  For example, I would like to be able to 
  do this:

  Widget::declare BWXentry {
    {-errorcolor    Color     red    0}
  }

  This would require a couple of fairly simple changes 
  in widget.tcl. First, Color would have to be added to 
  the list of types in the _optiontype array. Second, a 
  proc named Widget::_test_color would need to be 
  defined.

  Unfortunately, there is no [string is color] command. 
  However, one could use [winfo color] to check whether 
  a color is valid or not. Unfortunately, [winfo color] 
  requires a window path, and the window path isn't 
  available to the _test procedures. 

  A quick hack would be to use "." with the winfo 
  command, though a better solution would be to use the 
  actual megawidget path. Unfortunately, this value 
  isn't made available to the _test routines. A simple 
  fix would be to add this to the set of parameters 
  given to the _test routines. 


tkt_uuid: 1098039fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Fixed
title: fileutil::find lists files that start with . twice
comment:
  TCL version: 2.4.9
  Platform:     WIN2K SP4
  tcllib:         1.7

  In the course of writing a script on the win2k
  platform, I've
  come across a bug in the implementation of fileutil::find

  I'm not sure if it's an issue under *unix, but I
  suspect it is...

  If a directory has a file that starts with a . (like
  .splintrc)
  then fileutil::find will list it twice!

  To reproduce:

  1. Create a clean directory
  2. Start a tcl shell, and go to that dir
  3. package require fileutil
  4. fileutil::touch .splintrc
  5. fileutil::find .

  the .splintrc file is listed twice

  The implementation of find in tcllib uses [glob
  -nocomplain * .*]
  which explains the problem.

  It might be better to use [glob nocomplain *] as
  Windows does not
  see the . and .. anyways.

  I suspect the problem may be there under *unix as well,
  so the
  search pattern may be better expressed as [glob
  -nocomplain * . ..]

  Ralph


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: 1009003fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: graph
priority: 5 Medium
foundin: None
resolution: Invalid
title: "graph arcs -in, -out" broken?
comment:
  I can't thank you enough for support. ::struct::graph 
  can save my project. 

  In the following program using ::struct version 2.0, I 
  expected to see no loops and exactly 2 arcs between 2 
  dissimilar nodes. I am getting something different.

  BTW, I have applied your earlier change for null graphs 
  before running this.

  Thanks in advance,
  -Bhushit

  ######### graph1.tcl ###########
  package require struct
  puts [ package versions struct ]
  set x [ ::struct::graph ]
  puts "created $x"

  set a [ $x node insert ]
  set b [ $x node insert ]

  set c [ $x arc insert $a $b ]
  set d [ $x arc insert $b $a ]
  puts "inserted $c from $a to $b"
  puts "inserted $d from $b to $a"

  set e [ $x arc insert $a $b ]
  set f [ $x arc insert $b $a ]
  puts "inserted $e from $a to $b"
  puts "inserted $f from $b to $a"

  foreach n1 [ $x nodes ] {
      foreach n2 [ $x nodes ] {
  foreach arc [ $x arcs -out $n1 -in $n2 ] {
      puts "from $n1 to $n2 : $arc"
  }
      }
  }

  ######## output #########
  expectk5.40.0 > source graph1.tcl
  2.0 1.4 1.3
  created ::graph9
  inserted arc1 from node1 to node2
  inserted arc2 from node2 to node1
  inserted arc3 from node1 to node2
  inserted arc4 from node2 to node1
  from node2 to node2 : arc1
  from node2 to node2 : arc3
  from node2 to node2 : arc1
  from node2 to node2 : arc3
  from node2 to node1 : arc1
  from node2 to node1 : arc3
  from node2 to node1 : arc2
  from node2 to node1 : arc4
  from node1 to node2 : arc2
  from node1 to node2 : arc4
  from node1 to node2 : arc1
  from node1 to node2 : arc3
  from node1 to node1 : arc2
  from node1 to node1 : arc4
  from node1 to node1 : arc2
  from node1 to node1 : arc4

  ###### expected output #######
  expectk5.40.0 > source graph1.tcl
  2.0 1.4 1.3
  created ::graph9
  inserted arc1 from node1 to node2
  inserted arc2 from node2 to node1
  inserted arc3 from node1 to node2
  inserted arc4 from node2 to node1
  from node2 to node1 : arc2
  from node2 to node1 : arc4
  from node1 to node2 : arc1
  from node1 to node2 : arc3

  ### Difference between 2.0 and my graph.tcl ###
  ### < mine, > released ###

  1134,1139c1134
  <     if { [ info exists ina ] } {
  <       unset ina
  <     }
  <     if { [ info exists outa ] } {
  <       unset outa
  <     }
  ---
  >     unset ina outa
  1145,1147c1140
  <     if { [ info exists arcn ] } {
  <       unset arcn
  <     }
  ---
  >     unset arcn
  2703,2708d2695
  < 
  <     array set nodeAttr  {}
  <     array set arcAttr   {}
  <     array set inArcs    {}
  <     array set outArcs   {}
  <     array set arcNodes  {}


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: 528390ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Fixed
title: example_begin/_end unsatisfactory
comment:
  The current implementation of example_begin/example_end
  produces centered literal text. If you have more than
  one example, they will not line up unless the longest
  lines are the same. This is - in my opinion - not very
  pleasant to look at.


tkt_uuid: 739393ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Fixed
title: mkdir error/bug
comment:
  I get an error lile this:

  debug      | ---> MKD test
  bgerror failed to handle background error.
      Original error: can't read "multi_line": no such variable
      Error in bgerror: invalid command name "bgerror"

  i think the multi-line cannot handy the ftp output like this:

  MKD test
  Skipping... hidden...
  257 "test" created.
  EXEMPTED
  PWD

  i think it cannot handle with the output may someone 
  can help me

  thx


tkt_uuid: 500890ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: Mainframe cannot be created if no textvar used
comment:
  I did a CVS update of BWidget and one of my apps stopped working. Anyone
  know what changes caused this? I see that an eval was added.

  Error in startup script: unknown option "0"
      while executing
  "label .main.status.label -textvariable -takefocus 0 -highlightthickness 0 -background #d9d9d9"
      ("eval" body line 1)
      invoked from within
  "eval label $status.label  -textvariable [Widget::getoption $path -textvariable]  -takefocus 0 -highlightthickness 0 -background $bg $sbfnt"
      (procedure "MainFrame::create" line 49)
      invoked from within
  "MainFrame::create .main -menu {&File all file 0 {{command E&xit {} {Exit Stock Watcher} {Ctrl q} -command Exit}} &Graph all graph 0 {{command &Clear {..."
      ("eval" body line 1)
      invoked from within
  "eval MainFrame::create $path $args"
      (procedure "MainFrame" line 1)
      invoked from within
  "MainFrame .main -menu $descmenu"
      (procedure "start_ticker" line 7)
      invoked from within
  "start_ticker"
      (file "./tkstkw" line 1457)


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

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

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


tkt_uuid: 1549391fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: asn
priority: 5 Medium
foundin: None
title: allow decoding as basic ASN type for implicit types
comment:
  Currently the asnGet* procs will check the tag of the 
  raw data to make sure that the raw data is indeed what 
  it should be. For instance the asnGetInteger will 
  check if the tag is 0x02.
  This makes it complicated to decode types in protocols 
  where a new tag is implicitly defined for a basic 
  ASN.1 type. For instance the SNMP MIB defines a 
  TimeTick as an implicit integer, but assigns the tag 
  0x43. Trying to decode this using asnGetInteger will 
  fail because of the internal consistency check. To 
  decode raw data like this you will thus have to change 
  the tag to the 0x02 tag to decode it.

  I therefore request either a new class of procs that 
  will ignore the tag and decode it anyway. This would 
  give a class of functions asnGetAsInteger or maybe a 
  flag -nocomplain,
  or a whole new approach where you will have a mapping 
  from protocol to ASN.1 type and then have a decode 
  proc, for example:

  decode {[list 0x43 0x02] $raw}


tkt_uuid: 1556310fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math :: linearalgebra
priority: 5 Medium
foundin: None
resolution: Invalid
title: "scale" exists as a Tk widget - name conflict when importing
comment:
  As "nurwodah" found out on the chat, the linear algebra
  package exports a procedure "scale". If you do:

    namespace import ::math::linearalgebra::*

  in wish or have Tk loaded in another way, then
  the name "scale" conflicts with the scale widget.

  We need to repair this ...


tkt_uuid: 1784836fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: Documentation
priority: 5 Medium
foundin: None
resolution: Accepted
title: various items of note in the cvs head README files
comment:
  The top level README files have some typos (prefered instead of preferred, for instance). I also note, though, that I see no reference to TIP#190 file format being permitted for a Tcllib module.

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


tkt_uuid: 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: 1711544fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: Development Tools
priority: 5 Medium
foundin: None
resolution: Fixed
title: sak.tcl validate fails with bad error msg without module nam
comment:
  Trying to use ./sak.tcl validate i see the following failure:
  schlenk@chronos:~/devel/tcllib> tclsh ./sak.tcl validate
  Validating tcllib 1.9 development
  ===================================================
  1: Existence of testsuites ...
  ------------------------------------------------------
    Without testsuite : bench
    Without testsuite : ftp
    Without testsuite : ftpd
    Without testsuite : grammar_peg
    Without testsuite : http
    Without testsuite : irc
    Without testsuite : javascript
    Without testsuite : jpeg
    Without testsuite : nmea
    Without testsuite : nntp
    Without testsuite : page
    Without testsuite : pluginmgr
    Without testsuite : smtpd
    Without testsuite : tar
    Without testsuite : tcllibc
    Without testsuite : term
    Without testsuite : tiff
    Without testsuite : transfer
  ------------------------------------------------------

  2: Existence of package indices ...
  ------------------------------------------------------
  ------------------------------------------------------

  3: Consistency of package versions ...
  ------------------------------------------------------
  unmatched open quote in list
      while executing
  "foreach {n v} $line break"
      ("foreach" body line 12)
      invoked from within
  "foreach line [split [read $fh] \n] {
              regsub "\#.*$" $line {} line
              if {![regexp {provide} $line]} {continue}
              if {![regexp {package} $lin..."
      ("foreach" body line 24)
      invoked from within
  "foreach f $files {
          # We ignore package indices and all files not in a module.

          if {[string equal pkgIndex.tcl [file tail $f]]} {continue}
          if {![reg..."
      invoked from within
  "foreach f $files {
          # We ignore package indices and all files not in a module.

          if {[string equal pkgIndex.tcl [file tail $f]]} {continue}
          if {![reg..."
      (procedure "ppackages" line 24)
      invoked from within
  "ppackages"
      (procedure "validate_versions" line 3)
      invoked from within
  "validate_versions"
      (procedure "_validate_all" line 21)
      invoked from within
  "_validate_all"
      (procedure "__validate" line 4)
      invoked from within
  "__$cmd"
      (file "./sak.tcl" line 2550)


tkt_uuid: 478818ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: date/time/calendar module for tcllib
comment:
  Although the clock command accomplishes alot of
  date/time functionality, there are still some
  functionality that can be added. This module should add
  those new functionalities.


tkt_uuid: 2686560fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: crc
priority: 8
foundin: None
resolution: Fixed
title: memleak in crc::cksum
comment:
  calling crc::cksum over and over causes a huge memleak.

  while { 1 } {
          set a [crc::cksum helloworld]
  }

  doing the same with crc::crc32 doesnt.


tkt_uuid: 714209ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: list
priority: 8
foundin: None
resolution: Fixed
title: test failure: struct module
comment:
  Test platform: tcl 8.4.2 on intel Windows 2000

  Module:struct
  modules/struct/graph.test
  modules/struct/list.test

  ==== flatten-2.1 flatten errors FAILED
  ==== Contents of test case:

      list [catch {flatten} msg] $msg

  ---- Result was:
  1 {no value given for parameter "?-full?" to
  "::struct::list::Assign"}
  ---- Result should have been (exact matching):
  1 {wrong # args: should be "::struct::list::Assign
  ?-full? ?--? sequence"}
  ==== flatten-2.1 FAILED


tkt_uuid: 988628ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: BWidget 1.7 notebook: missing border
comment:
  Using the following code, with Tcl/Tk 8.4.6 and BWidget
  1.7:

  wm geometry . 200x100
  set book [NoteBook .book -side bottom]
  $book insert end 1; $book itemconfigure 1 -text 1
  $book insert end 2; $book itemconfigure 2 -text 2
  $book raise 1
  pack $book -fill both -expand 1

  I noticed that the 1 pixel bottom border of tab 1 is
  not visible, whereas it shows perfectly when using tabs
  on top side.
  Can you reproduce it? Any workaround at this time?


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: 1797428fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: asn
priority: 5 Medium
foundin: None
resolution: Fixed
title: padding byte in asnBitString missing
comment:
  The mandatory padding byte in the encoding of the BitString type is missing in the encoder.

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


tkt_uuid: 1050608fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: base64
priority: 5 Medium
foundin: None
resolution: None
title: base64 doesn't encode propertly unicode chars > 0xff
comment:
  decode(encode()) is not the identiy operation for
  strings with unicode characters > 0x00ff:

  % info tclversion
  8.4
  % source modules/base64/base64.tcl
  % string equal \u2019 [::base64::decode
  [::base64::encode \u2019]]
  0

  In the (pure tcl) ::base64 implementation, "binary
  scan" is used to get the byte representation of the
  characters in the string. This doesn't work for
  characters with a unicode representation beyond 0x00ff,
  as Tcl itself throws away the unicode high byte:

  % set string \u2019
  ?
  % binary scan $string c* X
  1
  % set X
  25
  # (this is the low byte 0x19 in dec)

  Only variables of the type "bytearray" are handled
  correctly, but you will not know from the string
  representation if this Tcl object was created as string
  or bytearray.

  PS: I'm missing a -encoding option to provide the
  encoder (decoder) a hint how to get (interpret) the
  binary representation of the characters of the string,
  as the string to encode is only an array of chars, not
  of bytes.


tkt_uuid: 1161779fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
resolution: Fixed
title: destructor can't precede constructor
comment:
  The following code:

  package require snit

  ::snit::type Boom {
      destructor {
      }

      constructor {args} {
  $self configurelist $args
      }
  }

  Causes:

  extra characters after close-brace
      while executing
  "error $result"
      (procedure "Comp.Define" line 12)
      invoked from within
  "Comp.Define [Comp.Compile type $type $body]"
  ...

  Because (I think) snit sees the destructor and decides
  to create a default constructor (without a space, for
  some reason.)


tkt_uuid: 1352763fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: log
priority: 5 Medium
foundin: None
resolution: Duplicate
title: file appender for logger
comment:
  file appender for logger patch includes:

  Patch file includes the following changes:

  * changes to man pages
  * new appender fileAppend
  * fixes to createLogProc to allow channel selection
  * tests 


tkt_uuid: 772435ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
title: snit: Initialization of type variables
comment:
  From a mail by Will, author of snit:

  * I'd like to add a good way to initialize array 
  typevariables.


tkt_uuid: 1592656fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: let ::ftp::Put uses STOU and STOT
comment:
  The ::ftp::Put command dosen't use the STOU command
  when no name for the remote file has been provided. I think
  it should.

  HylaFax server uses STOT ftp command to create a temporary
  unique file to use in order to send a fax. This patch
  add a -hylafax
  option to the ::ftp::Put command to let you use it. So
  for example,
  you can now connect via ftp to your HylaFax server and
  send it
  the fax this way:

      ::ftp::Put $ftpH -hylafax -data $faxdata


tkt_uuid: 630500ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: BWidget panedwindow _realize problem
comment:
  Hi,

  On CLT a problem with the __realize_ function of the
  _PanedWindow_ widget was reported. The call to
  __realize_ in the _add_ function caused incorrect
  beavior but is needed when adding new panes after te
  widget received a _Configure_ event. To solve this,
  __realize_ is only called from _add_ after te
  _Configure_ event is received.

  Jos.


tkt_uuid: 411422ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Accepted
title: Fix for bug #404917
comment:
  This patch fixes the bug 404917 by explicitly adding
  smtp to the list of packages to list in the main
  package index.


tkt_uuid: 1503677fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Progress bar should display the current and maximum values
comment:
  I'm using the ProgressBar part of BWidgets, and am
  quite happy with it over all.

  I find a piece of information missing, and am going to
  display it in a separate label for now -- the current
  value and the maximum value of the progress.

  Ideally, there should be an option for these bit to be
  displayed right there on the progress bar itself...


tkt_uuid: 1381659fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: jpeg
priority: 5 Medium
foundin: None
resolution: None
title: jpeg::removeComments destroys jpeg files completely
comment:
  When tcllib jpeg package used with [encoding system]
  other than iso8859-1, procedures jpeg::removeComments
  and jpeg::replaceComments (which calls former one)
  convert jpeg file into piece of junk, replacing all
  8-bit symbols by question marks.

  Problem is that jpeg::openJFIF routine opens binary
  file properly, setting -translation binary, but
  jpeg::removeComments opens file in write mode to
  overwrite its content there, and doesn't configure it
  as binary. So, binary data read from original file are
  "converted" to [encoding system], which result in
  replacing all 8-bit symbols with "unknown character"
  marker.

  Solution is to add

  fconfigure $fh -translation binary 

  into jpeg::removeComments routine just after 

  set fh [open $file w]


tkt_uuid: 637695ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: smtpd
priority: 1 Zero
foundin: None
resolution: Invalid
title: Invalid response after receiving DATA
comment:
  After receiving a DATA command, smtpd.tcl first replies
  "250 OK"  then "354 Enter mail ..." . RFC 2821 states
  that "DATA" should be answered by "354 ..." and "250
  ..." AFTER Data submission has finished.


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: 640932ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 6
foundin: None
resolution: Fixed
title: htmlparse not parsing incomplete tags
comment:
  htmlparse is supposed to be able to parse incomplete 
  tags by stuffing the incomplete part into a global var and 
  then, apparently, fishing it back and prepending it to it's 
  next string input. This works fine only if the rest of the 
  incomplete tag is in the same string, but not if the 
  incomplete tag is in another string entirely, e.g. if 
  separate lines are being processed in a foreach loop. 
  I'm using tcllib 1.3.

  Here's a script that shows the bad behavior:

  #!/bin/tclsh

  package require Tcl 8.4
  package require struct 1.2.1
  package require cmdline 1.2
  package require htmlparse 0.3

  lappend lines {<root>}
  lappend lines {<tag>Hi there</tag>}  
  lappend lines {<tag}
  lappend lines {>Hi there</tag>}
  lappend lines {</root>}

  proc tag_handler { tag slash attr text } {
          if {[string equal $tag hmstart]} {
                  return
          }
          puts "TAG=$tag SLASH=$slash"
  }

  foreach localline $lines {
          ::htmlparse::parse -cmd tag_handler -incvar 
  partial_xml $localline
  }

  Here's the output:

  axis-goodwins> ./bad-htmlparse.tcl 
  TAG=root SLASH=
  TAG=tag SLASH=
  TAG=tag SLASH=/
  TAG=tag SLASH=/
  TAG=root SLASH=/

  You can see that the third 'tag' should be an opening 
  tag but is being marked as a closing tag. The opening 
  tag never gets processed, and no errors are thrown.

  If I use htmlparse to parse this string:

  set line {
  <root>
  <tag
  >Hi there</tag>
  </root>
  }

  it works fine.

  /s.


tkt_uuid: 956930ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ftp
priority: 7 High
foundin: None
resolution: Not Applicable Here
title: Unknown state "pwd_sent"
comment:
  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>> 48836"


  uname -a
  Linux purehype.net 2.4.22-1.2115.nptl #1 Wed Oct 29 
  15:42:51 EST 2003 i686 i686 i386 GNU/Linux

  % info patchlevel
  8.4.6

  % package require ftp
  2.4.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: 1885621fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 2
foundin: None
resolution: Works For Me
title: ListBox "see" fails in ScrolledWindow
comment:
  "ListBox see" command only works correct after "update".

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

  Tested on 1.8 and some older versions.


tkt_uuid: 1597589fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: diagrams
priority: 5 Medium
foundin: None
resolution: Out of Date
title: Various issues with the diagrams package
comment:
  Yeeling reported on the Tclers' chat the following 
  issues:
  - No package provide yet
  - circle string radius - does not work
  - line [getpos ..] [getpos ..] - does not work
  - arrows built from two or more line segments would be 
    nice


tkt_uuid: 2866540fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: widget
priority: 5 Medium
foundin: None
resolution: Fixed
title: calendar widget -textvariable does not work both ways
comment:
  I tried the following example, based on information from the man page:
   tclsh8.6
  % package require widget::calendar
  0.91
  % set t [widget::calendar -textvariable ::a .t]
  unknown subcommand "-textvariable": namespace ::widget::calendar does not export any commands
  % set t [widget::calendar .t -textvariable ::a]
  .t
  % pack .t
  % set ::a 9/25/2009
  9/25/2009
  % puts $::a
  09/21/2009
  % puts $::a
  09/26/2009
  % set ::a 10/10/2010
  10/10/2010
  % 
  When I clicked on different days on the widget, $::a changed value. HOWEVER, when I change the text variable, the widget's display does not change to reflect the difference.


tkt_uuid: 905906ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: des
priority: 5 Medium
foundin: None
resolution: Fixed
title: des: problem wit variable options - variable not set
comment:
  I got an error report while using the DES module in the
  following way:

  DES::des -mode decode -key $passwd $string

  The loop to analyse the arguments ran into the default
  case and produced an error because the options variable
  was not set. 

  The remedy was simple (after inspecting the code):

  DES::des -mode decode -key $passwd -- $string

  The error message should at least:
  - show the list of valid keywords
  - show an indication that perhaps "--" was forgotten


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: 554233ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: apps : request for new app
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Browser for images
comment:
  It would be nice to include a browser so that people 
  can look at the images in the BWidget/images directory.

  A very simple image browser is attached...


tkt_uuid: 3011581fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: smtp
priority: 5 Medium
foundin: None
resolution: Fixed
title: Doc bug w/ -header option
comment:
  The current man page for the smtp command documents the "-header" parameter like so:

  -header
      A list of keywords and their values (may occur zero or more times). 

  From the phrasing of the statement (list of keywords (plural) and their values (plural)) and the position of the parenthetical, the docs appear to state that a single "-header" option can accept a list of plural headers and plural values.  I.e.: "-header [ list To a@example.com From b@example.com Subject Hi ]".

  However, this is not the case, looking at the code in smtp, each individual "-header" parameter takes a list of exactly two elements, nothing more, nothing less.

  While I think that allowing a single "-header" option to accept a list of plural headers and values is a superior fix, for now I simply propose that the documentation be edited to more accurately reflect the current implimentation.  Something like so:

  -header
      A list containing two elements, an smtp header and its associated value (the -header option may occur zero or more times). 


tkt_uuid: 578460ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: tree
priority: 5 Medium
foundin: None
resolution: Fixed
title: struct::tree move within same parent
comment:
  The documentation for the tree move command states:
  "Make the specified nodes children of parent, inserting them into 
  the parent's child list at the index given by index. "

  From this, I expect a node being moved to always end up with the 
  given index (assuming it is valid) after it is moved.

  Example:
  package require struct
  struct::tree mytree
  mytree insert root node0 node1 node2
  mytree move root 1 node0
  mytree children root

  Expected result:
  node1 node0 node2

  Actual result:
  node0 node1 node2


  There are several tests in the test suite that support the existing 
  behavior, so maybe I misunderstand the way it is supposed to 
  work.  If that's the case, then the documentation for this command 
  should be expanded to describe the behavior (and maybe why).


tkt_uuid: 1610655fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: uri
priority: 5 Medium
foundin: None
resolution: Fixed
title: ::uri::split fails with query part on multiple "?"
comment:
  Hello,

  I just detected that the command ::uri::split in tcllib v1.9 fails, if an URI contains more than one query introducing questionmarks.
  Those URIs often contain a query containing e.g. subqueries.

  An example:

  % array set u [uri::split http://www.abc.de/dir1/dir2/file1.php?paramA=/file2.php?paramB=Hello%20World]
  % parray u
  u(host)   = www.abc.de
  u(path)   = dir1/dir2/file1.php?paramA=/file2.php
  u(port)   =
  u(pwd)    =
  u(query)  = paramB=Hello%20World
  u(scheme) = http
  u(user)   =

  It seems to be, that the command ::uri::split looks after the last not the first question mark in the path to split the path into the real path and the query part.

  The first time I saw this behaviour, was working on a link of an Amazon.de newsletter containing a redirection using query parameters and the link to be redirected to using query parameters too.

  Best regards,

  Martin Lemburg


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: 404917ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: smtp
priority: 5 Medium
foundin: None
resolution: Fixed
title: Missing index entry for smtp package
comment:
  The pkgIndex in the tcllib0.8 directory does not contain an entry for the smtp package (which 
  resides in the mime subdirectory).  Hence when you do a package require on tcllib you do not get 
  the smtp loaded automatically with all of the other packages.

  BTW, why isn't the smtp pacakge in its own directory?

  Also why does it not show up on the Category list in the source forge bug form?


tkt_uuid: 840568ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: fileType: Detect audio
comment:
  Extend fileType to detect various audio file formats:
  wav
  ogg
  mp3
  ra (real audio)

  ....
  From the sox(1) manpage, a list of other audio formats.

         .8svx     Amiga 8SVX musical instrument
  description format.

         .aiff     AIFF files used on Apple IIc/IIgs and
  SGI.  Note: the AIFF format supports only one SSND
  chunk.  It does not  support  multiple
                   sound  chunks,  or  the  8SVX  musical
  instrument description format.  AIFF files are
  multimedia archives and can have multiple
                   audio and picture chunks.  You may
  need a separate archiver to work with them.

         .au       SUN Microsystems AU files.  There are
  apparently many types of .au files; DEC has invented
  its own with a different magic  num­
                   ber  and  word  order.  The .au
  handler can read these files but will not write them. 
  Some .au files have valid AU headers and
                   some do not.  The latter are probably
  original SUN u-law 8000 hz samples.  These can be dealt
  with using the  .ul  format  (see
                   below).

         .avr      Audio Visual Research
                   The AVR format is produced by a number
  of commercial packages on the Mac.

         .cdr      CD-R
                   CD-R  files  are  used in mastering
  music on Compact Disks.  The audio data on a CD-R disk
  is a raw audio file with a format of
                   stereo 16-bit signed samples at a
  44khz sample rate.  There is a special blocking/padding
  oddity at the end of the  audio  file
                   and is why it needs its own handler.

         .cvs      Continuously Variable Slope Delta
  modulation
                   Used to compress speech audio for
  applications such as voice mail.

         .dat      Text Data files
                   These  files  contain a textual
  representation of the sample data.  There is one line
  at the beginning that contains the sample
                   rate.  Subsequent lines contain two
  numeric data items: the time since the beginning of the
  first sample and the sample  value.
                   Values  are  normalized  so that the
  maximum and minimum are 1.00 and -1.00.  This file
  format can be used to create data files
                   for external programs such as FFT
  analyzers or graph routines.  SoX can also convert a
  file in this format back into one of the
                   other file formats.

         .gsm      GSM 06.10 Lossy Speech Compression
                   A  standard  for  compressing speech
  which is used in the Global Standard for Mobil
  telecommunications (GSM).  Its good for its
                   purpose, shrinking audio data size,
  but it will introduce lots of noise when a given sound
  sample is encoded and decoded multi­
                   ple times.  This format is used by
  some voice mail applications.  It is rather CPU intensive.
                   GSM  in SoX is optional and requires
  access to an external GSM library.  To see if there is
  support for gsm run sox -h and look
                   for it under the list of supported
  file formats.

         .hcom     Macintosh HCOM files.  These are
  (apparently) Mac FSSD files with some variant of
  Huffman compression.  The Macintosh has wacky
                   file  formats and this format handler
  apparently doesn't handle all the ones it should.  Mac
  users will need your usual arsenal
         .maud     An Amiga format
                   An IFF-conform sound file type,
  registered by MS MacroSystem Computer GmbH, published
  along with the  "Toccata"  sound-card  on
                   the Amiga.  Allows 8bit linear, 16bit
  linear, A-Law, u-law in mono and stereo.

         .nul      Null  file  handler.  This is a fake
  file hander that act as if its reading a stream of 0's
  from a while or fake writing output
                   to a file.  This is not a very useful
  file handler in most cases.  It might be useful in some
  scripts were you do not  want  to
                   read or write from a real file but
  would like to specify a filename for consistency.

         .ogg      Ogg Vorbis Compressed Audio.
                   Ogg  Vorbis  is  a open, patent-free
  CODEC designed for compressing music and streaming
  audio.  It is similar to MP3, VQF, AAC,
                   and other lossy formats.  SoX can
  decode all types of Ogg Vorbis files, but can only
  encode at 128 kbps.  Decoding is  somewhat
                   CPU intensive and encoding is very CPU
  intensive.
                   Ogg  Vorbis in SoX is optional and
  requires access to external Ogg Vorbis libraries.  To
  see if there is support for Ogg Vorbis
                   run sox -h and look for it under the
  list of supported file formats as "vorbis".

         ossdsp    OSS /dev/dsp device driver
                   This is a pseudo-file type and can be
  optionally compiled into SoX.  Run sox -h to see if you
  have support for this file  type.
                   When  this driver is used it allows
  you to open up the OSS /dev/dsp file and configure it
  to use the same data format as passed
                   in to SoX.  It works for both playing
  and recording sound samples.  When playing sound files
  it attempts  to  set  up  the  OSS
                   driver to use the same format as the
  input file.  It is suggested to always override the
  output values to use the highest qual­
                   ity samples your sound card can
  handle.  Example: -t ossdsp -w -s /dev/dsp

         .sf       IRCAM Sound Files.
                   Sound Files are used by academic music
  software such as the CSound package, and the MixView
  sound sample editor.

         .sph
                   SPHERE (SPeech HEader Resources) is a
  file format defined by NIST (National Institute of
  Standards and Technology) and is  used
                   with  speech audio.  SoX can read
  these files when they contain u-law and PCM data.  It
  will ignore any header information that
                   says the data is compressed using
  shorten compression and will treat the data as either
  u-law or PCM.  This will allow SoX  and
                   the command line shorten program to be
  ran together using pipes to uncompress the data and
  then pass the result to SoX for pro­
                   cessing.

         .smp      Turtle Beach SampleVision files.
                   SMP files are for use with the PC-DOS
  package SampleVision by Turtle Beach Softworks. This
  package is for communication to sev­
                   eral  MIDI  samplers. All sample rates
  are supported by the package, although not all are
  supported by the samplers themselves.
                   Currently loop points are ignored.

         .snd
                   Under DOS this file format is the same
  as the .sndt format.  Under all other platforms it is
  the same as the .au format.

         .sndt     SoundTool files.
                   This is an older DOS file format.

         sunau     Sun /dev/audio device driver
                   This is a pseudo-file type and can be
  optionally compiled into SoX.  Run sox -h to see if you
  have support for this file  type.
                   When this driver is used it allows you
  to open up a Sun /dev/audio file and configure it to
  use the same data type as passed in
                   to SoX.  It works for both playing and
  recording sound samples.  When playing sound files it 
  attempts  to  set  up  the  audio
                   driver to use the same format as the
  input file.  It is suggested to always override the
  output values to use the highest qual­
                   ity samples your hardware can handle.
   Example: -t sunau -w -s /dev/audio or -t sunau -U -c 1
  /dev/audio for older  sun  equip­
                   ment.

         .txw      Yamaha TX-16W sampler.
                   A  file  format from a Yamaha sampling
  keyboard which wrote IBM-PC format 3.5" floppies. 
  Handles reading of files which do not
                   have the sample rate field set to one
  of the expected by looking at some other bytes in  the
   attack/loop  length  fields,  and
                   defaulting to 33kHz if the sample rate
  is still unknown.

         .vms      More info to come.
                   Used to compress speech audio for
  applications such as voice mail.

         .voc      Sound Blaster VOC files.
                   VOC  files  are  multi-part and
  contain silence parts, looping, and different sample
  rates for different chunks.  On input, the
                   silence parts are filled out, loops
  are rejected, and sample data with a new sample rate is
  rejected.  Silence with a different
                   sample  rate is generated
  appropriately.  On output, silence is not detected, nor
  are impossible sample rates.  Note, this ver­
                   sion now supports playing VOC files
  with multiple blocks and supports playing files
  containing u-law and A-law samples.

         vorbis    See .ogg format.

         .wav      Microsoft .WAV RIFF files.
                   These appear to be very similar to IFF
  files, but not the same.  They are the native sound
  file format of Windows.  (Obviously,
                   Windows  was  of such incredible
  importance to the computer industry that it just had to
  have its own sound file format.)  Nor­
                   mally .wav files have all formatting
  information in their headers, and so do not need any
  format options specified for an input
                   file.  If any are, they will override
  the file header, and you will be warned to this effect.
   You had better know what you are
                   doing! Output format options will
  cause a format conversion, and the .wav will written
  appropriately.  SoX currently  can  read
                   PCM, ULAW, ALAW, MS ADPCM, and IMA (or
  DVI) ADPCM.  It can write all of these formats
  including (NEW!)  the ADPCM encoding.

         .wve      Psion 8-bit A-law
                   These are 8-bit A-law 8khz sound files
  used on the Psion palmtop portable computer.


tkt_uuid: 1349154fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: irc
priority: 5 Medium
foundin: None
resolution: Accepted
title: Patch to return channel from connection
comment:
  Just a small and trivial little patch which will return the channel 
  used for a particular connection. Useful at least for setting stuff 
  like -encoding, although that should probably be handled by a 
  separate command.

  setox:~/Proging/tcllib setok$ diff /Library/Tcl/tcllib1.7/irc/irc.tcl 
  irc.tcl 
  10c10
  < package provide irc 0.5
  ---
  > package provide irc 0.6
  144a145,154
  >       # Return socket for this IRC connection, or "" if one does 
  not yet
  >       # exist.
  > 
  >       proc cmd-socket {} {
  >           variable sock
  > 
  >           return $sock
  >       }
  > 
  > 


tkt_uuid: 3612465fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: inifile
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Spaces around section line specifications should be ignored
comment:
  When parsing a file, if a section line contains some leading or trailing spaces (outside the square brackets), it is not recognized. A sample ini file reproducing the error would be (please note the extra trailing in the section line: "[General]   "):

  [General]    
  key=value
  key2=value2


  # Before patch
  package require inifile
  set fh [::ini::open sample.ini]
  puts [llength [ini::sections $fh]]
  0

  # After applying the attached patch
  package require inifile
  set fh [::ini::open sample.ini]
  puts [llength [ini::sections $fh]]
  1


tkt_uuid: 2824771fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: doctools test case 50.0.1 fails
comment:
  CVS head of tcllib and tcl 8.6, built on sparc solaris 8 using sun's c compiler.

  The following is one of several similar errors that occurred yesterday when I tried running the tcllib test suite against tcl 8.6 cvs head.

  ---- doctools-idx-50.0.1 start

  ==== doctools-idx-50.0.1 doctools::idx deserialize = docidx, nokeys, ok FAILED
  ==== Contents of test case:

              I deserialize = $data docidx
              doctools::idx::structure print [I serialize]
          
  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: Unable to locate or load plugin "docidx" (ERROR for slave interp
  1 : can not find channel named "stdout")
      while executing
  "::pluginmgr::Snit_methodload ::pluginmgr ::pluginmgr::Snit_inst1 ::doctools::id
  x::import::Snit_inst1::fmt-docidx ::doctools::idx::import::Snit_inst1::..."
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "$plugin load $format"
      (procedure "::doctools::idx::import::Snit_methodGetPlugin" line 12)
      invoked from within
  "::doctools::idx::import::Snit_methodGetPlugin ::doctools::idx::import ::doctool
  s::idx::import::Snit_inst1 ::IN ::IN docidx"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "$self GetPlugin $format"
      (procedure "::doctools::idx::import::Snit_hmethodimport_text" line 7)
      invoked from within
  "::doctools::idx::import::Snit_hmethodimport_text ::doctools::idx::import ::doct
  ools::idx::import::Snit_inst1 ::IN ::IN {[index_begin KWIC INDEX]
  [inde..."
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "$myimporter import text $data $format"
      (procedure "::doctools::idx::Snit_methodImport" line 17)
      invoked from within
  "::doctools::idx::Snit_methodImport ::doctools::idx ::doctools::idx::Snit_inst90
   ::I ::I docidx {[index_begin KWIC INDEX]
  [index_end]
  }"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "$self Import $format $data"
      (procedure "::doctools::idx::Snit_hmethoddeserialize_=" line 19)
      invoked from within
  "::doctools::idx::Snit_hmethoddeserialize_= ::doctools::idx ::doctools::idx::Sni
  t_inst90 ::I ::I {[index_begin KWIC INDEX]
  [index_end]
  } docidx"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 $command $args"
      invoked from within
  "I deserialize = $data docidx"
      ("uplevel" body line 2)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== doctools-idx-50.0.1 FAILED


tkt_uuid: 483125ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: struct :: graph
priority: 5 Medium
foundin: None
resolution: Fixed
title: added features for struct::graph
comment:
  [btw: the Category button at SF does not offer
  a "struct" entry, so this is in the "none"
  category.]

  The attached patch adds some features that I am
  missing in the graph package:

  - set, get, and unset operations for the graph
    itself
  - ability to select arcs and nodes based on their
    associated keyed values

  Feel free to use or ignore.


tkt_uuid: 1642050fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Accepted
title: PasswdDlg <Return> traversal wrong when -passwdstate disable
comment:
  Create a PasswdDlg with -passwdstate disabled.  Type in the login name and hit Return.  It should destroy the dialog and perform the login, but instead it sets focus to the disabled password entry field.

  I believe the problem is that the -command option for the login entry is always set to [list PasswdDlg::_verifonpasswd $path $frame.labpass]                                regardless of the value of the -passwdstate option.  If the -passwdstate is disabled, the -command option for the login entry should be [list PasswdDlg::_verifonlogin $path $frame.lablog] instead.


tkt_uuid: 484123ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: Patch for BWidget::place
comment:
  When BWidget::place is called with location different
  from 'at' and 'center' and without a prarent (arglen =
  1), variable 'widget'  is undefined. I added an 'else'
  case the if statement setting the variable widget to
  make sure the variable widget is always set.

  Result of 'cvs diff utils.tcl':

  Index: utils.tcl
  ===================================================================
  RCS file: /cvsroot/tcllib/bwidget/utils.tcl,v
  retrieving revision 1.3
  diff -r1.3 utils.tcl
  272c272,274
  <             }
  ---
  >             } else {
  >                   set widget .
  >           }


tkt_uuid: 1518803fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: BWidget::write fails for NoteBook widget
comment:
  The error message: 
    invalid command name "-classonly::use"

  The NoteBook widget uses (eventually) DynamicHelp.
  DynamicHelp uses "-classonly", as defined in
  $BWidget::use(DynamicHelp)

  The proc BWidget::classes (utils.tcl, line 563) will
  invoke "-classonly::use" for DynamicHelp.

  The following context diff will fix it:

  $ diff -c utils.tcl.orig utils.tcl
  *** utils.tcl.orig      Mon Apr 17 12:19:03 2006
  --- utils.tcl   Fri Jul  7 10:55:27 2006
  ***************
  *** 567,573 ****
        set classes [list $class]
        if {![info exists use($class)]} { return }
        foreach class $use($class) {
  !       eval lappend classes [classes $class]
        }
        return [lsort -unique $classes]
    }
  --- 567,575 ----
        set classes [list $class]
        if {![info exists use($class)]} { return }
        foreach class $use($class) {
  !         if {![string equal $class "-classonly"]} {
  !             eval lappend classes [classes $class]
  !         }
        }
        return [lsort -unique $classes]
    }


tkt_uuid: 440049ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 3 Low
foundin: None
resolution: Fixed
title: latest report module test suite fails
comment:
  Note that I didn't see a category for report when
  filing this msg on sf.net

  I downloaded the latest tcllib from the nightly cvs at
  scriptics on July 10, 2001 at 9:30 AM EDT.

  Module: report
  modules/report/report.test
  report 0.1
  - struct 1.1

  ==== report-2.0 style definition errors FAILED
  ==== Contents of test case:

      catch {::report::defstyle} result
      set result

  ---- Result was:
  wrong # args: should be "::report::defstyle styleName
  arguments body"
  ---- Result should have been (exact matching):
  no value given for parameter "styleName" to
  "::report::defstyle"
  ==== report-2.0 FAILED

  ==== report-2.1 style definition error FAILED
  ==== Contents of test case:

      catch {::report::defstyle foo} result
      set result

  ---- Result was:
  wrong # args: should be "::report::defstyle styleName
  arguments body"
  ---- Result should have been (exact matching):
  no value given for parameter "arguments" to
  "::report::defstyle"
  ==== report-2.1 FAILED

  ==== report-2.2 style definition errors FAILED
  ==== Contents of test case:

      catch {::report::defstyle foo {}} result
      set result

  ---- Result was:
  wrong # args: should be "::report::defstyle styleName
  arguments body"
  ---- Result should have been (exact matching):
  no value given for parameter "body" to
  "::report::defstyle"
  ==== report-2.2 FAILED
  ==== report-2.3 style definition errors FAILED
  ==== Contents of test case:

      catch {::report::defstyle foo {} {} bla} result
      set result

  ---- Result was:
  wrong # args: should be "::report::defstyle styleName
  arguments body"
  ---- Result should have been (exact matching):
  called "::report::defstyle" with too many arguments
  ==== report-2.3 FAILED

  ==== report-3.0 style deletion errors FAILED
  ==== Contents of test case:

      catch {::report::rmstyle} result
      set result

  ---- Result was:
  wrong # args: should be "::report::rmstyle styleName"
  ---- Result should have been (exact matching):
  no value given for parameter "styleName" to
  "::report::rmstyle"
  ==== report-3.0 FAILED

  ==== report-4.0 style introspection error FAILED
  ==== Contents of test case:

      catch {::report::stylearguments} result
      set result

  ---- Result was:
  wrong # args: should be "::report::stylearguments
  styleName"
  ---- Result should have been (exact matching):
  no value given for parameter "styleName" to
  "::report::stylearguments"
  ==== report-4.0 FAILED

  ==== report-4.2 style introspection error FAILED
  ==== Contents of test case:
      catch {::report::stylebody} result
      set result

  ---- Result was:
  wrong # args: should be "::report::stylebody styleName"
  ---- Result should have been (exact matching):
  no value given for parameter "styleName" to
  "::report::stylebody"
  ==== report-4.2 FAILED

  ==== report-6.0 report errors FAILED
  ==== Contents of test case:

      catch {report myreport} msg
      set msg

  ---- Result was:
  wrong # args: should be "report name columns args"
  ---- Result should have been (exact matching):
  no value given for parameter "columns" to "report"
  ==== report-6.0 FAILED

  ==== report-10.0 column sizes FAILED
  ==== Contents of test case:

      report myreport 3
      catch {myreport size} result
      myreport destroy
      set result

  ---- Result was:
  wrong # args: should be "::report::_size name column
  ?size?"
  ---- Result should have been (exact matching):
  no value given for parameter "column" to
  "::report::_size"
  ==== report-10.0 FAILED

  ==== report-12.0 padding FAILED
  ==== Contents of test case:

      report myreport 3
      catch {myreport pad} result
      myreport destroy
      set result

  ---- Result was:
  wrong # args: should be "::report::_pad name column
  ?where? ?string?"
  ---- Result should have been (exact matching):
  no value given for parameter "column" to
  "::report::_pad"
  ==== report-12.0 FAILED

  ==== report-13.0 justification FAILED
  ==== Contents of test case:

      report myreport 3
      catch {myreport justify} result
      myreport destroy
      set result

  ---- Result was:
  wrong # args: should be "::report::_justify name column
  ?jvalue?"
  ---- Result should have been (exact matching):
  no value given for parameter "column" to
  "::report::_justify"
  ==== report-13.0 FAILED

  ==== report-15.0 separator templates FAILED
  ==== Contents of test case:

          report myreport 1
          catch [list myreport $template] result
          myreport destroy
          set result
      
  ---- Result was:
  wrong # args: should be "::report::_tAction name
  template cmd args"
  ---- Result should have been (exact matching):
  no value given for parameter "cmd" to
  "::report::_tAction"
  ==== report-15.0 FAILED

  ==== report-16.0 separator templates FAILED
  ==== Contents of test case:

          report myreport 1
          catch [list myreport $template] result
          myreport destroy
          set result
      
  ---- Result was:
  wrong # args: should be "::report::_tAction name
  template cmd args"
  ---- Result should have been (exact matching):
  no value given for parameter "cmd" to
  "::report::_tAction"
  ==== report-16.0 FAILED

  ==== report-17.0 separator templates FAILED
  ==== Contents of test case:

          report myreport 1
          catch [list myreport $template] result
          myreport destroy
          set result
      
  ---- Result was:
  wrong # args: should be "::report::_tAction name
  template cmd args"
  ---- Result should have been (exact matching):
  no value given for parameter "cmd" to
  "::report::_tAction"
  ==== report-17.0 FAILED

  ==== report-18.0 separator templates FAILED
  ==== Contents of test case:

          report myreport 1
          catch [list myreport $template] result
          myreport destroy
          set result
      
  ---- Result was:
  wrong # args: should be "::report::_tAction name
  template cmd args"
  ---- Result should have been (exact matching):
  no value given for parameter "cmd" to
  "::report::_tAction"
  ==== report-18.0 FAILED

  ==== report-19.0 separator templates FAILED
  ==== Contents of test case:

          report myreport 1
          catch [list myreport $template] result
          myreport destroy
          set result
      
  ---- Result was:
  wrong # args: should be "::report::_tAction name
  template cmd args"
  ---- Result should have been (exact matching):
  no value given for parameter "cmd" to
  "::report::_tAction"
  ==== report-19.0 FAILED

  ==== report-20.0 separator templates FAILED
  ==== Contents of test case:

          report myreport 1
          catch [list myreport $template] result
          myreport destroy
          set result
      
  ---- Result was:
  wrong # args: should be "::report::_tAction name
  template cmd args"
  ---- Result should have been (exact matching):
  no value given for parameter "cmd" to
  "::report::_tAction"
  ==== report-20.0 FAILED

  ==== report-21.0 separator templates FAILED
  ==== Contents of test case:

          report myreport 1
          catch [list myreport $template] result
          myreport destroy
          set result
      
  ---- Result was:
  wrong # args: should be "::report::_tAction name
  template cmd args"
  ---- Result should have been (exact matching):
  no value given for parameter "cmd" to
  "::report::_tAction"
  ==== report-21.0 FAILED

  ==== report-22.0 data templates FAILED
  ==== Contents of test case:

          report myreport 1
          catch [list myreport $template] result
          myreport destroy
          set result
      
  ---- Result was:
  wrong # args: should be "::report::_tAction name
  template cmd args"
  ---- Result should have been (exact matching):
  no value given for parameter "cmd" to
  "::report::_tAction"
  ==== report-22.0 FAILED

  ==== report-23.0 data templates FAILED
  ==== Contents of test case:

          report myreport 1
          catch [list myreport $template] result
          myreport destroy
          set result
      
  ---- Result was:
  wrong # args: should be "::report::_tAction name
  template cmd args"
  ---- Result should have been (exact matching):
  no value given for parameter "cmd" to
  "::report::_tAction"
  ==== report-23.0 FAILED

  ==== report-24.0 data templates FAILED
  ==== Contents of test case:

          report myreport 1
          catch [list myreport $template] result
          myreport destroy
          set result
      
  ---- Result was:
  wrong # args: should be "::report::_tAction name
  template cmd args"
  ---- Result should have been (exact matching):
  no value given for parameter "cmd" to
  "::report::_tAction"
  ==== report-24.0 FAILED

  ==== report-27.0 formatting errors FAILED
  ==== Contents of test case:

      report           myreport 5
      catch {myreport printmatrix} result
      myreport destroy
      set result

  ---- Result was:
  wrong # args: should be "::report::_printmatrix name
  matrix"
  ---- Result should have been (exact matching):
  no value given for parameter "matrix" to
  "::report::_printmatrix"
  ==== report-27.0 FAILED


  ==== report-28.0 formatting errors FAILED
  ==== Contents of test case:

      report           myreport 5
      catch {myreport printmatrix2channel} result
      myreport destroy
      set result

  ---- Result was:
  wrong # args: should be "::report::_printmatrix2channel
  name matrix chan"
  ---- Result should have been (exact matching):
  no value given for parameter "matrix" to
  "::report::_printmatrix2channel"
  ==== report-28.0 FAILED

  ==== report-28.1 formatting errors FAILED
  ==== Contents of test case:

      report           myreport 5
      ::struct::matrix mymatrix
      catch {myreport printmatrix2channel mymatrix}
  result
      mymatrix destroy
      myreport destroy
      set result

  ---- Result was:
  wrong # args: should be "::report::_printmatrix2channel
  name matrix chan"
  ---- Result should have been (exact matching):
  no value given for parameter "chan" to
  "::report::_printmatrix2channel"
  ==== report-28.1 FAILED


tkt_uuid: 785416ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: None
priority: 7 High
foundin: None
resolution: Out of Date
title: BWidget ScrolledWindow problem
comment:
  The BWidget ScrolledWindow widget no longer honours the
  '-borderwidth' and '-relief' options. This patch solves
  this problem.

  Kind regards,

  Jos.


tkt_uuid: 922877ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: bwidget PasswdDlg - honour labelwidth and fix return binding
comment:
  Fixes the BWidget PasswdDlg widget so that it doesn't ignore the 
  -labelwidth option when calculating the label width.

  Also reinstalled the Return binding so that return now moves through 
  the widgets rather than always selecting OK (i.e. more like the 
  behaviour of various login managers on Windows, Unix)


tkt_uuid: 1846908fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math :: special
priority: 5 Medium
foundin: None
resolution: None
title: Ver 1.9: Gamma function implemented incorrectly
comment:
  Hi,

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

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

  However, this should be $x - 1:

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

  because factorial y invokes ln_Gamma {y + 1}

  Eric


tkt_uuid: 1499135fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: Dynamic help balloon position wrong on dual screen WinXP PC
comment:
  In BWidget 1.7, DynamicHelp::_show_help uses [winfo
  vrootwidth .] when setting the position of the balloon.  
  On a dual screen PC vrootwidth only returns the width
  of the "first" screen. 

  As a quick fix I changed :

    if { $x+$width > $scrwidth } {
       set x [expr {$scrwidth - $width}]
    }

  to

    if { $x < $scrwidth & $x+$width > $scrwidth } {
       set x [expr {$scrwidth - $width}]
    }

  in _show_help.

  This dosen't position the balloon correctly at the
  extreem right of the second screen.  However I don't
  know how to get the combined width of the two screens
  to fix it properly.


tkt_uuid: 697022ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: In Button, -repeatdelay command not cancelled on release
comment:
  Say you have a Button that uses the -armcommand -
  repeatdelay -repeatinterval commands:

  Button .vol.up -image imgvolup  -borderwidth 0 -
  highlightthickness 0 -repeatdelay 700 -repeatinterval 
  200 -armcommand {VolUp}

  (Note: VolUp just increses by 1 the volume)

  If you press the .vol.up button repeatedly then hold it 
  down it goes much faster than it should.  I think it is 
  because the after $delay "Button::_repeat $path" delay 
  command is never cancelled when the button is 
  released.

  I was trying to fix this and was able to do that in 
  button.tcl in the Button::_release procedure. I just 
  added an after cancel command and it appeared to fix 
  the problem:

  proc Button::_release { path } {
      variable _current
      variable _pressed

      if { $_pressed == $path } {
          set _pressed ""
          set relief [Widget::getMegawidgetOption $path -
  relief]
          #####################
          after cancel "Button::_repeat $path" 
          #####################
          if { ![string compare $relief "link"] } {
              set relief raised
          }
          $path:cmd configure -relief $relief
  set cmd [Widget::getMegawidgetOption 
  $path -disarmcommand]
          if { $cmd != "" } {
              uplevel \#0 $cmd
          }
          if { $_current == $path &&
               [string compare [$path:cmd cget -
  state] "disabled"] && \
       [set cmd [Widget::getMegawidgetOption 
  $path -command]] != "" } {
              uplevel \#0 $cmd
          }
      }
  }


tkt_uuid: 3066872fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: comm
priority: 5 Medium
foundin: None
resolution: Fixed
title: comm server blocks indefinitely
comment:
  Bug reported by skipper600 on the wiki (http://wiki.tcl.tk/2507)

  "the listening interpreter stalls once it receives a tcp connection (not issued by another comm connection). Simply telnet such a comm::comm server, and it is locked until you either violate the protocol or terminate the connection."

  I verified his finding with comm 4.6.1, Tcl 8.6 on Windows. This would comprise a simple DoS attack on any application using the package.

  /Ashok


tkt_uuid: 1172924fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: tklib: ctext
priority: 4
foundin: None
resolution: Accepted
title: doctools style man for ctext
comment:
  Hi,

  attached you'll find a first cut at doctools style
  documentation for the ctext widget. Maybe it is a
  helpful start for using doctools to document ctext. 

  (I was annoyed that no docs for ctext could be found
  inside ActiveTcl...)


  Michael


tkt_uuid: 3247765fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: smtpd
priority: 5 Medium
foundin: None
title: Add a smtpd::configure -banner callback
comment:
  The first thought using the  smtpd package is that the first response the smtpd does to an accepted client connection is to put up a "banner" reply to the client shouldnt be hardcoded by the smtpd package.

  This line is hardcoded in the source as :  Puts $channel "220 $options(serveraddr) tcllib smtpd $version; [timestamp]" .
  Developping your own smtpd application using the smtpd package as of now leaves you having no way to set your own banner relevant to your own implementation.

  I suggest that there should be something like smtpd::configure  -banner callback


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: 613134ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Duplicate
title: PanedWindow does not display correctly
comment:
  In version 1.4.1 of BWidget PanedWindows do not 
  display the second pane anymore. Windows need 
  resize to make second pane visible.

  Please checkout attached sample code:

  Klaus Meywirth
  klaus.meywirth@fci.com


tkt_uuid: 3593146fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: Build System & Testing
priority: 5 Medium
foundin: None
resolution: Accepted
title: Fails to build under windows with cygwin installed
comment:
  Here is an enhanced version of configure.in that makes tcllib build via configure/make under windows with cygwin installed but using native compiler with a non-cygwin tclsh. Please mind th eusage if CYGPATH to pass the arguments to the tclsh properly.
  Do not forget to rerun autoconf when using the new configure.in


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: 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: 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: 1759532fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: grammar_fa
priority: 5 Medium
foundin: None
resolution: Accepted
title: Nullary "." and "|" operations
comment:
  The nullary cases of the "." (concatenation) and "|" (union) regexp operations seem not to have been implemented. In ::grammar::fa::op::Regex there are special cases for less than two arguments which assume there is exactly one argument.

  What are these good for, then?

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

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

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

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


tkt_uuid: 725557ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 8
foundin: None
resolution: Fixed
title: tcllib installer failure
comment:
  I fetched the 20030419 cvs snapshot from Activestate
  ftp site.
  $ rm -rf tcllib
  $ gtar xfz tcllib-20030419.tar.gz
  $ mkdir tcllib/unix
  $ cd tcllib/unix
  $ ../configure --prefix=/usr/tcllib
  $ make all
  $ make install
   $ make install;exit                  
  /usr/tcl84/bin/tclsh8.4 `echo ../installer.tcl` \
          -pkg-path   /usr/tcl84/lib/tcllib1.4 \
          -no-examples -no-html -no-nroff \
          -no-wait -no-gui
  Installing Tcllib 1.4
  You have chosen the following configuration ...

  Packages:      /usr/tcl84/lib/tcllib1.4
  Examples:      Not installed.
  Documentation: Not installed.

  .........error copying "../modules/calendar/tclIndex"
  to "/usr/tcl84/lib/tcllib1.4/calendar/tclIndex": file
  already exists
      while executing
  "file copy [file join $distribution modules $module
  tclIndex]  [file join $libdir $module]"
      (procedure "_tci" line 5)
      invoked from within
  "_tci calendar /usr/tcl84/lib/tcllib1.4"
      ("eval" body line 1)
      invoked from within
  "eval $guide($m,$type) $m $args"
      (procedure "xinstall" line 4)
      invoked from within
  "xinstall   pkg $config(pkg,path)"
      (procedure "doinstall" line 5)
      invoked from within
  "doinstall"
      (procedure "main" line 11)
      invoked from within
  "main"
      (file "../installer.tcl" line 579)
  *** Error code 1
  make: Fatal error: Command failed for target
  `install-libraries'
  Connection closed.


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: 893516ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Fixed
title: flush error when large "quoted-printable"
comment:
  I get a "400: error flushing "sock336": invalid argument" 
  when doing the following with a body larger than 4096 
  buffersize:

  set token [mime::initialize -canonical text/plain \
          -string $body]
  smtp::sendmessage $token -header [list Subject \
          $subject] -header [list From $sender] \
          -header [list To $recipient] -servers $email_server
  mime::finalize $token

  In the "string" arm of the ::mime::copymessageaux proc, 
  I noticed that the blocksize is computed but never 
  fconfigured. 

  The issue is resolved if I add "fconfigure $channel -
  buffersize $blocksize" after the blocksize computation 
  and before the "puts $channel [$converter -mode 
  encode -- $state(string)]" (approx. line 1687 of 
  mime.tcl).

  Thanks for including this fix in the next release,
  Todd Copeland
  todd.copeland@pervasive.com


tkt_uuid: 1046955fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: BWidget 1.7.0: Tree::insert does not find parent node
comment:
  To the maintainer of BWidget's Tree widget:

  When inserting an element into a parent tree node which
  contained an ampersand (&) in the node name, this
  parent node is not found and an error is issued by
  Tree::insert.

  The following code shows the behaviour:

  package require BWidget 1.7
  frame .ftop
  pack .ftop
  set sampleTree .ftop.tsample
  Tree $sampleTree
  pack $sampleTree
  $sampleTree insert end root "/First&IT" -text "First&IT"
  $sampleTree insert end "/First&IT" "Abc" -text "Abc"

  The error is:

  node "/First&IT" does not exist
      while executing
  "Tree::insert .ftop.tsample end /First&IT Abc -text Abc"
      ("eval" body line 1)
      invoked from within
  "eval [linsert $args 0 Tree::$cmd .ftop.tsample]"
      (procedure ".ftop.tsample" line 1)
      invoked from within
  "$sampleTree insert end "/First&IT" "Abc" -text "Abc""
      (file
  "/home/users/roger/Dev/TclTk/Singles/treetest.tcl" line 17)

  When removing the "&" character from the insert
  commands it works.

  The attached one-line patch solves the problem: The
  parent node name is not converted to canonical form
  with _node_name before checking if the array entry exists.

  The patch does the following:

  set parent [_node_name $path $parent]

  This call overwrites parent with the canonical (mapped
  special characters) node name, add this line just
  before the [info exists data($parent)] line.

  The patch worked fine for me. I did not check the rest
  of the tree.tcl for other missing _node_name calls --
  maybe there are more...

  -- Roger

  PS: Thanks for the cool Tree widget!


tkt_uuid: 1842346fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Accepted
title: BWidget::place does not work as expected
comment:
  When BWidget::place is called like 
  BWidget::place widget width 0 above otherwidget
  or
  BWidget::place widget width 0 left otherwidget
  then widget is not placed at the expected position.

  Attached file of utils.tcl solves the problem.


tkt_uuid: 3012669fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: Documentation
priority: 5 Medium
foundin: None
resolution: Fixed
title: msgcat man page conflicts with the Tcl core
comment:
  The msgcat man page of tcllib's doctools module conflicts with the identically named man page from the Tcl core when installing both at the same time.


tkt_uuid: 1016869fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
resolution: Fixed
title: math test suite failures in latest cvs snapshot
comment:
  sparc sunblad 100 solaris 8 sun c compiler
  tcl 8.4.7

  Module: math
  modules/math/bessel.test
  couldn't read file "polynomials.tcl": no such file or
  directory
      while executing
  "source "polynomials.tcl""
      (file
  "/vol/tclsrcsol/tcl84/tcllib/modules/math/classic_polyns.tcl"
  line 4)
      invoked from within
  "source [file join [file dirname [info script]]
  "classic_polyns.tcl"]"
      (file
  "/vol/tclsrcsol/tcl84/tcllib/modules/math/special.tcl"
  line 165)
      invoked from within
  "source [file join [file dirname [info script]]
  special.tcl]"
      (file
  "/vol/tclsrcsol/tcl84/tcllib/modules/math/bessel.test"
  line 21)
      invoked from within
  "source [pSet file]"
  modules/math/calculus.test
  modules/math/combinatorics.test
  modules/math/constants.test
  modules/math/elliptic.test
  can't import command "Beta": already exists
      while executing
  "namespace import ::math::Beta"
      (in namespace eval "::math::special" script line 11)
      invoked from within
  "namespace eval ::math::special {
      #
      # Define a number of common mathematical constants
      #
      ::math::constants::constants pi
      variable h..."
      (file
  "/vol/tclsrcsol/tcl84/tcllib/modules/math/special.tcl"
  line 19)
      invoked from within
  "source [file join [file dirname [info script]]
  "special.tcl"]"
      (file
  "/vol/tclsrcsol/tcl84/tcllib/modules/math/elliptic.test"
  line 16)
      invoked from within
  "source [pSet file]"
  modules/math/fuzzy.test
  math::fuzzy 0.2
  modules/math/geometry.test
  math::geometry 1.0.1
  modules/math/interpolate.test
  modules/math/math.test
  math 1.2.2
  modules/math/optimize.test
  modules/math/polynomials.test
  can't import command "saveState": already exists
      while executing
  "namespace import ::tcltest::*"
      (file
  "/vol/tclsrcsol/tcl84/tcllib/modules/math/polynomials.test"
  line 6)
      invoked from within
  "source [pSet file]"
  modules/math/qcomplex.test
  modules/math/special.test
  can't import command "Beta": already exists
      while executing
  "namespace import ::math::Beta"
      (in namespace eval "::math::special" script line 11)
      invoked from within
  "namespace eval ::math::special {
      #
      # Define a number of common mathematical constants
      #
      ::math::constants::constants pi
      variable h..."
      (file
  "/vol/tclsrcsol/tcl84/tcllib/modules/math/special.tcl"
  line 19)
      invoked from within
  "source [file join [file dirname [info script]]
  special.tcl]"
      (file
  "/vol/tclsrcsol/tcl84/tcllib/modules/math/special.test"
  line 21)
      invoked from within
  "source [pSet file]"
  modules/math/statistics.test


tkt_uuid: 593254ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ncgi
priority: 5 Medium
foundin: None
resolution: Fixed
title: setValue doesn't work right w/ multipart
comment:
  ncgi::setValue doesn't work right with multipart forms,
  if you pass it a string with spaces in it, because of
  the way it gets treated by ncgi::value.  See new test case.


tkt_uuid: 567982ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: dynhelp: balloon + variable
comment:
  Some time ago, someone asked on comp.lang.tcl if it was
  possible with BWidget dynhelp to have both balloon help
  and variable help at the same time. This patch makes
  this possible.

  Jos.


tkt_uuid: 2979481fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: bibtex
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: string macro parsing is buggy
comment:
  the bibtex parser return a -stringcommand if string "string" is found in an entry, not only in case of @string{ key = "str str str"}
  a regexp seems faulty :
  in bibtex.tcl, line 366 : 

   } elseif {[regexp -nocase {\s*string[^\{]*\{(.*)\}[^\}]*} \
                  $block -> rest]} {

  must be replaced to  :

    } elseif {[regexp -nocase {\s*string\{(.*)\}} \
                  $block -> rest]} {


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: 429695ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: base64
priority: 5 Medium
foundin: None
resolution: Fixed
title: Speed increase of base64 & md5
comment:
  The patch contains:

  (a) Rewrite of base64::encode and base64::decode. The
  processing times are about 30% of the previous;
  additionally, this version runs for Tcl8.0

  (b) Rewrite of the pure tcl md5 algorithm. The
  processing times are about 30% of the previous.


tkt_uuid: 1530725fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: log
priority: 5 Medium
foundin: None
resolution: Accepted
title: proc trace logging facility for logger pkg
comment:
  This patch adds support for logging of procedure calls
  to the logger package, as discussed briefly on the
  mailing list a while back.  It adds a "trace" command
  to each logger service to register procedures (single,
  by pattern, or entire namespaces) for enter/leave trace
  events to be logged, and to enable and disable the
  logging of traces.  logprocs for traces are given a
  dictionary of fields detailing the trace event, rather
  than a pre-formatted message, but still in a single
  argument for compatibility.

  Patch includes updates to logger.tcl, logger.man and
  logger.test.

  [submitted on behalf of Cisco, not Muonics]


tkt_uuid: 466219ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: Extend handling of userinfo
comment:
  * display userinfo in a dialog box if asked.
  * optionally display the images (if registered)
    for the people recognized as online.


tkt_uuid: 466746ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Fixed
title: socket readable, gets<0 => Error conn.
comment:
  I have a problem with tcllib-1.0 ftp when working
  with a proxy ftp server with the message "ERROR: Error
  connecting!"

  The problem is due to the fact that in some case,
  the ftp socket is readable, but gets proc returns -1.

  excerpt from ftp.tcl:
  ...
      fconfigure $ftp(CtrlSock) -buffering line -blocking
  $block -translation {auto crlf}
      fileevent $ftp(CtrlSock) readable [list [namespace
  current]::StateHandler $s $ftp(CtrlSock)]
  ...
  proc ftp::StateHandler {s {sock ""}} {
  ...
          set number [gets $sock bufline]
  ...
          if { $number > 0 } {
  ...
          } elseif { [eof $ftp(CtrlSock)] } {
  ...
          }

  # the workaround is to replace this last line with
          } else {
            # in some case, gets gets nothing
            return
          }


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: 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: 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: 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: 932516ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: html
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: html - many procedures not compatible with prodebug
comment:
  prodebug complains about the following:

  html::foreach
  html::for
  html::while
  html::if
  html::set
  html::eval


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: 981764ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Out of Date
title: label problem in BWidget-1.2.1
comment:
  Error in startup script: unknown option "-label"
      while executing
  "error "unknown option \"$option\"""
      (procedure "Widget::parseArgs" line 7)
      invoked from within
  "Widget::parseArgs ComboBox $args"
      (procedure "ComboBox::create" line 3)
      invoked from within
  "ComboBox $parent.mscCombo -label "MSC"  -labelwidth 
  5 -labelanchor w  -textvariable save::mscNo  -values { 
  apollo athena mscE mscS }  -width 8  -helpt..."
      (procedure "_MscCell" line 7)
      invoked from within
  "_MscCell  [$mscCellFrame getframe]"
      (procedure "save::create" line 11)
      invoked from within
  "save::create $notebook"
      invoked from within
  "set f0  [save::create $notebook]"


tkt_uuid: 900165ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: BWidget progressbar problem
comment:
  Hi, 
   
  The BWidget progressbar fails when using large values. This is 
  the code in version 1.7.0: 
   
  $path.bar coords rect -1 0 [expr {$val*$w/$max}] $h 
   
  Large integer values used for val and max will cause wrapping 
  problems for 32 bit integers. Making the new calculation using 
  doubles will fix the problem: 
   
  $path.bar coords rect -1 0 [expr {double($val)*$w/$max}] $h 
   
   
  Kind regards, 
   
  Jos. 


tkt_uuid: 784157ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: fileutil
priority: 8
foundin: None
resolution: Fixed
title: ::fileutil::find is now dependent upon Tcl8.4
comment:
  In fixing fileutil.tcl: Fixed SF tcllib bug [647974], the 
  Tcl8.4 [file system ...] command was used in the ::find 
  proc. 

  The fileutil.tcl has a package require for 8.2 but 
  Tcl8.2 ... Tcl8.3 interpreters will no longer be able to 
  use ::fileutil::find or ::fileutil::findByPattern


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: 744095ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 8
foundin: None
title: file output for dtp
comment:
  Would it be possible to add a subcommand for dtp, or to add an 
  arg to doc subcommand to switch output from stdout to a 
  file.

  For example :

  dtp doc html graph.man 
  graph.html

  or :

  dtp filedoc graph.man 
  ?graph.html?


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

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


tkt_uuid: 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: 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: 1614860fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: smtp
priority: 5 Medium
foundin: None
title: Add a -client switch
comment:
  I would like to see a -client switch added to the SMTP library. Currently the SMTP library uses [info hostname] which can come back with a short name for the sending system and some MTA's might queue it and silently drop it.

  The -client switch would allow the programmer to set that to his desired client name to pass through.


tkt_uuid: 457129ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 1 Zero
foundin: None
title: SNMP functions
comment:
  Presently I'm using shelling out to use SNMP from net-
  snmp, but it could be really cool if we could control 
  SNMP with Tcl as a package.  Actually exec everytime 
  does put a high overhead and it's pretty slow.

  I don't how hard would it be to connect directly to 
  the net-snmp API.

  S.


tkt_uuid: 557043ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Accepted
title: badly formated mail causes infinite loop
comment:
  In mime::parsepart, the following two lines cause me
  trouble:
   # error "termination string missing in $state(content)"
   set line "--$boundary--"                                        

  Switching the comments (uncomment the first; comment out
  the second) solves the following problem:

  Mail with incorrectly terminated mime parts causes
  a "mime::initialize -file" to enter an infinite loop.

  A lot of adverts and spam have incorrectly formated
  mime parts... For example: specifying a boundary that
  doesn't exist. Also, some virus filters remove the part
  but may leave the reference.


tkt_uuid: 519214ffffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: bwidget - TitleFrame: patch for rounded corners
comment:
  I have added the possibility to make the corners of a
  TitleFrame look round, using photo images and computed
  color shades (see enclosed files old.jpg for the old
  look and newrc.jpg for the new look).

  Given the actual trend to have more 'round' GUIs, this
  can help people to make TitleFrames look more
  conforming to the rest.

  I also enclosed an updated helpfile should the patch be
  accepted.

  Sideeffects to existing code:
  --------------------
  None that I know.

  Bugs:
  -----
  -extrapadtop and -extrapadbottom cannot be configured
  from 0 to >0 and from >0 to 0 after the widget
  creation. The reason is that frames cannot have a size
  of 0, so they are not packed at creation time if the
  size is 0.

  I think that one can live with that.


tkt_uuid: 548221ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Accepted
title: hpupdate.tcl ftp demo typos
comment:
  the ftp module demo "hpupdate.tcl" has a number of
  misspellings and german phrases in it that I decided I
  could fix.  I am enclosing a patch for these.


tkt_uuid: 1414159fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bench
priority: 4
foundin: None
resolution: Fixed
title: incorrect prefix stripping and formatting problems
comment:
  The bench::out::* functions and probably other parts of
  the package perform prefix stripping on array keys by
  using the following construction:

  set ip [lindex [split $key :] 1]

  This fails when $key contains more than on :, an
  example are package names with namespace qualifiers or
  paths on windows or using URL notation which include ':'.

  --
  For packages with no bench files provided the result is
  not sufficient.

  e.g.
  sak.tcl bench -format text pop3

  produces just an empty table but not a message that no
  benchmarks were found. 


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: 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: 1508656fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ftpd
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: default fsCmd fails to store.
comment:
  The default fsCmd cannot STORE when a new file must be
  created. 

  Problem is on line 262 of ftpd.tcl version 1.8, in proc
  ::ftpd::fileAuth:

    if {[Fs exists [file dirname $path]]} {

  By the definition of "fsCmd exists" (... returns a 1 if
  the path specified exists and the path is not a
  directory) this is always false.
  As a consequence, the test on line 268 fails, and
  "return 0" on line 275 gets executed!

  The test intends to assure write perms on the directory
  if the file must be created.


tkt_uuid: 561416ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: smtp
priority: 5 Medium
foundin: None
resolution: Fixed
title: can't handle list of mail servers
comment:
  problem
  -------
  the procedure smtp::sendmessage has the option
  '-servers' for a list of available mail servers.
  Unfortunately the variable state(readable) is not reset
  after a failed connection the other servers in the list
  will also fail.

  solution
  --------
  in procedure smtp::initialize add

     set state(readable) 0

  at the beginning of the loop

     foreach server $options(-servers) {
       ...
     }

  best regards
  -- Beat Jucker


tkt_uuid: 1006282fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: comm
priority: 8
foundin: None
resolution: Accepted
title: comm - Uncaught error when protocol negotiation fails
comment:
  If a comm listening socket receives a connection (say
  your host is nmap'ed, for example) that does not
  properly negotiation a protocol version, comm currently
  calls [error], which results in bgerror being invoked &
  possibly requiring user intervention to clear the
  bgerror dialog box.  

  I've modified my local copy of comm.tcl to add support
  for a "-silent" configuration option that controls
  whether an error is thrown, after the port is closed,
  or whether the "error" is just silently ignored.   In
  my patch (which I'll attach), I've set the default for
  -silent to 0 so that past behavior (throwing the error)
  is maintained for those who may depend on it.


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: 1796255fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Fixed
title: Emoticons insertion
comment:
  on linux x68 when inserting emoticons, for some there are inserted three instead of one:
  cry:^(   :-(   :(

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


tkt_uuid: 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: 2993029fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: aes
priority: 5 Medium
foundin: None
resolution: Fixed
title: aes procedure gives an error _just_ with a given vector
comment:
  After some "test and error", I find out that the vector that I am trying to decrypt triggers an error !!! but with similar vector the error does not happen!!!
  I upload a file with the ok vectors, and the bad one.
  Please, give me some feedback asas. Thank yo very much.
  Josep


tkt_uuid: 435471ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: paned window problem
comment:
  When adding a large widget to a pane of a paned window,
  the panes already present do no keep their relative
  sizes. Try the following example:

    package require BWidget

    wm geometry . 500x500
    update idletasks

    # Create paned window
    pack [PanedWindow .p -side left] -fill both -expand
  true

    # Top pane
    set p1 [.p add -weight 100]

    update idletasks
    after 1000

    # Middle pane
    set p2 [.p add -weight 100]

    update idletasks
    after 1000

    # Bottom pane
    set p3 [.p add -weight 50]
    pack [text $p3.t] -fill both -expand true

  The text-widget added to the bottom pane gets most of
  the space on the screen. Previous versions of BWidgets
  PanedWindow respected the relative sizes of the panes
  already present.

  Please find attached the version of panedw.tcl with the
  old behaviour but compatible with BWidget 1.3.1

  Kind regards, 

  Jos.


tkt_uuid: 516468ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: math
priority: 1 Zero
foundin: None
resolution: Not Applicable Here
title: Allow lists as arguments to statistics
comment:
  The math::min, math::max and others procs in the
  misc.tcl file are a bit complex to use if one has lists
  of values.

  To use you need:
  eval math::max [list 1 2 3 4 5 6 7]

  The extra complexity of eval is not nice. Perhaps lists
  could also be used, or a alternative version
  [math::lmax], or so could be done, to provide the
  functionality for lists instead of single values.


tkt_uuid: 1472443fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: bwidget - fix for several causes of ListBox slowness
comment:
  The bwidget 1.7 ListBox has several pieces of code that
  lead to O(N**2) time to insert N items into a new
  ListBox, and then display them (execute 'update')

  I made the following timings before and after my patch:

  #items time (ms)  ms/item
    4000     5842    1.460
    8000    24053    3.007
   16000    90522    5.658
   
    4000     1303    0.326
    8000     2599    0.325
   16000     5304    0.332

  For 16000 items, the speedup is about 17x.  Because
  ms/item is nearly constant for different item counts,
  the performance is probably O(N).

  This patch is against the 1.7 ListBox, but before
  submitting I tested with the CVS version of listbox.tcl
  and found that the N-squared performance problem still
  exists.  I believe this patch is "of interest" even if
  it doesn't automatically apply.


tkt_uuid: 746960ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: BWidget Tree insert bug
comment:
  In the current implementation of the BWidget tree
  widget, not enough checks are performed when
  adding new nodes into the tree.

  For example, the current code allows
  somebody to create a new tree node
  that contains into its node name any
  instances of the characters &, |, ^, !.
  However, if you add such nodes, expect
  problems: as a canvas widget is
  used for implementing the widget and these
  characters have special meaning in tag
  names (are considered operators - the
  canvas man page does not stress this issue but thats
  another story :-)) you end
  up with various errors when the widget gets
  drawn (for example errors during
  canvas bbox). The user is not
  always able to trace down the source of error
  (I had to check the canvas implementation to
  locate the error message, see what the
  code tried to do (a search upon the tags)
  and then go to the man page to find out what is wrong).

  I can think of two possible solutions:
  1) Check for these characters when a node is created
  and through an error if any of these characters are used.
  2) Allow these characters, but silently replace them
  with something else.

  George


tkt_uuid: 1213545fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: mime: Provide getheaders and getbody (enhancement)
comment:
  I've been trying to use the mime package for HTTP form 
  data (see <http://wiki.tcl.tk/FileUploadWithTclSHttp>).  
    
  The http package wants additional HTTP headers as a list, 
  and the content-type separately. 
   
  The mime package doesn't have a getheaders method returning 
  a list of headers and getbody doesn't work for multipart. 
  I think buildmessage should be split into those two functions. 
  It's easy enough to get the content-type from the headers 
  ourself once we have them. 
   


tkt_uuid: 671821ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Duplicate
title: ScrolledWindow flashing scrollbars
comment:
  ScrolledWindow has a bug that the scrollbars will be
  gridded, then imediately ungridded indefinately under
  special circumstances. For instance, if a text widget
  is placed in the ScrolledWindow and the very  last
  viewable line causes the horizontal scrollbar to be
  gridded, the scrollbar will cause the last line to go
  out of view, thus causing itself to be ungridded,
  causing the last line to be viewable again, causing the
  scrollbar to be gridded .........

  This patch will fix the scrollbar flash.

  Note, using the same example as above, if the last line
  in a text field causes the scrollbar to be gridded, the
  scrollbar will cover the last line and the scrollbar's
  handle will be fully expanded, making the scrollbar
  somewhat unneeded. But it is better than the
  alternative of an infinitel loop that eventually causes
  a bgerror.


tkt_uuid: 966696ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
title: Add introspection for methods
comment:
  Today I had a need to introspect a snit object, to find
  which methods it would understand. Found the 'info'
  method, but it had no way to ask for methods. Just
  variables, typevars, options, ...

  So I am asking for a 'info methods', 'info typemethods'.


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: 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: 650977ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: pop3d
priority: 5 Medium
foundin: None
resolution: Fixed
title: bgerror when pop3 client disconnects
comment:
  If the pop3 client closes its socket to the pop3d 
  server as soon as it has sent the QUIT message it 
  sometimes causes a background error when the 
  pop3d server tries to close the connection via an 
  after idle ... command.

  can't read "conn(sock248)": no such element in 
  array
  can't read "conn(sock248)": no such element in 
  array
      while executing
  "upvar $conn($sock) cstate"
      (procedure "::pop3d::CloseConnection" line 6)
      invoked from within
  "::pop3d::CloseConnection mailserver sock248"
      ("after" script)


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: 731252ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: enhanced tkchat help requested
comment:
  When I check the tkchat Help menu item as well as /help in
  tkchat, I don't see commands such as /?<regexp> .  Thus,
  it appears this feature, and perhaps others, are not
  documented
  at this time anywhere other than within the source code.

  After determining where best this info should be found
  (perhaps in a  special help menu item?) , perhaps
  environment variables, features,  commands, etc. that
  one  can use within tkchat, but which have no menu
  setting, could be documented?


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: 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: 898774ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: html
priority: 5 Medium
foundin: None
resolution: Fixed
title: html - documentation for checkSet incomplete
comment:
  The docs for ::html::checkSet do not document the
  arguments key and sep.

  Diff included.

  Index: html.man
  ===================================================================
  RCS file: /cvsroot/tcllib/tcllib/modules/html/html.man,v
  retrieving revision 1.6
  diff -u -b -r1.6 html.man
  --- html.man    11 Apr 2003 18:27:10 -0000      1.6
  +++ html.man    17 Feb 2004 14:47:22 -0000
  @@ -50,8 +50,8 @@

   Generate a set of CHECKBOX form elements and
  associated labels.  The
   [arg list] should contain an alternating list of
  labels and values.
  -This uses [cmd ::html::checkbox].
  -
  +This uses [cmd ::html::checkbox]. All the CHECKBOX
  buttons share the same
  +[arg key] for their name. The [arg sep] is text used
  to separate the elements.

   [call [cmd ::html::checkValue] [arg name] [opt [arg
  value]]]


tkt_uuid: 740478ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Fixed
title: make install fails due to a documentation bug
comment:
  while attempting to install the latest CVS snapshot for
  tcllib, I get this error, causing installation to cease:

  Generating /volws/lwv26/ldatae/man/mann/irc.n
  @--> invalid command name "target"
      while executing
  "::doctools::_format dt {[comment {-*- tcl -*- doctools
  manpage}]
  [manpage_begin irc n 0.4]
  [moddesc   {Low Level Tcl IRC Interface}]
  [titledesc {Creat..."
      ("eval" body line 1)
      invoked from within
  "eval [list ::doctools::_$cmd $name] $args"
      (procedure "::doctools::DoctoolsProc" line 15)
      invoked from within
  "dt format [get_input $f]"
      (procedure "_man" line 17)
      invoked from within
  "_man irc nroff n /volws/lwv26/ldatae/man/mann"
      ("eval" body line 1)
      invoked from within
  "eval $guide($m,$type) $m $args"
      (procedure "xinstall" line 4)
      invoked from within
  "xinstall doc nroff n    $config(doc,nroff,path)"
      (procedure "doinstall" line 18)
      invoked from within
  "doinstall"
      (procedure "main" line 11)
      invoked from within
  "main"
      (file "../installer.tcl" line 484)
  *** Error code 1
  make: Fatal error: Command failed for target `install'

  Seems like installation should continue even when an
  error like this had occurred.


tkt_uuid: 410399ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Accepted
title: New module: html parser
comment:
  Another new module, a html parser based upon the core
  of Stephen Uhler's html_library + some utilities from
  my book scanning project.

  Anyone aware of tests for this parser ?


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: 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: 851090ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Duplicate
title: bug in tempfile
comment:
  The env array should be declared global (or qualified 
  with ::) in fileutil::tempfile. Otherwis it doesn't 
  work as intended. (see the code)


tkt_uuid: 1838703fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math :: statistics
priority: 5 Medium
foundin: None
resolution: Fixed
title: cdf-normal gives div-by-zero for arg = 0
comment:
  Hello,

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

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

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

  Eric


tkt_uuid: 804089ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: Error in Place with multiple monitors.
comment:
  From Jeff Griffiths via ActiveState lists...

  Using Win2K SP4 win multiple monitors at different
  resoutions, when clicking on the package button to add
  a package in tclapp:

  bad geometry specifier "294x25762+232"
  bad geometry specifier "294x25762+232"
      while executing
  "wm geometry $path "${w}x${h}${x}${y}""
      (procedure "BWidget::place" line 134)
      invoked from within
  "BWidget::place $path 0 0 $place $parent"
      (procedure "Dialog::draw" line 36)
      invoked from within
  "Dialog::draw .main.frame.nb.f.pkgsel"
      ("eval" body line 1)
      invoked from within
  [snip]


tkt_uuid: 2064326fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: app: tkchat
priority: 5 Medium
foundin: None
resolution: Accepted
title: updated de.msg
comment:
  Hi Pat,

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

  -- Matthias Kraft


tkt_uuid: 879451ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: log
priority: 5 Medium
foundin: None
title: add better introspection to logger
comment:
  Hi,

  I would like to see more introspection for the logger
  command. 

  At the moment only logger::services and
  ${log}::services exist

  I would like to see this additions:

  ::logger::levels -- 
  Return the currently defined levels accepted by logger
  enable/disable.

  ${log}::enabled --
  Return 1 if the service is enabled 0 otherwise.

  ${log}::currentloglevel -- (bad name?)
  Return the current log level for this service .

  And maybe:

  ${log}::delproc --
  Return the current deleteproc if no argument was given.

  Similar behaviour for the procs for the log levels.
  (BTW. What is the rationale for not using a proc name
  as argument for logproc but creating a new proc? Speed?
  )

  Michael


tkt_uuid: 1158037fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: dns
priority: 5 Medium
foundin: None
resolution: Fixed
title: Resource exaustion
comment:
  dns::resolve fails after 65535 requests. It happens
  even with CVS head of dns.tcl.

  Error message:

  can't read "state(reply)": no such variable
  while executing
  "binary scan $state(reply) SS id flags"
  (procedure "Receive" line 6)
  invoked from within
  "Receive [namespace current]::$id"
  (procedure "::dns::UdpEvent" line 12)
  invoked from within
  "::dns::UdpEvent ::dns::66665"


tkt_uuid: 2013082fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: general request
priority: 5 Medium
foundin: None
title: Submission: Amazon S3 access in pure Tcl
comment:
  Attached is a zip file containing code that talks to Amazon's Simple Storage Service (S3) in pure Tcl. Included is documentation (in dtp man form) and tests (in tcltest form). The license is (or at least should be) the same as the rest of TclLib. 

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

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


tkt_uuid: 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: 1750656fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
resolution: Invalid
title: math test suite interacts badly with the tcllib test suite p
comment:
  When I run the tcllib cvs head on top of the tcl cvs head, I see the following:



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

  and so on for pages and pages.

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


tkt_uuid: 634258ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Invalid
title: package require tcllib returns "Don't ..
comment:
  etc. -- it seems this is a bit unconventional and
  really belongs in the docs --- package require
  <package> should  return package <package> not found or
  a version string. I expect to load a tcllib package
  when I do a package require so that I can maintain my
  code and still upgrade -- instead I get programming
  instructions..  


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: 1416771fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: md5
priority: 5 Medium
foundin: None
resolution: Fixed
title: md5: test suite bugs
comment:
  with -debug 1:

  * md5 2.0.4
  > pure Tcl
  test name 'md5-1.0' re-used; prior use in
  /local/src/tcllib/modules/md5/md5.test
  test name 'md5-1.1' re-used; prior use in
  /local/src/tcllib/modules/md5/md5.test
  test name 'md5-1.2' re-used; prior use in
  /local/src/tcllib/modules/md5/md5.test


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: 553848ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: stooop
priority: 5 Medium
foundin: None
resolution: Fixed
title: reliance on [namespace] bug.
comment:
  The tests stooop-86,87,89,90,95,96,97 all fail when
  tested with current development Tcl (8.4a5).  This
  is because the current Tcl sources have fixed Tcl
  Bug 545325 -- the failure of [namespace eval]s to
  appear as the results of [info level] calls.

  Unfortunately, stooop appears to expect the buggy
  behavior -- at least in its "debugging" mode.


tkt_uuid: 620753ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: New options for labelframe
comment:
  Hi,

  The BWidget LabelFrame widget uses a BWidget Label
  widget to display a label or a frame. Currently only a
  -text option is available to set the text of the label
  frame. This patch will also provide the -textvariable,
  -image and -bitmap options to set the label text or
  image.

  Jos.


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: 636977ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: uri
priority: 5 Medium
foundin: None
title: news scheme not recognized
comment:
  The 'news' and 'nntp' schemes are not implemented. 
  These aren't that uncommon.  I will see about doing
  this if I have a moment.


tkt_uuid: 3536709fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: yaml
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: huddle get does not accept non-scalar dict keys
comment:
  Found a bug in how huddle dict objects lookup non-scalar keys.  The bug is in huddle::_key_reflexive and stems from the a non-scalar single key being passed via args (variadic mechanism).  The problem is that an extra set of curly braces ends up enclosing the key path when it finally gets passed to dict get (which errors).  A simple example is:
    set h [huddle create {a a} b]
    huddle get $h {a a}; # error thrown here

  I've seen this bug in huddle versions 0.1.3 through 0.1.5.

  A fix for this is attached along with some new tests, the files are modified versions of the huddle 0.1.5 source.


tkt_uuid: 456883ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: Cannot dnd into empty ListBox
comment:
  This seems to be an old problem. I found traces in
  a google search but the patch mentioned was nowhere 
  to be found :(.

  I noticed the behaviour in a current cvs version of
  bwidget.


tkt_uuid: 1470818fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Duplicate
title: Wrong monthname returned by mime::parsedatetime.
comment:
  In file mime.tcl the name of the month is looked up in
  a list by an index which one gets from a "[clock format
  $clock -format %e]" (three times). In my old version of
  tcl the %e returns the number of the day in the month
  and not the month number. A solution like [expr [string
  trimleft [clock format $clock -format %m] 0] - 1] seems
  more appropriate.

  m.d.nauta@hetnet.nl


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: 2526633fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: spf
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: SPF package fails with hosts with IPv6 specifications
comment:
  The SPF package (v1.1.1) fails to handle SPF records with IPv6 ("ip6") entries:

  % package require spf
  1.1.1
  % ::spf::spf 1.2.3.4 kvanals.org bob@kvanals.org
  error in "ip6": type mismatch: cannot compare different address types
  % ::spf::spf fe80::1 kvanals.org bob@kvanals.org
  error in "ip4": type mismatch: cannot compare different address types
  % ::spf::SPF kvanals.org
  v=spf1 ip4:207.201.218.70 ip4:207.201.218.71 ip4:66.102.165.0/24 ip6:2001:480:fa0d::/48 ip6:2001:480:f001::55 -all


tkt_uuid: 1751871fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ldap
priority: 5 Medium
foundin: None
resolution: Fixed
title: ldap::search : too many nested evaluations (infinite loop?)
comment:
  Hello 

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

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

  can you help me?

  regards
  Jerome


tkt_uuid: 1852718fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ldap
priority: 5 Medium
foundin: None
resolution: Fixed
title: ldap filters with binary values not handled correctly
comment:
  The filter buildup proc doesn't handle escaped binary in the filter value correct. It should follow RFC 2254.


tkt_uuid: 1800296fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib
priority: 5 Medium
foundin: None
resolution: Fixed
title: tooltip manual unclear on clear option
comment:
  The doc at http://tcllib.sourceforge.net/doc/tooltip.html doesn't indicate for the clear option: what 'pattern' is or how it's matched.

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

  Suggest replacing the text with:

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


tkt_uuid: 606640ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Duplicate
title: Quoted-printable should encode also '='
comment:
  mime.tcl procedure qp_encode should change '=' 
  characters to '03D'. (Same than trf-package does). At 
  least Outlook Express/Exchange server can't decode 
  html-data if this isn't done. 

  New code-x3D inserted:

  proc mime::qp_encode {string {encoded_word 0} 
  {no_softbreak 0}} {
      # 8.1+ improved string manipulation routines used.
      # Replace outlying characters, characters that would 
  normally
      # be munged by EBCDIC gateways, and special Tcl 
  characters "[\]{}
      # with =xx sequence

      regsub -all -- \
      {[\x00-\x08\x0B-\x1E\x21-\x24\x3D\x40
  \x5B-\x5E\x60\x7B-\xFF]} \
      $string {[format =%02X [scan "\\&" %c]]} 
  string


tkt_uuid: 433145ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Fixed
title: csv module man page fix needed
comment:
  The current csv.n file has data on the first line
  which caused man commands on some systems to fail.
  The first line of a man page is used to define
  specialized filters, such as tbl, are required to
  format the man page.

  The current csv.n man page has what appears to be a
  comment used by emacs to indicate that the contents are
  nroff.

  Hopefully the emacs comment can be moved elsewhere -
  because right now, Solaris 8's man command is unable to
  format the man page correctly.


tkt_uuid: 448634ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Accepted
title: pop3 uidl support
comment:
  Added support for (optional) pop3 UIDL command.
  Changed version to 1.3
  Some minor formatting changes to pop3.tcl.
  pop3.tcl sorted by proc name.
  Added uidl command summary to man page.
  Some minor formatting to man page.
  Updated pkgIndex.tcl for version 1.3


tkt_uuid: 720208ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ntp
priority: 7 High
foundin: None
resolution: Fixed
title: test failure: ntp module with tcl 8.3
comment:
  Test platform: tcl 8.3.5 Windows 2K intel.

  The following failures produced when using tcl 8.3.5 to
  run the tcllib test suite. These do not occur with tcl 8.4

  It seems these tests rely on features only present in
  tcltest 2.2+ (the ::tcltest::interpreter proc)

  Module:ntp
  modules/ntp/time.test

  ==== time-1.1 time::gettime FAILED
  ==== Contents of test case:

      global token
      list [catch {
          set f [createServerProcess]
          gets $f port
          set token [::time::gettime -protocol tcp
  localhost $port]
          set r {}
      } msg] $msg    

  ---- Result was:
  1 {invalid command name "::tcltest::interpreter"}
  ---- Result should have been:
  0 {}
  ==== time-1.1 FAILED


  ==== time-1.2 time::status FAILED
  ==== Contents of test case:

      global token
      list [catch {time::status $token} m] $m

  ---- Result was:
  1 {can't read "State(status)": no such variable}
  ---- Result should have been:
  0 ok
  ==== time-1.2 FAILED


  ==== time-1.2 time::unixtime FAILED
  ==== Contents of test case:

      global token
      list [catch {
          set t [time::unixtime $token]
          string is integer -strict $t
      } m] $m

  ---- Result was:
  1 {can't read "State(status)": no such variable}
  ---- Result should have been:
  0 1
  ==== time-1.2 FAILED


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

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

  Testing for error messages should be as lax as possible.


tkt_uuid: 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: 561403ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: fix for vertical progressbar (1.3.1)
comment:
  Displaying a vertical progressbar does not work properly. 
  The following patch fixes this: (progressbar.tcl, 1.3.1)

  191c191
  <                 $path.bar coords rect 0 [expr {$h+1}] $w 
  [expr {$h*($max-$val)}]
  ---
  >                 $path.bar coords rect 0 [expr {$h+1}] $w 
  [expr {$h*(1.0 - double($val)/$max)}]


tkt_uuid: 1475968fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: comm
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: comm - use canonical ids for remote host connections
comment:
  Hi,

  The comm man page mentions the following limitation:

  ---------
  WARNING: The host must always be specified in the same
  form (e.g., as either a fully qualified domain name,
  plain hostname or an IP address).
  ---------

  I use {<port> <hostname>} to connect to the remote comm
  channel. However, the id listed on the remote
  interpreter is of the form {<port> <hostip>}. As a
  result, it ends up creating one extra channel for
  communication between remote hosts. See below:

  # Host1 = mavis
  mavis:219> wish
  % package require comm
  4.2.1
  % comm::comm config -local 0
  % comm::comm self
  40048
  % hi    <----- "hi" printed from "hlavana-u5" below
  comm::comm ids
  40048 {32807 64.102.40.12}  <--- remote id uses ipaddr
  % comm::comm send {32807 hlavana-u5} {puts hi}
  % comm::comm ids
  40048 {32807 64.102.40.12} {32807 hlavana-u5}
  % 

  # Host2 = hlavana-u5
  hlavana-u5:52> wish
  %  package require comm
  4.2.1
  % comm::comm config -local 0
  % comm::comm self
  32807
  % comm::comm send {40048 mavis} {puts hi}
  % comm::comm ids
  32807 {40048 mavis}
  % hi  <---- "hi" printed from "mavis" host
  comm::comm ids
  32807 {40048 mavis} {40048 64.102.16.217}
  % 

  For the above case, I would expect the [comm::comm ids]
  command to return exactly the same values in both the
  interpreters once the connection is established between
  the two -- something like:

  {32807 hlavana-u5.cisco.com} {40048 mavis.cisco.com}

  In addition to the above issue, the $id value set for
  the callback hooks are also not consistent. So, the
  comm package should be enhanced to remove this
  limitation and always use the canonical id internally.
  It should not differentiate between whether the id is
  specified simply as "40048", or "40048 localhost", or
  "40048 mavis", or "40048 mavis.cisco.com", or "40048
  64.102.16.217". 

  Note that the [comm::comm self], [comm::comm ids] and
  $id variable set for callback hooks should return the
  cannonical forms of the id.

  Hemang.


tkt_uuid: 429384ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: control
priority: 5 Medium
foundin: None
resolution: Duplicate
title: execCmd procedure: improved catch/exec
comment:
  proc execCmd {commandstring {args ""}} {
      # The execCmd procedure replaces Tcl "exec" and "catch {exec}" commands
      # in order to allow external command to be executed with the flexibility
      # of obtaining the return code of the command and processing the
      # standard error and output messages of the command independently.
      #
      # Standard output and error messages may be reported to stdout/stderr
      # as the command runs, may be sent to same or different channel pointers,
      # or may be saved in the same or different variables.
      #
      # Standard error/output messages do not imply success or failure of
      # the command. The procedure may wait for the command to complete or
      # may return immediately and inform the calling proc later when the
      # command completes.
      #
      # Syntax:
      #   execCmd "commandstring" [-arg1 value1] [-arg2 value2] ...
      #      (note that commandstring may include ksh symbols |, >, <, >&, etc)
      #
      # Optional arguments:
      #   -outvar var      variable to receive stdout of command
      #   -errvar var      variable to receive stderr of command
      #   -outerr var      variable to receive stdout or stderr (success/fail)
      #   -outfp fp        channel to receive stdout of command
      #   -errfp fp        channel to receive stderr of command
      #   -waitvar var     variable to receive return code upon completion
      #                    (must be globabl variable)
      #   -pidlistvar var  variable to receive list of process ids from the
      #                    command string (used with -waitvar)
      #
      # Return code:
      #   Return code of the execCmd procedure is that of the command executed.
      #   If the procedure does not wait for the command to complete (using the
      #   (-waitvar argument), this procedure will always return 0.
      #
      # Examples:
      #   1. Run command and send output to stdout/stderr channels:
      #          set rc [execCmd "mycommand"]
      #
      #   2. If command return code is 0, saves stdout in result. Else, saves
      #    stderr to result:
      #          set rc [execCmd "mycommand" -outerr result]
      #
      #   3. Output of command sent to channel fp and stderr is captured
      #    in variable result:
      #          set rc [execCmd "mycommand" -outfp fp -errvar result]
      #
      #   4. Execute command in background and capture return code when complete:
      #          global rc
      #          execCmd "mycommand" -outfp result -errfp result -waitvar rc
      #           (do other stuff here)
      #          vwait rc
      #      or:
      #          global rc
      #          set rc ""
      #          execCmd "mycommand" -outfp result -errfp result -waitvar rc
      #          while 1 {
      #              if {$rc != ""} break
      #              (keep doing other stuff here)
      #          }

      global runcmdrc runcmdout runcmderr

      # Parse arguments
      set outfp ""
      set errfp ""
      set outerr 0
      set errvar 0
      set outvar 0
      set waitvar ""
      set runcmdrcvar runcmdrc
      set outvarname ""
      set errvarname ""
      set runcmderrvar runcmderr
      set runcmdoutvar runcmdout
      set pidlistvar ""
      array set var $args
      foreach ix [array names var] {
          switch -- $ix {
              -waitvar {
                  set waitvar $var(-waitvar)
                  global $waitvar
                  set runcmdrcvar $waitvar
              }
              -pidlist {
                  set pidlistvar $var(-pidlist)
                  upvar $pidlistvar pidlist
              }
              -outerr {
                  set outvarname $var(-outerr)
                  set outerr 1
                  set outvar 1
                  set errvar 1
              }
              -errout {
                  # Same as outerr
                  set outvarname $var(-errout)
                  set outerr 1
                  set outvar 1
                  set errvar 1
              }
              -errvar {
                  set errvarname $var(-errvar)
                  set errvar 1
              }
              -outvar {
                  set outvarname $var(-outvar)
                  set outvar 1
              }
              -outfp {set outfp $var(-outfp)}
              -errfp {set errfp $var(-errfp)}
          }
      }

      if {$waitvar != ""} {
          # If waitvar is set and user provided variables to store the
          # output in, must define them as globals
          if {$outvar} {
              global $outvarname
              set runcmdoutvar $outvarname
          }
          if {$errvar && !$outerr} {
              global $errvarname
              set runcmderrvar $errvarname
          }
          if {$outerr} {
              set runcmderrvar $outvarname
          }
      }

      unset args var
      set $runcmdrcvar ""
      set $outvarname ""
      set $errvarname ""
      set runcmderr ""
      set runcmdout ""

      # If no options provided, output to stdout and stderr
      if {$outfp == "" && $outvar == 0} {set outfp stdout}
      if {$errfp == "" && $errvar == 0} {set errfp stderr}

      pipe runcmdrpipe runcmdwpipe
      fconfigure $runcmdrpipe -blocking 0 -buffering line
      fconfigure $runcmdwpipe -blocking 0 -buffering line
      fileevent $runcmdrpipe readable [list readExecCmd $runcmdrpipe $errfp\
          $runcmdrcvar $runcmdrpipe $runcmdwpipe $runcmderrvar]

      if [catch {open "|$commandstring 2>@$runcmdwpipe"} runcmdfp] {
          if {$errfp != ""} {puts $errfp $runcmdfp}
          {set $errvarname $runcmdfp}
          return 1
      } else {
          # Set callers variable to list of process ids of this command
          if {$pidlistvar != ""} {
              set $pidlistvar [pid $runcmdfp]
          }

          # Call readExecCmd proc to capture command output.
          fconfigure $runcmdfp -blocking 0 -buffering none
          fileevent $runcmdfp readable [list readExecCmd $runcmdfp $outfp\
              $runcmdrcvar $runcmdrpipe $runcmdwpipe $runcmdoutvar]

          if {$waitvar != ""} {
              # Calling proc doesnt want to wait until the command completes.
              # Caller will watch for the return code to be set in the
              # waitvar variable.
              return 0
          }

          # Wait for command to complete
          vwait $runcmdrcvar
      }

      if {$outerr} {
          # Set output to either stdout or stderr depending on the return
          # code of the command
          catch {unset cmdresult}
          upvar $outvarname cmdresult
          if {$runcmdrc} {
              set cmdresult $runcmderr
          } else {
              set cmdresult $runcmdout
          }
      } else {
          # If user provided variables for stdout and stderr of command,
          # set those variables to the output
          catch {unset cmdresult}
          if {$outvar} {
              upvar $outvarname cmdresult
              set cmdresult $runcmdout
          }
          if {$errvar} {
              upvar $errvarname cmdresult
              set cmdresult $runcmderr
          }
      }

      # Return with return code of the command
      return $runcmdrc
  }

  proc readExecCmd {fp outfp rcvar rpipe wpipe {outvar ""}} {
      # Read output from command and save in variables or send to
      # channels. Capture exit code of command upon completion.
      global errorCode $rcvar
      if {$outvar != ""} {
          global $outvar
      }
      if [eof $fp] {
          # Process no more fileevents for stdout
          catch {fileevent $fp readable {}}

          # Process remaining fileevents in case there is stderr pending,
          # then close stderr channel
          update
          catch {fileevent $rpipe readable {}}
          catch {close $rpipe}
          catch {close $wpipe}

          # Close stdout channel and get command return code
          set errorCode ""
          fconfigure $fp -blocking 1
          catch {close $fp}
          set rc [lindex $errorCode 2]
          if [string match SIG* $rc] {
              set rc 99
          }
          if {$rc == ""} {set rc 0}
          set $rcvar $rc
          return
      }

      if {[gets $fp line] < 0} return

      if {$outfp != ""} {
          # Send output to channel
          puts $outfp $line
      }
      if {$outvar != ""} {
          # Append output to output variable
          if {[returnVar $outvar] == ""} {
              set $outvar $line
          } else {
              append $outvar "\n$line"
          }
      }
  }


tkt_uuid: 740484ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: Markup error in DragSite and DropSite HTML docu.
comment:
  Both DragSite and DropSite HTML docu pages are -
  starting in the -droptype docu and then until the end
  of the page - shown completely in bold. (Well, at least
  in mozilla.)

  There is a small markup error, which causes this. View
  the HTML pages in a text editor and search for: 
  <b>baseop</i>
  This markup should of course read: <i>baseop</i>


tkt_uuid: 579026ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: crc
priority: 5 Medium
foundin: None
resolution: Fixed
title: crc32 consumes lots of memory
comment:
  crc32 consumes a large amount of memory if it has to
  determine the checksum for a large file (a file of10 MB
  causes the process to consume 200 MB of memory). This
  is probably due to the use of a list containing
  elements of 1 character (each list element has an
  overhead of 12 bytes).

  Alternative implementation:

     for { set i 0 } { $i < $length } { incr i } { 
        scan [string range $str $i $i] c n
        ...
     }


tkt_uuid: 474999ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: None
title: ftp man page description typo
comment:
  In the ftp.n man page, under ftp::List , the first
  sentence reads:

  This commands lists the contents of the specified a
  directory or other group of files.


  I'm not certain how list works, but I would guess it
  should say something like:

  This command lists the specified files or directories.

  or something like that.


tkt_uuid: 3567463fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: tklib :: ctext
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: ctext sends <<Modified>> too often
comment:
  The Tk text widget sends the <<Modified>> virtual event when the state of the [$w edit modified] flag changes.  The ctext widget sends <<Modified>> on every change, whether the [$w edit modified] flag has actually changed or not.  The ctext widget's interface should mimic the text widget's interface here; if there are actions you want to do when the editor's content has just become unsaved, you don't want to repeat them every time they add another character.


tkt_uuid: 1329642fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: logger
priority: 5 Medium
foundin: None
resolution: Fixed
title: logger::disable/enable/setlevel ignored
comment:
  The global commands for setting a loglevel are ignored
  by global loggers created after their execution. This
  is surprising and will IMHO trip many application
  authors, as tehy will likely set the log level for
  their application before loggers in packaged are created.


tkt_uuid: 1800185fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib
priority: 5 Medium
foundin: None
resolution: Fixed
title: tooltip text inside yellow box is centred
comment:
  Tooltips seems to default to centred alignment on multiline tooltips, which looks bad particularly if your tooltip is a small paragraph or a long sentence.

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

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


tkt_uuid: 949049ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Invalid
title: Combobox error : unknown option "-label"
comment:
  Error in startup script: unknown option "-label"
      while executing
  "error "unknown option \"$option\"""
      (procedure "Widget::parseArgs" line 7)
      invoked from within
  "Widget::parseArgs ComboBox $args"
      (procedure "ComboBox::create" line 3)
      invoked from within
  "ComboBox $parent.mscCombo -label "MSC"  -labelwidth 
  5 -labelanchor w  -textvariable save::mscNo  -values { 
  apollo athena mscE mscS }  -width 8  -helpt..."
      (procedure "_MscCell" line 7)
      invoked from within
  "_MscCell  [$mscCellFrame getframe]"
      (procedure "save::create" line 11)
      invoked from within
  "save::create $notebook"
      invoked from within
  "set f0  [save::create $notebook]"


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: 1681568fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: doctools - add facility to hyperlink between documents
comment:
  Right now, doctools linking facility links between words to an index file. However, it would be useful to also support linux between points within a document, or points between documents ... for example, between a word and its definition in a glossary document, or pointing from a man page to a specific section of another man page.


tkt_uuid: 1115865fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: WebDAV client
comment:
  There's a new implementation of a WebDAV client, which I hereby 
  would like to offer for consideration to be included in Tcllib.

  The README is at:
      http://www.equi4.com/pub/sk/davkit.kit/lib/webdav/README
  There is a starkit at:
      http://www.equi4.com/pub/sk/davkit.kit
  (it's also in sdarchive)

  The code consists of two packages:

   - webdav is a client which supports a number of functions,
      as described here:
          http://www.equi4.com/pub/sk/davkit.kit/lib/webdav/
  webdav.html

   - davvfs is a VFS driver which uses the webdav package

  Webdav requires tclxml to parse the XML returned by WebDAV 
  server (the trivial XML that is sent is done in plain Tcl).  The client 
  becomes considerably faster when a compiled version of expat is 
  present, but TclXML will fall back to pure Tcl just fine on any 
  platform.

  Davvfs is a driver which supercedes the webdavvfs client in TclVFS.  
  That client was a proof of concept, and only supports read-only use 
  of webdav, while these to packages support r/w, globs, stats, mkdir, 
  rmdir, etc.

  The current code does not support locking or versioning.  It also is 
  relatively simple right now, because a read is done entirely on open 
  and a write on close.  A refinement would be to pass channels 
  around so I/O can be done more gradually, and progress statusbars 
  could be supported.

  This code was written for a commercial project, and not taken 
  further than its current (startup) requirements.  It has been used 
  with Apache as WebDAV server, and has been used quite a bit 
  already.  The code can be placed under a Tcl- or MIT-license.

  There are test suites, but these are a bit cumbersome because they 
  depend on a hardwired server with specific content (test content is 
  included in the starkit).

  I think this set of packages would be a useful addition to tcllib, but 
  a few issues will need to be resolved to do this:
   - is it ok to depend on a pure-tcl non-tcllib package? (TclXML)
   - if not, are there alternatives? the parsing demands are not high
   - should davvfs go here on in TclVFS?
  W.r.t. that last point, I think it would be better to include VFS 
  drivers here.  TclVFS will probably at some point become part of the 
  core, or tightly bundled with it - not all possible drivers would be 
  included I suspect (to allow them to be developed further, and 
  because not everyone needs them all).

  I'm ok with whatever the tcllib maintainers decide.  Just wanted to 
  try and find a good home for this code...

  -jcw


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: 2014325fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: cmdline
priority: 5 Medium
foundin: None
resolution: Fixed
title: couldn't set variable "dummy"
comment:
  you get the error message 'couldn't set variable "dummy"'
  when sourcing cmdline.tcl in case of the existence of
  a global array (!) variable ::dummy.

  try, for example:

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

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

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

   


tkt_uuid: 1739240fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: plotchart
priority: 8
foundin: None
resolution: None
title: tklib plotchart doc failure during build
comment:
  when i try to build the cvs head of tklib , I get this error:
  Generating /projects/sprs_lwv/tcl85/man/mann/plotchart.n
  Doctools Error in macro at line 150, column 24:
  [emph in days]
  --> wrong # args: should be "emph text"
      while executing
  "::doctools::_format dt {[comment {-*- tcl -*- doctools manpage}]
  [manpage_begin Plotchart n 1.3]
  [copyright {2007 Arjen Markus <arjenmarkus@users.sour..."
      ("eval" body line 1)
      invoked from within
  "eval [list ::doctools::_$cmd $name] $args"
      (procedure "::doctools::DoctoolsProc" line 15)
      invoked from within
  "dt format [get_input $f]"
      (procedure "_man" line 17)
      invoked from within
  "_man plotchart nroff n /projects/sprs_lwv/tcl85/man/mann"
      ("eval" body line 1)
      invoked from within
  "eval $guide($m,$type) $m $args"
      (procedure "xinstall" line 4)
      invoked from within
  "xinstall doc nroff n    $config(doc,nroff,path)"
      (procedure "doinstall" line 18)
      invoked from within
  "doinstall"
      (procedure "main" line 11)
      invoked from within
  "main"
      (file "../installer.tcl" line 485)
  gmake: *** [install] Error 1


tkt_uuid: 1860190fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Duplicate
title: tkchat: can't read "state(status)": no such variable
comment:
  tkchat v1.413:

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

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


tkt_uuid: 979894ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: smtp
priority: 5 Medium
foundin: None
resolution: Out of Date
title: username and password options are missing
comment:
  One of my web service providers recently started requiring all
  email use SMTP authorization - username/password. POP before
  SMTP was no longer good enough due to spammers.

  In the latest TCLLIB 1.6.1 there are username/password options
  in the smtp package for smtp::sendmessage invocations.

  Well, in the documentation. Not the code.

  I could really use to have these options available - TCLLIB can't
  send mail anymore without them, for me.

  ----

  I'm sourcing these TCLLIB 1.6.1 modules:

     base64.tcl,  md5.tcl, mime.tcl, smtp.tcl

  I uploaded those modules to source them because the hosting
  sit has an older TCLLIB installed.

  ----

  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 from $major
  to get around this error.


tkt_uuid: 2605849fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: tkchat: use tk appname for use in windowmaker dock
comment:
  The windowmaker dock uses the WM_CLASS of the main window to check if the application is launched and to allow minimize to dock.
  When running tkchat from a starpack, the window class is not specific enough to allow reliable docking of the app without picking up other wish application.

  It would be nice if a distinctive [tk appname] is declared for the application.


tkt_uuid: 1099722fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: log
priority: 7 High
foundin: None
resolution: Fixed
title: bug in logger's inheritance of level
comment:
  Hi,

  I am creating two services: foo and foo::bar using the
  logger command and seting the default log level to
  "notice" for the foo service. This means that the
  foo::bar will also have its default level set to
  "notice". However the following script shows that the
  debug logs are still printed for foo::bar service.

  godel:93> cat foobar.tcl 
  package require logger

  namespace eval ::foo {

      namespace export {[a-z]*} ;# export all commands
  begining with lower case.
      variable _foo             ;# array containing foo
  runtime globals

      set log [logger::init foo]
      logger::import -all -namespace log foo
      log::setlevel notice
      puts "foo level = [log::currentloglevel]"

  }

  namespace eval ::foo::bar {

      set log [logger::init foo::bar]
      logger::import -all -namespace log foo::bar
      # It should inherit foo's level, so do not set it here
      # log::setlevel notice
      puts "foo::bar level = [log::currentloglevel]"

  }

  proc ::foo::x args {
      log::warn   "foo::x warn"
      log::debug  "foo::x debug"
  }
  proc ::foo::bar::y args {
      log::warn   "foo::bar::y warn"
      log::debug  "foo::bar::y debug"
  }

  ::foo::x
  ::foo::bar::y
  godel:94> tclsh foobar.tcl 
  foo level = notice
  foo::bar level = notice
  [Mon Jan 10 15:50:32 EST 2005] [foo] [warn] 'foo::x warn'
  [Mon Jan 10 15:50:32 EST 2005] [foo] [warn]
  'foo::bar::y warn'
  [Mon Jan 10 15:50:32 EST 2005] [foo] [debug]
  'foo::bar::y debug'    <---- this should not be printed.
  godel:95> 

  Note that the level for foo::bar is correctly set to
  "notice", however it still ends up printing debug logs.
  I suspect this is bug.

  Hemang.


tkt_uuid: 3471474fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: pop3
priority: 5 Medium
foundin: None
resolution: Fixed
title: pop3::open doesn't handle -socketcmd properly
comment:
  Documentation says -socketcmd option is a command prefix. However it doesn't handle it that way, but as a simple command.


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: 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: 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: 454505ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: BWidget bug: Label (+ 1 line patch)
comment:
  The balloon helptext of a Label widget does not get
  updated in subsequent configures.

  Test:
  set l [Label .l -text test -helptext "first helptext"]
  pack $l
  $l configure -helptext "second helptext"

  Patch:
  I presume it's a typo. File: label.tcl
  proc: BWLabel::configure { path args } 

  Change the line:     
      DynamicHelp::sethelp $path $path
  to
      DynamicHelp::sethelp $path $path.l

  (last line before return)


tkt_uuid: 3076576fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
resolution: Fixed
title: Wrong number of arguments in test isprime-2.0 of numtheory
comment:
  Test isprime-2.0 uses a mock-up Miller-Rabin test procedure, but the number of arguments is 3, instead of 4.

  Here is the report:

  ==== modules/math/numtheory.test isprime-2.0 FAILED =========
  ==== Contents of test case:

     ::math::numtheory::Miller--Rabin 127 -randommr 500

  ---- Result was:
  ---- Return code should have been one of: 0 2
  ---- errorInfo: wrong # args: should be "::math::numtheory::Miller--Rabin n s d a"
      while executing
  "::math::numtheory::Miller--Rabin 127 -randommr 500"
      ("uplevel" body line 2)
      invoked from within
  "uplevel 1 $script"
  ---- Result should have been:

  ==== modules/math/numtheory.test isprime-2.0 ====


tkt_uuid: 1541828fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: ldap
priority: 5 Medium
foundin: None
resolution: Accepted
title: modifyDN : new arg, and split search function
comment:
  This patch:

  - introduces a newSuperior optional parameter to 
  modifyDN

  - splits the search function in 3 new functions: 
  searchInit, searchNext and searchEnd. The old search 
  function is rewritten using these 3 new functions and 
  the result is compatible.

  Since I'm not familiar with Tcllib man format, don't 
  hesitate to correct wording and formatting.


tkt_uuid: 1041229fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: A new splash screen widget?
comment:
  I think that a splash screen widget is currently missing 
  from BWidget. Although a splash screen is used only 
  once during the life of an application, it would be good if 
  such a widget was in BWidget, so as to not re-
  implement code for splash screens for  each new 
  application.

  I have also attached a sample implementation of the 
  widget. Its a simple toplevel that stays always on top, 
  without borders and can display an image, a BWidget 
  progressbar and text label.
  However, there is no manual page yet, but I can write 
  one if the widget gets finally approved :-)

  George


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

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

  For file pop3d_dbox.tcl with id:

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

  modify line #299 from:

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

  to:

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


tkt_uuid: 709375ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: crc
priority: 7 High
foundin: None
resolution: Fixed
title: current tcllib test suite failures report
comment:
  SPARC Solaris 2.6, Tcl/Tk 8.4.2:

  Using the tcllib CVS head downloaded from activestate
  ftp site snapshots on march 25, 2003, I see these errors:


  base64 2.2.1 (Trf based)
  modules/base64/uuencode.test
  Trf present

  ==== uuencode-1.6 encode dash-string FAILED
  ==== Contents of test case:

      catch {::uuencode::encode -BC} result
      set result

  ---- Result was:
  ::uuencode: wrong # args, all options require an argument
  ---- Result should have been (exact matching):
  +4)#
  ==== uuencode-1.6 FAILED

  ==== uuencode-1.7 decode dash-string FAILED
  ==== Contents of test case:

      catch {::uuencode::decode "-4)#"} result
      set result

  ---- Result was:
  ::uuencode: wrong # args, all options require an argument
  ---- Result should have been (exact matching):
  5BC
  ==== uuencode-1.7 FAILED


  Module: crc
  modules/crc/cksum.test
  modules/crc/crc16.test
  modules/crc/crc32.test

  ==== crc32-2.2 crc32 and unsigned integer FAILED
  ==== Contents of test case:

          ::crc::crc32 $msg
      
  ---- Result was:
  1136572392
  ---- Result should have been (exact matching):
  3904355907
  ==== crc32-2.2 FAILED

  ==== crc32-2.3 crc32 and unsigned integer FAILED
  ==== Contents of test case:

          ::crc::crc32 $msg
      
  ---- Result was:
  3259049013
  ---- Result should have been (exact matching):
  891568578
  ==== crc32-2.3 FAILED

  ==== crc32-2.4 crc32 and unsigned integer FAILED
  ==== Contents of test case:

          ::crc::crc32 $msg
      
  ---- Result was:
  2141000992
  ---- Result should have been (exact matching):
  538287487
  ==== crc32-2.4 FAILED


  ==== crc32-2.5 crc32 and unsigned integer FAILED
  ==== Contents of test case:

          ::crc::crc32 $msg
      
  ---- Result was:
  3176146764
  ---- Result should have been (exact matching):
  1277644989
  ==== crc32-2.5 FAILED

  ==== crc32-2.6 crc32 and unsigned integer FAILED
  ==== Contents of test case:

          ::crc::crc32 $msg
      
  ---- Result was:
  3538338335
  ---- Result should have been (exact matching):
  532866770
  ==== crc32-2.6 FAILED

  ==== crc32-2.7 crc32 and unsigned integer FAILED
  ==== Contents of test case:

          ::crc::crc32 $msg
      
  ---- Result was:
  1917495676
  ---- Result should have been (exact matching):
  2091469426
  ==== crc32-2.7 FAILED

  ==== crc32-2.8 crc32 and unsigned integer FAILED
  ==== Contents of test case:

          ::crc::crc32 $msg
      
  ---- Result was:
  3857639600
  ---- Result should have been (exact matching):
  2968055525
  ==== crc32-2.8 FAILED

  ==== crc32-3.2 crc32 as hexadecimal string FAILED
  ==== Contents of test case:

          ::crc::crc32 -format 0x%X $msg
      
  ---- Result was:
  0x43BEB7E8
  ---- Result should have been (exact matching):
  0xE8B7BE43
  ==== crc32-3.2 FAILED

  ==== crc32-3.3 crc32 as hexadecimal string FAILED
  ==== Contents of test case:

          ::crc::crc32 -format 0x%X $msg
      
  ---- Result was:
  0xC2412435
  ---- Result should have been (exact matching):
  0x352441C2
  ==== crc32-3.3 FAILED

  ==== crc32-3.4 crc32 as hexadecimal string FAILED
  ==== Contents of test case:

          ::crc::crc32 -format 0x%X $msg
      
  ---- Result was:
  0x7F9D1520
  ---- Result should have been (exact matching):
  0x20159D7F
  ==== crc32-3.4 FAILED

  and so on for quite some time...

  Module: struct
  modules/struct/graph.test
  modules/struct/matrix.test
  modules/struct/queue.test
  modules/struct/record.test

  ==== record-0.1 test error with circular records FAILED
  ==== Contents of test case:

      record define circular {
          one
          {record circular cir}
      } cir(1)

  ---- Result was:
  Can not have circular records. Structure was not created.
  ---- Result should have been (exact matching):

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

  ==== record-0.1 test error with circular records FAILED
  ==== Contents of test case:

          namespace eval myns {
      record define circular {
                  one
              {record ::myns::circular cir}
          } cir(1)
          }

  ---- Result was:
  Can not have circular records. Structure was not created.
  ---- Result should have been (exact matching):

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


  Module: fileutil
  modules/fileutil/fileutil.test
  fileutil 1.4

  Module: ftp
  Error:  No test files remain after applying your match
  and skip patterns!

  Module: ftpd
  Error:  No test files remain after applying your match
  and skip patterns!

  Module: javascript
  Error:  No test files remain after applying your match
  and skip patterns!

  Module: html
  modules/html/html.test

  Module: irc
  Error:  No test files remain after applying your match
  and skip patterns!


  Module: log
  modules/log/log.test
  log 1.0.1
  modules/log/logger.test
  [Tue Mar 25 06:16:40 EST 2003] [global] [error] 'Danger
  Will Robinson!'
  [Tue Mar 25 06:16:40 EST 2003] [global] [warn] 'Danger
  Will Robinson!'
  modules/log/loggerperformance.test
  Date is now Tue Mar 25 06:16:41 EST 2003
  Date is now Tue Mar 25 06:16:41 EST 2003
  Date is now Tue Mar 25 06:16:41 EST 2003
  and hundreds of more Date outputs


tkt_uuid: 607749ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget ListBox/Tree Selection Outline
comment:
  I Would also like to ask to expose two new options in 
  the listbox and tree widgets: 
   
    -selectoutline and -selectoutlinestipple 

  which would control the outline and stipple of the  
  selection rectangle in the canvas so it would be possible 
  to have it look like the windows selection in Listboxes 
  that have usually a black outline with a dashed stipple

  thanks
  /NL


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: 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: 482570ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: csv
priority: 5 Medium
foundin: None
resolution: Fixed
title: nit for csv.n man page
comment:
  The attached patch (assuming that netscape and sf.net
  cooperate) fixes a typo in the csv.n man page, as well
  as filling in the SEE ALSO and KEYWORD sections.


tkt_uuid: 740499ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: Missing docu for suppressing a drag in the -draginitcmd
comment:
  Sometimes, it's very handy, to be able to suppress a
  drag in the -draginitcmd (say, for example, a tree
  widget has nodes, which are dragable and others, which
  are not, in the logic of the application). It seems,
  the current implemention allows this (see proc
  DragSite::_init_drag) --- if the -draginitcmd returns
  {} instead of the expected 3 elements lists, there is
  no error raised, but some explicte cleanup. The
  documentation doesn't mention this. I propose, to add
  something like

  "If the command returns an empty string, the drag will
  be suppressed."

  at the end of the DragSite:register -draginitcmd
  documentation.


tkt_uuid: 551133ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: csv
priority: 5 Medium
foundin: None
resolution: Fixed
title: csvdiff duplicate key bug
comment:
  csvdiff expects that there are no 'keys' within either
  the first or second input files.  This results in
  erroneous differences reported currently.

  the --help option doesn't mention this limitation and
  there is no man page to mention this limitation, so I
  will file this behavior as a bug.

  I know I'd prefer to have duplicates retained and
  diffed...


tkt_uuid: 688070ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Out of Date
title: LabelFrame/LabelEntry -label/-text/-textvariable broken
comment:
  BWidget 1.5:


  When creating a LabelFrame with -label, -text and 
  -textvariable options the -label option is ignored.


  The label's text will be the contents of the textvariable.




  The last line in the below block from labelframe.tcl is 
  changed.


  v1.4.1:


      Widget::bwinclude LabelFrame BWLabel .l \


          remove     {


              -highlightthickness -highlightcolor 
  -highlightbackground


              -takefocus -relief -borderwidth


              -bitmap -image -cursor -textvariable




  v1.5:


      Widget::bwinclude LabelFrame BWLabel .l \


          remove     {


              -highlightthickness -highlightcolor 
  -highlightbackground


              -takefocus -relief -borderwidth


              -cursor




  Workaround. Include the following block right after 
  "package require BWidget":


  namespace eval LabelFrame {


      BWLabel::use




      Widget::bwinclude LabelFrame BWLabel .l \


          remove     {


              -highlightthickness -highlightcolor 
  -highlightbackground


              -takefocus -relief -borderwidth


              -cursor -textvariable


              -dragenabled -draginitcmd -dragendcmd 
  -dragevent -dragtype


              -dropenabled -droptypes -dropovercmd  
  -dropcmd} \


          initialize {-anchor w}


      proc use {} {}


  }




  I probably breaks something else, but it at least works for 
  me.


tkt_uuid: 1795266fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Duplicate
title: ::ftp::geturl
comment:
  Problem: failure on certain addresses

  package require ftp 2.4.4
  package require ftp::geturl 0.2

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

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

  Suggested solution (comp.tcl, Lester): 

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

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


tkt_uuid: 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: 1669897fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: dns
priority: 5 Medium
foundin: None
resolution: Wont Fix
title: get mx error
comment:
  I have problem to resolv mx record for friko6.onet.pl
  example:

  % dns::resolve "dns:friko6.onet.pl;type=MX"
  ::dns::2
  % dns::status ::dns::2
  ok
  % foreach a [dns::name ::dns::2] {puts $a}
  friko6.onet.pl
  2 mx.poczta.onet.pl

  There is no MX preference in first line answer



  j.lewandowski@dominet.pl


tkt_uuid: 961452ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
resolution: None
title: Plotchart does not handle "missing values"
comment:
  (Reminder)
  Plotchart currently does not handle missing values
  (empty strings). Adding such a feature is not too
  difficult though


tkt_uuid: 1615252fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: cmdline
priority: 5 Medium
foundin: None
resolution: Fixed
title: cmdline keywords could be more helpful
comment:
  Adding "command line processing" in addition to "cmdline processing" in the keywords may make searching easier.


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: 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: 1811890fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: inifile
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: inifile : allow keys with no assignment
comment:
  First off, the "Category" list is missing "inifile".

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

  [dummy]
  A=first
  B=
  C

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

  [suffix_list]
  .txt
  .tcl
  .cxx

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

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

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

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


tkt_uuid: 2906306fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: md5
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: md5::md5 -file option error on close
comment:
  calling md5:
     set result "WUB[::md5::md5 -hex -file [dict get $req -file]]"

  bgerror: {can not find channel named "file51"} {-code 1 -level 0 -errorcode {TCL LOOKUP CHANNEL file51} -errorinfo can\ not\ find\ channel\ named\ \"file51\"\n\ \ \ \ while\ executing\n\"close\ \$opts(-channel)\"\n\ \ \ \ (procedure\ \"::md5::md5\"\ line\ 44)\n\ \ \ \ invoked\ from\ within\n\"::md5::md5\ -hex\ -file\ \[dict\ get\ \$req\ -file\]\"\n\ \ \ \ (procedure\ \"etag\"\ line\ 4)...

  pardon my backslashes.


tkt_uuid: 551127ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: csv
priority: 5 Medium
foundin: None
title: csvdiff demo app option for line number
comment:
  I would like to request an option for csvdiff that
  results in the output having a line number associated
  with the output.  Just like diff defaults to telling me
  where the old or new line is located in the file, it
  would be useful for csvdiff to do likewise.  Otherwise,
  one can have a series of lines of output that are
  similar or identical within a file and not be able to
  locate where the difference lies.


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: 1494997fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math :: statistics
priority: 5 Medium
foundin: None
resolution: None
title: Can't load in slave interpreter
comment:
  This bug affects the math::statistics package, but I 
  assume it might affect many other packages in tcllib.

  Consider the following:

  % package require math::statistics
  0.1.3
  (bin) 2 % interp create kk
  kk
  (bin) 3 % interp eval kk {package require 
  math::statistics}
  can't read "::argv0": no such variable

  math::statistics can be loaded successfully in the 
  top interpreter, but fails when trying to load it 
  into a slave interpreter. The issue is that the 
  package internally tries to get the value of ::argv0
  to assess whether this is an interactive session so 
  as to perform a regression testing, but ::argv0 does 
  not exists in interpreters different from {}.

  Juan Carlos---


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: 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: 3425271fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: Installation
priority: 5 Medium
foundin: None
resolution: Accepted
title: Template files not installed
comment:
  The *.template files for "page" are not installed, needed by certain parser generators.
  Their lack causes the app "page" to err out by default.
  Patches to installer use "_trt" - suggested abbreviation, maybe not the best choice.
  Also included a patch to the "page" demo to add the installed "page" dir to the auto_path so that the plugins can be found; probably not the best solution, take as suggestion, reminder. :)


tkt_uuid: 1005380fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: stack
priority: 9 Immediate
foundin: None
resolution: Fixed
title: stack::struct peek doesn't match docs
comment:
  The stack::struct man page says of the "peek" subcommand, "If 
  there are no items on the stack, this command will return count 
  empty strings."

  It doesn't say what happens if there are some items in the stack, 
  but fewer than "count"; the implication, clearly, is that your result 
  will be padded with empty strings.  

  Either way, it doesn't matter; if "count" is greater than the number 
  of items in the stack, whether the stack is empty or not, you don't 
  get a list padded with empty strings; what you get is an error,  
  "insufficient items on stack to fill request".

  I'd argue that the documented behavior is more Tcl-ish, but either 
  way the docs or the code should be updated.

  I haven't checked, but I'm betting that "pop" has the same 
  problem.


tkt_uuid: 946856ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 7 High
foundin: None
title: Enhance uri command
comment:
  I would like to generate a URL link in the output (html)
  where the displayed text is something other than the 
  link itself. The uri command doesn't seem to allow this. 
  In other words, I want to say

  [uri "http://foo.com" FOO] 

  and have it generate 

  "<a href='http://foo.com'>FOO</a>".


tkt_uuid: 970878ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: html
priority: 5 Medium
foundin: None
title: Ability to add stylesheet
comment:
  Something like the following would enable people to add
  stylesheets, which would be a good thing.

  proc ::html::stylesheet {href} {
      variable page
      lappend page(meta) "<link rel='stylesheet'
  type='text/css' href='$href'>"
      return ""
  }


tkt_uuid: 1094294fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: doctools
priority: 7 High
foundin: None
resolution: Fixed
title: Some format cmds mangle text w/ nroff formatter
comment:
  See this sample doctools markup (please note, that the
  first sentence used in the example is in fact out of
  the wild - the snitfaq.man of snit 0.97):

  [manpage_begin foo n 0.97]
  [description]

  In this example, [cmd text] is the [term type] command and
  [cmd .mytext] is the [term instance] command.
  Some other explanations.

  [manpage_end]

  Processed with mpexpand, this nroff is generated:

  '\"
  '\" Generated from file foo.man' by tcllib/doctools
  with format 'nroff'
  '\"
  .so man.macros
  .TH "foo" n 0.97  ""
  .BS
  .SH "NAME"
  foo \-
  .SH "DESCRIPTION"
  In this example, \fBtext\fR is the \fItype\fR command and
  \fB.mytext\fR is the \fIinstance\fR command.
  Some other explanations.

  Viewed with man (at least under linux, man 2.3.19) the
  text out of the source line starting with [cmd .mytext]
  is not shown.

  It is important, that the line in the document source
  starts with [cmd] and that the argument given to [cmd]
  starts with a dot (as widget names do, which makes it
  not so unlikely, that that happes, as the real life
  example shows); if [cmd] is used somewhere in the line,
  the displayed man page looks OK, even if the argument
  given to [cmd] starts with a dot.

  It's apparently the line starting \fB. which confuses
  groff. (This is just a guess, my nroff is so rusty, I
  hardly remember nasty little details.) 

  The [emph], [strong], [arg], [var] (and eventually
  other formatting commands) have the same problem, if
  used at the start of a line in the document source -
  probably every markup, which is possible in continuous
  text, which ends up using nr_bld, nr_ul and nr_bolds
  (at least) out of _nroff.tcl.


tkt_uuid: 1060353fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ldap
priority: 5 Medium
foundin: None
resolution: Invalid
title: ldap::search problem with spaces in filter specs
comment:
  The original report is
  http://bugs.activestate.com/show_bug.cgi?id=34774

  Running Active State Tcl 8.4.7 on Windows 2000 server.

  Problem with ldap package in tcllib 1.6. Ldap search
  does not pick up CNs with space in the CN name.

  % set tcl_version
  8.4

  % info patchlevel
  8.4.7

  % package require ldap
  1.2

  Ldap search does not pick up CNs with space in the name.

  TestCase.

  Search with "General*" works.

  % ldap::search $donnelly "o=HBF" "cn=General*" {cn}
  {{CN=General Management,O=HBF} {}}

  Search with "General Managemernt" fails.

  % ldap::search $donnelly "o=HBF" "cn=General Management" {}
  % 

  The filter string needs to be enclosed in "{}" or a list.

  % set f [ list "cn=General Management" ]
  {cn=General Management}

  (bin) 244 % ldap::search $donnellyServer "o=HBF" $f {cn}
  {{CN=General Management,O=HBF} {}}

  Doco may need to be updated.


tkt_uuid: 1739372fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: comm
priority: 5 Medium
foundin: None
resolution: Fixed
title: comm_wire unclarity
comment:
  The specification of the Basic Message Layer (BTW, why 
  isn't that just the Message Layer?) says:

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

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

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


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


tkt_uuid: 765667ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 4
foundin: None
resolution: Fixed
title: Backward tabbing over ComboBox needs 2 tabs.
comment:
  package require BWidget

  entry .w1
  ComboBox .w2
  entry .w3

  pack .w1 .w2 .w3
  focus .w1

  While 'tabbing forward' over the entries (with the Tab
  key), only one tab is needed, to leave the ComboBox
  (.w2) and to have the focus on .w3. While 'tabbing
  backward' (with Shift-Tab), there are two Shilft-Tab
  events necessary, to go from .w2 to w1. 

  Expected behaviour: For backward tabbing, only one
  Shilft-Tab is needed, to go to the next (previous) widget.


tkt_uuid: 3316505fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: simulation::random
priority: 7 High
foundin: None
resolution: Fixed
title: chi-squared is wrong
comment:
  The variable y in the generation of chi-squared randon numbers is independent of loop counter or itself from previous iterations.
  I.e. after the loop we have only the last y of the last iteration.

  According to
  http://www.dsplog.com/2008/07/28/chi-square-random-variable/

  y should be a sum instead, i.e. instead of

      set y [expr {$r * $r}]

  it should be

      set y [expr {$y + $r * $r}]


tkt_uuid: 1838731fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math :: statistics
priority: 5 Medium
foundin: None
resolution: Fixed
title: Pretty quick inverse normal cdf
comment:
  Hello,

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

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

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

  Eric


tkt_uuid: 472259ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: cmdline
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: getoptions -- help or error?
comment:
  In the ::cmdline::getoptions procedure, there is no
  way to differentiate between a user who wants help
  and passes a -? or -help option, and a user who has
  entered an unknown option.  In both cases, the
  getoptions proc calls
      error [cmdline::usage $optlist $usage]

  I would suggest the attached patch which:
  1. changes [error] to [return -code -1] if the user
     wants help, to differentiate from a real error
  2. changes the error string if a real error
     occurred.


tkt_uuid: 1570938fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Fixed
title: tkchat - main window pops up for msgs in 1-1 chat window
comment:
  I recently updated to v 1.349 of the tkchat.
  Now that I started to use the 'chat' feature for 1-1
  talks I noticed that when messages arrive in the
  subordinate chat window tkchat blinks and pops up the
  main window. The only way to see that it was the chat
  window which has the message is the '*' which is added
  to its title.


tkt_uuid: 882154ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: dns
priority: 5 Medium
foundin: None
resolution: Fixed
title: No support for reverse lookups in dns
comment:
  The dns package provides no assistance in doing reverse
  lookups.
  Try
  set tok [dns::resolve d.c.b.a.in-addr.arpa -type PTR]
  lindex [dns::Decode $tok] 3
  and get the rdata for the name.

  This can be auto detected by regexp {[\d.]+} $query


tkt_uuid: 1540261fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: Installation
priority: 9 Immediate
foundin: None
resolution: Fixed
title: dont reflect new sak interface
comment:
  In Makefile.in is dont reflected new sak interface

  simple patch for instalation here:

  --- Makefile.in 2005-09-28 06:51:19.000000000 +0200   
                           
  +++ Makefile.in-patched 2006-08-13 17:13:09.000000000
  +0200                     
  @@ -96,17 +96,17 @@                                   
                           
                                                        
                           
                                                        
                           
   html-doc:                                            
                           
  -       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  html                       
  +       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  doc html                   
   nroff-doc:                                           
                           
  -       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  nroff                      
  +       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  doc nroff                  
   tmml-doc:                                            
                           
  -       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  tmml                       
  +       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  doc tmml                   
   wiki-doc:                                            
                           
  -       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  wiki                       
  +       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  doc wiki                   
   latex-doc:                                           
                           
  -       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl` ps
                          
  +       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  doc ps                     
   list-doc:                                            
                           
  -       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  list                       
  +       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  doc list                   
                                                        
                           
   check:                                               
                           
          $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  validate                   

  thanks
  wohnivec@dix.cz


tkt_uuid: 3612359fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: lexnormalize ignore leading ../
comment:
  % package require fileutil
  1.14.5
  % fileutil::lexnormalize ../toto
  toto
  % fileutil::lexnormalize ../../toto
  toto
  % 

  Seems wrong to me... I made a correction:
  % fileutil_lexnormalize ../toto
  ../toto
  % fileutil_lexnormalize ../../toto
  ../../toto
  % fileutil_lexnormalize .././.././toto
  ../../toto
  % 


tkt_uuid: 1002844fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: None
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Bwidget's LabelEntry won't insert
comment:
  When using BWidget 1.7 (from within ActiveTcl 8.4.5-
  7), the following wish script failed at the last command:

  package require BWidget
  pack [Entry .a]
  .a insert insert "testing 1"
  pack [LabelEntry .b]
  .b insert insert "testing 2"

  with an error message:
  invalid command name "LabelEntry::insert"

  According to the document of LabelEntry/BWidget, it 
  (very similar to Entry) say:

  LabelEntry is a widget composed of LabelFrame widget 
  containing an Entry widget. Tk entry command can also 
  be used on LabelEntry widget.

  Meaning "insert" should be supported by LabelEntry, but
  it is not in BWidget 1.7. I didn't have this problem in 
  earlier version.

  Jou


tkt_uuid: 733407ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: csv
priority: 5 Medium
foundin: None
title: Please extend tcllib ::csv for multi-line records
comment:
  From comp.lang.tcl, the following interaction occurred.

  > According to Andreas Kupries  <akupries@shaw.ca>:
  > : The
  > :higher level routines (split2*, read2* from a
  channel) however
  > :unfortunately do assume that one record == one line
  and thus bust it.
  > 
  > Is there a way that these could either be extended,
  or that parallel
  > commands able to deal with multiple lines could be
  developed?

  Maybe. Well, at least parallel commands should be
  possible, but 
  they
  will need some sort of extended parser, i.e. read the
  whole channel,
  then parse the whole string into records and split
  records, without
  regarding to lines. I am currently unsure if the
  low-level split will
  return an error if it sees an incomplete record or if
  it will do a
  best-effort of generating something.


  The point is this - the lower level csv commands , with
  appropriate settings (which may need documenting) can
  read and process multiline records.

  However, the higher level read2matrix, etc. procs
  appear to have some built in limitations with respect
  to newline terminated records.


tkt_uuid: 3141584fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: units
priority: 5 Medium
foundin: None
resolution: Fixed
title: units::convert bug (when value is zero)
comment:
  tcllib version 1.1.2

  If 0 is specified as source value, units::convert regards it as (blank value + source units). As a result, it returns 1.0 * scale.

  For example,
  ::units::convert 0.0cm cm; #=> 0.0 (Correct!)
  ::units::convert 0cm cm; #=> 1.0 (Wrong! The same result as ::units::convert cm cm)
  ::units::convert 0cm mm; #=> 10.0 (Wrong! The same result as ::units::convert cm mm)


tkt_uuid: 475018ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: uri
priority: 5 Medium
foundin: None
resolution: Duplicate
title: interaction missing between uri and ftp
comment:
  when one invokes uri::geturl
  ftp://ftp.someplace.com/pub/tcl/stuff.gz
  you get an error because ftp doesn't define a "geturl"
  in all lower case characters.

  Also, the uri::split creates a value of "pwd" when
  "passwd" would be more obvious - pwd means print
  working directory in ftp:: for instance!


tkt_uuid: 2123513fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: csv
priority: 5 Medium
foundin: None
resolution: Fixed
title: missing protections from empty $sepChar
comment:
  % package require csv
  0.7
  % package require struct
  2.1
  % csv::split2matrix [struct::matrix] fubar {}
  couldn't compile regular expression pattern: invalid escape \ sequence
  % csv::split2queue [struct::queue] fubar {}
  couldn't compile regular expression pattern: invalid escape \ sequence

  Likewise for the read2* variants.

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


tkt_uuid: 772461ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
title: snit: Allow masking of options (undefine)
comment:
  I wrote a 'mklabel' (adaptor) which gets
  its information from a metakit view/cursor. It 
  has a new
  option, handled in the megawidget, and uses 
  the label's
  -text and -textvariable to set the data.

  I don't want the megawidget to expose -text, 
  nor
  -textvariable. I currently have to alternatives 
  for doing so:

  1)List all options of the label we expose 
  and
  delegate them individually.

  - Long list, error prone, break when 
  label gets more
    options (= maintenance problem).

  2)Delegate option * and define -text -
  textvariable
  on the megawidget level, with 
  onconfigure/oncget
  as no-ops.

  - Still exposes the variables, although 
  as nulls.
    Setting them has no effect, reading 
  returns empty
    string

  I would like to be able to 'undefine' an option. 
  Causing the
  megawidget to know: This option is illegal, not 
  defined for
  the megawidget, nor must it be delegated.

  Then I would be able to

  undefine -text
  undefine -textvariable
  delegate option * to hull

  for my label, making it safe against unwanted 
  manipulation of
  the contents.


tkt_uuid: 1018625fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: htmlparse
priority: 5 Medium
foundin: None
resolution: Duplicate
title: htmlparse: hex entities not mapped
comment:
  % ::htmlparse::mapEscapes "do you see a question mark 
  &#x[format %x [scan ? %c]];"
  do you see a question mark &#x3f;
  %

  hex form {&#x[0-9a-fA-F]{1,4};} not respected


tkt_uuid: 1408807fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: asn
priority: 5 Medium
foundin: None
resolution: Fixed
title: Unversioned dependency on package log
comment:
  asn package depends on package log from tcllib.
  Current version of package doesn't work with log 1.0.2
  (as distributed with tcllib 1.4). 

  This can cause problem when I use last version of asn
  package from CVS, and rely on log package from system
  provided tcllib.

  I think that usage of log package can be removed from
  asn altogether, since it is not essential for operation
  of th e package, and needed only for debugging purpose
  (which is now covered by test suite), but at least
  particular working version should be required. 

  1.2 (from tcllib 1.7) would definitely do, and may be
  even 1.1, but I don't have machine with 1.1 handy


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: 1371186fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib
priority: 5 Medium
foundin: None
resolution: Fixed
title: "make check" fails for tklib
comment:
  A bug in sak.tcl is causing "make check" to fail with
  an error:

  3: Consistency of package versions ...
  ------------------------------------------------------
    Indexed, no provider:           widget::all
  can't read "::pf(ctext_tcl)": no such element in array
      while executing
  "format "%-*s | %s" $maxl $p $::pf($p)"
      (procedure "validate_versions_cmp" line 14)
      invoked from within
  "validate_versions_cmp ip pp"
  ...

  Looks like a typo where '::pf' should be 'pp'

  Attached is a patch to fix this problem.


tkt_uuid: 1610330fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: dns
priority: 5 Medium
foundin: None
resolution: Accepted
title: DNS: Asynchronous connect to server
comment:
  Currently DNS tcllib module uses synchronous connection to DNS server when TCP is using.

  Sometimes server admins close TCP port 53 and even drop all TCP packets addressed to this port. When Tcl/Tk application connects to such a server it becomes irresponsible until TCP connect timeout reaches.

  Attached patch makes ::dns::resolve using asynchronous socket connect.


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: 781652ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: Selection display bug in BWidgets Listbox
comment:
  When using a BWidgets Listbox, clicking on an item
  selects it, and highlights the text (that's normal). 
  However, clicking on other items does not remove the
  highlights from previous selections.  It is quickly
  possible to fill the listbox
  with apparently selected items.  Very confusing.

  The problem is located in ListBox::_redraw_selection:

              set id [eval [list $path.c create
  rectangle] $bbox \
        [list -fill $selbg -outline $selbg \
        -tags [list [list sel s:$item]]]]

  This is one [list] too many. Changing this line to:

              set id [eval [list $path.c create
  rectangle] $bbox \
        [list -fill $selbg -outline $selbg \
        -tags [list sel s:$item]]]

  solves the problem. 


tkt_uuid: 1450231fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math :: linearalgebra
priority: 5 Medium
foundin: None
resolution: None
title: ::math::linearalgebra::transpose not exported
comment:
  it is necessary to add

  namespace eval ::math::linearalgebra {
  namespace export transpose
  }

  to package math::linearalgebra


tkt_uuid: 3610485fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: snit
priority: 1 Zero
foundin: None
resolution: Not Applicable Here
title: Validate option default at instance creation
comment:
  When a new instance is created it would be nice if the option's default value could be checked using the -validatemethod specified.


tkt_uuid: 764702ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Fixed
title: unknown charset 'utf-8' in ::mime::word_decode
comment:
  The UTF-8 charset is currently not handled by
  ::mime::word_decode and related procs:

  tclsh8.4% ::mime::word_decode =?utf-8?Q?H=C3=BCrz?=
  unknown charset 'utf-8'

  Suggested change:

  Add UTF-8 mapping to encList in mime.tcl:
  diff -c1 mime-1.33.tcl mime.tcl
  *** mime-1.33.tclWed Jul  2 17:31:44 2003
  --- mime.tclWed Jul  2 17:58:16 2003
  ***************
  *** 183,185 ****
                unicode "" \
  !             utf-8 ""]
    
  --- 183,185 ----
                unicode "" \
  !             utf-8 UTF-8]
    


tkt_uuid: 1531199fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: add color chooser to font selector
comment:
  Hi,

  for the aMSN project we modified the bwidget library a
  bit, one of the changes that might be nice to include
  upstream is the addition of a color chooser in the font
  selector. The patch attached is how this is done in the
  modified amsn bwidget, it also adds an option to not
  show the size selector (this is because in msn chats
  you have no way of specifying the size of you outgoing
  messages)

  I hope these changes can be done upstream.

  Kind regards,

  Sander Hoentjen


tkt_uuid: 1581075fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: units
priority: 5 Medium
foundin: None
title: Feature submission: metric-imperial unit conversion
comment:
  I have recently created a simple set of procedures to
  convert imperial units of measurement to metric units
  and vice versa. I think it would be a useful addition
  to TCLLIB.

  Please see
  http://www.toxicantidote.net/scripts/tcl-metimp.shtml
  for details of usage and file download.


tkt_uuid: 1039961fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: htmlparse
priority: 5 Medium
foundin: None
resolution: Fixed
title: htmlparse - numeric character references with leading 0s
comment:
  Numeric character references with leading zeros are
  misparsed as octal.  For example, &#038;  (in case the
  SF bug tracker mangles that, it's: "ampersand, pound
  sign, zero, three, eight, semicolon").

  Attached patch fixes the problem and adds a test case.


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: 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: 481022ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: matrix
priority: 5 Medium
foundin: None
title: new matrix related methods requested
comment:
  1. Ability to tell matrix to print itself out (ala
  parray)

  2. Ability to give matrix a term to search for, with
  ability to either search any column of a row, or
  particular columns (or column ranges)


tkt_uuid: 995545ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: record
priority: 5 Medium
foundin: None
resolution: Out of Date
title: package require struct::record does not work
comment:
  as described above 

  package require struct::record
  can't find package struct::record


  however

  package require struct
  namespace import ::struct::record

  does work

  this does not match the documentation!!!

  tcllib1.6


  from garyt@bmb.leeds.ac.uk


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: 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: 2779581fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: ldap
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: sid2SDDL function
comment:
  For converting sids to their text SDDL representations for further use in searches and/or saving to databases etc.


tkt_uuid: 688227ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: Notebook left side not drawn (0 borderwidth)
comment:
  In a NoteBook widget, if the canvas has 0 borderwidth
  (perhaps set by option database), the left side of the
  notebook will be drawn at -1 x coordinate and will not
  be visible. This patch fixes that by never allowing the
  left side to be drawn at an x coordinate that is negative.

  This bug was found in the bwidget1.5 distribution as
  released with ActiveTcl 8.4.1

  - Bryan Schofield


tkt_uuid: 503471ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Fixed
title: ftp GET to non-existent directory
comment:
  Hello,

  i started to use ftp package and i have problems with
  this situation:

  set fd [ftp::Open host user passwd]
  ftp:Get $fd file /non-existent-directory

  After timeout it hangs for a long period of time and
  exists with a lot of messsages:

      Error in bgerror: invalid command name "bgerror"
  bgerror failed to handle background error.
      Original error: can't wait for variable
  "::ftp::ftp2(state.data)":  would wait forever
      Error in bgerror: invalid command name "bgerror"
  bgerror failed to handle background error.
      Original error: can't wait for variable
  "::ftp::ftp2(state.data)":  would wait forever
      Error in bgerror: invalid command name "bgerror"


tkt_uuid: 3041989fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: cmdline
priority: 7 High
foundin: None
title: Enhance documentation and help message
comment:
  The procedure "getoptions" aparently always understands "--" as "end of flags".

  IMHO
  - this should be stated in the documentation
  - this should be stated in the generated help message. The "-? /-help" automatically takes two output rows so another automatic would not harm.

  Other issue:
  - the format of the return value of the function is not explained in the help: alternating list of index value. The example shows it.

  Thank you,
  Harald


tkt_uuid: 2820851fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Accepted
title: fix dynamichelp issues
comment:
  This patch fixes some issues with dynamic help. One of the issues is that help for a menu sometimes stays visible when the menu is unmapped (on Unix). This is an example script:

  pack [frame .f -width 200 -height 200]
  pack [label .l -textvariable statusvar]
  . configure -menu [menu .m -tearoff 0]
  .m add cascade -label "File" -menu [menu .m.f -tearoff 0]
  .m.f add command -label "New"
  DynamicHelp::add .m.f -type menu -variable statusvar
  DynamicHelp::add .m.f -type menu -index 0 -text "help for New"

  Now click on "File", and then move the mouse cursor upwards (out of the window), and click again. The menu is unmapped, but on Unix, the help stays visible. The patch should fix this.

  Other issues addressed in this patch are:
  - Make "-helpcmd" available also when dynamichelp is included in another widget.
  - Make sure that -helpcmd is always called at global scope (with uplevel #0).
  - Sometimes a <Leave> event may be called twice. Protect against this.
  - When _unset_help is called, the _top widget should only be destroyed when it is a balloon.


tkt_uuid: 772300ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
title: Tiny doc patch for TkTable
comment:
  Looks like this is not the right place to talk about
  TkTable. Whoever gets this request: please assign it to
  Jeff Hobbs.

  In the documentation for TkTable please add in the section
      Embedded Windows
          ...
      -window pathName

  a line like: "When a pathName of "" is specified,
  TkTable ceases to display any widget which might have
  been associated with the cell in question."
  Best regards
  Helmut Giese


tkt_uuid: 991452ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: ftp::Quote should join arguments
comment:
  in ::ftp::Quote arguments are simply reached to the server,
  but this is a tcl list. If list values contain spaces
  or special
  characters, tcl wraps list elements in braces and these get
  handed over to the ftp-server.

  I suggest the following mini-patch, which joins the
  args by spaces:

  --- ftp.tcl.orig        Thu Jul 15 10:42:53 2004
  +++ ftp.tcl     Thu Jul 15 10:38:18 2004
  @@ -2201,7 +2201,7 @@
           return 0
       }
   
  -    set ftp(Cmd) $args
  +    set ftp(Cmd) [join $args " "]
       set ftp(Quote) {}
   
       set ftp(State) quote


tkt_uuid: 501210ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: Patch for: [ #500890 ] Mainframe ...
comment:
  I suppose I'm the culprit for this bug (forgot to
  protect variables when adding the eval). I've attached
  the patch to resolve this below as I couldn't attach it
  directly to the bug report.

  Regards,
     Bastien


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: 714947ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: widget
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: widget: digraph.tcl needs TIP 44 update
comment:
  Doesn't seem to be a Category for
  the "widget" directory of the tcllib
  project repository.

  Anyhow the file

  cvsroot/tcllib/widget/library/digraph.tcl

  calls internal Tk commands by their
  pre-Tk-8.4 names.  This code needs
  an update to work with Tk 8.4.


tkt_uuid: 1765388fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: nmea
priority: 5 Medium
foundin: None
resolution: Fixed
title: nmea library; undefined variable error in ::nmea::read_port
comment:
  In the library modules/nmea/nmea.tcl the procedure read_port is as follows:

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

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

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

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


tkt_uuid: 1377453fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Fixed
title: Key bindings problems on Windows
comment:
  On Windows XP the Num-Lock key appears as MOD1, the key
  binding to bring up the popup menu causes the private
  chat not to popup.


tkt_uuid: 688965ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Accepted
title: better -? help for fileutil::touch
comment:
  the cmdline::getoptions help is a bit bull-headed about
  displaying argv0.  This isn't great for using
  getoptions internally for procs.

  Nevertheless, the fileutil::touch proc could be
  modified to look better

  Now, it looks like:
  $ echo 'package req fileutil; fileutil::touch
  -help'|tclsh
  tclsh options:
   -a                   set the atime only
  ...

  ("tclsh options:"??)

  The attached diff provides:
  $ echo 'package req fileutil; fileutil::touch
  -help'|tclsh
  tclsh : fileutil::touch [options] filename ...
  options:
   -a                   set the atime only
  ...


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: 1472763fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: BWidget ComboBox bug: Parent namespace does not exist
comment:
  I am using Tcl 8.4.12.0 in a quite large application. 
  In the application, BWidgets, among other packages is 
  used. I use the BWidgets ComboBox in several places of 
  the GUI, but encounters problems with one of them. The 
  ActiveState Support crew recommended me to sent the 
  report here after unsuccesfully trying to solve the 
  problem.

  A script combofail.tcl is attached to this failure 
  report.

  Best regards,
  Anders Nyman


tkt_uuid: 928995ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: inifile
priority: 5 Medium
foundin: None
resolution: Duplicate
title: modules/inifile/test.ini ships read-only
comment:
  The file is extracted read-only, but the test script tries to open it 
  read-write (default). 
   
  I think, the default should change to read-only. chmod-ing the 
  file after extraction provides a workaround for the FreeBSD port. 
   


tkt_uuid: 1663970fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: Submitting code for multivar linear regression
comment:
  Hi,

  I have written some code for carrying out multivariate linear regressions. I think it would be a good candidate for tcllib's math::statistics module, and when I posted a version of it to the tcler's wiki, I was asked (by AM & LV) to submit it here.

  I'm attaching a zip file with the following contents:

   - mvlinreg.tcl : The code for the package
   - pkgIndex.tcl : A basic pkgIndex for the submitted code to work as its own package
   - mvlinreg_test.tcl : A single example that exercises the code in a "main path" way (no exceptions are tested)
   - mvlr.man.txt : A simple man page in plain text format (no *roff)

  Some comments:
   - Although I don't offer a test for the wls function directly (it's tested indirectly since it's called from the ols procedure), I've tested it as part of the SWLS code that I posted on the Tcler's wiki, and reproduced published results.
   - For the example included in the zip file, I compared the output from the example against the output for the same data using Excel's "LINEST" function and they match.
   - I'm submitting this using the BSD license, on the understanding that that is the license used for tcllib. But the main point is not BSD - I want to submit the code under a license that is compatible with it being used in tcllib, so let me know if BSD isn't the right choice.

  Thanks!
  Eric


tkt_uuid: 1688650fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: grammar_peg
priority: 5 Medium
foundin: None
resolution: Fixed
title: latest docs not installing
comment:
  when I attempt to install the latest tcllib docs, I get:
  Generating /projects/sprs_lwv/tcl85/man/mann/peg.n
  Doctools Error in macro at line 728, column 0:
  [section {BUGS, IDEAS, FEEDBACK...]
  --> (FmtError) Manpage error (nolistcmd), "section BUGS, IDEAS, FEEDBACK" : Comm
  and not allowed inside of a list.
      while executing
  "::doctools::_format dt \[comment\ \{-*-\ tcl\ -*-\ doctools\ manpage\}\]\n\[man
  page_begin\ grammar::peg\ n\ 0.1\]\n\[copyright\ \{2005\ Andreas\ Kupri..."
      ("eval" body line 1)
      invoked from within
  "eval [list ::doctools::_$cmd $name] $args"
      (procedure "::doctools::DoctoolsProc" line 15)
      invoked from within
  "dt format [get_input $f]"
      (procedure "_man" line 26)
      invoked from within
  "_man grammar_peg nroff n /projects/sprs_lwv/tcl85/man/mann"
      ("eval" body line 1)
      invoked from within
  "eval $guide($m,$type) $m $args"
      (procedure "xinstall" line 4)
      invoked from within
  "xinstall doc nroff n    $config(doc,nroff,path)"
      (procedure "doinstall" line 19)
      invoked from within
  "doinstall"
      (procedure "main" line 11)
      invoked from within
  "main"
      (file "../installer.tcl" line 594)
  gmake: *** [install] Error 1


tkt_uuid: 1896363fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: irc
priority: 5 Medium
foundin: None
resolution: Fixed
title: irc::destroy mentioned in man page doesn't exist
comment:
  The manual page refers to ::irc::destroy to cleanup a connection. That command doesn't exist, it is [$conn destroy] instead


tkt_uuid: 1588808fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: Combobox autocomplete won't turn on/off
comment:
  ## Bug info
  I'm making a tool that has a combobox.  I tried adding
  an option to allow the user to turn autocomplete
  on/off, but it doesn't seem to be configurable after
  it's been created.  (Using Tcl/Tk 8.4.13 with BWidget 1.8)

  The tool does this via the '$path configure
  -autocomplete $value' command, where $path is obviously
  to the combobox and $value is 0 or 1. Doing a cget
  shows the value is changing, but the functionality of
  autocomplete never changes.

  ## Patch info
  I decided to take a peek into the code and found it was
  easy to add.  While testing, I found autopost suffered
  from the same problem so I added it as well.  I'm
  attaching the patch to enable/disable both with the
  configure command.

  The patch was made from combobox.tcl in BWidget 1.8.0.
   Unless there is reason not to, I would appreciate it
  if you would incorporate this patch to make
  autocomplete/autopost configurable.

  HTH,
  Chris


tkt_uuid: 2646568fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: jpeg
priority: 5 Medium
foundin: None
resolution: Accepted
title: jpeg::imageInfo opens files with r+
comment:
  The procedure never needs to write the file -- and really ought not to, of course.

  So, it is wrong for it to open the file with mode r+ -- doing so requires increased permissions (a program is unable to gather imageInfo on a file, that it is not allowed to overwrite), and is otherwise wrong.

  The simple patch is attached -- it will soon be part of FreeBSD's devel/tcllib port.

  Thanks.


tkt_uuid: 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: 2220156fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: snit
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Several questions about Snit objects
comment:
  I have a few questions on Snit objects (see:  http://wiki.tcl.tk/2831 for some details - the example near the end)

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

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

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

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


tkt_uuid: 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: 1695145fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: doctools
priority: 2
foundin: None
resolution: Not Applicable Here
title: doctools - General tree representation as backend API
comment:
  This is 'way out there'-RFE.

  Currently the generic layer of the low-level doctools engine uses textutil::expander to parse the input in general, a checker layer to check that the commands are in the correct order, and then calls the appropriate formatting function in the backend. Sort of like a SAX API for XML processing. The backend gets various events and has to make sense of them, although it can be sure that it will not get events in a bad order.

  Consider to rework the generic layer to create a tree structure representing the document. This tree is then given to the backend for conversion into the output format. Instead of each backend having to pull out the document structure out of the series of events this is done in the generic layer, and the backend's responsibility shrinks to only doing the actual conversion into output.

  There is a drawback. There are backends which are much better served by the event stream, because they do not care about the structure, or at least not very much. Examples of these are:

      Existing:    null, list
      Proposed:    wordlist, semantic

  So, best might be to try and accomodate both, i.e. load the backend, query it for its mode of operation, event stream or document tree, then setup the remainder of the processing pipe.

  Note: This tree-based API is very similar to the general API used in PAGE, i.e. backends based on it could be used by this general text processing tool, and the processing pipe for creating the tree might make a suitable reader plugin for PAGE too.


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: 533788ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Invalid
title: bwidget include synonym problem?
comment:
  I've been trying to read (and understand :-) the
  BWidget's code so I can write my own BWidgets. 

  In proc BWidget::bwidgetinclude the following code is
  present:

      foreach {option optdesc} [array get subclassopt] {
          set subOption $option
          if { (![info exists include] || [info exists
  include($option)]) &&
          ![info exists remove($option)] } {
              set type [lindex $optdesc 0]
              if { ![string compare $type "Synonym"] } {
   <<<< BUG?
                  # option is a synonym
                  ...

  Shouldn't the ! be removed on the string compare. It
  seems like if the option is a synonym the following
  code should be executed.


tkt_uuid: 1532791fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
resolution: Fixed
title: snit2, snit::widget problem
comment:
  When using 'variable' to define components snit 2.0 has
  a problem if the component has delegates set on it, and
  the delegates are defined before the component.

  When trying to create an instance snit crashes with the
  attached stacktrace.

  The reason is that the 'variable' statement coming
  after the delegation cause snit to insert assignments
  to the relevant instance variables, after the delegates
  have set up traces. The trace is triggered, and comes
  ultimatively to RT.ClearInstanceCaches, which accesses
  the internal Snit_instance variable. At a time when
  this variable is not defined yet. This happens a few
  lines later, via installhull.

  The relevant lines in snit2.tcl are 1906, which runs
  the assignments triggering the trace accessing the
  variable, and 1922, where the variable is defined.

  Workarounds for this problem are to either move the
  'variable' declarations before the delegation setup, or
  to use the 'component' command. The latter apparently
  has additional intelligence about delegation which
  prevents it from inserting the additional assignments
  into the generated Snit_instanceVars hook procedure.


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: 1416743fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: fileutil :: magic
priority: 5 Medium
foundin: None
resolution: Fixed
title: fumagic: test suite bugs
comment:
  with -debug 1:

  Module: fumagic
  modules/fumagic/filetypes.test
  - tcllib::testutils 1.0
  - fileutil::magic::rt 1.0
  * fileutil::magic::filetype 1.0
  WARNING: removeDirectory removing
  "/local/src/tcllib/fileTypeTest":
    not created by makeDirectory
  WARNING: removeDirectory removing
  "/local/src/tcllib/fileTypeTest":
    not a directory
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest...
  modules/fumagic/mimetypes.test
  - tcllib::testutils 1.0
  - fileutil::magic::rt 1.0
  * fileutil::magic::mimetype 1.0
  WARNING: removeDirectory removing
  "/local/src/tcllib/fileTypeTest":
    not a directory
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/binaryFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/elfFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/bzipFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/gzipFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/jpegFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/gifFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/pngFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/tiffFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/psFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/pdfFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/epsFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/igwdFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/textFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/scriptFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/htmlFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/xmlFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/xmlWithDTDFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/pgpFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest...


tkt_uuid: 1061207fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Fixed
title: Tcl 8.5a2 breaks test suite
comment:
  the syntax of the "wrong # args"
  error message recently changed
  in Tcl, and as a consequence,
  `make test` for tcllib has
  56 failing tests.


tkt_uuid: 1557268fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: html
priority: 5 Medium
foundin: None
resolution: Fixed
title: TABLE tag case
comment:
  This is a minor but easy thing. In looking through the
  html package there are a couple instances where the
  table tag is being passed back in UPPERCASE when it
  should all come back in lowercase.

  Look into the following procs:

  ::html::tableFromArray
  ::html::tableFromList

  As far as I can tell everything else is passed back as
  lowercase.


tkt_uuid: 970199ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: MessageDlg::create Bug and Fix
comment:
  BUG:

  The dialog type abortretryignore has no default button.

  In the demo this results in a tcl-error:

  bad -default value "": must be abort, retry, ignore, ok, 
  cancel, no, or yes
      while executing
  "tk_messageBox -icon info -default {} -message 
  {Message for MessageBox} -type abortretryignore -title 
  Information -parent ."
      ("eval" body line 1)
      invoked from within
  "eval [list tk_messageBox] [array get tkMBoxArgs]"
      (procedure "MessageDlg::create" line 81)
      invoked from within

  ... (further is uninteresting)


  FIX:

  add a default button even for type abortretryignore:
  (line 56 and 57 in messagedlg.tcl):

      switch -- $type {
          abortretryignore {set lbut {abort retry ignore}; 
  set defb 0 }

  regards
  Vera


tkt_uuid: 948063ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: MenuFrame: no 'getmenustate' method
comment:
  Apparently, there is not way, to query the state of a
  menu tag.

  The state of menu tags could be set with:

  $mainframe setmenustate tag state

  I would be very handy, to be able to query the state of
  a tag. Something like a getmenustate method with syntax
  like

  $mainframe getmenustate tag

  returning the state. Or enhanced setmenustate syntax

  $mainframe setmenustate tag ?state?

  If the optional new state is omitted, then the current
  state of the tag is returned. (And emtpy string for not
  knows tags? Or error? Curently,  setmenustate simply
  ignores unknown tags - which shuld be mentioned in the
  documentation.)

  The current setmenustate implementation in
  mainframe.tcl still includes the old tag state
  mechanism commented out. I agree, that the current
  state system is better. Shouldn't this code be removed?

  The documentation should mention at one place, that
  only state "disabled" disables the tag and that every
  other state enables it.


tkt_uuid: 1482926fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: Add /eval to tkchat to be able to try out one-liners
comment:
  I have tkchat run most of the time and sometimes I just 
  want to test 1 liners like regexp/lsearch switches/
  string is ... and so on. I then tend to run tkcon, but 
  I guess it would be easier to just check in tkchat.

  A simple implementation is as follows (could be 
  expanded to distinct break/continue/return/error):

  proc ::tkchat::checkCommand { msg } {
      switch -re -- $msg {
        (...)
  {^/eval\s} {
      set evalCode [catch [string range $msg 6 end] 
  evalResult]
      switch -- $evalCode {
  0 {
      if {![string equal $evalResult ""]} {
  tkchat::addMessage .txt "" "" 
  "Result:\t$evalResult" ACTION end [clock seconds]
      }
  }
  default {
      tkchat::addMessage .txt "" "" "Error 
  ($evalCode):\t$evalResult" ACTION end [clock seconds]
  }
      }
  }


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: 1245508fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ntp
priority: 5 Medium
foundin: None
resolution: Fixed
title: NTP handling wrong
comment:
  The handling of (s)ntp by the ntp package is wrong; you
  can't talk ntp (these days) over tcp and you certainly
  can't use 'abcd' as a request message!

  And the package claims to be the time package for
  [package require], despite being in the ntp dir within
  the distribution.


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: 638075ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: uri
priority: 5 Medium
foundin: None
resolution: Accepted
title: JoinHttpInner doesn't deal with fragment
comment:
  tclsh8.3 [~/workshop/tcllib/modules/uri]uri::split 
  http://tcl.apache.org/websh/faq.ws3#generic

  fragment generic port {} path websh/faq.ws3 scheme http
  host tcl.apache.org query {}

  uri::join fragment generic port {} path 
  websh/faq.ws3 scheme http host tcl.apache.org query {}

  http://tcl.apache.org/websh/faq.ws3

  The fragment is gone!

  This patch fixes that, and adds a test.


tkt_uuid: 1316052fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math
priority: 4
foundin: None
resolution: None
title: math/roman.test prints extra info
comment:
  roman.test includes gratuitous puts commands,
  cluttering the log.  It doesn't need to say "Testing
  library roman" or "Using Pkg: Tcl 8.4"


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: 570227ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Works For Me
title: crc32 not like zlib crc (with patch)
comment:
  This may be a moot point, but...

  I am using the pure Tcl version of the crc32 package to 
  calculate crc's to match with crc's created from the zlib 
  version of crc code.  I found that the following change 
  would correct the Tcl crc32 to return the same value as 
  the zlib c code returns.  In the procedure crc::Crc32_tcl, 
  change the inital setting of crcval as follows:

       set crcval [expr {$seed ^ 0xFFFFFFFF}]

  I'm not using Trf so I don't know what crc code it uses or 
  if this change breaks that compatibility.  I had figured 
  this crc package was the same as zlib; and I expect 
  others may too.

  Hope this helps


tkt_uuid: 1633074fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: app: tkchat
priority: 5 Medium
foundin: None
resolution: Accepted
title: tkchat extra features
comment:
  Hi,

  This patch is a diff of tkchat.tcl (1.356) and the modified tkchat.tcl with following features:

  New commands:
  -------------

  * /wikip <text>

  Search wikipedia with specified text

  * /wikid <text>

  Search Wiktionary with specified text

  Updated commands:
  -----------------

  * /googlefight

  Web interface changed

  New feature:
  ------------

  * Highlight and raise alert for specified subjects

  Specify subjects as 'string match' patterns. If a message matches a specified subject, it will be colored (background yellow by default). The subjects are saved in the tkchat resource file. The background color is adjustable through the colors dialog. It's also possible to trigger an alert when a message matches a subject.

  Kind regards,

  Jos.


tkt_uuid: 837818ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Quoting module
comment:
  It'd be very nice if we could have a module to help
  with those trickier quoting tasks that newbies get
  slightly wrong.  Here's some example code adapted from
  a discussion on the chat...

  proc makeMap {} {
     set chars {{[\"$#; ]}}
     append chars \t
     set map [list \n \\n]
     foreach c [split $chars {}] {lappend map $c \\$c}
     return $map
  }

  variable addBackslashMap [makeMap]
  proc backslashQuote {string} {
     variable addBackslashMap
     string map $addBackslashMap $string
  }
  proc braceQuote {string} {
     list $string
  }

  There's probably other things that could be added too.


tkt_uuid: 2988486fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: cmdline
priority: 5 Medium
foundin: None
resolution: Fixed
title: cmdline with ::argv does not update ::argc
comment:
  I realize this is not strictly a cmdline bug because it can work on any list of arguments.  However, I realized that if the ::argv global varname is passed then ::argc will not be updated, even though $::argv changes.

  I can see two ways to address this:
  1. simply note it in the documentation.
  2. add a special case, if the argvVar is "::argv", then "set ::argc [llength $argv]"


tkt_uuid: 1042613fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: Can't drag into an emtpy tree widget
comment:
  A drag to a tree widget does not work, if the
  destination tree doesn't have any nodes. 

  This script illustrates the problem:

  package require BWidget

  proc dropcmd {dest source dropInfo operation dataType
  data} {
      set sourceTree [winfo parent $source]
      $dest insert end root $data \
           -text [$sourceTree itemcget $data -text]
      $sourceTree delete $data
  } 

  set t1 [Tree .t1 -dragenabled 1]
  $t1 insert end root aNode -text "A sample Node"

  set t2 [Tree .t2 -dropenabled 1 \
              -dropovermode w \
              -dropcmd dropcmd]
  # If the destination tree has at least one node,
  everything works
  # $t2 insert end root anotherNode  -text "Another node"

  pack $t1 $t2 -side left

  If the destination tree doesn't have a node, the
  dropcmd will not be called. As far, as I've debugged
  the problem, the reason, that the dropcmd isn't called,
  is in  Tree::_drop_cmd:
      if {[llength $data(dnd,node)]
          && [llength [set cmd [Widget::getoption $path
  -dropcmd]]]} {
          return [uplevel \#0 $cmd \
                      [list $path $source $data(dnd,node)
  $op $type $dnddata]]
      }
  If the destination tree doesn't have a node,
  $data(dnd,node) is empty (but should be "widget", as
  far, as I can tell)


tkt_uuid: 1492211fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 7 High
foundin: None
resolution: Out of Date
title: NoteBook Tab Deletion Problems
comment:
  If you have 6 notebook tabs, and start deleting them 
  from the middle to the end (e.g. index 2 -> end), the 
  tabs will either not reorganize properly and the 
  final tab will throw an exception.

  If a middle tab is removed, the tabs should 
  automatically slide-down to take it's place.


tkt_uuid: 1280529fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: inifile
priority: 5 Medium
foundin: None
resolution: Fixed
title: Bug in Tcl
comment:
  % package require inifile
  0.1
  % set ::data 45
  45
  % set ini [::ini::open file.ini]
  can't array set "data": variable isn't array


  Why? See:
  http://sourceforge.net/tracker/index.php?func=detail&aid=1280497&group_id=10894&atid=110894

  It should be :
  namespace eval ::ini:${...} {
    variable data
    variable ....
    ....
  }

  a-tcl@freakmail.de


tkt_uuid: 1310038fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: A Category Is Missing
priority: 5 Medium
foundin: None
resolution: Fixed
title: tie file implementation broken
comment:
  The following script:

      package require tie
      set a(y) 1
      set a(z) 3
      tie::tie a file a.save
      set a(aa) 2
      set a(ab) 3
      set a(ac) 4

  Gives me an error:

      can't set "a(ab)": can't unset "cache": no such
  variable
          while executing
      "set a(ab) 3"


tkt_uuid: 809821ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Accepted
title: tkchat 1.119 user info editor problem
comment:
  The tkchat user info editor dialog fails on my user
  info because some of it looks like Tcl code.  :^)

  Here's a patch to fix that.


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: 858218ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: errors thrown with no explanation
comment:
  This new code:


              # get return code, check for multi-line text
              
              if {[regexp -- "^-?(^[0-9]+)( |-)?(.*)$"
  $bufline all rc multi_line msgtext]} {
  set errmsg "C: Internal Error @ line 255.
  Regex pattern not matching the input "$bufline""
  if {$VERBOSE} {
      DisplayMsg $s $errmsg control
  }
      } else {
  set buffer $bufline

  # multi-line format detected ("-"), get all the lines

  is throwing errors on both ftp servers I commonly use
  (ftp.santafe.edu and ftp.ucsd.edu).  Can the error
  message be made more information ('regex pattern didn't
  match' isn't very helpful -- what is it expecting? how
  did the observed string differ from that?).


tkt_uuid: 652140ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: smtpd
priority: 5 Medium
foundin: None
resolution: Rejected
title: HELO and EOL cumulative patches
comment:
  I've noticed a small bug in smtpd triggered by MS
  Outlook. Sometimes, when you send a PDF file attached
  to a message, Outlook sets the MIME type to
  "quoted-printable" and the file is not base-64 encoded.

  Since we read one line at a time, lines ending with
  CR+LF will be converted by TCL in LF only; this causes
  errors
  with both Acroread and ghostview.

  The patch splits the DATA section on LF only; CR is
  considered a normal character; includes (and thus
  obsoletes) the previously submitted patches for 
  hostname in HELO, QUIT, etc...


tkt_uuid: 981605ffffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: calendar
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: BWidget Calendar Dialog
comment:
  This adds support for a calendar dialog, very similar
  to the iwidget version.  The dialog operates in one of
  two modes: dialog or popup.  The latter is just a
  special case of the former, but returns after one date
  is selected and offers no confirmation or cancellation
  buttons.  An embeddable method that fires virtual
  <<CalendarSelection>> events is on the TODO list.

  Also adds a manual page to the BWman directory, and
  files to the demo directory are modified to include the
  calendar as either a separate note book page or as a
  sub frame of the Dialogs page.  I couldn't decide where
  it would fit best.


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: 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: 1720331fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: list
priority: 5 Medium
foundin: None
resolution: Fixed
title: lcsInvertMerge gives incorrect result
comment:
  The simple example:

  % set lcs [struct::list longestCommonSubsequence {a b c d e} {a f c g e}]
  {0 2 4} {0 2 4}
  % struct::list lcsInvertMerge $lcs 5 5
  {unchanged {-1 0} {-1 0}} {changed {1 1} {1 1}} {changed {3 3} {3 3}}

  yields an incorrect result.  The content of $lcs is correct; {0 2 4} in both lists is the common subsequence.  But the expected output would have been

  {unchanged {0 0} {0 0}} 
  {changed {1 1} {1 1}} 
  {unchanged {2 2} {2 2}} 
  {changed {3 3} {3 3}}
  {unchanged {4 4} {4 4}}


tkt_uuid: 621178ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: BWidget error in Tree under 8.4
comment:
  The following code under ActiveTcl 8.4.0.1 under Windows:

  package require BWidget

  pack [Tree .t]

  .t insert end root foo -text Foo
  .t selection set foo
  .t delete foo


  Yields the result:

  .t selection set: Cannot select unknown node "foo".
      while executing
  "selection .t set foo"
      ("eval" body line 1)
      invoked from within
  "eval selection $path set $sel"
      (procedure "Tree::delete" line 18)
      invoked from within
  "Tree::delete .t foo"
      ("eval" body line 1)
      invoked from within
  "eval Tree::$cmd .t $args"
      (procedure ".t" line 1)
      invoked from within
  ".t delete foo "

  This only occurs if the deleted node is selected.  If
  you remove the "selection set" line, everything works fine.


tkt_uuid: 1076403fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: html
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: html: suggestion for a convenience "tag wrapping" proc
comment:
  In the current version of html, wrapping text with html 
  tags is a bit cumbersome in a lot of cases:

  Example:

  puts "[::html::openTag p]"
  puts "This is my paragraph"
  puts "[::html::closeTag]"

  As a convenience for wrapping text or other data inside 
  of tags, I would like to suggest the addition of a 
  general ::html::wrapTag command that would work as 
  follows:

  puts [::hml::wrapTag p "This is my paragraph"]

  which would output the following:

  <p>This is my paragraph</p>

  puts [::html::wrapTag p "foo=bar" "This is my 
  paragraph"]

  would output:

  <p foo=bar>This is my paragraph</p>

  and so on.

  There are some specialized commands for wrapping 
  specific tags around data, such as ::html::cell 
  or ::html:row, but the above is a suggestion for a more 
  general command that would wrap data in with a 
  specified arbitrary tag.


tkt_uuid: 416955ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: profiler
priority: 5 Medium
foundin: None
resolution: None
title: Division by zero in stats procedure
comment:
  If called with all arguments to zero (presumably a 
  procedure that was never used), the stats procedure 
  will produce a division by zero error when computing 
  the covariance (cov).  I propose here a fix, but it 
  needs probably more thinking to make it into the CVS:

  proc ::profiler::stats {args} {
       set sum      0
       set mean     0
       set sigma_sq 0
       set sigma    0
       set cov      0
       set N [ llength $args ]
       if { $N > 1 } { 
          foreach val $args {
             set sum [ expr { $sum+$val } ]
          }
          set mean [ expr { $sum/$N } ]
          foreach val $args {
             set sigma_sq [ expr { $sigma_sq+pow(($val-
  $mean),2) } ]
          }
          set sigma_sq [ expr { $sigma_sq/($N-1) } ] 
          set sigma [ expr { round(sqrt($sigma_sq)) } ]
  if { $mean == 0 } {
      set cov 0.0
  } else {
      set cov [ expr { (($sigma*1.0)/$mean)
  *100 } ]
      set cov [ expr { round($cov*10)/10.0 } ]
  }
       }   
       return [ list $mean $sigma $cov ]
  }


tkt_uuid: 1060245fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 9 Immediate
foundin: None
resolution: Fixed
title: bee: Corrupt file in CVS
comment:
  File
    modules/bee/examples.torrent
  is corrupt on Windows (missing -kb flag; use 'cvs
  admin' to fix.)


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: 724730ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: struct :: graph
priority: 7 High
foundin: None
resolution: Not Applicable Here
title: Behaviour of struct::graph walk
comment:
  The current implementation (tcllib1.3) of ::struct::graph:
  :_walk with options -order both -type dfs create a forest 
  of disjunct predecessor subgraph trees [1] .




  [2] Says that if G is a graph G=(V,E) then we can do one 
  of three possibilities:


  1. No restrictions (walk)


  2. Each edge E of G traversed at most once. (trail)


  3. Each vertex V visited at most once (path)




  In tcllib a vertex is a node and an edge is an arc.




  I think the current implementation of walk is actually a 
  path as each node is visited only once. In order to 
  implement a walk as defined in [2] an extra line 1834  
  array unset visited $node could be inserted.




  See http://mini.net/tcl/8787 for more info.




  Could the walk proc be extended to cover all three 
  cases?




  [1] Cormen, Leiserson, Rivest: Introduction to Algorithms, 
  p477


  [2] Kreystig, Advanced Engineering Mathematics, Sixth 
  Edition, p1139


tkt_uuid: 2155034fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: aes
priority: 8
foundin: None
resolution: Fixed
title: Sign overflow in AddRoundKey
comment:
  There is a sign overflow in AddRoundKey that can cause 
  a 'integer value too large to represent' error from EncryptBlock or DecryptBlock.  When expr{} xors together a positive & negative number it preserves the sign and may extend the values to 64 bit.

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

  To reproduce:
  --
  package require aes

  set keyhex c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558
  set texthex 46f2fb342d6f0ab477476fc501242c5f

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

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

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


tkt_uuid: 619548ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Fixed
title: mime::field_decode is case sensitive
comment:
  Hi there,

  Looks like mime::field_decode does not work with some
  encodings written in Lowercase. Upercase is working
  fine though.

  This does not seem to be platform-specific (tested on
  Unix and WIn2k).

  Here is some example code:

  --cut--
  #!/usr/bin/tclsh

  package require mime

  # this works fine
  puts [mime::field_decode =?ISO-8859-1?B?5Pb8IN8=?=]
                   
  # this does not work
  puts [mime::field_decode =?iso-8859-1?B?5Pb8IN8=?=]
  --cut--


tkt_uuid: 2768634fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: json
priority: 5 Medium
foundin: None
resolution: None
title: cannot get last integer correctly
comment:
  the following, it is not correctly.

  % json::json2dict {{"k" : 1.0
    }}
  k {1
    }
  %

  that should be
  % json::json2dict {{"k" : 1.0
    }}
  k 1
  %


tkt_uuid: 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: 1114498fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Change 'find' API to allow an error handler
comment:
  Change the API of filutil::find so that a user can set
  an error handler, to be called for all directories
  which are inacessible, or other problems.


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: 1416745fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: grammar_fa
priority: 5 Medium
foundin: None
resolution: Fixed
title: grammar_fa: test suite bugs
comment:
   with -debug 1:

  Module: grammar_fa
  modules/grammar_fa/dacceptor.test
  - tcllib::testutils 1.0
  - snit 1.1
  - struct::set 2.1
  - struct::list 1.5
  - grammar::fa 0.1.1
  - grammar::fa::op 0.1.1
  * grammar::fa::dacceptor 0.1.1
  modules/grammar_fa/dexec.test
  - tcllib::testutils 1.0
  - snit 1.1
  - struct::set 2.1
  - struct::list 1.5
  - grammar::fa 0.1.1
  - grammar::fa::op 0.1.1
  * grammar::fa::dexec 0.1.1
  modules/grammar_fa/fa.test
  - tcllib::testutils 1.0
  - snit 1.1
  - struct::set 2.1
  - struct::list 1.5
  * grammar::fa 0.1.1
  test name 'fa-symbols-1.0' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  test name 'fa-symbols-1.1' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  test name 'fa-symbols-2.0' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  test name 'fa-symbols-2.1' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  test name 'fa-symbols-1.0' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbols.test
  test name 'fa-symbols-1.1' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbols.test
  test name 'fa-symbols-1.2' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  test name 'fa-symbols-1.3' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  test name 'fa-symbols-1.4' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  test name 'fa-symbols-1.5' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  test name 'fa-symbols-1.6' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  modules/grammar_fa/faop.test
  - tcllib::testutils 1.0
  - snit 1.1
  - struct::set 2.1
  - struct::list 1.5
  - grammar::fa 0.1.1
  * grammar::fa::op 0.1.1
  test name 'faop-remove-eps-3.00.x' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.01.x-' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.02.xe' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.03.xy' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.04.xy-' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.05.xye' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.06.xyee' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.07.xye-' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.08.xy--' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.09.xy-=' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.10.xyz/ee' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.11.xyz/e-' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.12.xyz/--' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.13.xyz/-=' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.14.xyz|ee' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.15.xyz|e-' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.16.xyz|--' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.17.xyz|-=' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.18.xyz+eee' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.19.xyz+ee-' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.20.xyz+e--' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.21.xyz+e-=' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.22.xyz+---' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.23.xyz+--=' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.24.xyz+-=_' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.25.xyz&eee' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.26.xyz&ee-' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.27.xyz&e--' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.28.xyz&e-=' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.29.xyz&---' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.30.xyz&--=' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.31.xyz&-=_' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.32.xyz!ee' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.33.xyz!e-' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.34.xyz!--' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.35.xyz!-=' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.36.xyz!-e' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-reverse-3.00.x' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.01.x-' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.02.xe' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.03.xy' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.04.xy-' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.05.xye' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.06.xyee' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.07.xyz/ee' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.08.xyz/-=' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.09.xyz|ee' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.10.xyz|-=' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.11.xyz+eee' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.12.xyz+-=_' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.13.xyz&eee' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.14.xyz&-=_' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.15.xyz!ee' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.16.xyz!-=' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test


