# ticket

tkt_uuid: 607745ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget 1.4.1 ListBox Binding Bug
cmimetype: text/plain
submitter: polynr
assignee: damonc
closer: damonc
closedate: 2003-10-20T23:17:10
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: 607749ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget ListBox/Tree Selection Outline
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2003-05-14T23:19:40
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: 609750ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: None
priority: 5 Medium
foundin: None
title: Makefile.in should support --libdir
cmimetype: text/plain
submitter: das
assignee: hobbs
closer: das
closedate: 2003-02-22T12:01:43
comment:
  tcllib (and TEA in general) should support the --libdir 
  configure option to set its $(pkglibdir), it currently hardcodes 
  this to $(prefix)/lib , which breaks on Mac OS X where libdir is 
  completely unrelated to prefix.

  The following patch fixes this and shouldn't break anything 
  on other platforms since the default for $(libdir) is precisely 
  $(prefix)/lib :

  Index: Makefile.in
  ===============================================
  ====================
  RCS file: /cvsroot/tcllib/tcllib/Makefile.in,v
  retrieving revision 1.79
  diff -u -r1.79 Makefile.in
  --- Makefile.in 19 Aug 2002 18:28:05 -0000      1.79
  +++ Makefile.in 16 Sep 2002 03:20:26 -0000
  @@ -177,7 +177,7 @@
   
   DESTDIR =
   
  -pkglibdir = $(prefix)/lib/@PACKAGE@@VERSION@
  +pkglibdir = $(libdir)/@PACKAGE@@VERSION@
   
   top_builddir = .
   


tkt_uuid: 609835ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: smtpd
priority: 5 Medium
foundin: None
title: rcpt to and mail from fails under stupid
cmimetype: text/plain
submitter: nobody
assignee: patthoyts
closer: patthoyts
closedate: 2002-09-16T22:47:24
comment:
  If you specify two addresse to RCPT TO: or MAIL FROM:,
  "service" (specified by fileevent) raises a bgerror and
  hangs, because ::mime::parseaddress returns a valid
  list containing of two elements, each representing a
  list suited for a following "array set" which, in turn,
  expects one single list.

  I know that this is not conforming to RFC 821, which 
  requires a singe recipient for each RCPT TO: command,
  but it would be easy to fix:

  # diff smtpd.tcl patched_smtpd.tcl

  403c403,409
  <     eval array set addr [mime::parseaddress $from]
  ---
  >     set fromlist [mime::parseaddress $from]
  >     if {[llength $fromlist] != 1} {
  >         log::log debug "MAIL failed - syntax error"
  >         puts $channel "501 Syntax error in parameters
  or arguments"
  >         return
  >     }
  >     eval array set addr $fromlist
  441c447
  <         log::log debug "RCPT received \"$line\""
  ---
  >         log::log debug "RCPT failed received \"$line\""
  444c450,457
  <     eval array set addr [mime::parseaddress $to]
  ---
  >     set tolist [mime::parseaddress $to]
  >     if {[llength $tolist] != 1} {
  >         log::log debug "RCPT failed - syntax error"
  >         puts $channel "501 Syntax error in parameters
  or arguments"
  >         return
  >     }
  >
  >     eval array set addr $tolist


tkt_uuid: 611477ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ProgressDlg bug
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: oehhar
closedate: 2009-07-01T14:19:17
comment:
  I wrote the following simple test program (test.tcl)

  package require BWidget
  set pb [ProgressDlg .pb]
   
  $pb configure -bg red
   
  But when I try to run it I get an error message. It seems 
  to be impossible to execute the last command, because 
  the interpeter doesn't find the command .pb.
  See attached file for error description.


tkt_uuid: 611595ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: ncgi
priority: 8
foundin: None
title: file upload support + fix for binary
cmimetype: text/plain
submitter: stevecassidy
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-06-18T16:22:52
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: 613134ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: bwidget
priority: 5 Medium
foundin: None
title: PanedWindow does not display correctly
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2003-02-25T07:59:14
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: 614591ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: ::namespace::cmd vs namespace::cmd
cmimetype: text/plain
submitter: davidw
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-11T19:37:37
comment:
  In some modules - control and mime, for instance,
  commands don't start with a leading '::'.  In most of
  the rest of them, :: is used.  This should be
  consistent throughout.


tkt_uuid: 616522ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ListBox::_multiple_select error
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2002-09-30T16:50:55
comment:
  When trying to select the first elemet in the my list I get 
  the following error ...

  can't read "y": no such variable
      while executing
  "if { $y <= 6 } {
          if { [lindex [$path.c yview] 0] > 0 } {
              set scroll [list yview -1]
              DropSite::setcursor sb_up_arrow
    ..."
      (procedure "ListBox::_multiple_select" line 53)
      invoked from within
  "ListBox::_multiple_select .menu.frame.control.f0.frame.
  sTitleFrameControl.f.sTitleExecuteTCList.f.sTitleOP.f.list
  box n [string range [lindex [.menu.fr..."
      (command bound to event)

  Found in ...
       ActiveState ActiveTcl 8.3.4.2


tkt_uuid: 616911ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Out of Date
subsystem: log
priority: 4
foundin: None
title: services for log
cmimetype: text/plain
submitter: davidw
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-03-25T05:26:35
comment:
  This is my first go at creating 'services' for the log
  package.  It is not complete: it is lacking
  documentation and testing.  I am including it here not
  for review for inclusion, yet, but to make sure I'm on
  the right track.  I will post to the mailing list as
  well, which is better suited to quick discussion
  (October 2002).


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

  Test code:
    package require ftp

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

    puts $X
    exit


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

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


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


tkt_uuid: 619548ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 5 Medium
foundin: None
title: mime::field_decode is case sensitive
cmimetype: text/plain
submitter: giggls
assignee: mrose
closer: patthoyts
closedate: 2003-01-06T15:14:49
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: 620062ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: pop3
priority: 5 Medium
foundin: None
title: bug in retrieve
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-10-14T19:18:34
comment:
  There is a bug in the main loop within the 
  pop3::retrieve proc. I think this bug may be caused 
  by the fact that the Tcl 8.3 scan command behaves 
  differently from the documentation. In the loop over 
  index from start to end, there is a switch statement. 
  This bug may occur for either the retr or the list 
  elements in the switch statement.
  The bug is caused by these lines:

  set sizeStr [::pop3::send $chan "RETR $index"]
  if {[scan $sizeStr {%d %s} size dummy] < 0} {
  .....

  Note that it is expected that sizeStr contains a 
  decimal number and a string. The result "< 0" will be 
  returned if neither a decimal nor a string is found. 
  But, I have tested the scan function under Tcl 8.3 and 
  it appears to return 0, NOT -1, if no conversions are 
  performed! For example, the Tcl command

  scan "This is a dummy string" {%d %s} d s

  will return 0 under Tcl 8.3 and neither d nor s will be 
  defined. Since the code currently checks for -1, the 
  code crashes because the decimal variable "size" is 
  not defined.

  This bug should be easy to fix. Just change the test 
  from <0 to <=0. Even better would be to make sure 
  that the number of conversions is at least as high as 
  the index of interest into the conversion set. By this I 
  mean the following:
  If the format is {%d %s} and we are interested only in 
  the first %d parameter, then the test should be 
  if {[scan $sizeStr {%d %s} size dummy] < 1} {
    handle no size
  } else {
    use $size
  }

  As another example we should have in the list branch:

  if {[scan $sizeStr {%d %d %s} dummy size dummy] 
  < 2} {
    handle no size
  } else {
    use $size
  }
  because we need at least two conversions to get size 
  defined.


tkt_uuid: 620103ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Bug in Button armcommand
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2002-10-14T20:43:55
comment:
  See the following script:

  puts [package require BWidget]
  Button .b -armcommand "puts ARMCOMMAND"
  pack .b


  By pressing the button you get the following error 
  message:

  can't read "pathopt(-repeatdelay)": no such element in 
  array
  can't read "pathopt(-repeatdelay)": no such element in 
  array
      while executing
  "set pathopt($option)"
      (procedure "Widget::getMegawidgetOption" line 4)
      invoked from within
  "Widget::getMegawidgetOption $path -repeatdelay"
      (procedure "Button::_press" line 10)
      invoked from within
  "Button::_press .b"
      (command bound to event)


  I'm using bwidget version 1.3.1 together with tcl/tk 8.4.0.

  I have the same error with bwidget 1.4.1, but not with 
  bwidget 1.2.1


tkt_uuid: 620612ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: crc
priority: 5 Medium
foundin: None
title: Testsuite failures
cmimetype: text/plain
submitter: andreas_kupries
assignee: patthoyts
closer: patthoyts
closedate: 2003-01-06T14:36:16
comment:
  I ran the tcllib testsuite, using a tclsh 8.3.4 on a
  linux/ix86 system. The build directory was outside of
  the tcllib source directory, actually a direct sibling.
  Enclosed the log generated when testing crc.


tkt_uuid: 620753ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: New options for labelframe
cmimetype: text/plain
submitter: decosterjos
assignee: hobbs
closer: hobbs
closedate: 2002-10-14T19:35:18
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: 620754ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Patch to allow TkResource with toplevels
cmimetype: text/plain
submitter: decosterjos
assignee: hobbs
closer: hobbs
closedate: 2002-10-14T19:30:52
comment:
  Hi,

  When declaring a new widget based on the BWidget frame
  work it is possible to take default options from other
  widgets using 'TkResource'. When taking such default
  options from a toplevel, this toplevel is displayed
  (when taking from another widget, it is not displayed
  because it is not packed/gridded/placed). 

  This patch withdraws the toplevel used to get default
  options from.

  Jos.


tkt_uuid: 620852ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 5 Medium
foundin: None
title: Extra CRs added during copymessage (WinX
cmimetype: text/plain
submitter: jaspert
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-04T18:07:34
comment:
  file model.cnv is attached. Following sequence should 
  reproduce file exactly but it introduces differences
  (Problem exists under WinXP but not Linux)
  Generally an extra CR seems to get inserted into the file
  after a certain number of chars

  Jasper Taylor@SPIROGRAPH /cygdrive/m/Documents and 
  Settings/Jasper Taylor/My Documents/Tests
  $ tclsh
  % info patchlevel
  8.4.0
  % package require mime
  1.3.2
  % mime::initialize -canonical text/plain -file model.cnv
  ::mime::1
  % set f [open model.mm1 w]
  file8a4f20
  % fconfigure $f -translation binary
  % mime::copymessage ::mime::1 $f
  % close $f
  % set g [open model.cnv1 w]
  file8a4f20
  % fconfigure $g -translation binary
  % mime::initialize -file model.mm1
  ::mime::2
  % puts -nonewline $g [mime::getbody ::mime::2]
  % close $g
  % diff model.cnv model.cnv1
  152c152,153
  < $c create line 153.208211621 304.213304026 
  153.208211621 304.213304026 -capsty
  le round -tags {arc00103 startblob realwidth
  (4.83329818985)} -width 4.8332981898
  5
  ---
  > $
  > c create line 153.208211621 304.213304026 
  153.208211621 304.213304026 -capstyl
  e round -tags {arc00103 startblob realwidth
  (4.83329818985)} -width 4.83329818985

  229a231
  >
  child process exited abnormally


tkt_uuid: 621178ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget error in Tree under 8.4
cmimetype: text/plain
submitter: damonc
assignee: jenglish
closer: jenglish
closedate: 2003-01-24T22:22:58
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: 621331ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Allow delete of selected Tree nodes
cmimetype: text/plain
submitter: decosterjos
assignee: hobbs
closer: hobbs
closedate: 2002-10-14T19:27:41
comment:
  Hi,

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

  Jos.


tkt_uuid: 622927ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ProgressBar update problem
cmimetype: text/plain
submitter: decosterjos
assignee: hobbs
closer: hobbs
closedate: 2002-10-14T19:24:37
comment:
  Hi,

  Duong.Nguyen@roads.vic.gov.au reported a problem with
  the ProgressBar widget on CLT. This was caused by the
  variable trace being temporarily disabled when running
  the trace command, and executing an 'update' in the
  trace command. I think replacing the 'update' command
  by 'update idletasks' will solve this problem.

  Attached you'll find the modified ProgressBar::_modify
  proc.

  Jos. 


tkt_uuid: 625327ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Works For Me
subsystem: smtp
priority: 5 Medium
foundin: None
title: Problem using i as a counter at level 0
cmimetype: text/plain
submitter: lduperval
assignee: gwlester
closer: gwlester
closedate: 2002-12-02T04:25:22
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: 626819ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: incomplete doc for tree
cmimetype: text/plain
submitter: svogel
assignee: hobbs
closer: dev_null42a
closedate: 2006-09-28T15:46:44
comment:
  In the docs for tree the "widget command" 
  for "pathName find findInfo ?confine?" (an interesting and 
  needed function) and
  "pathName line node" (if that is public function?) is 
  missing.


tkt_uuid: 627521ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: app: tkchat
priority: 5 Medium
foundin: None
title: patch to searching the chat history
cmimetype: text/plain
submitter: pascalscheffers
assignee: patthoyts
closer: patthoyts
closedate: 2003-03-10T21:18:10
comment:
  This patch adds two commands /? and /! to start
  searching and cancel searching for a search string:

  /?pascal

  will search for the regular expression 'pascal' and
  mark it orange (by default). 

  /? 

  Will search again for the last expression and mark the
  next one found.

  /! will clear all markers and jump the widget back to
  [.txt see end]

  I've also added the color to the color preferences, so
  you can customize the color.


tkt_uuid: 627960ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: smtpd
priority: 5 Medium
foundin: None
title: welcome string hostname
cmimetype: text/plain
submitter: gionco
assignee: patthoyts
closer: gionco
closedate: 2002-12-11T16:56:59
comment:
  The welcome string is now "220 [info hostname] ..." also
  if you call "smtpd::start localhost" .

  This patch addresses this issue.


tkt_uuid: 628041ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget Tree node names with brackets
cmimetype: text/plain
submitter: decosterjos
assignee: hobbs
closer: hobbs
closedate: 2003-05-14T23:27:16
comment:
  Hi,

  On CLT is was mentioned nodes names with brackets
  caused problems with the BWidget::Tree widget. This was
  caused by the Tree widget using lsearch without a
  search mode specified. By default lsearch user 'string
  match' style matching where characters between brackets
  hhave a special meaning. This patch add -exact to each
  use of lsearch.

  Jos.


tkt_uuid: 630381ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 5 Medium
foundin: None
title: Cannot save multi-part MIME
cmimetype: text/plain
submitter: jaspert
assignee: mrose
closer: patthoyts
closedate: 2003-01-06T23:39:18
comment:
  I am using the ActiveTcl 8.4.1 which I downloaded and installed yesterday
  on a Windows ME machine

  Trying to save a multi-part MIME with the command
      mime::copymessage $multiT $stream
  I get this error message:

  cannot open libcrypt
  cannot open libcrypt
      while executing
  "md5 -- $key"
      (procedure "mime::copymessageaux" line 62)
      invoked from within
  "mime::copymessageaux $token $channel "
      invoked from within
  "mime::copymessage $multiT $stream"

  It occurs to me that this might be something to do with US export controls
          --Jasper


tkt_uuid: 630405ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Duplicate
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget LabelEntry -textvariable option
cmimetype: text/plain
submitter: decosterjos
assignee: hobbs
closer: patthoyts
closedate: 2003-01-19T23:24:57
comment:
  As reported on CLT, te change to the _LabelFrame_
  widget were the _-textvariable_, _-image_ and _-bitmap_
  option were added to the _LabelFrame_ widget now causes
  problems with the _LabelEntry_ widget. This patc will
  solve this by renaming the 3 options mentioned above.


tkt_uuid: 630500ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget panedwindow _realize problem
cmimetype: text/plain
submitter: decosterjos
assignee: hobbs
closer: hobbs
closedate: 2003-02-25T08:01:24
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: 631314ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: mime
priority: 9 Immediate
foundin: None
title: infinite loop on bad data
cmimetype: text/plain
submitter: davidw
assignee: mrose
closer: mrose
closedate: 2003-05-13T17:21:42
comment:
  The while {$moreP} loop in mime::parsepart will loop
  forever when fed bad data such as the file attached,
  which is a spam email.  I'm sure it's formatted badly,
  but that should cause an error, not an infinite loop.


tkt_uuid: 633250ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: doctools
priority: 8
foundin: None
title: mpexpand: Tcl 8.3 required
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-14T06:08:20
comment:
  Using configure will find required Tcl 8.3

  # ./configure          
  loading cache ./config.cache
  checking for a BSD compatible install... (cached)
  /usr/bin/ginstall -c
  checking executable extension based on host type... 
  checking for tclsh... (cached) /usr/local/bin/tclsh8.3
  creating ./config.status
  creating Makefile

  but during installation "make" may fail due to usage of
  different tclsh interpreter - in my case tclsh has to
  be a tclsh8.2 interpreter. "configure -bindir=..." does
  not help as the search path is not changed.

  # make
  make html-doc
  make[1]: Entering directory `/home/fis/tmp/tcllib-1.3'
  make[2]: Entering directory `/home/fis/tmp/tcllib-1.3'
  Gen (html): ./modules/base64/base64.man
  bad option "unset": must be anymore, donesearch,
  exists, get, names, nextelement, set, size, or
  startsearch
      while executing
  "::mp expand $text"
      (procedure "passes" line 10)
      invoked from within
  "passes"
      (procedure "main" line 6)
      invoked from within
  "main"
      (file "./modules/doctools/mpexpand" line 737)
  Gen (html): ./modules/base64/uuencode.man


  Please insert

  package require Tcl 8.3

  to mpexpand and it'll work.


tkt_uuid: 634258ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: None
priority: 5 Medium
foundin: None
title: package require tcllib returns "Don't ..
cmimetype: text/plain
submitter: skielty
assignee: dgp
closer: dgp
closedate: 2002-12-04T23:11:39
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: 636977ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: uri
priority: 5 Medium
foundin: None
title: news scheme not recognized
cmimetype: text/plain
submitter: davidw
assignee: andreas_kupries
closer: davidw
closedate: 2002-11-15T20:33:22
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: 637695ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: smtpd
priority: 1 Zero
foundin: None
title: Invalid response after receiving DATA
cmimetype: text/plain
submitter: rokar
assignee: patthoyts
closer: rokar
closedate: 2002-11-13T10:59:25
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: 637770ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: sha1
priority: 5 Medium
foundin: None
title: Fix for sha1 on Tcl 8.4/MacOSX
cmimetype: text/plain
submitter: dkf
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-03-25T06:21:55
comment:
  I'm not sure whether this code is actually necessary,
  but it seems to fix problems with the sha1 code as used
  by some people on MacOSX with Tcl 8.4 (I'm not sure if
  the code is actually needed with the HEAD of tcllib
  though, or whether that does the right thing anyway.
  This patch should be relatively harmless though, and
  won't hit performance all that badly either.)


tkt_uuid: 638075ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: uri
priority: 5 Medium
foundin: None
title: JoinHttpInner doesn't deal with fragment
cmimetype: text/plain
submitter: davidw
assignee: davidw
closer: davidw
closedate: 2002-11-15T20:34:49
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: 638236ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget: Entry "-state disabled" doesn't gray
cmimetype: text/plain
submitter: schroedter
assignee: damonc
closer: damonc
closedate: 2003-10-20T23:16:02
comment:
  There is a difference between TK's entry and BWidget's
  Entry
  concerning the -state disabled option.

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

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

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

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

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


tkt_uuid: 639036ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: uri
priority: 5 Medium
foundin: None
title: resolve doesn't work with url like ?N=D
cmimetype: text/plain
submitter: davidw
assignee: davidw
closer: davidw
closedate: 2002-11-15T20:34:22
comment:
  If you look at a page such as

  http://www.dedasys.com/freesoftware/patches/

  The HTML sources provide links like ?N=D which change
  the behavior of how Apache displays the file listings.
   These url's are valid.

  The problem is that 'resolve' doesn't handle these well:

  uri::resolve
  http://dedasys.com/freesoftware/patches/?M=A ?N=D
  http://dedasys.com/freesoftware/patches/?M=A?N=D

  This is not how a browser resolves these url's.


tkt_uuid: 640932ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 6
foundin: None
title: htmlparse not parsing incomplete tags
cmimetype: text/plain
submitter: scottg
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-03-25T05:18:49
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: 643337ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: html
priority: 5 Medium
foundin: None
title: ::html::textInput does not process args
cmimetype: text/plain
submitter: gwlester
assignee: gwlester
closer: gwlester
closedate: 2002-11-25T02:36:23
comment:
  The documentation for ::html::textInput reads:

  ::html::textInput name args
  Generate an INPUT form tag with type TEXT. This uses
  ::html::formValue. The args is any additional tag
  attributes you want to put into the INPUT tag.

  However, it takes args as the value of the text entry.

  For example: 

      ::html::textInput foo width=40

  generates:

      <input type="text" name="foo" value="width=40"
  size="45">

  Instead of:

     <input type="text" name="foo"  size="45"width=40>


tkt_uuid: 647974ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 7 High
foundin: None
title: find has problems recursing a metakit fs
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-07-05T04:18:24
comment:
  The command 'fileutil::find' has problems when recursing 
  a directory structure coming from a metakit filesystem 
  (fr example starkit). It reports the first file per directory 
  (and the directory), but nothing else.

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

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


tkt_uuid: 648679ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: cmdline
priority: 5 Medium
foundin: None
title: bad namespace usage
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-11T00:56:25
comment:
  Many procs in the cmdline package call other procs 
  in same package in a strange way, something like:

  proc cmdline::getoptions {...} {
      ...
      while {[set err [cmdline::getopt ...]]} {...
      ...
  }

  Within the body of [cmdline::getoptions] the current
  namespace is ::cmdline, so either [getopt] should
  be called relying on that context or fully qualified
  [::cmdline::getopt] should be called.  I strongly prefer
  the former myself.

  As is, things will go haywire if someone defines
  a ::cmdline::cmdline namespace and defines a
  [getopt] command in it.


tkt_uuid: 649383ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: -textvariable mapped to label and entry
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: patthoyts
closedate: 2003-01-17T21:59:12
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: 650919ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Fixed
subsystem: pop3d
priority: 5 Medium
foundin: None
title: STAT command produces incorrect results
cmimetype: text/plain
submitter: neilhampton
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-12-09T18:15:40
comment:
  The POP3 RFC specifies that STAT returns a +OK 
  response followed by two numbers (number of 
  messages, and number of octets).

  The tcllib pop3d returns the first number and then 
  a string.  This causes some pop3d clients problems 
  (notably the Java Mail 1.3 Sun POP3 provider).


tkt_uuid: 650977ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: pop3d
priority: 5 Medium
foundin: None
title: bgerror when pop3 client disconnects
cmimetype: text/plain
submitter: neilhampton
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-10-21T21:09:37
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: 652140ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Rejected
subsystem: smtpd
priority: 5 Medium
foundin: None
title: HELO and EOL cumulative patches
cmimetype: text/plain
submitter: gionco
assignee: patthoyts
closer: patthoyts
closedate: 2002-12-13T23:35:33
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: 653266ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ListBox Shift-extended selection fails
cmimetype: text/plain
submitter: ndwinton
assignee: hobbs
closer: hobbs
closedate: 2003-07-17T19:40:03
comment:
  Extending a selection using the shift key in a BWidget 
  ListBox causes a failure if the list item tags are not 
  integers (and maybe if they are too). It appears to 
  assume that the tags are numbers and applies "incr" to 
  them. I have attached a patch to fix this problem.


tkt_uuid: 654762ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: doctools
priority: 7 High
foundin: None
title: doctools - Add backend 'docbook'
cmimetype: text/plain
submitter: davidw
assignee: andreas_kupries
comment:
  It would be nice to have a backend for doctools that
  produces docbook.  Because docbook has more information
  than doctools, this transformation cannot be completely
  automated, and requires human intervention to complete,
  but at least it would be a start.

  Eventually, it would be nice to see Tcl itself make use
  of docbook, but I  don't suppose that will happen any
  time soon.


tkt_uuid: 654976ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Invalid
subsystem: app: tkchat
priority: 5 Medium
foundin: None
title: Text highlighting for chat window
cmimetype: text/plain
submitter: lukekalemyers
assignee: eee
closer: patthoyts
closedate: 2004-02-08T00:22:59
comment:
  Adds a menu entry called "Find" to the File menu. This
  menu invokes a UI to highlight a string of text in the
  chat window.


tkt_uuid: 656336ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Duplicate
subsystem: app: tkchat
priority: 5 Medium
foundin: None
title: Highlighting for tkchat
cmimetype: text/plain
submitter: nobody
assignee: hartweg
closer: eee
closedate: 2002-12-19T16:29:39
comment:
  This code provides to highlight interesting text in the
  tkchat message window.

  The user interface can be invoked in two ways:
  1.) Through the Find entry on the FIle menu.
  2.) By entering /find in the message post window.
  (command line) The /find command may have an optional
  argument, which will then be used as the search string.

  To highlight an exact string or regexp pattern, enter
  it in "Find text" field.  All matches in the chat
  window will be highlighted.  Should the search be a
  time consuming one, it will pause when the Find dialog
  is closed and resume when it is re-opened.

  To remove all highlighting, clear the "Find text" field
  in the Find dialog.

  Known caveats:

  Sub-strings are not highlighted separately from the
  rest of the matching text when using regexp
  sub-matching. The whole match will be highlighted the
  same. This is a limitation of of the [text] -search
  command.


tkt_uuid: 659238ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: ftp
priority: 6
foundin: None
title: FTP Support for MDTM setting ModTime
cmimetype: text/plain
submitter: ddrogahn
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-03-31T22:58:19
comment:
  Some simple changes to allow setting of file modified 
  time on FTP servers that allow it (which apparently isnt 
  many)

  changes need to be made to file:
  tcl:/lib/tcllib1.3/ftp/ftp.tcl
  change is backward compatible & fails gracefully

  Also a simple change to tclVFS that requires the 
  change to the above ftp.tcl (I'll post it to the tclVFS 
  group)

  Note: ftpd's mdtm command should be patched to 
  support setting mdtm

  Sorry for the messy attached changes file, (and my 
  probably old files) I dont know a lot about CVS yet

  Also, I'm new to TCL, so someone should check my 
  work anyway.


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


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

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

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

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

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

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

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


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

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


tkt_uuid: 671821ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Duplicate
subsystem: None
priority: 5 Medium
foundin: None
title: ScrolledWindow flashing scrollbars
cmimetype: text/plain
submitter: lewca43
assignee: nobody
closer: hobbs
closedate: 2003-02-25T10:03:12
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: 672956ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: math
priority: 8
foundin: None
title: New submodule for math - optimisation
cmimetype: text/plain
submitter: arjenmarkus
assignee: kennykb
closer: andreas_kupries
closedate: 2003-04-14T07:32:07
comment:
  I would like to submit a first version of a new
  submodule, optimize.
  It contains two working procedures, to optimize a given
  function. Work is being carried out to add a linear
  program solver.

  The tar-ball contains the source code, documentation
  and test cases (even for the routine that is not fully
  implemented yet)


tkt_uuid: 672957ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: math
priority: 8
foundin: None
title: New submodule: optimisation
cmimetype: text/plain
submitter: arjenmarkus
assignee: kennykb
comment:
  I would like to submit a first version of a new
  submodule, optimize.
  It contains two working procedures, to optimize a given
  function. Work is being carried out to add a linear
  program solver.

  The tar-ball contains the source code, documentation
  and test cases (even for the routine that is not fully
  implemented yet)

  -- Possibly doubled, but I got an error message the
  first time


tkt_uuid: 674330ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: dns
priority: 5 Medium
foundin: None
title: dns: Tcl requirement not specified
cmimetype: text/plain
submitter: dgp
assignee: patthoyts
closer: patthoyts
closedate: 2003-01-25T21:46:08
comment:
  package require Tcl $requiredVersion

  should be added to the package.  Would
  be nice to add checks to the index script
  (pkgIndex.tcl file) as in other tcllib packages
  as well.


tkt_uuid: 674331ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: irc
priority: 5 Medium
foundin: None
title: irc: Tcl requirement not specified
cmimetype: text/plain
submitter: dgp
assignee: davidw
closer: dgp
closedate: 2003-01-25T18:06:27
comment:
   package require Tcl $requiredVersion

  should be added to the package. Would
  be nice to add checks to the index script
  (pkgIndex.tcl file) as in other tcllib packages
  as well.


tkt_uuid: 674468ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: bwidget
priority: 5 Medium
foundin: None
title: LabelEntry -textvariable fails
cmimetype: text/plain
submitter: aspenlogic
assignee: hobbs
closer: hobbs
closedate: 2003-01-25T21:16:53
comment:
  The -textvariable option of the LabelEntry widget
  causes both the label text and the entry contents to
  reflect the value of the specified variable. This is
  not desirable. 

  set wages "29.00"
  LabelEntry .lb -label "Wage \$" -textvariable wages

  causes something like this to appear when .lb is packed:

                  +-----------------+
       29.00  |  29.00           |
                  +-----------------+

  Instead of

                  +----------------+
     Wage $ | 29.00           |
                  +----------------+

  This is from ActiveTcl 8.4.1.0 Release, BWidget 1.5


tkt_uuid: 676976ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: uri
priority: 5 Medium
foundin: None
title: Regexp in uri::split allows ',' characters
cmimetype: text/plain
submitter: jasonmills
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-11T21:18:16
comment:
  The first regexp command in the uri::split function 
  is:

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

  I think it should be:

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

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


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


tkt_uuid: 681734ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: tkchat - logging data change
cmimetype: text/plain
submitter: lvirden
assignee: patthoyts
comment:
  It would be useful if /msg and /memo messages were
  logged uniquely in tkchat, so that someone could look
  through the log output if they needed to locate the
  whispers sent during an extended period of time of
  distraction from the chat.


tkt_uuid: 682187ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: math
priority: 8
foundin: None
title: Add a statistics module
cmimetype: text/plain
submitter: arjenmarkus
assignee: arjenmarkus
closer: andreas_kupries
closedate: 2003-04-16T19:46:29
comment:
  The module I propose to add contains a set of
  statistical procedures for analysing and manipulating
  data. It comes with a full set of documentation and a
  reasonable set of tests.

  Though still work in progress, I would like to submit
  it, as the parts that are complete may be useful for
  somebody. 


tkt_uuid: 684462ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: parasite rectangle in BWidget demo - since 1.3.1
cmimetype: text/plain
submitter: vwartelle
assignee: hobbs
closer: hobbs
closedate: 2003-05-15T00:07:02
comment:
  In the BWidget demo, 
  selecting the Tree tab creates a rectangle at the left
  of the main window. 

  This behaviour has appeared since BWidget 1.3.1 at 
  least. 


tkt_uuid: 685073ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: textutil :: expander
priority: 5 Medium
foundin: None
title: expander - Input stack
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  textutil::expander currenty manages a context stack to
  temporiliy hold up output material before inserting it
  into the actual stream of output.

  IMHO it should also manage a stack of input material,
  iallowing macros to push input onto for consumption
  after the macro is complete.

  This would generate an effect similar to using
  [expand], but without actually opening a nested output
  context.


tkt_uuid: 685270ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: README documentations requirement?
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-03-28T17:22:08
comment:
  the README, v 1.3 says:

  * the module should have both documentation (in XML,
  man, or HTML
    form) and a test suite (in the form of a group of
  *.test files in
    the module directory).


  the formats listed do not seem to include doctools -
  yet that _seems_ to be the preferred format these days.
   Should not that format be listed?


tkt_uuid: 686065ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: popups!
cmimetype: text/plain
submitter: dgp
assignee: hartweg
closer: patthoyts
closedate: 2004-04-30T13:41:34
comment:
  When the multi-line entry is used
  to enter an action message
  (one that begins /me) and that
  message spans multiple lines,
  tkchat pops up a window for 
  each line.


tkt_uuid: 687912ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: crc
priority: 5 Medium
foundin: None
title: crc16.tcl missing in tcllib-1.[23].tar.gz
cmimetype: text/plain
submitter: nobody
assignee: patthoyts
closer: patthoyts
closedate: 2003-02-17T21:03:23
comment:
  % gunzip < tcllib-1.2.tar.gz | tar tf - | grep crc
  tcllib-1.2/modules/crc/
  tcllib-1.2/modules/crc/crc32.n
  tcllib-1.2/modules/crc/sum.n
  tcllib-1.2/modules/crc/pkgIndex.tcl
  tcllib-1.2/modules/crc/cksum.test
  tcllib-1.2/modules/crc/crc32.test
  tcllib-1.2/modules/crc/sum.tcl
  tcllib-1.2/modules/crc/cksum.tcl
  tcllib-1.2/modules/crc/crc32.tcl
  tcllib-1.2/modules/crc/ChangeLog
  tcllib-1.2/modules/crc/sum.test
  tcllib-1.2/modules/crc/cksum.n

  % gunzip < tcllib-1.3.tar.gz | tar tf - | grep crc
  tcllib-1.3/modules/crc/
  tcllib-1.3/modules/crc/pkgIndex.tcl
  tcllib-1.3/modules/crc/ChangeLog
  tcllib-1.3/modules/crc/cksum.man
  tcllib-1.3/modules/crc/cksum.n
  tcllib-1.3/modules/crc/cksum.tcl
  tcllib-1.3/modules/crc/cksum.test
  tcllib-1.3/modules/crc/crc32.man
  tcllib-1.3/modules/crc/crc32.n
  tcllib-1.3/modules/crc/crc32.tcl
  tcllib-1.3/modules/crc/crc32.test
  tcllib-1.3/modules/crc/sum.man
  tcllib-1.3/modules/crc/sum.n
  tcllib-1.3/modules/crc/sum.tcl
  tcllib-1.3/modules/crc/sum.test
  tcllib-1.3/doc/html/crc32.html
  tcllib-1.3/doc/nroff/crc32.n


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

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


tkt_uuid: 688070ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: bwidget
priority: 5 Medium
foundin: None
title: LabelFrame/LabelEntry -label/-text/-textvariable broken
cmimetype: text/plain
submitter: ingemarh
assignee: hobbs
closer: hobbs
closedate: 2003-02-17T18:19:34
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: 688227ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Notebook left side not drawn (0 borderwidth)
cmimetype: text/plain
submitter: lewca43
assignee: hobbs
closer: hobbs
closedate: 2003-05-14T23:50:07
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: 688696ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: Memory Leak in tkchat
cmimetype: text/plain
submitter: dkf
assignee: hartweg
closer: rmax
closedate: 2003-02-18T15:44:40
comment:
  There is a memory leak in tkchat; it does not clean up 
  unused URL-* tags anywhere.  This doesn't matter too 
  much in the main window, where URLs are fairly 
  uncommon, but the users-online window at the side is 
  filled with URLs and it gets refreshed (with completely 
  new URL-* tags) each time.  And yet none of the old 
  tags are ever deleted, resulting in the accumulation of 
  several thousand dead tags an hour!  This is not good.  
  Not good at all!

  A possible fix for this is to add the following code to the 
  procedure updateNames immediately after the line that 
  deletes the old content of the .names widget:
    foreach tagname [.names tag names] {
       if {[string match URL-* $tagname]} {
          .names tag delete $tagname
       }
    }

  Please fix this ASAP, as it is a serious leak for anyone 
  using Tkchat for longer than an hour or two (as seems 
  to be fairly common.)


tkt_uuid: 688965ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: fileutil
priority: 5 Medium
foundin: None
title: better -? help for fileutil::touch
cmimetype: text/plain
submitter: glennjnn
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-03-25T05:25:15
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: 689258ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Segmentation fault when restoring sash coords
cmimetype: text/plain
submitter: jaspert
assignee: hobbs
closer: hobbs
closedate: 2003-02-21T02:05:39
comment:
  We have a tool that uses the BWidget MainFrame to display 
  data on a number of panes and notebook pages. Part of the 
  functionality is that it can save and restore the configuration 
  of the various subdivisions within the frame. 
   
  We found that if these were saved under Windows and then 
  restored under Linux a segmentation fault resulted. 
   
  Attached is the file mre.tcl which implements our tool, and 
  the saved state file from Windows which causes the crash 
  when loaded under Linux (Red Hat 7.3/8.0) 
   
  Here's how to reproduce it: 
  [jaspert@spirograph Run]$ wish 
  % source mre.tcl 
  % RunEnv::Create dummy 
  .mre 
  % open EmptyWindows.shf r 
  file4 
  % RunEnv::LoadViewFile file4 {600 400 0 0} 
  Segmentation fault 
   
  Also attached is a corresponding viewfile produced under 
  Linux which does not cause the crash 


tkt_uuid: 693009ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Works For Me
subsystem: bwidget
priority: 7 High
foundin: None
title: ScrolledWindow infinite loop
cmimetype: text/plain
submitter: pkienzle
assignee: hobbs
closer: hobbs
closedate: 2003-04-12T01:46:56
comment:
  Bug #472718 ScrollWindow update idletask

  This bug was closed so I could not attach a patch. 
  Here is the code which triggers the bug.

  ScrolledWindow .textbox -auto none
  text .textbox.text -wrap no -height 2 -width 6
  .textbox setwidget .textbox.text
  pack .textbox -fill both -expand yes
  .textbox.text insert 0.0 "Line 1\nLine 2\nLong line 3"

  I put together a patch involving a lock and an update
  idletask so that if you add a scroll bar then it will
  ignore any request to remove it.
  Not very nice, but much nicer than an infinite loop.


tkt_uuid: 693059ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: log
priority: 2
foundin: None
title: logger 0.1 depends on Tcl 8.2
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
comment:
  The command [string map] is used in logger 0.1.

  Thus, logger 0.1 ought to

    package require Tcl 8.2

  and ought to have an index script that
  prevents loading in a pre-8.2 interp.

  However, logger 0.1 shares its index script
  with log 1.0.1, which does not require Tcl 8.2;
  it can happily load in Tcl 8.0.

  The best way to fix both packages is to see
  to it that they get installed with separate
  index scripts.  The simplest way to
  accomplish that is to move the logger
  package into its own subdirectory of
  tcllib's modules directory.


tkt_uuid: 693194ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: textutil
priority: 5 Medium
foundin: None
title: string map vs regsub (textutils)
cmimetype: text/plain
submitter: davidw
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-01T00:21:20
comment:
           ./textutil/tabify.tcl:94:    regsub -all --
  $str $string "\t" string
           ./textutil/tabify.tcl:102:    regsub -all --
  "\t" $string $str string
   
  These two lines can probably be redone with string map,
  which will speed the code up significantly.


tkt_uuid: 694894ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: md5
priority: 3 Low
foundin: None
title: md5: modularize in order to use with chunks of data
cmimetype: text/plain
submitter: davidw
assignee: patthoyts
closer: patthoyts
closedate: 2003-08-05T20:45:04
comment:
  According to the md5 RFC, it's possible to use this
  algorithm with arbitrarily large chunks of data, and
  infact the C code that implements the algorithm is
  capable of loading a file a chunk at a time and
  processing it incrementally.  From what I can see, the
  Tcl code we have doesn't make this possible, which
  makes it impossible to use it with, for instance, large
  files (or other things - say data coming in off a socket).


tkt_uuid: 697022ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: In Button, -repeatdelay command not cancelled on release
cmimetype: text/plain
submitter: snuffy2
assignee: damonc
closer: damonc
closedate: 2003-10-20T23:17:26
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: 697183ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: latest chat logout menu selection broken
cmimetype: text/plain
submitter: lvirden
assignee: hartweg
closer: patthoyts
closedate: 2003-03-10T13:34:58
comment:
  tkchat 1.80 logout feature produces this output using
  Tcl/Tk 8.4.2:

  invalid command name "logonScreen"
      while executing
  "logonScreen"
      invoked from within
  ".#mbar.#mbar#file invoke active"
      ("uplevel" body line 1)
      invoked from within
  "uplevel #0 [list $w invoke active]"
      (procedure "tk::MenuInvoke" line 47)
      invoked from within
  "tk::MenuInvoke .#mbar.#mbar#file 1"
      (command bound to event)


  To fix it, I changed all the invocations of logonScreen
  to ::tkchat::logonScreen and it seems to work.


tkt_uuid: 700327ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: base64
priority: 5 Medium
foundin: None
title: uuencode/uudecode using Trf
cmimetype: text/plain
submitter: rniva
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-03-24T23:35:23
comment:
  The following bug occurs when trying to uuencode a line
  beginning with '-' using the uuencode command in
  Trf(from base64/uuencode.tcl):

  Error: ::uuencode: wrong # args, all options require an
  argument

  Errorinfo: ::uuencode: wrong # args, all options
  require an argument
      while executing
  "::uuencode -mode encode $s"

  Using '--' to stop processing of arguments should fix it.

  tcllib1.3/base64/uuencode.tcl

  line 81:

   return [::uuencode -mode encode $s]

  should be:

    return [::uuencode -mode encode -- $s]

  Same with the call to uudecode.

  The bug was discovered using ActiveState Tcl 8.4.2, but
  also exists in the CVS repository as far as I can tell.


tkt_uuid: 700781ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: tkchat - Hide Users doesn't scroll userlist
cmimetype: text/plain
submitter: lvirden
assignee: patthoyts
closer: wildcard_25
closedate: 2005-06-15T07:06:04
comment:
  when I pop up the Visibility->Hide Users menu, the
  result is a huge series of checkboxes so large that the
  list proceeds off screen, unable to access them all.

  Either a scrollbar is needed for the list, or something
  other than a menu popup is needed.

  Also, if hide users doesn't hide IRCbridge users, then
  that functionality probably should be fixed.  That was
  what I was looking for in fact when I discovered the
  problem ...


tkt_uuid: 700829ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: Attempt to restart tkchat raises error
cmimetype: text/plain
submitter: lvirden
assignee: hartweg
closer: patthoyts
closedate: 2003-03-18T09:16:11
comment:
  I got the CVS head tkchat application from the
  activestate ftp site today.  I started it.  Later
  today, I received an email about an update, so I
  selected tkchat's retrieve script, followed by a
  restart.  The following error was raised (this is using
  tcl/tk 8.4.2):

  bad window path name ".refresh"
  bad window path name ".refresh"
      while executing
  "grid .ml .eMsg .post .refresh .mb -in .btm -sticky ews
  -padx 2 -pady 2"
      (procedure "CreateGUI" line 219)
      invoked from within
  "CreateGUI"
      (procedure "Init" line 104)
      invoked from within
  "Init"
      ("restart" arm line 7)
      invoked from within
  "switch -- $cmd {
  console {
      if {$::tkchat::_console} {
  console show
      } else {
  console hide
      }
  }
  reload {
      uplevel \#0 [list sou..."
      (procedure "Debug" line 2)
      invoked from within
  "Debug restart"
      ("reload" arm line 6)
      invoked from within
  "switch -- $cmd {
  console {
      if {$::tkchat::_console} {
  console show
      } else {
  console hide
      }
  }
  reload {
      uplevel \#0 [list sou..."
      (procedure "Debug" line 2)
      invoked from within
  "Debug reload"
      (procedure "Retrieve" line 32)
      invoked from within
  "Retrieve"
      ("retrieve" arm line 2)
      invoked from within
  "switch -- $cmd {
  console {
      if {$::tkchat::_console} {
  console show
      } else {
  console hide
      }
  }
  reload {
      uplevel \#0 [list sou..."
      (procedure "::tkchat::Debug" line 2)
      invoked from within
  "::tkchat::Debug retrieve"
      invoked from within
  ".#mbar.#mbar#dbg invoke active"
      ("uplevel" body line 1)
      invoked from within
  "uplevel #0 [list $w invoke active]"
      (procedure "tk::MenuInvoke" line 47)
      invoked from within
  "tk::MenuInvoke .#mbar.#mbar#dbg 1"
      (command bound to event)


tkt_uuid: 701077ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclbench
priority: 9 Immediate
foundin: None
title: normbench can't process newest runbench output
cmimetype: text/plain
submitter: techentin
assignee: hobbs
closer: hobbs
closedate: 2003-08-07T00:58:55
comment:
  normbench.tcl fails to process the results of the latest 
  runbench.tcl, with this stack trace.

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


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

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

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

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


tkt_uuid: 701288ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: ftp
priority: 5 Medium
foundin: None
title: Version 1.26 mods cause NList to fail
cmimetype: text/plain
submitter: dav480
assignee: patthoyts
closer: patthoyts
closedate: 2003-03-18T22:30:48
comment:
  Following simple example works in version 1.25, but
  fails in 1.26 & 1.27:

  package require ftp
  set s [ftp::Open ftp.marine.csiro.au anonymous \
  Harvey.Davies@csiro.au -mode passive]
  ftp::NList $s

  Following patch fixes problem (reverts line 2754 to
  version 1.25)

  2754c2754
  <     switch -- $ftp(State) {
  ---
  >     switch -regexp -- $ftp(State) {


tkt_uuid: 702169ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: tcl nits picked in tkchat
cmimetype: text/plain
submitter: lvirden
assignee: nobody
closer: patthoyts
closedate: 2003-07-27T22:05:23
comment:
  I'm attaching a patch to this feature request - it is
  just a set of changes to add -- to regexp, add switch
  default actions, and to brace some expr's.


tkt_uuid: 704171ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: doctools
priority: 7 High
foundin: None
title: doctools - ease of use - no quoting required
cmimetype: text/plain
submitter: royterry
assignee: andreas_kupries
comment:
  Would be nicer if most commands did not require a 
  single argument. For example, I would like [comment] to 
  take any number of args so that I can simply type the 
  comment w/o bothering to open/close quoting.


tkt_uuid: 704175ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: doctools
priority: 7 High
foundin: None
title: doctools - generalize: doctool .GT. manpage tool
cmimetype: text/plain
submitter: royterry
assignee: andreas_kupries
comment:
  I would like to see alternatives to manpage_*. Or at least 
  do not require all the arguments.

  - "section" is a unixism that should not be required in a 
  general package. It just clutters and confuses those who 
  don't know what it means.

  - "version" is nice but ought to be optional

  - "command" is ok for manpage_begin but there should 
  be other ways of starting a page as it would make the 
  doctools package more generic which would be a good 
  thing.

  Thanks for this very useful tool! - Roy Terry


tkt_uuid: 704187ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools - manpage_begin doc error re args
cmimetype: text/plain
submitter: royterry
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-03-24T23:59:02
comment:
  The doc I have says:
  manpage_begin command section version 
  This command begins a manpage. Nothing is allowed to 
  precede it. Arguments are the name of the command 
  described by the manpage, the section of the manpages 
  this manpages lives in, the version of the module 
  containing the command, the name of the module itself 
  and two descriptions, one short for the command and 
  one a bit longer for the module. Both have to fit on one 
  line.

  NOTICE: the descriptive verbiage calls out "two 
  descriptions" which the summary line does not show.
  Seems a contradiction; either the summary or the 
  verbiage needs changing.


tkt_uuid: 704219ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools - HTML customization features
cmimetype: text/plain
submitter: royterry
assignee: andreas_kupries
comment:
  (Hope I'm not just missing something)

  Would like a way to "tune" the output for HTML, such as 
  specificy H1 vs. H2 or custom tag for section headers. 
  Also the built-in headers like NAME and DESCRIPTION 
  should be optional and their text should be settable. For 
  example, the user may wish initial caps instead of all 
  caps. Fonts? Colors, etc.

  Is there a plan for customizability of HTML?

  Cheers,
  Roy Terry


tkt_uuid: 707009ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: fileutil::stripPwd [pwd] produces error
cmimetype: text/plain
submitter: hgiese
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-03-25T23:57:18
comment:
  Hello,
  fileutil::stripPwd produces an error when called like
      fileutil::stripPwd [pwd]
  While I would suggest to return '.' in this case, it
  might make  sense to return $path unchanged, but in any
  case it should not produce an error.

  I attach a version where '.' is returned in this
  particular case - and some typos corrected.
  Best regards
  Helmut Giese


tkt_uuid: 707607ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: Tcllib source README missing web info
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-03-24T23:09:12
comment:
  the README for the tcllib source or install
  distribution does not mention the sf.net web site.

  The attached patch adds a mention of the site to the
  README file.
  I'm uncertain where in the installation directory such
  a mention should go - should the README be installed?


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

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

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

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

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


tkt_uuid: 709123ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: csv
priority: 5 Medium
foundin: None
title: ::csv::split with | as separator
cmimetype: text/plain
submitter: jhonan
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-03-31T22:39:33
comment:
  I am trying to use ::csv::split2matrix with | as the
  separator char.

  set trec "REC|DPI|AD1|AD2|AD3"
  set sepchar "|"
  set line [::csv::split $trec $sepchar]
  puts $line

  - -----> {"} {} {"REC} DPI AD1 AD2 AD3

  set trec "REC,DPI,AD1,AD2,AD3"
  set sepchar ","
  set line [::csv::split $trec $sepchar]
  puts $line

  - -----> REC DPI AD1 AD2 AD3


tkt_uuid: 709375ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: crc
priority: 7 High
foundin: None
title: current tcllib test suite failures report
cmimetype: text/plain
submitter: lvirden
assignee: patthoyts
closer: patthoyts
closedate: 2003-04-02T21:39:41
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: 709495ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: bwidget
priority: 5 Medium
foundin: None
title: SpinBox widget problem
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2003-07-17T19:21:25
comment:
  I have made changes to the SpinBox widget of the
  BWidget library that seem to fix the following:

  The SpinBox widget of the BWidget library does not
  automatically turn over to the minimum/maximum value.
  That is, when the user selects the down arrow until the
  minimum value is reached, then selects the down arrow
  again, the widget should turn over to the maximum
  value. The widget should also turn over to the minimum
  value when the hiighest value is reached and the up
  arrow is selected.

  My new version of the file is attached. Please contact
  me and let me know if you agree at the email address
  indicated below.

  Take care,
  Cecelia Mitchell (cece.mitchell@noaa.gov)
  Applications Developer
  RS Information Systems


tkt_uuid: 710139ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget 1.4.1 ListBox dropovercmd bugs
cmimetype: text/plain
submitter: anhlephuoc
assignee: hobbs
closer: hobbs
closedate: 2007-10-31T19:43:40
comment:
  I encountered 2 bugs in the same proc  ListBox::_over_cmd

  1) The variable xs can escape intialisation in some case, causing runtime error.
  Can be produced by dragging (slowly) an entry vertically from
  a droppable area to a non-droppable area or reverse.

  2) -dropovercmd command, get called back with a missing parameter $path

  Below is a small context diff for the the changes:

  $ diff -c listbox.tcl*
  *** listbox.tcl Wed Mar 26 14:31:00 2003
  --- listbox.tcl.orig    Tue Aug 27 05:56:26 2002
  ***************
  *** 1164,1170 ****
            set yi   [expr {$line*$dy}]
            set ys   [expr {$yi+$dy}]
            set xi   0
  -         set xs   $xi
            set pos  $line
            if { [Widget::getoption $path -multicolumn] } {
                set nrows $data(nrows)
  --- 1164,1169 ----
  ***************
  *** 1225,1231 ****

        if { $vmode && [set cmd [Widget::getoption $path -dropovercmd]] != "" } {
            # user-defined dropover command
  !         set res   [uplevel \#0 $cmd [list $path $source $target $op $type $dnddata]]
            set code  [lindex $res 0]
            set vmode 0
            if {$code & 1} {
  --- 1224,1230 ----

        if { $vmode && [set cmd [Widget::getoption $path -dropovercmd]] != "" } {
            # user-defined dropover command
  !         set res   [uplevel \#0 $cmd [list $source $target $op $type $dnddata]]
            set code  [lindex $res 0]
            set vmode 0
            if {$code & 1} {


tkt_uuid: 710658ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Focusproblem with Widget::focusOK
cmimetype: text/plain
submitter: rniva
assignee: jenglish
closer: jenglish
closedate: 2003-05-18T17:26:58
comment:
  We have some internally developed widgets which return
  an empty string on unknown commands/options. This
  causes problems for Widget::focusOK in widget.tcl,
  which uses cget -editable:

  Errorinfo: can't use empty string as operand of "!"
      while executing
  "if {($code == 0) && !$value} {
          return 0
      }"
      (procedure "focusOK" line 27)
      invoked from within
  "focusOK $cur"
      (procedure "Widget::focusNext" line 36)
      invoked from within
  "Widget::focusNext .apar2"
      invoked from within
  "focus [Widget::focusNext .apar2]"
      (command bound to event)

  May I suggest that line 1301 in widget.tcl is changed from:

      if {($code == 0) && !$value} {

  to:

      if {($code == 0) && $value == 0} {

  which is not only safer, but also easier to read, imo.


tkt_uuid: 712028ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Works For Me
subsystem: bwidget
priority: 3 Low
foundin: None
title: v1.6 bug in LabelEntry Creation
cmimetype: text/plain
submitter: aspenlogic
assignee: hobbs
closer: hobbs
closedate: 2003-04-08T21:54:12
comment:
  invalid command name ".#BWidget#frame"
      while executing
  "$path cget $realopt"
      (procedure "Widget::_test_tkresource" line 6)
      invoked from within
  "$Widget::_optiontype($type) $option $value [lindex
  $optdesc 3]"
      (procedure "Widget::init" line 62)
      invoked from within
  "Widget::init LabelFrame $path $args"
      (procedure "LabelFrame::create" line 2)
      invoked from within
  "LabelFrame::create .payroll.f.le0.labf -text {Payroll
  Date} -width 20 -anchor w -relief flat -borderwidth 0
  -focus .payroll.f.le0.e"
      ("eval" body line 1)
      invoked from within
  "eval LabelFrame::create $path.labf $maps(.labf) 
  -relief flat -borderwidth 0 -focus $path.e"
      (procedure "LabelEntry::create" line 8)
      invoked from within
  "LabelEntry::create .payroll.f.le0 -label {Payroll
  Date} -labelwidth 20 -labelanchor w -textvariable
  var_payroll_date"
      ("eval" body line 1)
      invoked from within
  "eval LabelEntry::create $path $args"
      (procedure "LabelEntry" line 1)
      invoked from within
  "LabelEntry $f -label $label -labelwidth 20
  -labelanchor w -textvariable $textvar"
      (procedure "gui_LabelEntry" line 6)
      invoked from within
  "gui_LabelEntry $gui_payroll.le0 "Payroll Date"
  var_payroll_date "
      invoked from within
  "grid [gui_LabelEntry $gui_payroll.le0 "Payroll Date"
  var_payroll_date ] -sticky e"
      (file "payroll.tcl" line 473)
      invoked from within
  "source payroll.tcl"


tkt_uuid: 712951ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: Potential infinite loop in doctools::cvs::scanLog
cmimetype: text/plain
submitter: jenglish
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-03-31T22:15:56
comment:
  In doctools/cvs.tcl, ~line 63:

  while { ! [regexp "(-----*)|(=====*)" $line] } {
      append comment $line "\n"
      incr i
      set line [lindex $text $i]
  }

  This will fail to terminate if the input doesn't end
  with a "-----*" or "=====*" line.  The while loop
  controlling clause should also include a test for " ...
  && $i < $n", to account for the possibility of bad
  input.


tkt_uuid: 714209ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: list
priority: 8
foundin: None
title: test failure: struct module
cmimetype: text/plain
submitter: patthoyts
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-02T22:48:13
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: 714211ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ncgi
priority: 5 Medium
foundin: None
title: test failure: ncgi module
cmimetype: text/plain
submitter: patthoyts
assignee: welch
closer: andreas_kupries
closedate: 2003-04-28T22:35:04
comment:
  Test platform: tcl 8.4.2, intel Windows 2000

  Multiple failure in the ncgi tests. I've attached the
  failure log as it's fairly large.


tkt_uuid: 714214ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 1 Zero
foundin: None
title: test failures: fileutils module
cmimetype: text/plain
submitter: patthoyts
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-08T19:49:18
comment:
  Test platform: tcl 8.4.2 on intel Windows 2000

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

  ==== fileType-1.14 test binary graphic png FAILED
  ==== Contents of test case:

      set f [file join $dir fileTypeTest pngFile]
      set res [catch {fileutil::fileType $f} msg]
      list $res $msg

  ---- Result was:
  0 binary
  ---- Result should have been (exact matching):
  0 {binary graphic png}
  ==== fileType-1.14 FAILED


  ==== fileType-1.21 test binary compressed gzip FAILED
  ==== Contents of test case:

      set f [file join $dir fileTypeTest gzipFile]
      set res [catch {fileutil::fileType $f} msg]
      list $res $msg

  ---- Result was:
  0 binary
  ---- Result should have been (exact matching):
  0 {binary compressed gzip}
  ==== fileType-1.21 FAILED


tkt_uuid: 714947ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: widget
priority: 5 Medium
foundin: None
title: widget: digraph.tcl needs TIP 44 update
cmimetype: text/plain
submitter: dgp
assignee: hobbs
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: 715193ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: unwanted PCDATA space trim
cmimetype: text/plain
submitter: fapael
assignee: andreas_kupries
comment:
  ### test code ###

  package require cmdline 1.1
  package require htmlparse 0.3

  set html {<html><head><title>Title</title>
  <body><b>BB</b> RR <b>BB</b> <i>II</i></body></html>}

  catch {t destroy}
  struct::tree t
  htmlparse::2tree $html t
  t walk node1 -order both -command {puts [list %n %a [t
  getall %n]] }

  ### result ###
  ...
  node7 enter {type b data {}}
  node8 enter {type PCDATA data BB}
  node8 leave {type PCDATA data BB}
  node7 leave {type b data {}}
  node9 enter {type PCDATA data RR}
  node9 leave {type PCDATA data RR}
  node10 enter {type b data {}}
  node11 enter {type PCDATA data BB}
  node11 leave {type PCDATA data BB}
  node10 leave {type b data {}}
  node12 enter {type i data {}}
  node13 enter {type PCDATA data II}
  node13 leave {type PCDATA data II}
  node12 leave {type i data {}}
  ...

  ### expected result ###

  ...
  node9 enter {type PCDATA data { RR }}
  ...
  node12 enter {type PCDATA data { }}
  ...

  ### discussion ###

  Due to "string trim $textBehindTheTag",
  significant PCDATA spaces are destroyed.
  The code should distinguish if PCDATA is expected
  or not expected. It must rely on a sort of simplified DTD.


tkt_uuid: 717594ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: dns
priority: 8
foundin: None
title: bgerror in dns::TcpEvent
cmimetype: text/plain
submitter: mrose
assignee: patthoyts
closer: patthoyts
closedate: 2003-04-12T00:46:44
comment:
  if a dns reply comes back that is too short (e.g.,
  server doesn't wait for tcp connection to gracefully
  drain, the call to "binary scan" won't create variable
  "id" and "flags", which will cause a bgerror to get
  thrown when those variables are references a few lines
  later.


tkt_uuid: 717921ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Rejected
subsystem: bwidget
priority: 4
foundin: None
title: v1.6 BWidget LabelEntry fails (was id 712028)
cmimetype: text/plain
submitter: aspenlogic
assignee: damonc
closer: oehhar
closedate: 2009-07-01T08:36:53
comment:
  The attached file, when sourced twice in a row, fails
  to create the LabelEntry widget.

  (NOTE: I had submitted this previously under 712028 but
  HOBBS response suggested that he had not seen it.
  712028 was closed and consequently I was unable to
  respond to add a comment to that affect. Hence the new
  bug submission.)


tkt_uuid: 718985ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: irc
priority: 8
foundin: None
title: Potential infinite loop
cmimetype: text/plain
submitter: dkf
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-14T06:39:29
comment:
  The Tcllib IRC module is capable of going into an
  infinite loop if the IRC server closes the socket
  unexpectedly.

  The problem is that the GetEvent procedure in irc.tcl
  doesn't make any attempt to close the socket once [eof]
  has been received, and [gets] does not generate an
  error when you try to read from a remotely-closed
  socket (it just retrieves an empty string and returns
  -1).  Hence if the socket enters the [eof] state
  through premature closure by the remote end, the Tcl
  end never gets closed; the fileevent handler returns
  with the socket in the eof state and gets immediately
  reinvoked (becaused part-closed sockets are always
  readable; the underlying read() calls don't block,
  since they can definitely return that no data was
  available.)

  I suggest this version of that routine instead (which
  is mostly just reordering):

    proc GetEvent { } {
       variable linedata
       variable sock
       array set linedata {}
       if {[catch {
          gets $sock line
       } err]} {
          close $sock
          ${irc::log}::error \
                  "Error receiving from network: $err"
          return
       }
       # Since we're using blocking sockets, testing the
       # result of [gets] is sufficient to detect EOF
       if {$err < 0} {
          if {[info exists dispatch(EOF)]} {
             $dispatch(EOF)
          }
          close $sock
       }
       if {[string match :* $line]} {
          DispatchServerEvent [string range $line 1 end]
       } else {
          # Should this command get an empty string on
          # end-of-file?  If not, add a return after
          # the close above.
          DispatchServerCmd $line
       }
    }


tkt_uuid: 719616ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: None
priority: 8
foundin: None
title: alter install.tcl to support re-installs
cmimetype: text/plain
submitter: timmoss
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-21T18:35:13
comment:
  Index: install.tcl
  =========================================
  ==========================
  RCS file: /cvsroot/tcllib/tcllib/install.tcl,v
  retrieving revision 1.2
  diff -w -b -r1.2 install.tcl
  18c18
  <             file copy $file $sub
  ---
  >             file copy -force -- $file $sub

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


tkt_uuid: 720024ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: BWidget ComboBox claims selection on FocusIn
cmimetype: text/plain
submitter: jenglish
assignee: jenglish
closer: hobbs
closedate: 2003-04-12T19:37:47
comment:
  The BWidget ComboBox automatically selects the (entire)
  entry contents whenever it receives a <FocusIn> event,
  (asserting ownership of the PRIMARY selection in the
  process).

  This is appropriate when the widget receives focus due
  to keyboard traversal, but not for all <FocusIn>
  events.  (For example, if the user changes focus to a
  different toplevel or application and back again, the
  ComboBox should not reselect its contents.)


tkt_uuid: 720206ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: profiler
priority: 7 High
foundin: None
title: test failure: profiler module with tcl8.3
cmimetype: text/plain
submitter: patthoyts
assignee: nobody
closer: patthoyts
closedate: 2003-04-29T08:20:56
comment:
  Using tcl 8.3 to run the tcllib test suite we get the
  following errors  not present when using tcl 8.4
  Test platform: tcl 8.3.5 Windows 2K intel.

  Module:profiler
  modules/profiler/profiler.test

  ==== profiler-3.1 profiler wrappers do profiling FAILED
  ==== Contents of test case:

      set c [interp create]
      interp alias $c parentSet {} set
      set result [$c eval {
  set auto_path [parentSet auto_path]
  package require profiler
  profiler::init
  proc ::foo {} {
      set foobar 0
  }
  foo
  foo
  foo
  foo
  profiler::dump ::foo
      }]
      interp delete $c
      array set bar $result
      array set foo $bar(::foo)
      list callCount $foo(callCount) callerDist
  $foo(callerDist)

  ==== Test generated error:
  divide by zero
  ---- Result should have been:
  callCount 4 callerDist {GLOBAL 4}
  ==== profiler-3.1 FAILED


  ==== profiler-4.1 profiler::print produces nicer output
  than dump FAILED
  ==== Contents of test case:

      set c [interp create]
      interp alias $c parentSet {} set
      set result [$c eval {
  set auto_path [parentSet auto_path]
  package require profiler
  profiler::init
  proc ::foo {} {
      set foobar 0
  }
  foo
  foo
  foo
  foo
  profiler::print ::foo
      }]
      interp delete $c
      regsub {Compile time:.*} $result {} result
      string trim $result

  ==== Test generated error:
  divide by zero
  ---- Result should have been:
  Profiling information for ::foo
  ============================================================
              Total calls:  4
      Caller distribution:
    GLOBAL:  4
  ==== profiler-4.1 FAILED


  ==== profiler-5.1 profiler respects suspend/resume FAILED
  ==== Contents of test case:

      set c [interp create]
      interp alias $c parentSet {} set
      set result [$c eval {
  set auto_path [parentSet auto_path]
  package require profiler
  profiler::init
  proc ::foo {} {
      set foobar 0
  }
  foo
  foo
  foo
  foo
  profiler::suspend ::foo ; # note the qualification,
  has to match proc!
  foo
  foo
  set res [profiler::print ::foo]
  profiler::resume
  set res
      }]
      interp delete $c
      regsub {Compile time:.*} $result {} result
      string trim $result

  ==== Test generated error:
  divide by zero
  ---- Result should have been:
  Profiling information for ::foo
  ============================================================
              Total calls:  4
      Caller distribution:
    GLOBAL:  4
  ==== profiler-5.1 FAILED


  ==== profiler-6.1 profiler handles functions with funny
  names FAILED
  ==== Contents of test case:

      set c [interp create]
      interp alias $c parentSet {} set
      set result [$c eval {
  set auto_path [parentSet auto_path]
  package require profiler
  profiler::init
  proc ::foo(bar) {} {
      set foobar 0
  }
  foo(bar); foo(bar); foo(bar)
  profiler::dump ::foo(bar)
      }]
      interp delete $c
      array set bar $result
      array set foo ${bar(::foo(bar))}
      list callCount $foo(callCount) callerDist
  $foo(callerDist)

  ==== Test generated error:
  divide by zero
  ---- Result should have been:
  callCount 3 callerDist {GLOBAL 3}
  ==== profiler-6.1 FAILED


  ==== profiler-9.1 dump for multiple functions FAILED
  ==== Contents of test case:

      set c [interp create]
      interp alias $c parentSet {} set
      set result [$c eval {
  set auto_path [parentSet auto_path]
  package require profiler
  profiler::init
  proc ::foo {} {
      set foobar 0
  }
  proc ::bar {} {
      set foobar 1
  }
  foo; foo; bar;
  profiler::dump *
      }]
      interp delete $c
      array set data $result
      catch {unset foo}
      catch {unset bar}
      array set foo $data(::foo)
      array set bar $data(::bar)
      list [list callCount $foo(callCount) callerDist
  $foo(callerDist)]  [list callCount $bar(callCount)
  callerDist $bar(callerDist)]

  ==== Test generated error:
  divide by zero
  ---- Result should have been:
  {callCount 2 callerDist {GLOBAL 2}} {callCount 1
  callerDist {GLOBAL 1}}
  ==== profiler-9.1 FAILED


tkt_uuid: 720208ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ntp
priority: 7 High
foundin: None
title: test failure: ntp module with tcl 8.3
cmimetype: text/plain
submitter: patthoyts
assignee: patthoyts
closer: andreas_kupries
closedate: 2003-04-24T19:55:25
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: 720318ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: None
priority: 5 Medium
foundin: None
title: modules can't be requested in safeBase
cmimetype: text/plain
submitter: mic42
assignee: nobody
closer: gwlester
closedate: 2004-03-02T22:32:07
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: 720348ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: patch to support drop in cgraph library
cmimetype: text/plain
submitter: mic42
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-14T07:26:59
comment:
  Hi,

  adding this at the top of graph.tcl

  # Try to load the cgraph package
  if {![catch {
      package require cgraph 0.6
      }]} {
          # the cgraph package takes over, so we can return
          return
      }
  }

  Trivial patch to support cgraph as drop in replacement
  of ::struct::graph.

  I pushed cgraph to version 0.6.

  http://physnet.uni-oldenburg.de/~schlenkt/tcl/graph/

  Michael


tkt_uuid: 720933ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: struct :: graph
priority: 2
foundin: None
title: testsuite makes incorrect assumptions about walk order
cmimetype: text/plain
submitter: mic42
assignee: andreas_kupries
comment:
  The tests in graph.test assume a particular order while
  walking a graph, even if multiple valid orderings exist.

  This isn't a direct problem for tcllibs ::struct::graph
  module, but for modules reusing the test suite for
  interface checking, like cgraph does.

  There are multiple valid walks through the graph for
  each test, but the test suite selects an arbitrary one
  as the correct solution based on implementation details
  of ::struct::graph

  The attached pdf file shows the graph layout for the
  tests. One can easily see the multiple valid walk pathes.

  Solution:
  Match with any of the valid walks, not only with a
  single one selected arbitrarily.

  Some examples from running the tests with another
  implementation of the interface (cgraph):



  ---- Result was:
  enter mygraph i enter mygraph ix enter mygraph vii
  enter mygraph vi enter mygraph viii enter mygraph ii
  enter mygraph iii enter mygraph iv enter mygraph v
  ---- Result should have been (exact matching):
  enter mygraph i enter mygraph ii enter mygraph iii
  enter mygraph iv enter mygraph v enter mygraph vi enter
  mygraph viii enter mygraph ix enter mygraph vii
  ==== graph-21.10 FAILED


  ==== graph-21.11 forward post-order dfs walk FAILED
  ---- Result was:
  leave mygraph viii leave mygraph vi leave mygraph v
  leave mygraph iv leave mygraph iii leave mygraph ii
  leave mygraph vii leave mygraph ix leave mygraph i
  ---- Result should have been (exact matching):
  leave mygraph viii leave mygraph vi leave mygraph v
  leave mygraph iv leave mygraph iii leave mygraph ii
  leave mygraph ix leave mygraph vii leave mygraph i
  ==== graph-21.11 FAILED
  ==== graph-21.12 forward both-order dfs walk FAILED
  ---- Result was:
  enter mygraph i enter mygraph ii enter mygraph iii
  enter mygraph iv enter mygraph v enter mygraph vi enter
  mygraph viii leave mygraph viii leave mygraph vi leave
  mygraph v leave mygraph iv leave mygraph iii leave
  mygraph ii enter mygraph vii leave mygraph vii enter
  mygraph ix leave mygraph ix leave mygraph i
  ---- Result should have been (exact matching):
  enter mygraph i enter mygraph ii enter mygraph iii
  enter mygraph iv enter mygraph v enter mygraph vi enter
  mygraph viii leave mygraph viii leave mygraph vi leave
  mygraph v leave mygraph iv leave mygraph iii leave
  mygraph ii enter mygraph ix leave mygraph ix enter
  mygraph vii leave mygraph vii leave mygraph i
  ==== graph-21.12 FAILED
  ==== graph-21.13 forward pre-order bfs walk FAILED
  ---- Result was:
  enter mygraph i enter mygraph ix enter mygraph ii enter
  mygraph iii enter mygraph iv enter mygraph v enter
  mygraph vi enter mygraph viii enter mygraph vii
  ---- Result should have been (exact matching):
  enter mygraph i enter mygraph ii enter mygraph ix enter
  mygraph vii enter mygraph iii enter mygraph vi enter
  mygraph iv enter mygraph viii enter mygraph v
  ==== graph-21.13 FAILED
  ==== graph-21.14 backward pre-order bfs walk FAILED
  ---- Result was:
  enter mygraph ix enter mygraph i enter mygraph viii
  enter mygraph vi enter mygraph v enter mygraph iv enter
  mygraph iii enter mygraph ii enter mygraph vii
  ---- Result should have been (exact matching):
  enter mygraph ix enter mygraph i enter mygraph viii
  enter mygraph vi enter mygraph v enter mygraph vii
  enter mygraph iv enter mygraph iii enter mygraph ii
  ==== graph-21.14 FAILED
  ==== graph-21.15 backward pre-order dfs walk FAILED
  ---- Result was:
  enter mygraph ix enter mygraph i enter mygraph viii
  enter mygraph vi enter mygraph vii enter mygraph v
  enter mygraph iv enter mygraph iii enter mygraph ii
  ---- Result should have been (exact matching):
  enter mygraph ix enter mygraph i enter mygraph viii
  enter mygraph vi enter mygraph v enter mygraph iv enter
  mygraph iii enter mygraph ii enter mygraph vii
  ==== graph-21.15 FAILED
  ==== graph-21.16 backward post-order dfs walk FAILED
  ---- Result was:
  leave mygraph vii leave mygraph ii leave mygraph iii
  leave mygraph iv leave mygraph v leave mygraph vi leave
  mygraph viii leave mygraph i leave mygraph ix
  ---- Result should have been (exact matching):
  leave mygraph ii leave mygraph iii leave mygraph iv
  leave mygraph v leave mygraph vii leave mygraph vi
  leave mygraph viii leave mygraph i leave mygraph ix
  ==== graph-21.16 FAILED
  ==== graph-21.17 backward both-order dfs walk FAILED
  ---- Result was:
  enter mygraph ix enter mygraph i enter mygraph viii
  enter mygraph vi enter mygraph vii leave mygraph vii
  enter mygraph v enter mygraph iv enter mygraph iii
  enter mygraph ii leave mygraph ii leave mygraph iii
  leave mygraph iv leave mygraph v leave mygraph vi leave
  mygraph viii leave mygraph i leave mygraph ix
  ---- Result should have been (exact matching):
  enter mygraph ix enter mygraph i enter mygraph viii
  enter mygraph vi enter mygraph v enter mygraph iv enter
  mygraph iii enter mygraph ii leave mygraph ii leave
  mygraph iii leave mygraph iv leave mygraph v enter
  mygraph vii leave mygraph vii leave mygraph vi leave
  mygraph viii leave mygraph i leave mygraph ix
  ==== graph-21.17 FAILED


tkt_uuid: 720934ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math
priority: 9 Immediate
foundin: None
title: Test failures in math::fuzzy
cmimetype: text/plain
submitter: andreas_kupries
assignee: arjenmarkus
closer: andreas_kupries
closedate: 2003-04-23T17:28:19
comment:
  When running the testsuite for 'math' I get three
  failures in the math::fuzzy testsuite. Attached the log
  for the whole math package.


tkt_uuid: 722192ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 3 Low
foundin: None
title: Use lsearch -exact in bwidget/tree.tcl
cmimetype: text/plain
submitter: jenglish
assignee: hobbs
closer: hobbs
closedate: 2003-05-14T23:54:20
comment:
  The attached patch is mechanical ly replaces all
  occurrences of [lsearch] in tree.tcl with [lsearch
  -exact]; this is to avoid problems in case node IDs
  contain  "*" or other glob characters.

  I'm *pretty* sure that [lsearch -exact] is the right
  thing in all cases, since the Tree widget isn't
  documented to use glob-matching in any operation, but
  this ought to be double-checked before committing.


tkt_uuid: 723307ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: tree
priority: 8
foundin: None
title: Tree Walk: Add Break/Return/Error Support
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-02-02T00:15:52
comment:
  The struct::tree functions within tcllib work VERY well - 
  but during some recent development I realized that there 
  was no clean way to "stop" a tree walk when walking 
  the nodes of a tree (either direction or both directions).

  I consider struct::tree strcutures to be a distinct 
  alternative to the already very powerful arrays and lists 
  wtihin tcl.

  The ability to attribute nodes with keys and manipulate 
  them is very powerful, but when working with large tree 
  structures and then trying to navigate them or search 
  until something is found, the walk command works, but 
  does NOT stop until it reaches the end of the tree.

  Adding the abilty to break/return/error during a walk 
  would definately increase the already useflness of this 
  library.

  contact me with any questions.

  Dave Bigelow
  davidhbigelow@compuserve.com


tkt_uuid: 723318ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: tree
priority: 8
foundin: None
title: struct::tree -- Report maxdepth of struct from node
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-08-08T18:29:07
comment:
  myTree depth $node -- Depth of Current Node
  myTree size $node -- Returns number of Children for 
  that Node


  How about a:

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

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

  For Example:

  myTree maxdepth root
  ---> 3

  myTree maxdepth 6
  ---> 3

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


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

  Any Questions?

  David Bigelow
  davidhbigelow@compuserve.com


tkt_uuid: 723402ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: tree
priority: 8
foundin: None
title: Key/Value Filtering Support: myTree children $node -key len*
cmimetype: text/plain
submitter: davidhbigelow
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-02-15T06:50:01
comment:
  It sure would be nice to be able to collect children of a 
  node within a struct::tree by filtering for key names 
  and/or values.

  CURRENT:
  myTree children $node
  -->> {List of Children Nodes of $node}


  PROPOSED:
  myTree children $node -key len*
  --> {List of nodes that have a key value matching "len*"

  myTree children $node -key length -value >50
  -->> {List of children who have a key name "length" and 
  the value of that key is greaterthan "50".

  myTree children -allchildren -- $node -key length
  --> the "-allchildren" option would toggle the search to 
  extract any sub-children through the rest of the structure 
  from the given node that have a -key of "length" -- same 
  capabilities for -value search also.

  For each example, the search options could be either 
  conventional glob/string matching and/or regexp.

  The last example would be particularly useful when 
  trying to quickly extract ALL nodes from a tree structure 
  that meet some particular characteristic(s) instead of 
  walking the entire structure node-by-node....  This would 
  greatly enhance the speed and performance for making 
  global changes quickly without evaluating ever node - 
  especially if a list of nodes is obtained quickly with one 
  command.

  This would also permit users to quickly digest statistics 
  about the structure without a walk -command -- sub-
  command strcutre to build up results based on a walk.


  Any Questions?

  David Bigelow
  davidhbigelow@compuserve.com


tkt_uuid: 723426ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ntp
priority: 8
foundin: None
title: Testsuite failures
cmimetype: text/plain
submitter: andreas_kupries
assignee: patthoyts
closer: dgp
closedate: 2003-04-24T20:46:33
comment:
  I ran the testsuite of ntp using a tclsh 8.3.4 and a tclkit 
  8.4.1. In both cases I got failures, but different. Enclosed 
  the log files.


tkt_uuid: 723677ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: struct :: tree
priority: 5 Medium
foundin: None
title: ADD --> ::struct::tree -exists -- myTree
cmimetype: text/plain
submitter: davidhbigelow
assignee: andreas_kupries
comment:
  Currently there appears to be no way to detect if 
  a ::struct::tree name exists without usign non-lib 
  functions to capture what is availiable.

  CURRENT METHOD:
  if ![string match [info commands myTree] myTree] {
      ::struct::tree myTree
  }

  PROPOSED METHOD:
  if ![::struct::tree -exists -- myTree] {
      ::struct::tree myTree
  }


  We have found, when we are using the ::struct::tree as a 
  central location for data (instead of arrays or lists), that 
  we need to verify if the tree exists before we continue 
  with other program logic.  Since we have many procs 
  referencing the same ::struct::tree, and any of them 
  could be called at any time by the end user, we need to 
  check to see if the ::struct::tree exists so we make sure 
  to create it if it is not there.

  Even though there is a way to detect if the ::struct::tree 
  exists using other Tcl commands - it would be easier 
  and more complete to have this basic call in 
  the ::struct::tree lib as a standard option.


  Any Questions?

  David Bigelow
  davidhbigelow@compuserve.com


tkt_uuid: 723684ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: tree
priority: 5 Medium
foundin: None
title: ADD: ::struct::tree -delete -- myTree
cmimetype: text/plain
submitter: davidhbigelow
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-18T15:08:17
comment:
  Currently there appears to be no way to delete 
  a ::struct::tree without usign non-lib functions to capture 
  what is availiable.

  CURRENT METHOD:
  rename myTree {}


  PROPOSED METHOD:
  ::struct::tree -delete -- myTree


  Any Questions?

  David Bigelow
  davidhbigelow@compuserve.com


tkt_uuid: 723692ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: tree
priority: 8
foundin: None
title: ADD: ::struct::tree -copy -- myTree myTree2
cmimetype: text/plain
submitter: davidhbigelow
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-08-08T18:28:16
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: 724730ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: struct :: graph
priority: 7 High
foundin: None
title: Behaviour of struct::graph walk
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
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: 724822ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: struct :: graph
priority: 7 High
foundin: None
title: graph - simply increased functionality in walk
cmimetype: text/plain
submitter: coldstore
assignee: andreas_kupries
comment:
  per http://mini.net/tcl/8787 there is some value in
  being able to override walk's behavior, and allow
  multiple visits of a node - particularly in the case
  that the graph is a DAG (where no cycles can exist)

  Moving the line graph.tcl 1884:

     set visited($node) .

  to before graph.tcl 1879 (in which the command is
  invoked) would permit the command to unset
  visited($node), and effectively override the visit-once
  semantics of walk for those cases.

  It's not exactly clean, but shouldn't change too much
  behavior, and I can't think of a better way to permit
  the desired behavior.


tkt_uuid: 725231ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math
priority: 8
foundin: None
title: math:statistics has scope errors
cmimetype: text/plain
submitter: dgp
assignee: arjenmarkus
closer: andreas_kupries
closedate: 2003-04-24T19:08:12
comment:
  the routines in the file liststat.tcl
  accept $expression arguments.

  These routines can only work correctly
  if [uplevel] is used to evaluate those
  $expression values.

  Currently [uplevel] is omitted and
  none of these commands works;
  does not even pass its own test
  suite.


tkt_uuid: 725557ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 8
foundin: None
title: tcllib installer failure
cmimetype: text/plain
submitter: lvirden
assignee: nobody
closer: andreas_kupries
closedate: 2003-04-24T17:33:04
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: 726275ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: general request
priority: 3 Low
foundin: None
title: distinguish tcllib man pages from other packages
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
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: 726352ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: bwidget configure/Makefile fails to install
cmimetype: text/plain
submitter: lvirden
assignee: damonc
closer: dev_null42a
closedate: 2006-11-10T21:33:08
comment:
  The currently distributed configure.in and Makefile.in
  that are in bwidget CVS result in a Makefile that looks
  for config/mkinstalldirs , but that file is no longer a
  part of the TEA 2 sample extension's distribution.

  Either a set of config directory files need to be
  included in bwidget, or the configure.in/makefile.in
  files need to be updated to TEA 2 or alternative (Tcl
  Script Extension Architecture - TSEA ?).


tkt_uuid: 727678ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: stats - deprecated
priority: 5 Medium
foundin: None
title: latest tcllib from CVS test suite has two stats module failu
cmimetype: text/plain
submitter: lvirden
assignee: welch
closer: patthoyts
closedate: 2003-04-29T08:24:41
comment:
  Source is 20030424 cvs snapshot from activestate ftp site.

  When I get this code and run make test, I see the
  following output - even though here on SF.net, the
  category says the module is deprecated...



  Module: stats
  modules/stats/stats.test
  incr scaler 4 microseconds per iteration
  incr array 6 microseconds per iteration
  rawcount 16 microseconds per iteration
  simple 65 microseconds per iteration
  lastn 146 microseconds per iteration
  lastn 136 microseconds per iteration
  hist 186 microseconds per iteration
  hist2x 257 microseconds per iteration

  ==== stats-histlog stats::count FAILED
  ==== Contents of test case:

      stats::countInit histlog -histlog 10
      stats::count histlog 0.1
      stats::count histlog 0.5
      stats::count histlog 0.9
      stats::count histlog 1.0
      stats::count histlog 2
      stats::count histlog 3
      stats::count histlog 5
      stats::count histlog 10
      stats::count histlog 30
      stats::count histlog 50
      stats::count histlog 100
      stats::count histlog 300
      stats::count histlog 500
      stats::count histlog 1000
      stats::countGet histlog -hist

  ---- Result was:
  -23 1 -6 1 -1 1 0 1 6 1 10 1 16 1 23 1 34 1 39 1 46 1
  57 1 62 1 69 1
  ---- Result should have been (exact matching):
  0 1 1 7 2 2 3 1 6 1
  ==== stats-histlog FAILED

  Pausing during timehist tests
  timehist 224 microseconds per iteration

  ==== stats-countNames stats::countNames FAILED
  ==== Contents of test case:

      stats::countInit simple
      stats::countInit avg
      stats::countInit lastn -lastn 4
      stats::countInit hist -hist 10
      stats::countInit hits -timehist 4
      lsort [stats::countNames]

  ---- Result was:
  avg hist histlog hits lastn simple
  ---- Result should have been (exact matching):
  avg hist hits lastn simple
  ==== stats-countNames FAILED


  followed later by

  Tests ended at Fri Apr 25 14:35:33 EDT 2003
  all.tcl:        Total   3178    Passed  3121    Skipped
  57      Failed  0


  So somehow these FAILED tests don't get counted.  Is
  this part of the deprecation?  And should the test
  suite not test the code if it is intended to go away?


tkt_uuid: 727694ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: general request
priority: 8
foundin: None
title: sak validate imposes [package provide] format
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-05-01T00:18:05
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: 729709ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 6
foundin: None
title: tkchat no longer pops to top or beeps on alerts
cmimetype: text/plain
submitter: lvirden
assignee: patthoyts
closer: patthoyts
closedate: 2003-04-30T21:48:42
comment:
  somewhere in the last change or two, tkchat at least
  for me has lost the functionality of alerting me when
  someone whispers to my login id.

  I am running sparc/solaris 2.8, with tcl/tk 8.4.2
  installed and the latest tcllib from cvs.

  Up until the past few weeks, if I had tkchat running,
  then opened netscape, dtmail, or dtterm windows on top
  of tkchat, a whisper would result in a beep sound and
  the window raising.

  This no longer is the case.

  from $HOME/.tkchatrc, I see:

  array set Options {
  Alert,ACTION 1
  Alert,ALL 0
  Alert,ME 1
  Alert,NORMAL 1
  Alert,RAISE 1
  Alert,SOUND 1
  Alert,TOPIC 0
  AnimEmoticons 1
  AutoConnect 1
  AutoScroll 1

  plus more.

  It _appears_ to be configured properly - the menus have
  the appropriate check boxes highlighted.


tkt_uuid: 731252ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: enhanced tkchat help requested
cmimetype: text/plain
submitter: lvirden
assignee: nobody
closer: patthoyts
closedate: 2003-07-27T22:06:29
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: 731457ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: comm
priority: 5 Medium
foundin: None
title: results are lost for send -async calls
cmimetype: text/plain
submitter: hemanglavana
assignee: hobbs
closer: hobbs
closedate: 2003-05-10T23:48:30
comment:
  The documentation suggests that the results of RPC and
  remote errors are lost when -async option is specified
   with comm::comm send.

  Is there an API which will allow me to wait and/or
  retrieve those values of an async invocation? If not,
  would it be possible to add such an API to this
  package. It would make it really useful to be able to
  submit async cmds to more than 1 interps and then wait
  for the results at a later point.

  -----------------------------------------------------------------

  Hm. This requires a number of changes in comm I
  believe. If I remember my look at the code correctly
  The sender tells the remote side if he is interested in
  the results of the call, and if not (i.e. -async) the
  remote side does not even make an effort to send this
  data back.

  ... so the sender has to pretend 'no async' to the
  remote side, but claim async for itself.

  Is there truly a need to wait for the result on your
  own ? How about allowing the specification of a
  'result' callback instead. Automatically called when
  the results return.

  The problem I have with waiting later is that comm does
  some fairly tricky things with 'vwait' to ensure that
  the sender is able to process incoming requests etc.
  even while waiting for the result of a synchronous
  [send], and this part is not completely understood by
  me (yet). Adding callbacks OTOH hand seems simpler to
  me. It would also fit into the general model of Tcl for
  such a situation.

  Andreas

  ----------------------------------------------------------------------

  I would think that the API would be something like
  -asyncvar foo, and foo gets set with the data (probably
  a list of completion code and result) when completed. 
  Perhaps -variable instead, understood to be async, not
  to overdo the -async name.

  Jeff
  ----------------------------------------------------------------------


tkt_uuid: 731759ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: mime
priority: 5 Medium
foundin: None
title: line endings wrong for buildmessage
cmimetype: text/plain
submitter: gunzel
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-05-05T07:15:42
comment:
  Using buildmessage and therefore buildmessageaux to generate a 
  mime message results in the headers and boundaries having LF as 
  their line ending. According to RFC2045 these should be CRLF. 

  This may also apply to copymessage/copymessageaux also although 
  it may be using channels to do the translation I'm not sure.

  I have attached a suggested patch for mime.tcl

  Thanks

  Matthew


tkt_uuid: 732512ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: mime
priority: 5 Medium
foundin: None
title: encoded word encoding may be lower or upper case
cmimetype: text/plain
submitter: gunzel
assignee: andreas_kupries
closer: mrose
closedate: 2003-05-13T17:16:03
comment:
  RFC2047 specifies that the encoding for an encoded-word in a 
  Message Header may be specified by an upper or lower case letter, 
  currently ::mime::word_decode only accepts upper case. I have 
  attached a (very simple) patch to remedy this and added a couple of 
  simple tests to check for it.

  Thanks

  Matthew


tkt_uuid: 732597ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: general request
priority: 5 Medium
foundin: None
title: move tcllib doc generation to build step
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
comment:
  Currently the tcllib generated Makefile generates the
  nroff documentation each time one does a make install.

  This means that if one has to install the library on
  1000 machines, the doc has to be generated a 1000 times.

  A change to make use of the Makefile, the target could
  be set up to only build the pieces which are out of
  date, and to do so once, at build time, saving computer
  resources and user time.


tkt_uuid: 733407ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: csv
priority: 5 Medium
foundin: None
title: Please extend tcllib ::csv for multi-line records
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-17T03:53:29
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: 733442ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: md5
priority: 5 Medium
foundin: None
title: procheck reports parse error
cmimetype: text/plain
submitter: hemanglavana
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-05-12T23:50:41
comment:
  unix> procheck md5.tcl
  ...
  md5.tcl:349 (parse) parse error: PARSE syntax 13757
  {syntax error in expression " ($x << $i) | (($x >> R$i)
  & S$i)"}
  expr { ($x << $i) | (($x >> R$i) & S$i)}
       ^
  ...

  On examining the md5.tcl file, lines 328 - 351 are
  never executed because of if {0} {...} block. But it
  would be better if procheck did not report any parse
  errors.


tkt_uuid: 735450ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftpd
priority: 5 Medium
foundin: None
title: ftpd - Check usage of fcopy
cmimetype: text/plain
submitter: andreas_kupries
assignee: gwlester
closer: gwlester
closedate: 2004-05-23T18:12:26
comment:
  We have to check if fcopy is properly used with respect 
  to -encoding on control and data channels, for versions 
  of Tcl from 8.3/8.4. Especially binary versus text 
  downloads.


tkt_uuid: 737162ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: mime
priority: 5 Medium
foundin: None
title: prevent infinite loop on unterminated multipart
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: mrose
closedate: 2003-05-13T17:21:08
comment:
  in mime.tcl, change
  set line "--$boundary--"
  to
  set x [string length [set line "--$boundary--"]]
  (apparently works, and not setting x is obviously faulty)

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


tkt_uuid: 737171ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Documentation
priority: 5 Medium
foundin: None
title: Suggested fix for two typos in dtp docs
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-05-14T05:37:29
comment:
  dtp , a program in tclapps, should have the following
  two typos fixed:

  approx. line 42 - change appropiate to appropriate.

  approx. line 50 - copleted should be completed.


tkt_uuid: 737770ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: csv
priority: 8
foundin: None
title: add example of alternate parsing to csv docs
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-11-23T06:11:28
comment:
  with the latest version of csv, there is now two
  behaviors with regards to the string "" .

  Documentation regarding the difference between the two
  behaviors
  and the expected modification to the data would be
  beneficial
  to developers.


tkt_uuid: 739387ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: pop3
priority: 5 Medium
foundin: None
title: -ERR authorization first on pop3::open
cmimetype: text/plain
submitter: mindtrader
assignee: andreas_kupries
closer: sf-robot
closedate: 2006-10-13T02:20:09
comment:
  I have trouble connecting to one of my mailservers with
  pop3::open. 
  It gives me:
  +OK (for socket)
  +OK (for user)
  -ERR autorization fist (for password), I will enquire
  as to the specifics of this server, but I wanted to
  post this first in case anyone else had come across a
  similar problem.

  My other mailserver works with no problems.

  I will attempt to investigate this myself and post
  followup if I find something.


tkt_uuid: 739393ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftp
priority: 5 Medium
foundin: None
title: mkdir error/bug
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-10-21T20:53:59
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: 740474ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: DropSite::register documenation error
cmimetype: text/plain
submitter: pointsman
assignee: hobbs
closer: dev_null42a
closedate: 2006-11-10T21:56:08
comment:
  The current DropSite HTML page says:

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

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

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

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

  Arguments passed to the command are:

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


tkt_uuid: 740478ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: make install fails due to a documentation bug
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-06-06T17:25:35
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: 740484ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Markup error in DragSite and DropSite HTML docu.
cmimetype: text/plain
submitter: pointsman
assignee: jenglish
closer: jenglish
closedate: 2003-10-28T02:37:43
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: 740499ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Missing docu for suppressing a drag in the -draginitcmd
cmimetype: text/plain
submitter: pointsman
assignee: hobbs
closer: dev_null42a
closedate: 2006-11-10T21:56:39
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: 741653ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: comm
priority: 5 Medium
foundin: None
title: hooks not installed when channel namespaced
cmimetype: text/plain
submitter: juliannoble
assignee: hobbs
closer: hobbs
closedate: 2003-10-21T23:08:40
comment:
  If the chan arg to comm::comm new is namespace 
  qualified, 
  e.g  comm::comm new ::mychan
  or even
  comm::comm new ::comm::mychan
  then hooks don't get properly installed.
  parray on comm::comm shows most members with 
  the specified chan, e.g
  ::comm::comm(::comm::mychan,listen)    = 1
  but the hooks are shown as:
  ::comm::comm(mychan,hook,incoming)   = {...
  and they don't fire.
  Maybe one just isn't supposed to supply anything 
  other than a simple name to comm::comm new, in 
  which case I guess this is just a doc issue.

  On a related note, it'd be nice if comm::comm new 
  actually returned the fully qualified name of the 
  channel it just built so you don't have to 
  guess/know where it puts it.
  Seems strange that channels are listed unqualified 
  by 'comm::comm channels'.
  Maybe I'm a bit confused - but something appears 
  wrong.


tkt_uuid: 744095ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 8
foundin: None
title: file output for dtp
cmimetype: text/plain
submitter: dzolli
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-11-23T03:29:09
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: 744109ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 8
foundin: None
title: easier help access for dtp
cmimetype: text/plain
submitter: dzolli
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-17T07:27:37
comment:
  It's not very easy for a tcl beginner to access to dtp help: no 
  manual or help file is given so you have to use dtp embeded 
  help. But it's not so easy to get it, you have to call dtp with a wrong 
  arg if you want a *real* subcommand list. Adding available 
  subcommands list to dtp (with no arg) output might be a good 
  thing.

  I've also notice that "dtp help" doesn't list wiki as 
  possible output format, but it works with the dtp.kit I've 
  recently downloaded from sdarchive.

  Last thing, I 
  think a ascii screen output format using something like unix or 
  dos more utility would be very fine.


tkt_uuid: 744276ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: ftp
priority: 5 Medium
foundin: None
title: ftp::Get of a nonexistent file
cmimetype: text/plain
submitter: rohanpall
assignee: gwlester
comment:
  I'm using ftp 2.4, and mandrake linux 9.1

  This occurs when ftp::VERBOSE and ftp::DEBUG are both 0.

  Open a connection in passive mode, try to get a
  nonexistent file, and it will hang with tclkit
  200303.001, tkcon, and tclsh 8.3.3

  When ftp::VERBOSE and ftp::DEBUG are turned on, no
  problems occur.

  % package require ftp 2.4
  2.4
  % ftp::Open $server $name $pass -mode passive
  0
  % ftp::Get 0 nonexistent_file
  can't unset "ftp(state.data)": no such element in array
      while executing
  "unset ftp(state.data)"
      ("default" arm line 4)
      invoked from within
  "switch -exact -- $rc {
                  1 {
                      set ftp(State) get_close
                  }
                  default {
                    ..."
      ("get_sent" arm line 2)
      invoked from within
  "switch -exact -- $ftp(State) {
          user {
              switch -exact -- $rc {
                  2 {
                      PutsCtrlSock $s "USER $ftp(U..."
      (procedure "::ftp::StateHandler" line 71)
      invoked from within
  "::ftp::StateHandler 0 sock4"
  error     error | E: Timeout of control connection
  after 600 sec.!
  debug      | 0 bytes sent in 600 seconds (0 Bytes/s)
  1
  %


tkt_uuid: 744391ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ntp
priority: 7 High
foundin: None
title: empty result with FreeBSD tcp 37 time service
cmimetype: text/plain
submitter: juliannoble
assignee: patthoyts
closer: patthoyts
closedate: 2003-05-29T00:45:55
comment:
  The line in ::time::QueryTime of time.tcl:
  puts -nonewline $State(sock) "abcd"
  causes problems with a FreeBSD 4.7 time service. 

  Test against ntp.webpub.net to see that $State
  (data) is empty. 
  Removing that line fixes it - and I see it still works 
  without that line for the sample given, 
  ntp2a.mcc.ac.uk 
  According to rfc868, the server should respond 
  with the time upon connection.
  Is this line above, a hack to work around some 
  particular server implementation that needs to 
  receive bit of data before responding?  If so, could 
  it be changed to an option such as -prod? 


tkt_uuid: 746160ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: mime
priority: 5 Medium
foundin: None
title: hang on parsing
cmimetype: text/plain
submitter: nobody
assignee: mrose
closer: mrose
closedate: 2003-05-30T18:23:53
comment:
  mime::initialize -file MDNPart3 hang on parsing.
  This is real file from sendmail MTA

  I think, is the multipart/mixed parsing problem in 1.3
  and 1.4 tcllib version


tkt_uuid: 746176ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: mime
priority: 5 Medium
foundin: None
title: hang on parse
cmimetype: text/plain
submitter: jlewandowski
assignee: mrose
closer: mrose
closedate: 2003-06-01T17:44:14
comment:
  hang on parsing
  mime::initialize -file MDNPart3 hang on parsing.
  This is real file from sendmail MTA

  I think, is the multipart/mixed parsing problem in 1.3
  and 1.4 tcllib version 


tkt_uuid: 746960ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget Tree insert bug
cmimetype: text/plain
submitter: petasis
assignee: damonc
closer: damonc
closedate: 2003-10-20T23:17:35
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: 747541ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: mime
priority: 5 Medium
foundin: None
title: ::mime::word_decode: lowercase method
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: mrose
closedate: 2003-06-02T15:57:32
comment:
  ::mime::word_decode expects the encoding method to be either B or Q. While testing code with one of the Debian mailing lists, I encountered one mail with a lowercase letter "q".

  Attached is the (simple) patch for tcllib 1.4.


tkt_uuid: 747674ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: ftp
priority: 5 Medium
foundin: None
title: ftp_lib.tcl
cmimetype: text/plain
submitter: burnout69
assignee: gwlester
comment:
  hello
  just a question about this ftp_lib.tcl included in the 
  tcllib1.4
  in fact when i use this command ftp::Quote

  for exemple : puts [ftp::Quote $conn help]

  it returns to me only the first line of the ftp server "help" 
  command, but i
  want all the lines from it, how can i do ???
  thx for help !!!


tkt_uuid: 748344ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Bug: packing a Tk listbox into a BWidget ScrolledWindow
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2003-06-03T20:17:10
comment:
  The minimal
  script to reproduce this problem appears to be:

      package require -exact BWidget 1.6
      set sw_t [ScrolledWindow .sw -auto both]
      set t_listbox [listbox [$sw_t getframe].lb]
      $sw_t setwidget $t_listbox
      pack $sw_t
      pack $t_listbox


tkt_uuid: 748758ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: ftp
priority: 5 Medium
foundin: None
title: ::ftp::NList + WS in FileNames
cmimetype: text/plain
submitter: nobody
assignee: gwlester
closer: andreas_kupries
closedate: 2006-09-22T23:11:37
comment:
  Hi,

    I have files like:
      ttwosadmin2 Wed Jun 04 11:39:11 MEST 2003.tar.gz
    on a ftp-server.
    if I use the command:
      foreach F [::ftp::NList $FH [info hostname]*] { ... }
    I get every part of the name as single token
    like: ttwosadmin2, Wed, Jun ...


  mfg

    aotto


tkt_uuid: 753170ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ScrolledWindow hang
cmimetype: text/plain
submitter: jaspert
assignee: hobbs
closer: jaspert
closedate: 2003-06-16T09:23:19
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: 753770ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: ftp
priority: 5 Medium
foundin: None
title: unwanted log output
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: afaupell
closedate: 2003-07-28T18:07:03
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: 754920ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 5 Medium
foundin: None
title: text/html file content causes socket error
cmimetype: text/plain
submitter: royterry
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-03-08T21:41:07
comment:
  My original experimental code combined three MIME 
  parts into a single message and used SMTP to send 
  successfully. The parts where a plain text file, a binary 
  file and an html file.

  When I moved the html file to the beginning of the 
  -parts list, I started getting 

  400: error writing "sock248": invalid argument

  out of mime::copymessageaux

  On further trials, I've simplfied the issue and it seems 
  related to the *contents* of a file.

  The following script will trigger the error. (file is 
  attached)

  # 14Jun03RT - experimental mime/smtp coding
  package require mime
  package require smtp

  proc mb {} {
      # Build a mime thingy
      set TO royterry@earthlink.net
      set FROM royterry@earthlink.net
      set SUBJ "Mime [clock format [clock seconds] -
  format "%m%d-%T"]"

         set hfile mime-bad.htm

      # Start making mime parts
       # The error also occurs if "text/html" is used
      set hpart [mime::initialize -canonical text/plain  -file 
  $hfile]

      # Put them all together
      # The error also occurs if 2 or 3 parts are combined 
  as long as $hpart is the first in the list.
      set allparts [mime::initialize -canonical 
  multipart/mixed \
          -parts [list $hpart ] ]


      # Send it!
      set sres [smtp::sendmessage $allparts      \
          -header [list From $FROM]    \
          -header [list To $TO]        \
          -header [list Subject $SUBJ] \
          -servers mail.earthlink.net ]

  }


tkt_uuid: 756334ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ComboBox doesn't take focus during keyboard traversal
cmimetype: text/plain
submitter: pointsman
assignee: damonc
closer: oehhar
closedate: 2009-07-01T08:27:48
comment:
  A ComboBox with -editable false doesn't take the focus
  during keyboard traversal even with an explicite
  -takefocus 1.

  It's documented to work this way, but it's IMHO the
  wrong behaviour. Even with -editable false the user is
  able to select a value with the arrow keys. As it is
  know, with a ComboBox with -editable false, a User must
  always leaf the keyboard and first click the ComboBox,
  to choose a value.

  Proposed behaviour: with a explicite -takefocus 1 the
  ComboBox takes always the focus during keyboard
  traversal, even if -editable false.


tkt_uuid: 756893ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: smtpd
priority: 5 Medium
foundin: None
title: Error in rcpt
cmimetype: text/plain
submitter: barcellos
assignee: patthoyts
closer: patthoyts
closedate: 2003-06-19T21:51:53
comment:
  When I use a "command" rcpt , I receive an eror:
  ----
  mail from:x
  501 Syntax error in parameters or arguments
  ----

  In server a message log is:

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

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

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

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

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

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

  Thank you.

  FB

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


tkt_uuid: 756939ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: ncgi
priority: 8
foundin: None
title: No way to get a list of only the known keys
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-09-30T22:23:35
comment:
  The package provides a command to ask if a key is 
  present in the ncgi package, but has no command to 
  return a list of all known keys ...

  Indirectly possible through 'nvlist' and stripping out the 
  data elements.


tkt_uuid: 756948ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: html
priority: 7 High
foundin: None
title: html::select's use of ncgi not correct ?
cmimetype: text/plain
submitter: andreas_kupries
assignee: welch
closer: mic42
closedate: 2006-07-02T20:16:42
comment:
  tcllib CVS head.

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

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

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

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


tkt_uuid: 759881ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 9 Immediate
foundin: None
title: Move TclDES extension into tcllib
cmimetype: text/plain
submitter: mcody
assignee: patthoyts
closer: andreas_kupries
closedate: 2005-09-30T19:05:05
comment:
  I am interensted in moving my TclDES 0.5 extension into
  tcllib. Doing this would make it more accessible to the
  Tcl community. I want to continue to be the maintainer
  of the extension. The des extension, currently in
  tcllib but not listed, would be deprecated or replaced
  with the code of TclDES and/or TclDESjr.

  There is possibly an issue with import/export
  restrictions with TclDES since it contains support for
  3DES (considered "strong encryption"). There is not so
  much a problem with TclDESjr, which does not contain
  3DES. Placing TclDES into the tcllib distribution may
  "taint" the entire distribution, per se.

  A middle ground may be to place TclDESjr into tcllib,
  leaving TclDES as a separate extension. The problem
  with this is that plain DES is relatively weak
  encryption and not used for many applications these
  days. Still, it is easy enough to derive 3DES from
  plain DES, so perhaps, TclDESjr is sufficient.
  Conversly, if deriving 3DES from plain DES is so
  simple, why worry about it and just place both TclDES
  and TclDESjr into tcllib.


tkt_uuid: 763669ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: mime
priority: 5 Medium
foundin: None
title: Problems with qp_encode and encoded_word, no_softbreak
cmimetype: text/plain
submitter: gunzel
assignee: mrose
comment:
  There are a number of bugs in qp_encode:

  When in no_softbreak mode it eats the last character.

  When in encoded_word mode it:

  - inserts softbreaks for lines over 72 chars
  - does not encode underscores leading to them being 
  decoded as spaces
  - does not encode question marks, potentially leading to 
  badly broken encoded words
  - does not encode tabs

  I have attached a patch to fix these and also to test them 
  and a couple of other RFC2047 requirements. With regard to 
  softbreaks in encoded words it's still not legal to just let 
  them ron on as an encoded word is not meant to be longer 
  than 75 characters itself. I'll file a bug report and patch for 
  that soon.

  Matthew


tkt_uuid: 763712ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: mime
priority: 5 Medium
foundin: None
title: add optional charset decode to mime::getbody
cmimetype: text/plain
submitter: gunzel
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-04T20:38:18
comment:
  when calling mime::getbody, the body returned is still in
  the charset as specified in the Content-Type, it seems to
  me that it would be good if it could be decoded using 
  ::encoding convertfrom before being returned. As doing this 
  automatically will probably break existing scripts I have 
  added a -decode switch to getbody that when specified 
  causes the charset to be decoded.

  I've attached a patch that does this and some tests to test it. 
  I'd strongly suggest adding my patch submission #758742, 
  "charset mapencoding improvements" at the same time.

  Matthew


tkt_uuid: 763731ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 5 Medium
foundin: None
title: word_encode makes encoded words that are too long
cmimetype: text/plain
submitter: gunzel
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-10-25T23:19:40
comment:
  RFC2047 says that encoded words should be no longer than 
  75 characters including all delimiters. The current 
  implementation of word_encode places no bounds upon the 
  length of encoded word it will attempt to create. If using the 
  quoted-printable method it will insert soft newlines at 72 
  characters of encoded content which is not permitted. If 
  using the base64 method it will wrap the content of the 
  encoded word at 60 encoded characters (45 bytes of 
  encoded content) which is also not permitted. 

  I have attached a patch that fixes these problems and also 
  addresses other restrictions of RFC2047, namely that 
  encoded words must end with integral characters (no 
  encoded character may be spread between two encoded 
  words). This requires that the encoding proc knows the 
  actual length of each character in the chosen encoding and 
  to calculate this it has been necessary to convert the given 
  strings back to UTF so that the encoded words can be built 
  up character by character in order to meet these 
  requirements. As this conversion is quite likely to just have 
  happened in the other direction a switch has been added to 
  indicate that the string is still in UTF form and conversion 
  from the passed in charset is not necessary.

  There is also a new switch for the maximum length of the 
  resulting encoded word for situations where the maximum 
  length must be less than the default (currently set at 66 
  which works for the Subject: header) such as in an Address 
  field where it must coexist with the email address within the 
  76 character limit.

  As the passing in of a long string or the requirement for a 
  shorter one may cause the generation of more than one 
  encoded word they are returned in the "wrapped" format, 
  separated by "\n " so they can still br dropped straight into a  
  header field and be valid.

  I have also fixed some reversed terminology in the docs for 
  field_decode.

  I have attached a patch with these fixes and a large number 
  of tests for both RFC compliance and implementation errors 
  made along the way. Some of the tests and implementation  
  rely on improvements from Patch #758742 "charset 
  mapencoding improvements" and bugfixes from Bug 
  #763669 "Problems with qp_encode and encoded_word, 
  no_softbreak"

  Matthew


tkt_uuid: 764702ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 5 Medium
foundin: None
title: unknown charset 'utf-8' in ::mime::word_decode
cmimetype: text/plain
submitter: rspsf
assignee: mrose
closer: andreas_kupries
closedate: 2003-11-21T06:08:45
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: 765321ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: list
priority: 5 Medium
foundin: None
title: lcsInvertMerge dies with: can't read "type": no such variabl
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-07-05T05:31:42
comment:
  Create following proc

  proc diff2 {s1 s2} {
      set l1 [split $s1 {}]
      set l2 [split $s2 {}]
      set x [::struct::list longestCommonSubsequence $l1 $l2]
      ::struct::list lcsInvertMerge $x [llength $l1]
  [llength $l2]
  }

  call with:

     diff2 ab "a b"

  and it dies with

  can't read "type": no such variable
      while executing
  "string equal $type unchanged"
      (procedure "LcsInvertMerge2" line 24)
      invoked from within
  "LcsInvertMerge2 [::lindex $lcsData 0] [::lindex
  $lcsData 1] $len1 $len2"
      (procedure "::struct::list::LcsInvertMerge" line 2)
      invoked from within
  "::struct::list::LcsInvertMerge {{0 1} {0 2}} 2 3"
      ("eval" body line 1)
      invoked from within
  "eval [linsert $args 0 ::struct::list::$sub"
      (procedure "::struct::list" line 16)
      invoked from within
  "::struct::list lcsInvertMerge $x [llength $l1]
  [llength $l2]"
      (procedure "diff2" line 5)
      invoked from within
  "diff2 ab "a b""

  Hope this is enough info.

  Regards,

  Ashley Sanders a.sanders@mcc.ac.uk


tkt_uuid: 765667ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 4
foundin: None
title: Backward tabbing over ComboBox needs 2 tabs.
cmimetype: text/plain
submitter: pointsman
assignee: jenglish
closer: jenglish
closedate: 2007-10-22T04:45:18
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: 766245ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: inifile
priority: 5 Medium
foundin: None
title: ini::commit bug
cmimetype: text/plain
submitter: andreas_kupries
assignee: afaupell
closer: andreas_kupries
closedate: 2003-07-15T18:29:28
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: 766765ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: tree
priority: 8
foundin: None
title: myTree keys node ?PatternMatch?
cmimetype: text/plain
submitter: davidhbigelow
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-08-08T18:26:16
comment:
  It sure would be nice to query only the keys you need 
  from a strut::tree.  -- Like you can with Arrays.

  For Example:

  ARRAY NAMES:  array get names *NAME_*

  New Key Name Extraction: 

  myTree keys %n *NAME_*

  This would save a lot of extra analysis if the information 
  could be extracted directly using pattern matching 
  instead of extracting all keys.

  Any Questions?

  David Bigelow


tkt_uuid: 767522ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: tree
priority: 8
foundin: None
title: add tree command list processing
cmimetype: text/plain
submitter: davidhbigelow
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-02-15T06:48:53
comment:
  NOTE: This builds on the use of the "-key ?Pattern?" 
  enhancement request that I made earlier.


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

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

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

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


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

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

  Questions?

  Dave Bigelow


tkt_uuid: 768610ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Works For Me
subsystem: bwidget
priority: 5 Medium
foundin: None
title: NoteBook can't accept page named "C:\foo\bar"
cmimetype: text/plain
submitter: vincentdarley
assignee: hobbs
closer: hobbs
closedate: 2003-07-17T19:58:49
comment:
  % NoteBook .book
  % .book insert end {C:\foo\bar} -text {C:\foo\bar}

  throws an error:

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

  ...


tkt_uuid: 769871ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: mime
priority: 5 Medium
foundin: None
title: 2 apparent protocol violations
cmimetype: text/plain
submitter: royterry
assignee: mrose
closer: patthoyts
closedate: 2006-11-06T21:57:12
comment:
  These may not matter but as I'm troublshooting
  obscure failures they come to my attention.

  Disclaimer: I haven't coded much with smtp/mime so my 
  authority for these claims is the O'Reilly 
  book "Programming Internet Email", David Wood.

  1. Wood says the headers for MIME parts should never 
  contain the MIME-version header. Yet they do appear.

  2. Boundary strings should never include '=' yet they do.

  Woods also comments that Content-ID is optional and 
  rare and must be world-unique. Is there value in tcllib 
  mime generating this header?

  Thanks for any clarification,
  Roy Terry
  (still stuck with premature socket close when reloading 
  the mime parts from a file)


tkt_uuid: 772300ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
title: Tiny doc patch for TkTable
cmimetype: text/plain
submitter: hgiese
assignee: nobody
closer: andreas_kupries
closedate: 2003-07-16T15:41:22
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: 772430ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: snit
priority: 5 Medium
foundin: None
title: snit: clean up error stacks, hide internals.
cmimetype: text/plain
submitter: andreas_kupries
assignee: duquette
comment:
  From a mail by Will, author of snit:

  I'd like Snit to do a much better job of cleaning up error 
  stack trace so that the Snit internals are hidden by 
  default.


tkt_uuid: 772435ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
title: snit: Initialization of type variables
cmimetype: text/plain
submitter: andreas_kupries
assignee: duquette
closer: duquette
closedate: 2003-10-18T04:07:38
comment:
  From a mail by Will, author of snit:

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


tkt_uuid: 772442ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: snit
priority: 5 Medium
foundin: None
title: snit: Explore alternative for pkg mgmt setup
cmimetype: text/plain
submitter: andreas_kupries
assignee: duquette
closer: duquette
closedate: 2003-10-21T02:17:51
comment:
  Snit currently does

      catch {package require snit::__dummy__}

  to setup package management in the internal slave 
  interp it uses to process class definitions.

  This is a bit of a hack. Explore if an alias for 'package' 
  can be used as well.


tkt_uuid: 772461ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
title: snit: Allow masking of options (undefine)
cmimetype: text/plain
submitter: andreas_kupries
assignee: duquette
closer: duquette
closedate: 2003-11-21T23:16:12
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: 772489ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: doctools
priority: 7 High
foundin: None
title: doctools: latex, add document internal cross-referencing
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  In LaTex:
  - \label to define a location by name, and
  - \ref to create reference to a named location.


tkt_uuid: 772491ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 7 High
foundin: None
title: doctools: html out - generate in-document toc (of sections)
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-04T22:49:18
comment:
  HTML output should not only have
  a generated synopsis, but also a generated table of 
  contents (= list of sections in the file) at the head of 
  the file.


tkt_uuid: 772535ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: snit
priority: 3 Low
foundin: None
title: snit: implementation of mymethod command
cmimetype: text/plain
submitter: andreas_kupries
assignee: duquette
closer: duquette
closedate: 2004-08-08T04:21:16
comment:
  To deal with renaming of objects snit provides the 
  command [mymethod] to create code which can be 
  given to callback handlers.

  The generated code essentially refers to the variable 
  $Snit_instance in the unchanging private namespace of 
  the object, which contains the current name of the 
  intance = instance command.

  Example:
       mymethod foo
  generates
       "$Snit_instance foo"

  This is variable reference is a bit problematic. The code 
  executing the callback __must not__ any list command 
  when adding additional arguments to the callback. Which 
  is usual. The moment a list command is used, for 
  example [linsert], or [lappend] to build up the full cllback 
  command the variable reference will be quoted in braces, 
  and the final command will look like:

       "{$Snit_instance} foo arg1 arg2 ..."

  [eval]'ing this fails.

  Example stacktrace

  invalid command 
  name "$::ttable::ttable::Snit_inst1::Snit_instance"
      while executing
  "{$::ttable::ttable::Snit_inst1::Snit_instance} 
  NColChanged 0 3"
      ("uplevel" body line 1)
      invoked from within
  "uplevel #0 [linsert $options(-ncolcommand) end 
  $oldncols $ncols]"
      (procedure "Snit_configure-data" line 42)
      invoked from within

  You see how the command is constructed, and the 
  additional quoting generated by this.

  The big problem is that the usage of list commands to 
  construct an eval'able callback is the usual way of doing 
  this.


tkt_uuid: 773246ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: snit
priority: 3 Low
foundin: None
title: snit: Multi-delegation for options
cmimetype: text/plain
submitter: andreas_kupries
assignee: duquette
comment:
  For options it sometimes makes sense to delegate 
  changes to more than one component of a megawidget.

  For example: -background, -foreground of a megawidget 
  may go to all components.

  Currently we have no convenient way to specify such 
  multi-delegation. We can do it through an 'onconfigure' 
  handler, but this is inconvenient.


tkt_uuid: 776010ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: list
priority: 8
foundin: None
title: Add set operations.
cmimetype: text/plain
submitter: cleverly
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-02-04T05:47:57
comment:
  Date: 22 Jul 2003 17:46:51 GMT
  From: lvirden@yahoo.com
  Newsgroups: comp.lang.tcl
  Subject: Re: common elements in list of list


  According to Michael A. Cleverly <michael@cleverly.com>:
  :On 22 Jul 2003, Sasi wrote:
  :
  :>        How can get the list of common elements in
  the list of list? eg:
  :> set x {
  :>        {1 2 3 4 5 6}
  :>        {6 7 8 9 5 1}
  :>        {1 2 7 5 8 9}
  :>       }
  :>
  :> the common elements in this list of list are 1 & 5
  :> is there any easy way to extract them?
  :
  :Here's a solution off the top of my head:

  Michael, would you consider possibly adding this
  solution, or a derivation, to the struct::list module
  of tcllib?


tkt_uuid: 777061ffffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
resolution: Not Applicable Here
subsystem: None
priority: 5 Medium
foundin: None
title: add images to widget::balloonhelp
cmimetype: text/plain
submitter: pkienzle
assignee: damonc
comment:
  Allow images in the balloonhelp label for
  balloonhelp.tcl using -image name.  For tcl 8.4, also
  accept -compound position.  

  Use resources to define the label properties.  

  Have label wrap at 3i.


tkt_uuid: 777568ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: None
priority: 5 Medium
foundin: None
title: tklib ipentry widget pkgIndex.tcl bug
cmimetype: text/plain
submitter: lvirden
assignee: afaupell
closer: afaupell
closedate: 2003-07-28T06:51:42
comment:
  the pkgEntry.tcl file for ipentry says:
  i# Tcl package index file, version 1.1

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


tkt_uuid: 780704ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Clear value of combobox
cmimetype: text/plain
submitter: decosterjos
assignee: hobbs
closer: dev_null42a
closedate: 2006-09-28T15:49:39
comment:
  When a BWidget ComboBox has an empty list of values,
  the value can no longer be cleared. This patch addes an
  'clearvalue' proc.

  Jos.


tkt_uuid: 781240ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: ftp
priority: 5 Medium
foundin: None
title: ssl tls
cmimetype: text/plain
submitter: nobody
assignee: nobody
closer: patthoyts
closedate: 2003-08-05T20:47:34
comment:
  would be nice to include an option in ftp::open to use 
  tls or not. i am sure u guys can tell me how to make it 
  work without having to wait for next version :)


tkt_uuid: 781652ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Selection display bug in BWidgets Listbox
cmimetype: text/plain
submitter: sgamon
assignee: hobbs
closer: hobbs
closedate: 2003-08-06T23:36:06
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: 781973ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: textutil
priority: 8
foundin: None
title: ::textutil::expander mishandles unterminated macros
cmimetype: text/plain
submitter: duquette
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-08-06T23:13:47
comment:
  ::textutil::expander has an error mode setting that governs 
  how errors are handled when an error is found while 
  expanding a string.  For example, the error can be thrown 
  normally, the error message can be inserted into the output 
  in place of the macro, or the macro text can be left in the 
  output unchanged.

  If ::textutil::expander encounters an unterminated macro, 
  e.g., if it encounters the left macro bracket but there is no 
  matching right macro bracket, then it always throws a 
  normal error, ignoring the error mode.  This is a common 
  error for novices to make, and the current implementation 
  means that the unterminated macro error must be handled 
  differently from other errors in the expander's input.

  ::textutil::expander should be changed so that the 
  unterminated macro error is handled like all other errors.


tkt_uuid: 782367ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: ftp
priority: 5 Medium
foundin: None
title: ftp.tcl: file list empty after file get
cmimetype: text/plain
submitter: codeman1911
assignee: gwlester
comment:
  when I list a dir from root, say
  list /pub/linux/redhat

  I get a listing as usual. If I then do:

  get /pub/linux/redhat/readme.txt

  I get readme.txt , ok.

  If I now do :

  list /pub/linux/mandrake

  I get an empty dirlisting. If I do :

  list /pub/linux/mandrake

  I get the dirlisting with twice the contents .....
  pub is a symbolic link in root.

  If I do list, get, cd, list I get a normal listing.
  This problem occurs with different ftp daemons.


tkt_uuid: 782735ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ncgi
priority: 5 Medium
foundin: None
title: import file
cmimetype: text/plain
submitter: nobody
assignee: gwlester
closer: mic42
closedate: 2006-07-02T20:36:54
comment:
  documentation refers to [importFile] but implementation 
  still has [import_file]

  attempt to invoke import_file gives
  invalid command name "pre"

  which is not surprising


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

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


tkt_uuid: 784157ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 8
foundin: None
title: ::fileutil::find is now dependent upon Tcl8.4
cmimetype: text/plain
submitter: jhjl
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-08-06T22:43:45
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: 784269ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: {Ctrl f} menu item accelerator broken
cmimetype: text/plain
submitter: mswan
assignee: damonc
closer: damonc
closedate: 2003-10-20T23:16:15
comment:
  I've been using BWidgets 1.6.0 to create a simple interface 
  for viewing some text.  One of my 'Edit' menu items is 
  'Find...' for which I wanted to use the control-f sequence as 
  an accelerator.  Try as I might, it didn't work so I dug into 
  how the menus are created in mainframe.tcl and discovered 
  a problem with the regular expression used when looking for 
  the F1 -> F19 special keyboard keys.

  As it turns out, the regular expression that's supposed to be 
  looking for "f1", "f2", ... "f19" is matching "f" as well.  Since 
  it matches, the variable gets converted to upper case, which 
  it apparently has to be for the special F keys.  However, this 
  changes what should be <Control-f> to <Control-F> which 
  means you have to hold the shift key in order to activate it.

  The regular expression checks I'm referring to is in 
  _parse_accelerator() routine near the bottom of 
  mainframe.tcl.  The expression is {f[1]?[0-9]*} but should 
  be, I believe, {f1?[0-9]}.  This new expression matches 
  everything its supposed to and doesn't match "f".

  I've attached a simple test case to show what I'm talking 
  about.


tkt_uuid: 784515ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Documentation
priority: 7 High
foundin: None
title: Obsolete module instructions in README
cmimetype: text/plain
submitter: duquette
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-10-21T19:24:06
comment:
  The overall tcllib README file describes how to add new 
  modules to Makefile.in.  A casual inspection of Makefile.in 
  reveals that it's not done this way anymore.  README should 
  be updated to reflect the new method.


tkt_uuid: 784519ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: (unused)
priority: 9 Immediate
foundin: None
title: tcllib 1.5 attempts to use tcllib 1.4 doctools during build
cmimetype: text/plain
submitter: duquette
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-05T00:06:51
comment:
  During an attempt to install tcllib1.5, the installation failed 
  because multiplexer.n could not be generated.  Andreas 
  Kupries suggested that this was because tcllib 1.4 was 
  installed; there is a known bug in fmt.nroff.

  During installation, tcllib should ensure that it uses its own 
  copy of doctools, rather than relying on that installed on the 
  system.


tkt_uuid: 784523ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: (unused)
priority: 7 High
foundin: None
title: make install fails on Mac OS X
cmimetype: text/plain
submitter: duquette
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-10-21T19:36:43
comment:
  On Mac OS X, configure generates a Makefile with 
  extraneous carriage returns in the VERSION and pkglibdir 
  variables.  There might be additional problems as well.

  My suspicion is that the following calls to sak.tcl in 
  configure.in are responsible:

  PACKAGE=`$TCLSH_PROG ${srcdir}/sak.tcl name`
  MAJOR_VERSION=`$TCLSH_PROG ${srcdir}/sak.tcl major`
  MINOR_VERSION=`$TCLSH_PROG ${srcdir}/sak.tcl minor`


tkt_uuid: 785416ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Out of Date
subsystem: None
priority: 7 High
foundin: None
title: BWidget ScrolledWindow problem
cmimetype: text/plain
submitter: decosterjos
assignee: hobbs
closer: hobbs
closedate: 2007-10-31T18:49:49
comment:
  The BWidget ScrolledWindow widget no longer honours the
  '-borderwidth' and '-relief' options. This patch solves
  this problem.

  Kind regards,

  Jos.


tkt_uuid: 791886ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: None
priority: 5 Medium
foundin: None
title: des: encoded and then decoded string does not match original
cmimetype: text/plain
submitter: nobody
assignee: nobody
closer: patthoyts
closedate: 2003-08-27T21:31:51
comment:
  Hello all,




  the following happens, when I try to encode and then 
  decode back a given string:




  set ciphertext [::DES::des -mode encode -key secret 
  oliver]


  set plaintext [::DES::des -mode decode -key secret 
  $ciphertext]




  string equal "oliver" $plaintext  --> 0 ??


  string length "oliver" --> 6


  string length $plaintext --> 8




  The reason for this is, the string in $plaintext now have 
  two more 'chars' at the end, both of hex 00.




  Regards Oliver




  P.S. By the way, I can't select 'des' as a category while 
  submitting a bug, it's not in the dropdown list.


tkt_uuid: 792619ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: bwidget
priority: 5 Medium
foundin: None
title: tk binding problem in Gnome and Ximian
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2003-10-12T23:45:43
comment:
  I am having a problem binding the double click event to 
  a tk listbox
  which is embedded in BWidget frames. The code works in 
  KDE and in a
  VNC viewer, however. When I double-click, it does 
  nothing but highlight the selected item
  in the listbox. When I change the binding event in my 
  code to
  single-click, it works correctly, however. I tried to move 
  the custom
  bindtag before the class bindings, however I'm receiving 
  the same
  behavior.


  Code snippet ...
  ...
  ...

  #! /usr/bin/wish

  set rt [catch {set version [package require BWidget]} 
  err]
  if {$rt != 0 } {
   tk_messageBox -icon error -type ok -title "Missing 
  BWidgets" -message
  \
    "Missing BWidgets package."
   exit
  }
   
  set tlist [list  "element1" "element2"]
  set mainframe [MainFrame .mainframe]
   
  # NoteBook creation
  set frame    [$mainframe getframe]
  set notebook [NoteBook $frame.nb]

  # Create Top-level tab frames 
  set components_frame [$notebook insert end tab1 -
  text "Tab1"]
  # Create subordinate tab frames
  set components_nb [NoteBook 
  $components_frame.components_nb]
  set frame [$components_nb insert end tab2 -text "Tab2"]
  set topf  [frame $frame.topf]

   # Paned Windows
  set pw1   [PanedWindow $topf.pw -side top]
  set pane  [$pw1 add ]
  set pw2   [PanedWindow $pane.pw -side left]
  set tpane [$pw2 add -weight 3]

  # Major subframes
  set tbox [TitleFrame $tpane.tbox -text "Widgets"]

  # Placing layout frames and major subframes
  pack $tbox -padx 2 -side left -fill both -expand yes
  pack $pw1 -fill both -expand yes
  pack $pw2 -fill both -expand yes 
  pack $topf -fill both -expand yes 

  # Types listbox
  set sw_t       [ScrolledWindow [$tbox getframe].sw -
  auto both]
  set tlistbox [listbox [$sw_t getframe].lb -height 18 -
  width 20 \
   -highlightthickness 0 -listvar ::tlist] 
  $sw_t setwidget $tlistbox
  bindtags $tlistbox [linsert [bindtags $tlistbox] 3 
  tlist_Tag]  
  bind tlist_Tag <Double-Button-1> {puts HI}

  pack $sw_t -fill both -expand yes

  $notebook compute_size
  pack $notebook -fill both -expand yes -padx 4 -pady 4
  $notebook raise [$notebook page 0]

  $components_nb compute_size
  pack $components_nb -fill both -expand yes -padx 4 -
  pady 4
  $components_nb raise [$components_nb page 0]

  pack $mainframe -fill both -expand yes


tkt_uuid: 792674ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Works For Me
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ComboBox list size bug
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2003-08-21T18:53:31
comment:
  When the script below is executed using BWidget-1.4.1,
  it works fine.  However using BWidget-1.6.0 causes this
  code to seg-fault.  To crash this code drop down the
  list and select an item.  Then repeat.  When the list
  is resized, thats all folks!  My debugging tells me
  that there is memory usage problems in the Tk library.
   valgrind displays an 'invalid read of size 4'  So
  there must have been a change somewhere in the current
  BWidget version that brought out an old bug in Tk.  Or
  I could be wrong.  Any Idea how to fix this?  

  proc change_b { b } {
      set size [random 29]
      set vlist ""

      for {set i 0} {$i<$size} {incr i} {
  lappend vlist [clock seconds]
      }
      $b configure -values $vlist
  }

  proc main { } {

      set width 200
      set height 200
      #    BWidget::place . $width $height center
      wm geom . ${width}x${height}
      wm deiconify .
      raise .
      focus -force .
      set rt [catch {set version [package require
  BWidget]} err]

      if {$rt != 0} {
  puts "error getting package BWidget"
  return
      }

      set .b [ComboBox .b -modifycmd {change_b .b}]
      .b configure -values "Select an item"
      pack .b -side top
  }

  main
  wm geom . [wm geom .]


tkt_uuid: 792775ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidgets 1.6.0 BUG: tk crashes when selecting interdependent
cmimetype: text/plain
submitter: donp1
assignee: hobbs
closer: hobbs
closedate: 2003-08-22T16:00:42
comment:
  I am not sure if this is a bug or not. I am running 
  tcl8.3/tk8.3 with BWidgets 1.6.0. The application 
  crashes.


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

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

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


tkt_uuid: 795032ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: uri
priority: 5 Medium
foundin: None
title: [package require uri] alter some vars on global level
cmimetype: text/plain
submitter: pointsman
assignee: andreas_kupries
closer: patthoyts
closedate: 2003-08-27T21:27:54
comment:
  This script:

  set host test
  package require uri
  puts $host

  returns:
  ((([A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]|[A-Za-z0-9])\.)*([a-zA-Z][A-Za-z0-9-]*[A-Za-z0-9]|[a-zA-Z]))|([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+))

  It's not, that [package require uri] simply pollutes
  the global namespace. A

  package require uri
  puts $host

  gives "can't read "host": no such variable" as
  expected. The var 'host' must be set prior to the
  [package require uri] to be altered by the package request.

  The same problem shows with other variable names, for
  example 'escape', 'hostOrPort', 'uChar' and very
  probably some more.

  As far, as I've tracked it down, it seems, that proc
  ::uri::register or the script args of the various
  ::uri::register calls at the end of uri.tcl are the
  source of the problem.


tkt_uuid: 795585ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: regular expression bug in fileutil::fileType
cmimetype: text/plain
submitter: glennjnn
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-09-04T00:11:38
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: 795608ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: tk binding problem in Gnome and Ximian
cmimetype: text/plain
submitter: donp1
assignee: jenglish
closer: sf-robot
closedate: 2009-07-16T02:21:56
comment:
  There seems to be a bug when a tk listbox is embedded 
  inside a BWidget paned window frame. I have tried 
  putting the listbox outside of the frame and it works 
  correctly. This problem does not occur in KDE or using a 
  vnc. Is this a tcl/tk bug or is there some default setting 
  in Gnome or Ximian that needs to be changed in order 
  for the double-click event to be recognized? 

  Don


tkt_uuid: 804089ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Error in Place with multiple monitors.
cmimetype: text/plain
submitter: patthoyts
assignee: damonc
closer: damonc
closedate: 2004-02-10T20:41:20
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: 806420ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: comm
priority: 5 Medium
foundin: None
title: comm uses wrong fconfigure options
cmimetype: text/plain
submitter: mic42
assignee: hobbs
closer: hobbs
closedate: 2003-10-21T22:50:07
comment:
  Comm loses unicode chars on the way.

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

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

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

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


tkt_uuid: 806537ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: bwidget - Progressbar problem
cmimetype: text/plain
submitter: decosterjos
assignee: hobbs
closer: dev_null42a
closedate: 2006-09-27T02:35:14
comment:
  Hi,

  When using the progressbar widget with large values, it
  is not 
  correctly drawn.  The following script shows the
  behaviour on my (32 bit arithmetic) machine:


  package require BWidget

  set max  100000000
  set incr   1000000

  pack [ProgressBar .pb -maximum $max -variable x]

  for { set x 0 } { $x < $max } { incr x $incr } {
      after 10
      puts $x
  }


  The attached patch fixes this problem.

  Kind regards,

  Jos


tkt_uuid: 809821ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: tkchat 1.119 user info editor problem
cmimetype: text/plain
submitter: dkf
assignee: patthoyts
closer: patthoyts
closedate: 2003-09-20T20:38:09
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: 810298ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: fileutil
priority: 5 Medium
foundin: None
title: ::fileutil::tempfile can't find temp dir with env
cmimetype: text/plain
submitter: ingemarh
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-10-21T21:19:02
comment:
  ::fileutil::tempfile has taken its code to set tmpdir 
  for any platform from the wiki page 772.
  But the code on that page was wrong (now modified)
  . The proc tempfile tries to use the env variable 
  without making it global.
  On Mac it will crash.
  On windows and others it will always return current 
  directory.

  The code should look like this:
  switch $tcl_platform(platform) {
      unix {
  set tmpdir /tmp   # or even $::env(TMPDIR), at 
  times.
      } macintosh {
  set tmpdir $::env(TRASH_FOLDER)  ;# a better 
  place?
      } default {
  set tmpdir [pwd]
  catch {set tmpdir $::env(TMP)}
  catch {set tmpdir $::env(TEMP)}
      }
   }


tkt_uuid: 815405ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: pop3
priority: 5 Medium
foundin: None
title: pop3::top Hangs under wish/tkcon
cmimetype: text/plain
submitter: royterry
assignee: andreas_kupries
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: 817351ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: comm
priority: 5 Medium
foundin: None
title: error for new comm channels
cmimetype: text/plain
submitter: hemanglavana
assignee: andreas_kupries
closer: hobbs
closedate: 2003-10-21T23:15:10
comment:
  The documentation example shows following usage to
  create a new comm channel:

  ::comm::comm new ::comm::comm -port 0 -local 1 ...

  However, when I try to specify ::comm::p2 as the
  channel name, it fails to create the internal variables
  correctly. If I specify p1 without full namespace, it
  works properly. See the following interactive session:

  hlavana-u5:64> tclsh
  % package require comm
  4.1
  % ::comm::comm new p1 -port 0 -local 1 -listen 1
  % p1 self
  invalid command name "p1"
  % ::comm::p1 self
  40695
  % ::comm::comm new ::comm::p2 -port 0 -local 1 -listen 1
  % ::comm::p2 self
  can't read "comm(p2,port)": no such element in array
  %  ::comm::comm channels
  ::comm::comm p1 ::comm::p2

  This looks like a bug to me.

  Hemang.


tkt_uuid: 820807ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math
priority: 7 High
foundin: None
title: Bug in ::math::statistics::mean ?
cmimetype: text/plain
submitter: woj
assignee: arjenmarkus
closer: andreas_kupries
closedate: 2003-11-21T05:47:37
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: 821126ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: base64
priority: 7 High
foundin: None
title: uninitialized "$output" in ::base64::decode
cmimetype: text/plain
submitter: gionco
assignee: patthoyts
closer: andreas_kupries
closedate: 2003-10-24T17:47:22
comment:
  Bug: '$output' is not defined in some situations at the
  end of
  proc ::base64::decode

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

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

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


tkt_uuid: 822850ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 8
foundin: None
title: incorrect eval use in various modules
cmimetype: text/plain
submitter: mic42
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-03T22:56:54
comment:
  As pointed out by Jeff Hobbs on TCLCORE, eval is used
  in incorrect and unsafe ways in various modules. This
  should be fixed.

  Michael


tkt_uuid: 823346ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: Minor updates to htmlparse
cmimetype: text/plain
submitter: mic42
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-10-24T19:39:46
comment:
  The attached patch contains some minor updates to
  htmlparse, so that it uses string functions in some
  places where regexp/regsub isn't needed and simplifies
  some code.

  Changes:
  MapEscapes now uses string map where possible.
  DoMap eliminated
  parse now uses string last for detection of incomplete
  html, instead of the 10x slower regexp...
  CClass eliminated, and re rewritten with \s shorthands
  in parse
   
  Overall performance improvement is minor (1% vor 150k
  using debugCallback), but MapEscapes should be faster
  than before.


tkt_uuid: 826145ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: comm
priority: 7 High
foundin: None
title: wrong eval of send arguments with blanks (e.g lists)
cmimetype: text/plain
submitter: blange
assignee: andreas_kupries
closer: hobbs
closedate: 2003-10-21T23:20:11
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: 827416ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: list
priority: 5 Medium
foundin: None
title: extend Lmap to more flexible cmd
cmimetype: text/plain
submitter: svogel
assignee: andreas_kupries
closer: svogel
closedate: 2004-02-16T14:10:30
comment:
  I've found the Lmap-command a very nice thing.
  But what I miss is the flexible positioning of 
  the "argument" to the given command. Currently 
  the "argument" (or item) is simply added to the end, but 
  most commands need the list-"item" somewhere (not 
  necessarily at the end.
  A more flexible solution would be the use of the format-
  command like this:

  proc ::struct::list::Lmap {sequence cmd} {
    # Shortcut when nothing is to be done.
    if {[::llength $sequence] == 0} {return $sequence}

    # if no position is given, treat cmd as cmdprefix
    if {[string first "%s" $cmd]<0} {
      append cmd " %s"
    }
    set res [::list]
    foreach item $sequence {
      lappend res [uplevel 1 [format $cmd $item]]
    }
    return $res
  }

  With this you can call Lmap as usual (with a cmdprefix) 
  or use, e.g. (simplified):
  ::struct::list::Lmap {name=vogel firstname=stefan 
  gender=m} {eval set [split %s =]}
  which sets variables with given values ... 

  What do you think of that?

  Best regards
    Stefan


tkt_uuid: 827436ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 5 Medium
foundin: None
title: smtp::sendmail does not send correct ending sequence
cmimetype: text/plain
submitter: col_ford
assignee: mrose
closer: patthoyts
closedate: 2006-11-06T21:11:33
comment:
  I've been using the smtp::sendmail and mime types to
  send attachements (base64 encoded). The system I use is
  Windows 2000. 

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

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

  the sent sequence is just "."

  If I change line 1254 in smtp.tcl from:

  set result [talk $token $secs .]

  to 

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

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

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


tkt_uuid: 827643ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: tree
priority: 5 Medium
foundin: None
title: Root node for walk-thru
cmimetype: text/plain
submitter: setok
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-10-21T20:08:27
comment:
  It is not documented that the node called "root" can be
  used with the [walk] subcommand to tell it to start
  from the root. Indeed, it would probably be wise to
  separately document that the root node is actually
  called "root" and can be used anywhere any other node
  can be used.


tkt_uuid: 827645ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: Missing documentation on contents of tree
cmimetype: text/plain
submitter: setok
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-10-21T19:51:35
comment:
  With the 2tree command there is no documentation on
  what actually lies within the tree. Ie. that the tag is
  specified within the "type" key and  character data
  appears in a child with a type of "PCDATA". Without
  this documentation usage of the tree is a bit of a mystery.


tkt_uuid: 828160ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: mime
priority: 5 Medium
foundin: None
title: "Holy cow"default headers break compatibility
cmimetype: text/plain
submitter: nobody
assignee: mrose
closer: patthoyts
closedate: 2006-11-06T22:05:25
comment:
  In generated by mime:: 
  messages there are two default headers, that are used
  nonconsistently and force hard-to-catch bugs
  1) Content-ID. There should be NO Content-ID inserted
  in main, the most outer message. The only parts that
  should get Content-ID are
  internal parts. Better remove default insertion of
  Content-ID or just
  note that in documentation, that if you generate a
  message, you should remove Content-ID from the main
  covering part.
  2) In all parts there is MIME-Version: header. This is
  not necessary,
  but it's not possible to remove that header by
  mime::setheader!
  It's better to make MIME-Version header removable by
  mime::setheader.
  3) it's not possible to create 
   Content-Disposition: attachment; filename="qqq"
   by usual means, Content-Disposition doesn't allow
  parameters, what is wrong.
  Denis Medvedev
  t_mdl@yahoo.com


tkt_uuid: 828717ffffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
resolution: Not Applicable Here
subsystem: profiler
priority: 7 High
foundin: None
title: Enhancing the profiler
cmimetype: text/plain
submitter: fstockinger
assignee: nobody
comment:
  Hallo,

  this patch refers to my posting at comp.lang.tcl
  'Enhancing tcllib profiler' and
  tries to improve the profiler. For a most explicit
  discussion of my ideas see
  there, here I give a short summary.

  - 'canonical' names using 'namespace origin' in
  TraceHandler
    and some workaround for empty info levels and
  tkInit's self deletion (ARRG).

  - api extension for tcl 8.4 to add and remove procedure
  and commands to
    profiling (::profiler::addCmd {name}
  ::profiler::removeCmd {name})

  - start and stop of arranging procs for profiling.
  (BTW, I'm still looking for
    better names for these procedures).
    
  This are the points which are still open, IMHO (changed
  to comp.lang.tcl)
  - tracking renames of commands and procedures. Well, my
  first try was not very
    successful.
  - automatic workaround for namespace import difficulties.
  - leaving the profiler completely, something like
  package forget ...
  - have a closer look on recursive function calls
  - and maybe some day one could measure the coverage, too.

  BTW, the diff I add is against profiler version 0.2.1.
  Again, if you are interested I can send the complete
  file and some tcltests.
  <frank/>


tkt_uuid: 830075ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 7 High
foundin: None
title: fileutil::cat doesn't concatenate files
cmimetype: text/plain
submitter: davidw
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-11-19T05:20:21
comment:
  fileutil::cat only accepts one filename as an argument,
  whereas the real cat takes files and concatenates them
  together.


tkt_uuid: 831496ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 9 Immediate
foundin: None
title: BWidget combobox popdown keyboard traversal broken
cmimetype: text/plain
submitter: jenglish
assignee: damonc
closer: damonc
closedate: 2003-11-11T00:02:51
comment:
  In the combobox,  when the listbox is popped down,
  <Key-Up> and <Key-Down> could be used to change the
  selected item, and <Key-Return> would select it and
  unpost the listbox.

  Now (combobox r1.26),  pressing <Key-Up> or <Key-Down>
  immediately unposts the listbox after changing the
  selected item.


tkt_uuid: 832317ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: taip
priority: 5 Medium
foundin: None
title: taip.mp3 tagged wrong in CVS
cmimetype: text/plain
submitter: dkf
assignee: karll
closer: hobbs
closedate: 2003-10-29T19:30:13
comment:
  All MP3 files should be binaries, but
  apps/taip/taip.mp3 is marked as a text file.  This
  makes it check out wrong on Windows.  Fix with:
    cvs admin -kb apps/taip/taip.mp3


tkt_uuid: 832487ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: Documentation
priority: 5 Medium
foundin: None
title: pattern arg for profiler::reset not documented
cmimetype: text/plain
submitter: hemanglavana
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-10-29T19:25:27
comment:
  Hi,

  The profiler man page does not document the optional
  argument ?pattern? for the reset command.

  Here's the patch for the same:

  godel:140> cvs diff profiler.man 
  Index: profiler.man
  ===================================================================
  RCS file:
  /cvsroot/tcllib/tcllib/modules/profiler/profiler.man,v
  retrieving revision 1.4
  diff -r1.4 profiler.man
  81c81
  < [call [cmd ::profiler::reset]]
  ---
  > [call [cmd ::profiler::reset] [opt [arg pattern]]]
  godel:141> 


tkt_uuid: 832488ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: None
priority: 8
foundin: None
title: License woes
cmimetype: text/plain
submitter: stwo
assignee: andreas_kupries
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: 833034ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ScrolledWindow fails after managed widget is destroyed
cmimetype: text/plain
submitter: schroedter
assignee: hobbs
closer: hobbs
closedate: 2003-10-30T17:43:25
comment:
  ScrolledWindow should be more robust, when the managed
  widget is destroyed, like it was for BWidget 1.5.

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

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

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

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

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

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

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


tkt_uuid: 833486ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: pop3
priority: 8
foundin: None
title: Can't delete messages one at a time
cmimetype: text/plain
submitter: jrasmuss23
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-11-19T06:23:57
comment:
  There are three messages in my test mailbox.  For each,
  I try to retrieve it and then delete it.  After each
  deletion, STAT reports one fewer message in the
  mailbox, as specified in RFC I believe. 
  ::pop3::retrieve and ::pop3::delete override the
  (default or user-specified) "end" index with the STAT
  message count if $end > $count.   This causes the
  retrieval/deletion to fail. 

  Here's a trimmed-down sequence showing the problem:
  % set s [::pop3::open localhost user password]
  % ::pop3::delete $s 1
  debug     pop3 sock1872 >>> STAT
  debug     pop3 sock1872 <<< +OK 3 2661
  debug     pop3 sock1872 >>> LAST
  debug     pop3 sock1872 <<< +OK 0
  debug     pop3 sock1872 >>> DELE 1
  debug     pop3 sock1872 <<< +OK Message 1 deleted
  % ::pop3::delete $s 2
  debug     pop3 sock1872 >>> STAT
  debug     pop3 sock1872 <<< +OK 2 1774
  debug     pop3 sock1872 >>> LAST
  debug     pop3 sock1872 <<< +OK 1
  debug     pop3 sock1872 >>> DELE 2
  debug     pop3 sock1872 <<< +OK Message 2 deleted
  % ::pop3::delete $s 3
  debug     pop3 sock1872 >>> STAT
  debug     pop3 sock1872 <<< +OK 1 887
  debug     pop3 sock1872 >>> LAST
  debug     pop3 sock1872 <<< +OK 2
  % ::pop3::close $s
  debug     pop3 sock1872 >>> QUIT
  debug     pop3 sock1872 <<< +OK localhost POP3 server
  closing connection

  Note that all messages would be deleted if the order of
  deletion was instead 3, 2, 1.


tkt_uuid: 836442ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 9 Immediate
foundin: None
title: timeout with large data
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-11-19T05:26:59
comment:
  Hi,

    the "secs" parameter used in "smtp::talk" 
    calculated at line 849 in smtp.tcl:
      set secs [expr {(($state(size)>>10)+1)*3600}]
    for largs "state(size)" data the "secs" can become
    very big.

    Problem: 

    the command "smtp::hear" uses this parameter to
    setup an "after" event:

    if {$secs >= 0} {
              set state(afterID) [after [expr
  {$secs*1000}] \
                                        [list smtp::timer
  $token]]
          }

    the bug is in the code:

     [expr {$secs*1000}]

    the large secs become negative -> BUG
    the after get invoked and the error happen

    to fix this problem i add some code:

    ## correction, aotto 031105
      if {$secs > 600} {set secs 600}


  mfg

    aotto


tkt_uuid: 837818ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: Quoting module
cmimetype: text/plain
submitter: dkf
assignee: nobody
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: 839066ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: bwidget - Binding for whole Tree Area
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: dev_null42a
closedate: 2006-09-28T15:50:08
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: 839181ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: inifile
priority: 5 Medium
foundin: None
title: Not Found
cmimetype: text/plain
submitter: nobody
assignee: afaupell
closer: afaupell
closedate: 2003-11-12T19:35:31
comment:
  Are you  sure inifile is in the distribution of tcllib1.4 ? 
  Please verify, becouse all package work, bug inifile isn't 
  found.


tkt_uuid: 839469ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 9 Immediate
foundin: None
title: entry doesn't work in 8.3
cmimetype: text/plain
submitter: hobbs
assignee: damonc
closer: hobbs
closedate: 2003-11-14T17:15:56
comment:
  In entry.tcl, the package vcompare should be more 
  clearly:

  if {![package vsatisfies [package provide Tk] 8.4]}

  but most importantly that still doesn't work for 8.3.


tkt_uuid: 840568ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: fileType: Detect audio
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-09-30T19:08:21
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: 840571ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: fileType: Detect video
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-09-30T19:08:41
comment:
  Extended fileType to detect various video formats

  wmf - windows media player
  rm - real media
  mov - MOV format
  ogg/theora - ogg video format.
  mpeg2


tkt_uuid: 842066ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: ncgi
priority: 5 Medium
foundin: None
title: need ncgi::exists
cmimetype: text/plain
submitter: fridolin
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-09-30T22:23:40
comment:
  Hi, 

  I need this simple function:

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

  ncgi::empty does _not_ what i want.

  Thanks,
  Christoph


tkt_uuid: 842408ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct
priority: 5 Medium
foundin: None
title: pool.tcl - requesting an allocated item returns error
cmimetype: text/plain
submitter: eriklns
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-11-19T06:40:18
comment:
  Observed:
  =======

  package require struct
  struct::pool::pool chars
  chars add a
  chars add b
  chars add c
  chars request char -prefer a
  chars request char -prefer a

  The last command fails, returning an error.

  Desired
  =====
  The last command should return the value zero, as
  documented.

  Fix
  ===
  A bug in the code for ::struct::pool::request was the
  cause.
  I fixed the code, and attached a diff (with respect to
  version 1.2 of pool.tcl) which has that fix.

  Greetings,

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


tkt_uuid: 843932ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Line continuation missing in entry.tcl
cmimetype: text/plain
submitter: oehhar
assignee: hobbs
closer: hobbs
closedate: 2003-11-17T20:16:23
comment:
  In the cvs from 2003-11-10, the is a line continuation 
  missing in file entry.tcl in function Entry::create.

  The diff is:

  112c112
  <             -foreground [Widget::getMegawidgetOption 
  $path -disabledforeground]
  ---
  >             -foreground [Widget::getMegawidgetOption 
  $path -disabledforeground]\


tkt_uuid: 844660ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: tklib :: install
priority: 5 Medium
foundin: None
title: tklib will not install documentation for some
cmimetype: text/plain
submitter: tmh
assignee: hobbs
closer: afaupell
closedate: 2003-11-30T02:02:10
comment:
  done
  Installing documentation for cursor
  install: `/opt/tcl8.5a0/man/mann/cursor.n' mode
  mismatch (0644 != 0444)
  Installing documentation for datefield
  install: `/opt/tcl8.5a0/man/mann/datefield.n' mode
  mismatch (0644 != 0444)
  Installing documentation for ipentry
  install: stat: ./modules/ipentry/*.n: No such file or
  directory
  install: installation of `./modules/ipentry/*.n' failed
  Installing documentation for autoscroll
  install: stat: ./modules/autoscroll/*.n: No such file
  or directory
  install: installation of `./modules/autoscroll/*.n' failed
  *** Error code 1 (ignored)
  chmod 444 /opt/tcl8.5a0/man/mann/*
  /usr/local/bin/install -c -m 644 ./man.macros
  /opt/tcl8.5a0/man


  The files in ipentry and autoscroll end in .man not .n


tkt_uuid: 844766ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: snit
priority: 6
foundin: None
title: need ability to split class defs across files
cmimetype: text/plain
submitter: hobbs
assignee: duquette
closer: duquette
closedate: 2004-02-08T01:00:36
comment:
  snit does not currently allow one to create classes that 
  spread across multiple files.  It would be very useful to 
  have commands that enable one to modify (type)
  method bodies after creation without knowing snit 
  internals.  Itcl does allow this.


tkt_uuid: 846422ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: struct :: matrix
priority: 5 Medium
foundin: None
title: New sort method for matrix object
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-01-23T21:13:38
comment:
  I needed to sort a matrix, and wound up spending an
  evening 
  implementing sort methods for the struct::matrix extension.

  The methods use the heapsort algorithm, which is
  explained in "Introduction to Algorithms" by Thomas H.
  Cormen et al. (Copyright 2001 by MIT). The book's
  preface says "If you wish to implement any of the
  algorithms, you will find the translation of our pseudo
  code into your favorite programming language a fairly
  straightforward task." That was my experience -- it was
  actually pretty fun.


tkt_uuid: 849106ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: Leaking smileys from the bridge
cmimetype: text/plain
submitter: dkf
assignee: hartweg
closer: patthoyts
closedate: 2004-04-30T13:36:56
comment:
  When an action message containing a smiley comes over 
  tclbridge from someone using IRC, tkchat replicates that 
  smiley at the start of the following line.

  This does not happen for any actions initiated by 
  someone on the Ralf's Chat side of the bridge.

  The smiley may be located either at the end or in the 
  middle of the message (we've not tested at the start of 
  the message.)

  (Thanks to davidw for helping to test this!)


tkt_uuid: 849829ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: AutoScroll not set in TK 8.5a0
cmimetype: text/plain
submitter: dgp
assignee: hartweg
closer: patthoyts
closedate: 2004-04-30T13:32:03
comment:
  When Tk 8.5a0 is used to run tkChat 1.128,
  the chat area does not scroll to make
  new messages visible.

  Further examination shows that
  $Options(AutoScroll) is false, so
  apparently [tkchat::scroll_set] is
  failing to enable it.

  This probably traces back to a flaw
  in Tk 8.5a0, but the tkchat maintainer
  is probably best to continue the analysis.


tkt_uuid: 850245ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: md5
priority: 5 Medium
foundin: None
title: Performance blow under md5 2
cmimetype: text/plain
submitter: hgiese
assignee: patthoyts
closer: patthoyts
closedate: 2004-03-31T23:27:35
comment:
  Hello out there,
  I got informed that one of my applications barely
  crawls under 8.4.5 and traced it back to the md5
  package. The script below shows it. The resulting
  timing is (Win98 on a 1,3 GHz machine):

  Version: 8.4.4
  md5 needed      1 ms for a string of     1000 chars
  md5 needed      1 ms for a string of    10000 chars
  md5 needed      4 ms for a string of   100000 chars
  md5 needed     42 ms for a string of  1000000 chars
  md5 needed    400 ms for a string of 10000000 chars

  Version: 8.4.5
  md5 needed     12 ms for a string of     1000 chars
  md5 needed     62 ms for a string of    10000 chars
  md5 needed    601 ms for a string of   100000 chars
  md5 needed   6005 ms for a string of  1000000 chars
  md5 needed  60086 ms for a string of 10000000 chars

  -----
  package require md5

  proc tstMD5 {str} {
      set start [clock clicks -millisecond]
      set cks [md5::md5 $str]
      set end [clock clicks -millisecond]
      return [expr {$end - $start}]
  }

  set l "0123456789"
  # l1000 is a string containing 1000 chars
  set l1000 [string repeat $l 100]

  puts "Version: [info patchlevel]"
  set i 0
  set str $l1000
  while { $i < 5 } {
      set time [tstMD5 $str]
      puts "md5 needed [format %6d $time] ms for a string
  of [format %8d [string length $str]] chars"
      set str [string repeat $str 10]
      incr i
  }
  ------

  Best regards
  Helmut Giese


tkt_uuid: 851090ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: fileutil
priority: 5 Medium
foundin: None
title: bug in tempfile
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-11-30T20:07:06
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: 851495ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Enable drag and drop by default for ListBox
cmimetype: text/plain
submitter: sgamon
assignee: hobbs
closer: hobbs
closedate: 2004-09-14T20:09:34
comment:
  I suggest adding two new defaults to ListBox widgets:

      Widget::declare ListBox {
          ...
  {-dragenabled      Boolean  1  1}
  {-dropenabled      Boolean  1  1}
      }


  The latest ListBox has a default for -dropcmd, which
  allows you to move list items within the widget. 
  However, you have to explicity set -dragenabled and
  -dropenabled to true before this starts working.  By
  defaulting these options to true, all ListBoxes get the
  feature without extra code clutter.


tkt_uuid: 852945ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: snit
priority: 5 Medium
foundin: None
title: variable should check for :: in names
cmimetype: text/plain
submitter: hobbs
assignee: duquette
closer: duquette
closedate: 2004-02-07T23:21:51
comment:
  although 'variable' isn't meant to be the same as Tcl's 
  variable, it is and will be used similarly.  Therefore it 
  would be a good idea to check if something like
     variable ::foo::bar
  is used and not prepend the snit namespace in that 
  case.


tkt_uuid: 856280ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: log
priority: 5 Medium
foundin: None
title: Add deletion callbacks to logger
cmimetype: text/plain
submitter: mic42
assignee: davidw
closer: davidw
closedate: 2003-12-17T23:18:27
comment:
  At the moment there is no (public) way to do a clean
  shutdown of the logger system. If one uses a custom
  logproc that opens files etc. it is not possible to
  detect the correct time a logfile should be closed etc. 

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

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

  Michael 


tkt_uuid: 858218ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: ftp
priority: 5 Medium
foundin: None
title: errors thrown with no explanation
cmimetype: text/plain
submitter: vincentdarley
assignee: andreas_kupries
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: 860753ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: textutil
priority: 5 Medium
foundin: None
title: plain justification does not work with hyphenation
cmimetype: text/plain
submitter: totschnig
assignee: vogeler
closer: andreas_kupries
closedate: 2004-03-07T07:57:18
comment:
  the script

  package require textutil

  ::textutil::adjust::readPatterns
  /usr/lib/tcllib1.4/textutil/dehypht.tex

  puts stdout [::textutil::adjust " ein test strin ein
  test string  ein test string  ein test string  ein test
  string  ein test string  ein test string  ein test
  string  ein test string  ein test string  ein test
  string  ein test string  ein test string  ein test
  string  ein test string  ein test string  ein test
  string  ein test string g  ein test string 
  " -length 76 -hyphenate true -strictlength true
  -justify plain]

  generates the following error:

  can't read "words(1)": no such element in array
      while executing
  "eval list $i $words($i) 1 "
      (procedure "Justification" line 80)
      invoked from within
  "Justification $line [incr numline] words"
      (procedure "Adjust" line 138)
      invoked from within
  "Adjust text newtext"
      (procedure "::textutil::adjust" line 8)
      invoked from within
  "::textutil::adjust " ein test strin ein test string 
  ein test string  ein test string  ein test string  ein
  test string  ein test string  ein test str..."
      invoked from within
  "puts stdout [::textutil::adjust " ein test strin ein
  test string  ein test string  ein test string  ein test
  string  ein test string  ein test string ..."
      (file "textutil.tcl" line 5)

  plain justification without hyphenation works,
  hyphenation with left, center, right justification works


tkt_uuid: 861277ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: htmlparse.tcl: backslashes in content
cmimetype: text/plain
submitter: jenglish
assignee: jenglish
closer: andreas_kupries
closedate: 2004-10-04T18:58:23
comment:
  htmlparse::parse fails if backslashes appear in content:

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


tkt_uuid: 861287ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: htmlparse: comment delimiters
cmimetype: text/plain
submitter: jenglish
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-09-22T03:10:03
comment:
  htmlparse::parse doesn't parse comments correctly.
  One example:

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

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

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


tkt_uuid: 861622ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: mime
priority: 5 Medium
foundin: None
title: Documentation error(s)
cmimetype: text/plain
submitter: arjenmarkus
assignee: mrose
comment:
  The documentation for the mime package contains little
  or no information on the -parts option (it actually
  refers to -part). 

  One thing I found out trying:
  - if you combine several parts into one message, then
    you need to use "-canonical multipart/mixed" 

  It is not clear to me from the documentation how to 
  set a proper name for an attachment (default seems
  to be: Part 1.2)


tkt_uuid: 861721ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: nntp
priority: 5 Medium
foundin: None
title: NNTP is binary, yEnc is being corrupted
cmimetype: text/plain
submitter: orwellian
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-03-02T03:59:30
comment:
  Because of yEnc, binary must be downloadable.

  I have an 'expect' program to download a newsgroup,
  and I can make a lot of criteria choices based on the
  headers. The main purpose is to download pictures,
  then I use uudeview and xv next. I've used it forever,
  and wrote it before there was an nntp.tcl.

  95% of the yEncs were corrupted. I thought it was Usenet
  servers along the way doing the corruption. Recently I started
  downloading again, and now a high percentage of pictures are
  in yEnc format. Because I was getting almost nothing now, I
  investigated.

  I'm on a new dual-G5 running Unix. When I tried Netscape
  on this box, the yEncs were decoding. When I saved one of
  those to a file and compared it to my program's download,
  there was corruption alright. It apparently has to do with
  'expect' using Tcl's Unicode expectations. I tried adding
  'fconfigure's, but it didn't affect 'expect'.

  I decided to rewrite my program using the NNTP procs, and
  it was still corrupted. Then I added this line after the one
  'socket' command in nntp.tcl:

  fconfigure $sock -encoding binary

  Finally, yEncs were no longer being corrupted.

  tcllib 1.5 from TclTKAquaWithBatteries.


tkt_uuid: 861801ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: cmdline
priority: 5 Medium
foundin: None
title: Add a new option parser routine tailored for functions
cmimetype: text/plain
submitter: certgen
assignee: andreas_kupries
comment:
  Hey, I find the cmdline library particularly useful for
  script writing. I usually define a custom
  getFunctionsOpts routine that is a slight twist on the
  getKnownOptions routine (no support for -?/-h/-help)
  for new Tcl projects. The attached cmdline.tcl file
  contains the getFunctionOptions procedure -- I would
  like to submit this as a feature request for the next
  release of tcllib.

  Thanks for all the great utils!

  -Ian Chesal


tkt_uuid: 862491ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 7 High
foundin: None
title: fileutil::find ... no catch around 'cd'
cmimetype: text/plain
submitter: carlls
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-02-02T06:49:55
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: 862638ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: ftp
priority: 5 Medium
foundin: None
title: can't read &quot;ftp(Wait)&quot;: no such variable - background error
cmimetype: text/plain
submitter: nobody
assignee: gwlester
comment:
  When an FTP session is close, all the variables has been 
  unset. However, the ::ftp::Timeout{} event is still be 
  triggered. This event will read the ftp(Wait) variable 
  that doesn't exist because it has already been unset 
  during ftp close session. Therefore, this background 
  error occur.  To fix this or to work around, we need 
  check whether if the ftp(Wait) variable is exist 
  in ::ftp::Timeout{} procedure, then we only procceed 
  on the event. 

  proc ::ftp::Timeout {s} {
      upvar ::ftp::ftp$s ftp
      if {[info exist ftp(Wait)]} {
          after cancel $ftp(Wait)
          set ftp(state.control) 1

          DisplayMsg "" "Timeout of control connection after 
  $ftp(Timeout) sec.!" error
          Command $ftp(Command) timeout
      }
      return
  }

  This only happen when we use ftp in asynchronous 
  mode.

  My Email:
  champdog_s1977@hotmail.com


tkt_uuid: 864530ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: md5
priority: 8
foundin: None
title: md5::md5 -- incompatible API change in 2.0
cmimetype: text/plain
submitter: jenglish
assignee: patthoyts
closer: patthoyts
closedate: 2004-02-08T01:09:37
comment:
  Previously, [md5::md5 $data] returned a result as a hex
  string; as of version 2.0, it returns it as binary.
  Although this is noted in the ChangeLog, it is easy to
  miss, and is sure to cause many hard-to-track-down
  errors when users upgrade to the next release of tcllib.

  This seems like a gratuitous incompatibility.  Please
  make '-hex' the default, for compatibility with tclllib
  1.4, and add a '-bin' or '-binary' option for those
  that want the new behaviour.


tkt_uuid: 867604ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Problem with focus and spinbox
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: damonc
closedate: 2004-01-06T07:24:16
comment:
  If trying the following code:

  package require BWidget
  pack [spinbox .b1]
  pack [spinbox .b2]
  .b1 insert end hello
  .b2 insert end hello

  and using the <Tab> key, content in the spinbox is not
  selected.

  Solutions seems to add:

  bind Spinbox <<TraverseIn>> [bind Entry 
  <<TraverseIn>>]

  in file init.tcl


tkt_uuid: 868315ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Dialog widget hangs in BWidget 1.7
cmimetype: text/plain
submitter: sgamon
assignee: damonc
closer: damonc
closedate: 2004-01-06T07:23:32
comment:
  When I issue the "draw" command to a Dialog widget in
  BWidget 1.7, the entire application hangs.  

  I am using ActiveTcl 8.4.5 on WinXP Pro.

  The code below illustrates the error.  Switching to
  BWidget 1.6 makes it work.
   

   # DialogTest.tcl
   #
   # A test of the BWidget Dialog widget.

   package require -exact BWidget 1.7

   button .b -text "Dialog" -command {ShowDialog}
   pack .b

   proc ShowDialog {args} {
  Dialog .prompt \
  -title {???} \
  -parent .b \
  -place above

  label .prompt.label -text "This is a dialog!\nDid it
  work?"

  pack .prompt.label

  .prompt add -text Okay -command {.prompt enddialog Okay}
  .prompt add -text Cancel -command {.prompt enddialog
  Cancel}

  set Prompt [.prompt draw]

  destroy .prompt
   }
   


tkt_uuid: 870429ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: html
priority: 5 Medium
foundin: None
title: ::html::textInput does not allow overriding of input.size
cmimetype: text/plain
submitter: mic42
assignee: welch
closer: mic42
closedate: 2006-07-02T20:02:28
comment:
  Basically a trivial problem:

  ::html::textInput foo bar size=\"20\"

  on would expect (in the generated html):

  <input ... size="20"> 

  but one gets:

  <input ... size="45" size="20">

  This is documented in the source code comments for
  ::html::textInput, but i think it is plain stupid:

  Possible fix:
  expand defaults/tagParam to handle lists of params and
  use that in ::html::textInput to check for overridden
  default values.

  Michael


tkt_uuid: 873666ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: scrollw.tcl does not support -relief
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2004-02-03T22:13:45
comment:
  BWidget's ScrolledWindow does not support options
  -relief and -bd at creation time

  May be the statement 
  set sw    [frame $path \
              -relief flat -borderwidth 0 -background $bg \
      -highlightthickness 0 -takefocus 0]
  is to change to
  set sw    [eval frame $path \
      -background $bg \
      -highlightthickness 0 -takefocus 0  \   
  [Widget::subcget $path :cmd]]


tkt_uuid: 879451ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: log
priority: 5 Medium
foundin: None
title: add better introspection to logger
cmimetype: text/plain
submitter: mic42
assignee: davidw
closer: davidw
closedate: 2004-03-10T11:17:22
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: 879812ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: log
priority: 5 Medium
foundin: None
title: Patch for FRE 879451
cmimetype: text/plain
submitter: mic42
assignee: davidw
closer: davidw
closedate: 2004-03-10T11:19:22
comment:
  An initial patch for better introspection and a new
  interface for logproc to optionally use an existing proc.


tkt_uuid: 880692ffffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
resolution: Not Applicable Here
subsystem: ncgi
priority: 5 Medium
foundin: None
title: ncgi - = in cgi value breaks parsing of variable/value pairs
cmimetype: text/plain
submitter: nobody
assignee: gwlester
comment:
  the regular expression in proc nvlist was changed from 
  (.*)=(.*) to {([^=]*)=(.*)}


  proc ::ncgi::nvlist {} {
      set query [query]
      set type  [type]
      switch -glob -- $type {
          "" -
          application/x-www-form-urlencoded -
          application/x-www-urlencoded {
              set result {}

              # Any whitespace at the beginning or end of 
  urlencoded data is not
              # considered to be part of that data, so we 
  trim it off.  One special
              # case in which post data is preceded by a \n 
  occurs when posting
              # with HTTPS in Netscape.

              foreach {x} [split [string trim $query] &] {
                  # Turns out you might not get an = sign,
                  # especially with <isindex> forms.
  #### start: RE in line below changed:
                  if {![regexp -- {([^=]*)=(.*)} $x dummy 
  varname val]} {
  #### end
                      set varname anonymous
                      set val $x
                  }
                  lappend result [decode $varname] [decode 
  $val]
              }
              return $result
          }
          multipart/* {
              return [multipart $type $query]
          }
          default {
              return -code error "Unknown Content-Type: 
  $type"
          }
      }
  }


tkt_uuid: 882154ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: dns
priority: 5 Medium
foundin: None
title: No support for reverse lookups in dns
cmimetype: text/plain
submitter: patthoyts
assignee: patthoyts
closer: patthoyts
closedate: 2004-01-31T23:32:13
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: 882402ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: textutil
priority: 7 High
foundin: None
title: -full option ignored in ::textutil::adjust command
cmimetype: text/plain
submitter: andreas_kupries
assignee: vogeler
closer: andreas_kupries
closedate: 2004-09-29T19:10:07
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: 883573ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: ftp
priority: 5 Medium
foundin: None
title: ftp change directory problems
cmimetype: text/plain
submitter: dejavo
assignee: gwlester
comment:
  There is a problem changing to directories with some
  special
  characters.

  I checked the ftp with gftp client and the directories
  are accessible.

  Roi


tkt_uuid: 886304ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidgets1.7.0 bug in Notebook:bindtabs command
cmimetype: text/plain
submitter: donp1
assignee: hobbs
closer: hobbs
closedate: 2004-02-03T22:03:07
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: 886385ffffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
resolution: Not Applicable Here
subsystem: control
priority: 5 Medium
foundin: None
title: Enhanced do...while|until [prefix] [suffix] Control Structur
cmimetype: text/plain
submitter: nobody
assignee: dgp
comment:
  This one came out of my customer demand! Pat Thoyts 
  and Donal K. Fellows suggested me to submit it here.

  The submission is in form of a TIP. Please search 
  for "sample implementation" to get to the code.

  Please also see at the end of it, untried version of tests. 
  Please search for "tests for do" to get to the code

  TIP 
  Title 
  Enhanced do...while|until [prefix] [suffix] Control 
  Structure 
  Version 
  $Revision: 1.4 
  Author 
  Bhushit Joshipura 
  State 
  Draft 
  Type 
  Project 
  Vote 
  Pending 
  Created 
  20-Jan-2004 
  Keywords 
  control structure, do, while, until, prefix, suffix 
  ~ Abstract 
  This TIP proposes the introduction of an enhancement 
  on do...while|until control structure already present in 
  TCLLib. It proposes to add prefix statement list and 
  suffix statement list to prepend and append to 
  statement body of do...while|until for the "while" part 
  (second loop onwards) of the loop. 
  ~ Rationale 
  Theoretically only two controls - if and goto - are 
  sufficient to implement all algorithms. However, 
  languages provide more control structures for better 
  representation of algorithms. 
  do...while|until is a useful structure in itself for parsing, 
  file reading etc. With little pain, a while loop does the 
  job too. However, when it comes to nesting, 
  do...while|until into another, equivalent while loop starts 
  becoming clumsier. 
  In situations where do...while|until is used in testing, if 
  the statement body of do...while|until changes state of 
  entity being tested, next iteration is bound to have side 
  effects. At that time, proposed prefix and suffix 
  statements come handy. 
  While it is still possible to handle all of these in a while 
  loop, nesting becomes a nightmare. 
  Proposed solution is more elegant, in spirit of 
  do...while|until's spirit of treating first pass specially. 
  ~ Implementation in Other Languages 
  C, C++, Java, Pascal have do...while. Perl has 
  do...while|until. Python does not have any equivalent. 
  ~ Grammar and Behavior 
  |do { 
  | 
  |} while|until { } [ prefix { }] [suffix { statements2>}] 
  1. are executed 
  2. while|until is evaluated 
  3. while associated are true ( or until are false ) 
  3.1 are executed 
  It is necessary to specify one and only one of "while" 
  or "until" with proper condition block following it. 
  ~Sample Invocations 
  set x 1 
  |do { 
  |    puts "Hello world!" 
  |    incr x 
  |} until { $x > 3 } prefix { 
  |    puts "prefix begin" 
  |    puts $x 
  |    puts "prefix end" 
  |} suffix { 
  |    puts "suffix begin" 
  |    puts $x 
  |    puts "suffix end" 
  |} 
  ~Contrast 
  Contrast above code with its while loop equivalent 
  |set x 1 
  |set firsttime "yes" 
  |while { $x <= 3 } { 
  |    if { $firsttime == "no" } { 
  | puts "prefix begin" 
  | puts $x 
  | puts "prefix end" 
  |    } 
  |    puts "Hello world!" 
  |    incr x 
  |   if { $firsttime == "no" } { 
  | puts "suffix begin" 
  | puts $x 
  | puts "suffix end" 
  |    } 
  |    set firsttime "no" 
  |} 
  ~Sample Implementation 
  |# do.tcl -- 
  |# 
  |#        Tcl implementation of a "do ... while|until" loop. 
  |#        Once first iteration gets over, body can be 
  augmented using prefix or suffix 
  |# 
  |# Originally written for the "Texas Tcl Shootout" 
  programming contest 
  |# at the 2000 Tcl Conference in Austin/Texas. 
  |# 
  |# Copyright for TCLLib implementation was 
  |# Copyright (c) 2001 by Reinhard Max 
  |# 
  |# Added prefix and suffix by Bhushit Joshipura, 
  December 15, 2003 
  |# Bhushit does not know what happens to copyrights 
  |# 
  |# See the file "license.terms" for information on usage 
  and redistribution 
  |# of this file, and for a DISCLAIMER OF ALL 
  WARRANTIES. 
  |# 
  |# 
  |namespace eval ::control { 
  | 
  |    proc do {body args} { 
  | 
  | # 
  | # Implements a "do body while|until test [ [prefix | 
  suffix] bodyparts ]" loop 
  | # 
  | # It is almost as fast as builtin "while" command for 
  loops with 
  | # more than just a few iterations. 
  | # 
  | 
  | set len [llength $args] 
  | if {$len != 6 && $len != 4 && $len !=2 && $len != 0} { 
  |     set proc [namespace current]::[lindex [info level 0] 
  0] 
  |     return -code error "wrong # args: should be \"$proc 
  body\" or \"$proc body \[until|while\] test\" or \"$proc 
  body \[until|while\] test \[ \[ prefix | suffix \] bodyparts 
  \]" 
  | } 
  | set test 0 
  | set bodyprefix "" 
  | set bodysuffix "" 
  | set whileOrUntil "" 
  | 
  | foreach { argument value } $args { 
  |     switch -exact -- $argument { 
  | "while" { 
  |     if { $whileOrUntil == "" } { 
  | set whileOrUntil $argument 
  | set test $value 
  |     } else { 
  | return -code error \ 
  |     "\"$argument\" found after \"$whileOrUntil\"" 
  |     } 
  | } 
  | "until" { 
  |     if { $whileOrUntil == "" } { 
  | set whileOrUntil $argument 
  | set test !($value) 
  |     } else { 
  | return -code error \ 
  |     "\"$argument\" found after \"$whileOrUntil\"" 
  |     } 
  | } 
  | "prefix" { 
  |     # last of prefix will be considered 
  |     set bodyprefix $value 
  | } 
  | "suffix" { 
  |     # last of suffix will be considered 
  |     set bodysuffix $value 
  | } 
  | default { 
  |     return -code error \ 
  | "bad option \"$whileOrUntil\": must be until, while, 
  prefix or suffix" 
  | } 
  |     } 
  | } 
  | 
  | # the first invocation of the body 
  | set code [catch { uplevel 1 $body } result] 
  | 
  | # decide what to do upon the return code: 
  | # 
  | #               0 - the body executed successfully 
  | #               1 - the body raised an error 
  | #               2 - the body invoked [return] 
  | #               3 - the body invoked [break] 
  | #               4 - the body invoked [continue] 
  | # everything else - return and pass on the results 
  | # 
  | switch -exact -- $code { 
  |     0 {} 
  |     1 { 
  | return -errorinfo [ErrorInfoAsCaller uplevel do]  \ 
  |     -errorcode $::errorCode -code error $result 
  |     } 
  |     3 { 
  | # FRINK: nocheck 
  | return 
  |     } 
  |     4 {} 
  |     default { 
  | return -code $code $result 
  |     } 
  | } 
  | 
  | set body [ format "%s\n%s\n%s" $bodyprefix $body 
  $bodysuffix ] 
  | 
  | # the rest of the loop 
  | set code [catch {uplevel 1 [list while $test $body]} 
  result] 
  | if {$code == 1} { 
  |     return -errorinfo [ErrorInfoAsCaller while do] \ 
  | -errorcode $::errorCode -code error $result 
  | } 
  | return -code $code $result 
  | 
  |    } 
  |} 
  ~Copyright 
  This document is placed in public domain. 


  Tests for do

  # do.test --
  #
  #         Tests for [control::do]
  # 
  # RCS: @(#) $Id: do.test,v 1.6 2003/05/01 22:40:13 
  patthoyts Exp $
  #

  package forget control
  catch {namespace delete control}

  # Direct loading of provide script -- support testing even
  # when not installed.  And be sure we test the local copy
  # and not some later version that may be installed.
  source [file join [file dirname [info script]] control.tcl]
  namespace import ::control::do

  package require tcltest
  namespace import -force 
  tcltest::test ::tcltest::cleanupTests

  # This constraint restricts certain tests to run on tcl 
  8.3+
  if {[package vsatisfies [package provide tcltest] 2.0]} {
      # tcltest2.0+ has an API to specify a test constraint
      ::tcltest::testConstraint tcl8.3plus \
          [expr {[package vsatisfies [package provide Tcl] 
  8.3]}]
  } else {
      # In tcltest1.0, a global variable needs to be set 
  directly.
      set ::tcltest::testConstraints(tcl8.3plus) \
          [expr {[package vsatisfies [package provide Tcl] 
  8.3]}]
  }

  # ----------------------------------------
  test {do-1.0} {do ... while} {
      set x 0
      do {incr x} while {$x < 10}
      set x
  } 10

  # ----------------------------------------
  test {do-1.1} {do ... until} {
      set x 0
      do {incr x} until {$x > 10}
      set x
  } 11

  # ----------------------------------------
  test {do-1.2} {break} {
      set x 0
      do {
  incr x
  if {$x == 5} {break}
      } until {$x == 10}
      set x
  } 5

  # ----------------------------------------
  test {do-1.3} {continue} {

      set x 0
      set xx [list]
      do {
  incr x
  if {$x == 5} {continue}
  lappend xx $x
      } until {$x == 10}
      set xx
  } {1 2 3 4 6 7 8 9 10}

  # ----------------------------------------
  test {do-1.4} {error} {
      catch {
  set x 0
  do {
      incr x
      if {$x == 5} {foo}
  } while {$x < 10}
      } result
      list $x $result
  } {5 {invalid command name "foo"}}

  # ----------------------------------------
  test {do-1.5} {return} {
      proc foo {} {
  set x 0
  do {
      incr x
      if {$x == 5} { return $x }
  } while {$x < 10}
      }
      set result [foo]
      rename foo ""
      set result
  } 5

  # ----------------------------------------
  test {do-1.6} {break in the first loop} {
      set x 0
      do {
  break
  incr x
      } while {$x < 10}
      set x
  } 0

  # ----------------------------------------
  test {do-1.7} {continue in the first loop} {
      set x 0
      set xx [list]
      do {
  incr x
  if {$x == 1} {continue}
  lappend xx $x
      } until {$x == 10}
      set xx
  } {2 3 4 5 6 7 8 9 10}

  # ----------------------------------------
  test {do-1.8} {error in the first loop} {
      set x 0
      catch {
  do {
      foo
      incr x
  } until {$x == 10}
      } result
      list $x $result
  } {0 {invalid command name "foo"}}

  # ----------------------------------------
  test {do-1.9} {[do ... while] with false condition} {
      set x 0
      do {
  incr x
      } while 0
      set x
  } 1

  # ----------------------------------------
  test do-1.10 {[do ... until] with true condition} {
      set x 0
      do {
  incr x
      } until 1
      set x
  } 1

  # ----------------------------------------
  test do-1.11 {third arg is neither while nor until} {
      set x 0
      catch {
  do {
      incr x
  } foo 1
  set x
      } result
      list $x $result
  } {0 {bad option "foo": must be until, or while}}

  # ----------------------------------------
  test do-1.12 {stack traces for errors in the first 
  iteration} {
      proc a {} b
      proc b {} {do c while 1}
      proc c {} d
      catch a
      set ::errorInfo
  } {invalid command name "d"
      while executing
  "d"
      (procedure "c" line 1)
      invoked from within
  "c"
      ("do" body line 1)
      invoked from within
  "do c while 1"
      (procedure "b" line 1)
      invoked from within
  "b"
      (procedure "a" line 1)
      invoked from within
  "a"}

  # ----------------------------------------
  test do-1.14 {stack traces for errors in subsequent 
  iterations} tcl8.3plus {
      proc a {} b
      proc b {} {
  set i 10
  do {
      incr i -1
      c $i
  } while {$i}
      }
      proc c {i} {if {$i==5} e}
      catch a
      set ::errorInfo
  } {invalid command name "e"
      while executing
  "e"
      (procedure "c" line 1)
      invoked from within
  "c $i"
      ("do" body line 3)
      invoked from within
  "do {
      incr i -1
      c $i
  } while {$i}"
      (procedure "b" line 3)
      invoked from within
  "b"
      (procedure "a" line 1)
      invoked from within
  "a"}

  # ----------------------------------------
  test do-2.0 {one-shot do} {
      set x 0
      do {incr x}
      set x
  } 1

  # ----------------------------------------
  test do-2.1 {one-shot do with break} {
      set x 0
      do {incr x; break; incr x}
      set x
  } 1

  # ----------------------------------------
  test do-2.2 {wrong no of arguments} {
      set x 0
      set res [catch {do {incr x} foo} ret]
      list $x $res $errorInfo
  } {0 1 {wrong # args: should be "::control::do body" 
  or "::control::do body [until|while] test"
      while executing
  "do {incr x} foo"}}

  # ----------------------------------------
  test do-2.3 {wrong no of arguments} {} {
      set res [catch do]
      if {[string match \
       {no value given for parameter "body" 
  to "do"*} \
       $::errorInfo]
      } then {
  set ::errorInfo {wrong # args: should be "do 
  body args"
      while executing
  "do"}
      }
      list $res $::errorInfo
  } {1 {wrong # args: should be "do body args"
      while executing
  "do"}}

  # ----------------------------------------
  test do-2.4 {one-shot do with error} {
      set x 0
      set res [catch {do {
  incr x
  foo
  incr x
      }}]
      list $x $res $::errorInfo
  } {1 1 {invalid command name "foo"
      while executing
  "foo"
      ("do" body line 3)
      invoked from within
  "do {
  incr x
  foo
  incr x
      }"}}

  cleanupTests

  if {[info exists ::argv0] && $::argv0 == [info script]} {
      # a proc that wastes some time
      proc something {n} {
  for {set i 0} {$i < $n} {incr i} {}
      }
      
      proc main {} {
  # run it for the first time to get it byte compiled
  something 1

  set payload {
      something 10
      incr x
  }
  puts "\nComparing performance of do-while, do-
  until and builtin while..."
  set format "%-8s : %20s for %4d iteration(s)."
  foreach c {1 10 5000} {
      puts ""
      foreach {descr script} {
  {do while} {do $payload while {$x < 
  $c}}
  {do until} {do $payload until {$x == 
  $c}}
  {while} {while {$x < $c} $payload}
      } {
  set x 0
  puts [format $format $descr [lrange 
  [time $script 1] 0 1] $x]
      }
  }
      }
      main
  }

  # Local variables:
  # mode: tcl
  # End:


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


tkt_uuid: 891254ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: utils.tcl, place proc: does not place left or top
cmimetype: text/plain
submitter: rmaris
assignee: damonc
closer: rmaris
closedate: 2004-05-19T12:36:48
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: 893259ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 8
foundin: None
title: Add simple plotting and charting package
cmimetype: text/plain
submitter: arjenmarkus
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-04-23T20:18:12
comment:
  I have written a simple package for drawing plots and
  charts:
  - xy-plots
  - piecharts
  - barcharts
  - polar plots

  (I would like to add some simple 3D presentations too)

  It is still very much in its infancy, but I include
  the source nonetheless for early comments and
  suggestions.

  The basic design criterium was:

  Provide an easy-to-use package. It may not be as
  flexible as some others, but by offering lots of
  different chart types it should be worth looking
  into.


tkt_uuid: 893516ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 5 Medium
foundin: None
title: flush error when large "quoted-printable"
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-10T16:39:04
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: 898067ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: ftp
priority: 5 Medium
foundin: None
title: ftp::NList error when directory empty
cmimetype: text/plain
submitter: cdclercq
assignee: gwlester
closer: andreas_kupries
closedate: 2004-02-26T01:13:43
comment:
  When executing ftp::NList on an empty directory
  follwing error message appears
  "error     error | E: Error getting directory listing!"

  The manual says:
  This command has the same behavior as the ::ftp::List 
  command, ...

  Ths ftp::List command does not show an error on emty
  dirs ...

  This a non-blocking message ...

  Regards,

  Christophe De Clercq


tkt_uuid: 898774ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: html
priority: 5 Medium
foundin: None
title: html - documentation for checkSet incomplete
cmimetype: text/plain
submitter: mic42
assignee: welch
closer: andreas_kupries
closedate: 2004-09-29T19:07:51
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: 899152ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: installer should [package require Tcl 8]
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-03-02T04:24:47
comment:
  By mistake I tried to install using
  Tcl 7.6.  Led to some surprising
  suggestions for install locations.

  Probably a good idea to
  [package require Tcl 8] early
  in installer.tcl.  The installer
  should not have to support Tcl 7,
  because none of the packages
  to be installed supports Tcl 7.


tkt_uuid: 899204ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: inifile
priority: 5 Medium
foundin: None
title: inifile test suite failures
cmimetype: text/plain
submitter: dgp
assignee: afaupell
closer: andreas_kupries
closedate: 2004-03-07T07:27:10
comment:
  The inifile.test depends on the
  file test.ini being writable. 
  However, in the official tcllib
  release, that file is read-only,
  causing the tests to fail.
  Is writability really needed?
  If not, the test should be modified
  to use mode r, instead of r+.

  Also, as written, tests
  inifile-1.2 through initfile-1.14
  depend on inifile-1.1 having
  run successfully.  This kind
  of inter-test dependency should
  be removed, since -skip options,
  etc. to tcltest mean there's no
  guarantee what tests will actually
  run.


tkt_uuid: 899207ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: snit
priority: 5 Medium
foundin: None
title: snit test failures
cmimetype: text/plain
submitter: dgp
assignee: duquette
closer: duquette
closedate: 2004-07-27T17:32:04
comment:
  In the tcllib 1.6 release,
  with Tcl/Tk 8.4.6 on Solaris 9:

  - snit 0.93

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

      cleanup

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

          typeconstructor {
              option add *Myframe.foreground red
          }

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

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

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

      list $a $b

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


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

      cleanup

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

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

      dog .dog
      
      set bg [.dog background]

      destroy .dog
      
      set bg

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


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

      cleanup

      widget dog { 
          widgetclass DogWidget

          typeconstructor {
              option add *DogWidget.background green
  widgetDefault
          }

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

      dog .dog
      
      set bg [.dog background]

      destroy .dog
      
      set bg

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


tkt_uuid: 899211ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ntp
priority: 9 Immediate
foundin: None
title: time-1.3 fails on 64-bit
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-08-26T18:00:15
comment:
  ==== time-1.3 time::unixtime FAILED
  ==== Contents of test case:

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

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


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

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


tkt_uuid: 899225ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: pop3
priority: 5 Medium
foundin: None
title: tests pop3-6.* hang
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-09-27T16:23:27
comment:
  The [setupServer] command hangs
  in tests pop3-6.0 and pop3-6.1 when
  running the pop3 tests.  The hangs
  trace to the [vwait] command within
  [::subserv::muservSpawn] .

  This is on Linux/Alpha, a 64-bit system.


tkt_uuid: 900041ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: htmlparse does not supprt empty elements
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-09-29T18:19:18
comment:
  htmlparse 1.3 (as well as 2.0) does not support
  empty elements of the form:

  <e ... />

  I think this is supported in the HTML standard.

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

  The first case results in havoc for 2Tree.

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

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

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

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

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

  Any comments?

  Tony Grimm
  grimmt@agilent.com


tkt_uuid: 900165ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget progressbar problem
cmimetype: text/plain
submitter: decosterjos
assignee: damonc
closer: dev_null42a
closedate: 2006-02-10T23:07:11
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: 900178ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftpd
priority: 5 Medium
foundin: None
title: Incorrect or unclear Response to PASS
cmimetype: text/plain
submitter: nobody
assignee: gwlester
closer: gwlester
closedate: 2004-05-22T19:30:15
comment:
  In proc ::ftpd::command::PASS, the positive response is
  generated as puts $sock "200 OK" (line# 1050). The RFC
  (imo) states, that it should be "230 ...." instead.

  The ftpd-Version is:
  ftpd.tcl,v 1.17 2003/07/05 04:59:35 andreas_kupries

  This behaviour leads to the message
  Unexpected response: OK
  with the widely-used NCFTP-Clients.

  M.Hoffmann@hmk.info 


tkt_uuid: 905132ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: None
priority: 5 Medium
foundin: None
title: time.tcl (version 1.8) fails to catch TCP connection timeout
cmimetype: text/plain
submitter: alathar
assignee: nobody
closer: patthoyts
closedate: 2004-02-26T22:11:12
comment:
  time.tcl fails to catch a timeout on the TCP socket
  connect, though it handles the UDP situation correctly.
   When used in TCP mode, either without the UDP package
  loaded or by specifying -protocol tcp, if there is
  nothing listening on the port of the specified server,
  the program ends with "connection refused".

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

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


tkt_uuid: 905906ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: des
priority: 5 Medium
foundin: None
title: des: problem wit variable options - variable not set
cmimetype: text/plain
submitter: arjenmarkus
assignee: patthoyts
closer: patthoyts
closedate: 2005-09-02T21:55:10
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: 907904ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: None
priority: 8
foundin: None
title: Patches to adjust startup for modules and examples
cmimetype: text/plain
submitter: stwo
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-03T22:22:57
comment:
  These are the patches used in the OpenBSD port of
  Tcllib to adjust the 'exec tclsh' lines of scripts.


tkt_uuid: 909104ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: tkchat - interface: can't send errors to /dev/null
cmimetype: text/plain
submitter: dgp
assignee: patthoyts
closer: patthoyts
closedate: 2006-09-15T07:41:59
comment:
  Debug->Error Logging->To File... has trouble setting
  destination to /dev/null

  complains about overwriting an existing file.


tkt_uuid: 911281ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
title: snit - Optimize for space
cmimetype: text/plain
submitter: andreas_kupries
assignee: duquette
closer: duquette
closedate: 2004-08-08T04:16:30
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: 911580ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: mime
priority: 5 Medium
foundin: None
title: clock scan error in ::mime::parsedatetime
cmimetype: text/plain
submitter: nobody
assignee: mrose
closer: andreas_kupries
closedate: 2005-10-04T18:12:52
comment:
  Due to a "clock scan" bug this mime function fails when use german 
  (and probably all other) locales.

  Error message:

  unable to convert date-time string "07 Mär 2004 19:04:52"
      while executing
  "clock scan $gmt"
      ("proper" arm line 3)
      invoked from within
  "switch -- $property {
          hour {
              set value [clock format $clock -format %H]
          }
          lmonth {
              return [clock form..."
      (procedure "::mime::parsedatetime" line ...)

  Simple work around in "proper" arm taht works for me:

          proper {
              set m [lindex {Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov 
  Dec} \
                    [clock format $clock -format "%m"]]
              set gmt [clock format $clock -format "%d $m %Y %H:%M:%S" \
                             -gmt true]
              if {[set diff [expr {($clock-[clock scan $gmt])/60}]] < 0} {
                  set s -
                  set diff [expr {-($diff)}]
              } else {
                  set s +
              }
              set zone [format %s%02d%02d $s [expr {$diff/60}] [expr 
  {$diff%60}]]

              return [clock format $clock \ 
                            -format "%a, %d %b %Y %H:%M:%S $zone"]
          }


  Best regards,
  Christoph


tkt_uuid: 913149ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: log
priority: 7 High
foundin: None
title: log package should not start log by default
cmimetype: text/plain
submitter: hobbs
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-04-23T19:57:29
comment:
  merely requiring the log package and using the
  statements cause logging to occur.  I think there
  should be distinct individual commands between
  declaring the *use* of the log package and actually
  wanting logging to occur.

  At a minimum, logging levels debug to warning should
  not log by default.


tkt_uuid: 914279ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: crc
priority: 5 Medium
foundin: None
title: crc::crc32 and Trf
cmimetype: text/plain
submitter: miketm
assignee: patthoyts
closer: patthoyts
closedate: 2004-03-31T23:01:59
comment:
  When Trf is installed the data starting with the dash ('-') 
  lead to an error and end of otions option (--) doesn't work 
  either Examples: 
   
  set value "-hello world" 
   
  set x [ ::crc::crc32 $value ]  
   
  produces: 
   
  Error in startup script: bad option -hello world: must be 
  -filename, -format, -implementation or -seed 
      while executing 
  "::crc::crc32 $value " 
   
  set x [ ::crc::crc32 -- $value ]  
   
  produces: 
   
  Error in startup script: crc-zlib: wrong # args, all options 
  require an argument 
      while executing 
  "crc-zlib $s" 
      (procedure "crc::Crc32_trf" line 11) 
      invoked from within 
  "$impl [lindex $args 0] $seed" 
      (procedure "::crc::crc32" line 53) 
      invoked from within 
  "::crc::crc32 -- $value " 
   
  Changing line 167 in crc32.tcl (tcllib-1.6) from 
  binary scan [crc-zlib $s] i r 
  to 
  binary scan [crc-zlib -- $s] i r 
   
  solves the problem 
   
   


tkt_uuid: 914488ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: ftp
priority: 5 Medium
foundin: None
title: Transfer rate should be under VERBOSE or DEBUG control
cmimetype: text/plain
submitter: thorson
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-04-23T20:16:36
comment:
  This message:

    $ftp(Total) bytes sent in $elapsed seconds ($persec
  Bytes/s)

  in function ::ftp::ElapsedTime 

  is displayed as a debug message no matter what the
  value of ftp::DEBUG or ftp::VERBOSE.   I believe it
  should not be logged at all unless either of those
  flags are set to true.


tkt_uuid: 916160ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: tree
priority: 7 High
foundin: None
title: Add a prune operation to the tree walk command
cmimetype: text/plain
submitter: btheado
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-08-15T03:35:31
comment:
  In version 2.0, struct::tree added handling for walk
  scripts to execute [break], [continue], and [return]. 
  A call to [break] or [return] will halt the walk
  altogether.  A call to [continue] allows the remainder
  of the walk script to be bypassed for a given iteration
  and doesn't modify which nodes are visited.  

  It would be nice to also have a prune command available
  that would alter the walk such that for a dfs, for
  instance, the walk would go no deeper than the node for
  which the prune is invoked.

  One way to implement this is as follows:

  Add the following arm to the [switch -exact -- $code]
  call in the function ::struct::tree::WalkCall:

      5 {
          # Force the rest of the current while loop
  iteration in 
          # the caller to be skipped, resulting in a
  "prune" effect
          return -code continue
      }

  And add the following function:

  #
  # For use within a walk call.  Stops the descent on the 
  # current node but continues walking the rest of the 
  # nodes for a dfs search
  #
  proc ::struct::prune {} {
      return -code 5
  }

  Here is a test that illustrates the operation:

  test tree-4.4.18 {prune in dfs walk} {
      tree mytree
      set t [list ]
      mytree insert root end 0 1 2
      mytree insert 0 end a b c
      mytree insert b end I II III
      lappend t ==
      mytree walk root {a n} {
  if {[string equal $n "b"]} {
              lappend t .

              # Skip the I, II, and III nodes
              ::struct::prune
          }
  lappend t $a $n
      }
      lappend t ==
      mytree destroy
      set t
  } {== enter root enter 0 enter a . enter c enter 1
  enter 2 ==}


tkt_uuid: 916668ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: cmdline
priority: 5 Medium
foundin: None
title: getoptions: handling of booleans undocumented
cmimetype: text/plain
submitter: onde
assignee: andreas_kupries
closer: sf-robot
closedate: 2005-10-11T02:20:24
comment:
  Hi,

  from comp.lang.tcl:

  Why is it that the handling of boolean vars in
  cmdline::getoptions differs from that of other
  "datatypes" or rather that this is not mentioned in the
  docs?

  According to the manpage:
  "...optlist contains a list of lists where each element
  specifies an option in the form: flag default comment...."

  Consider the following example:


  package require cmdline
  set optlist [list {v 1 "be verbose"} \
     {f.arg "index.html" "some usage"}]
  if {[catch {array set params [cmdline::getoptions argv
  $optlist]} res]} {
      puts stderr "$res"
      exit
  }
  # ...process each options


  Invoked with -?:

   -v                   1
                       ^^^
   -f value             some usage <index.html>
   -help                Print this message
   -?                   Print this message


  The only way to avoid this incorrect usage string is
  _not_ to set a default value for booleans.
  I think this should be mentioned in the docs, shouldn't it?

  Regards,
  Andreas


tkt_uuid: 917798ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: bwidget
priority: 5 Medium
foundin: None
title: No redraw during scrolling
cmimetype: text/plain
submitter: germinator2000
assignee: damonc
closer: damonc
closedate: 2004-03-22T17:41:46
comment:
  I'm on Mac OS 10.3.3 , TCL-TK 8.4.6 with BWdiget 1.70 and TKAqua

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

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

  }
  pack .test.sc
  }

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


tkt_uuid: 917877ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Add state readonly for Entry (and LabelEntry)
cmimetype: text/plain
submitter: mbroeken
assignee: damonc
comment:
  The Entry and LabelEntry widgets don't support the
  readonly-state like entry in pure Tk. This state is a
  perfect mix between normal and disabled because it can
  handle user events without changing its value.


tkt_uuid: 918099ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: smtp
priority: 7 High
foundin: None
title: SMTP AUTH support (RFC 2554)
cmimetype: text/plain
submitter: patthoyts
assignee: patthoyts
closer: patthoyts
closedate: 2004-03-18T11:08:27
comment:
  This patch adds support for the SMTP AUTH extension
  (RFC 2554). Currently this only deals with the LOGIN
  authentication mechanism but additional support for
  CRAM-MD5 and DIGEST-MD5 is planned.


tkt_uuid: 920974ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: nntp
priority: 5 Medium
foundin: None
title: Add support for async requests to nntp
cmimetype: text/plain
submitter: tallniel
assignee: nobody
comment:
  The NNTP package doesn't currently support asynchronous 
  requests. As NNTP commands may take a long time to run, it 
  would be useful to be able to do these asynchronously. The ability 
  to get a progress callback would also be useful (similar to the http 
  package).


tkt_uuid: 922877ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: bwidget PasswdDlg - honour labelwidth and fix return binding
cmimetype: text/plain
submitter: stevel
assignee: damonc
closer: dev_null42a
closedate: 2006-09-27T03:31:34
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: 923055ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftpd
priority: 5 Medium
foundin: None
title: Generic arg processing is bogus, trips on spaces in paths
cmimetype: text/plain
submitter: nobody
assignee: gwlester
closer: andreas_kupries
closedate: 2007-08-20T20:42:34
comment:
  I've adapted the /tcl/demos/Tcllib/ftpd/ftpd.test -
  script to a full-functional ftp-daemon, especially
  using a modified proc like

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

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

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

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

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

  I haven't found a simple workaround yet.

  mailto:M.Hoffmann@hmk.info


tkt_uuid: 923942ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Rejected
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget dynamic help problem
cmimetype: text/plain
submitter: decosterjos
assignee: damonc
closer: oehhar
closedate: 2009-07-01T07:53:54
comment:
  Hi, 
   
  When using the BWidget DynamicHelp to add balloon tips to an 
  application, the balloons are only removed from the screen when 
  you move the mouse pointer out of the widget the balloon was 
  registered for. You can move the mouse inside the widget without 
  the balloon being removed. Use this test script to see the desired 
  effect: 
   
  package require BWidget 
   
  text .t 
  pack .t 
  DynamicHelp::register .t balloon "Testing dynamic help" 
   
   
  Hold the mouse pointer inside the text widget and the balloon help 
  will show. Now move the mouse pointer inside the text widget. The 
  balloon won't disappear. 
   
   
  The balloon help should also be removed when moving the mouse 
  cursor inside the widget the balloon was registered for. To obtain 
  this, replace the 
   
   DynamicHelp::_motion_balloon 
   
  function by the attached one. 
   
  Kind regards, 
   
  Jos. 
   


tkt_uuid: 928995ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: inifile
priority: 5 Medium
foundin: None
title: modules/inifile/test.ini ships read-only
cmimetype: text/plain
submitter: kot
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-04T19:13:02
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: 929727ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget notebook page name bug
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: hobbs
closedate: 2004-09-14T21:34:42
comment:
  BWidget notebook page name retrieval uses wrong index.
  Here is the diff that I made:

  diff notebook.tcl BWidget-1.7.0/notebook.tcl 
  336c336
  <       append script " \[NoteBook::_get_page_name [list $path] current 1\]"
  ---
  >       append script " \[NoteBook::_get_page_name [list $path] current 2\]"


tkt_uuid: 930101ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: mime
priority: 5 Medium
foundin: None
title: Help with Tcllib MIME
cmimetype: text/plain
submitter: vijbulusu
assignee: mrose
closer: patthoyts
closedate: 2004-06-24T14:35:23
comment:
  Can anyone help me out with the following problem? I am 
  using Tcllib 1.0.

  THE CODE

  I am using the following code:
  [mime::initialize -canonical "text/html; charset=US-
  ASCII" -string $body]
  [mime::setheader $message Subject $subject]
  [smtp::sendmessage $message -originator $fromemail -
  recipients $toemail -servers $emailserver -ports 
  $emailport]
  [mime::finalize $message]

  THE ERROR

  When I use the variable "old" as described below, I have 
  no problems in sending the email. However, as soon as I 
  start defining attribute values in my HTML such as 
  width=100% (see the variable "new" defined below), I 
  get the following error:

  key message-id not in header

  THE MESSAGE

  [append old "<html><head> "
  append old "<title>eSampleMail</title> "
  append old "<style>"
  append old "</style>"
  append old "</head>"
  append old "<body>"
  append old "<table>"
  append old "<tr><td>We are pleased to 
  provide you with the most recent updates to 
  myserver.com</td></tr>"
  append old "</table>"
  append old "</body>"
  append old "</html>"
  NULL]

  [append new "<html><head> "
  append new "<title>eSampleMail</title> "
  append new "<style>"
  append new "</style>"
  append new "</head>"
  append new "<body>"
  append new "<table width=100%>"
  append new "<tr><td>We are pleased to 
  provide you with the most recent updates to 
  myserver.com</td></tr>"
  append new "</table>"
  append new "</body>"
  append new "</html>"
  NULL]


  Please help.


tkt_uuid: 932029ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Cannot have space in pathname of combobox (FIX SUPPLIED)
cmimetype: text/plain
submitter: jaspert
assignee: damonc
closer: hobbs
closedate: 2004-04-21T21:44:17
comment:
  An error occurs if you try to create a combobox with a
  space in its pathname

  Here are the changes I made to get it working, please
  patch the next release, they look fairly harmless...

  $ diff BWidget-1.7.0/entry.tcl entry.tcl
  140c140
  <       "return \[Entry::_path_command $path \$cmd
  \$args\]"
  ---
  >       "return \[Entry::_path_command [list $path]
  \$cmd \$args\]"
  159c159
  <     foreach $vars [eval Widget::hasChangedX $path
  $opts] { break }
  ---
  >     foreach $vars [eval {Widget::hasChangedX $path}
  $opts] { break }
  $ diff BWidget-1.7.0/arrow.tcl arrow.tcl
  90c90
  <     eval canvas $path.c $submaps(.c)
  ---
  >     eval {canvas $path.c} $submaps(.c)

  Cheers


tkt_uuid: 932437ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: dns
priority: 5 Medium
foundin: None
title: dns::error not compatible with prodebug
cmimetype: text/plain
submitter: nobody
assignee: patthoyts
closer: patthoyts
closedate: 2004-04-13T10:46:00
comment:
  eventhough [error] is in the dns namespace, prodebug 
  doesn't like it.  Please rename it to something other than 
  a reserved name.


tkt_uuid: 932516ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: html
priority: 5 Medium
foundin: None
title: html - many procedures not compatible with prodebug
cmimetype: text/plain
submitter: nobody
assignee: welch
comment:
  prodebug complains about the following:

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


tkt_uuid: 934134ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: smtpd
priority: 7 High
foundin: None
title: SMTPD GMT offset calculation incorrect
cmimetype: text/plain
submitter: patthoyts
assignee: patthoyts
closer: patthoyts
closedate: 2004-06-18T01:26:32
comment:
  Package smtpd, proc gmtoffset produces incorrect output
  (sign inverted) when calculating GMT offset. For
  example, it returns
    Sun, 11 Apr 2004 08:14:06 +0500
  for CDT. When it should return
    Sun, 11 Apr 2004 08:14:06 -0500

  The bug is at line 354 of $Id: smtpd.tcl,v 1.12
  2004/01/15 06:36:14 andreas_kupries Exp $

  Which is

          set off [expr {$zh - $lh}]

  but apparently should be

          set off [expr {$lh - $zh}]

  Raised by Bob Binder (rbinder aT rbsc dot com)


tkt_uuid: 934702ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: Add a XML parsing module to tcllib
cmimetype: text/plain
submitter: mic42
assignee: nobody
comment:
  As there is no XML parsing module in either the tcl
  core distro nor the Tcllib yet, there is a large class
  of modules not really nicely includeable into tcllib
  (nearly everything xml related). 

  A Tcllib XML parsing module would be really nice,
  especially if linked to a DOM module using the
  ::struct::tree (not super efficient but standard). 

  Candidates would be the TclXML package from the tclxml
  project or a new development. 

  A new development could unify the two most used C
  extensions in the area (TclXML and tDOM).


tkt_uuid: 936064ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: uri
priority: 5 Medium
foundin: None
title: password:user@host.com not parsed
cmimetype: text/plain
submitter: mic42
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-03T20:19:37
comment:
  URI does not handle RFC2396 mentioned http style with
  user:password included:

  % uri::split http://foo:bar@baz.com:80/bla/
  port {} path :bar@baz.tcl:80/ scheme http host foo query {}

  Regexps get it wrong...

  Michael


tkt_uuid: 939532ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: exif
priority: 5 Medium
foundin: None
title: exif read fails when subIFD has unknown tag
cmimetype: text/plain
submitter: pascalscheffers
assignee: andreas_kupries
closer: afaupell
closedate: 2009-02-19T05:39:40
comment:
  The if/elseif/else for tag recognition in 
  proc ::exif::exifSubIFD ends with 'error "unknown 
  tag ..."'.

  I highly doubt the author intended this, as this renders 
  the exif unusable whenever a camera manufacturer adds 
  a new exif tag. 

  My suggestion: change 'error' to 'debug'. 


tkt_uuid: 940375ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: None
priority: 5 Medium
foundin: None
title: tcllib 1.6 install error due to doc. generation bug
cmimetype: text/plain
submitter: rcalmbac
assignee: nobody
closer: andreas_kupries
closedate: 2004-04-22T22:09:28
comment:
  There is a problem generating the nroff documentation,
  which causes the installation of tcllib 1.6 to fail.

  In detail: When selecting the "Doc. Nroff" checkbox in
  the installer GUI, keeping "Simulate installation" off,
  and clicking on "Install", I get this output and error
  message:

  <47 triton->tcllib-1.6> wish installer.tcl 
  Installing Tcllib 1.6
  You have chosen the following configuration ...

  Packages:      install/lib/tcllib1.6
  Examples:      install/bin/tcllib_examples1.6
  Documentation:

          NROFF:  install/man/mann
          HTML:   install/lib/tcllib1.6/tcllib_doc

  Error in startup script: @--> invalid command name "option"
      while executing
  "::doctools::_format dt {[comment {-*- tcl -*- doctools
  manpage}]
  [comment { $Id: s.multiplexer.man 1.4 04/02/10
  23:36:58-08:00 tcl@bluepeak.home $ }]
  ..."
      ("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 multiplexer nroff n install/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)


  My wish shell is v8.4.5. This error happens whether I'm
  on Solaris or on Linux. The error seems to be caused by
  a problem encountered when processing the
  multiplexer.man documentation file. The same error also
  occurs for graph.man and struct_tree.man (both in
  module struct).

  These errors did not occur in tcllib 1.4.

  It would be good to fix this since it is somewhat
  frustrating for users to have the installation fail
  halfway through.

  I am not familiar with doctools or the doctools
  documentation format, but hopefully someone who is can
  identify the source of the problem from these symptoms.


tkt_uuid: 940651ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: csv
priority: 5 Medium
foundin: None
title: error in ::csv::read2matrix
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-03T19:55:06
comment:
  in csv.tcl (line132)
  has to be a '5' instead a '4'.

  case '4' occures twice!


   switch -exact -- [llength $args] {

  .
  .
  .
  5 { 
      foreach {a b c d e} $args break
              if {![string equal $a "-alternate"]} {
                  return -code error "wrong#args: Should
  be ?-alternate? chan m ?separator? ?expand?"
              }
              set alternate 1

              set chan    $b
              set m       $c
              set sepChar $d
              set expand  $e
          }
  .
  .
  .
  }


tkt_uuid: 943145ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 7 High
foundin: None
title: doctools - [namespace] markup request
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-04T22:10:44
comment:
  Please add a [namespace] markup command
  to the doctools format for marking a namespace
  name in the documentation.


tkt_uuid: 943146ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: nroff formatting eats backslashes
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-04T18:52:01
comment:
  with [const {\u001A}] in a doctools formatted
  document, the literal backslash gets passed
  through fine, but since \ is an nroff-special
  character, it doesn't appear in the displayed
  documentation.

  Seems the nroff formatting needs to add
  some \-escaping.


tkt_uuid: 943994ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 9 Immediate
foundin: None
title: standard doctools target for TEA / Makefile authors
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: dgp
closedate: 2004-11-13T00:45:58
comment:
  The doctools package supports processing
  of a nice documentation markup language.

  Any Tcl package author who uses doctools
  markup to create documentation, will need
  a doc: target in his TEA Makefile to produce
  documentation in installable formats like
  nroff and html.  This suggests an application
  built around doctools.

  Candidates are mpexpand and dtp, but neither
  is routinely installed enough for simple use.

  Request that some such app get installed
  routinely when tcllib is installed, and that
  sample doc: target rules be made available,
  perhaps within the TEA sampleextension itself.


tkt_uuid: 944995ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ncgi
priority: 5 Medium
foundin: None
title: xml content/type
cmimetype: text/plain
submitter: coldstore
assignee: welch
closer: welch
closedate: 2004-05-04T22:31:14
comment:
  Reported as tclhttpd bug '[ 698549 ] direct url getting
  xml content/type' at
  http://sourceforge.net/tracker/index.php?func=detail&aid=698549&group_id=12884&atid=112884

   when using in ie ActiveXObject("Microsoft.XMLHTTP");
  to get xml from a direct_url the is a server 500 error.
  the problem is the content-type:
  Unknown Content-Type: text/xml
  while executing
  "ncgi::nvlist"(procedure "ncgi::parse" line 8)


  this is because ncgi package does not reconize test/xml
  type.
  adding it to ncgi solves the problem:

  proc ncgi::nvlist {} {
  set query [ncgi::query]
  set type [ncgi::type]
  switch -glob -- $type {
  "" -
  application/x-www-form-urlencoded -
  application/x-www-urlencoded -
  text/xml
  {

  I'm handpassing this to you.


tkt_uuid: 946856ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 7 High
foundin: None
title: Enhance uri command
cmimetype: text/plain
submitter: apnadkarni
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-04T22:11:56
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: 947109ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: font selection dialog up/down bindings
cmimetype: text/plain
submitter: wilkason
assignee: damonc
closer: dev_null42a
closedate: 2006-09-27T03:31:23
comment:
  The listbox used to select the font should have the 
  following bindings added such that when the up/down 
  cursor keys are used in the listbox, the sample font is 
  shown in the sample area.

  In SelectFont::create procedure, add

          bind $lbf <Up>    $script
          bind $lbf <Down>   $script

  after existing bindings

          bind $lbf <ButtonRelease-1> $script
          bind $lbf <space>           $script
          bind $lbf <1>               [list focus %W]


tkt_uuid: 948063ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: MenuFrame: no 'getmenustate' method
cmimetype: text/plain
submitter: pointsman
assignee: damonc
closer: oehhar
closedate: 2009-07-01T07:43:32
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: 948273ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: log
priority: 5 Medium
foundin: None
title: logger::services returns "services", not $services
cmimetype: text/plain
submitter: nobody
assignee: mic42
closer: mic42
closedate: 2004-05-25T17:45:13
comment:
  I believe the code in the logger::services

  proc ::logger::services {} {
      variable services
      return services
  }
                                                        
                                                        
                       
  should return $services, not "services"


  regards
  Jouni.Ryno@fmi.fi


tkt_uuid: 949049ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Combobox error : unknown option "-label"
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: hobbs
closedate: 2004-05-06T16:22:36
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: 951568ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: smtp
priority: 9 Immediate
foundin: None
title: Problems sending long messages.
cmimetype: text/plain
submitter: patthoyts
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-13T07:02:21
comment:
  From Peter Campbell on comp.lang.tcl
  Message-ID: <DSSnc.1164$FN.128726@news02.tsnz.net>

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

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

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

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

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

  The following is the output from my debugging:



  The following is the output from my debugging:

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


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

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


tkt_uuid: 952391ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
title: Add new optimisation and statistics procedures
cmimetype: text/plain
submitter: arjenmarkus
assignee: nobody
closer: arjenmarkus
closedate: 2005-10-04T06:54:05
comment:
  The work by myself and others as published on the Wiki
  should be added to the math module:
  - Optimisation procedures
  - Interpolation techniques
  - Cluster analysis
  - Discrete and Fast Fourier Transform
  - Linear regression (not on the Wiki yet)
  - Complex numbers 

  The work involved:
  - Clean up the code
  - Define clear test cases
  - Write up the documentation

  NOTE: This is just a reminder for myself, as I am 
  willing to prepare the addition.


tkt_uuid: 953075ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ScrolleableFrame packs weird
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2004-09-14T20:50:04
comment:
  The BWidget demo displays so wrong behaviour.
  In the ScrolleableFrame it packs 20 entry fields
  and packs them with -fill both and -expand yes.

  However its seems like the expand tag is lost
  somewhere.


tkt_uuid: 953854ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: htmlparse
priority: 1 Zero
foundin: None
title: Errors when parsing HTML to a tree
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-18T06:15:37
comment:
     Hello,

  In func

  proc ::htmlparse::mapEscapes

  line: return [subst $new]
  should change to:
     return [subst -nobackslashes -novariables $new]

  If not, if new has a backslash \, the subs breaks the 
  string (specially noted in paths on Windows)

  -------
  In func

  ::htmlparse::Reorder

  Lines:
      if {
         $sibling == {} ||
         (![string compare $tp [$tree get $sibling type]])
                   } {
                       break
                   }
  Should change to:
         if { $sibling == "" } { break }
         if { [lsearch "h1 h2 h3 h4 h5 h6 p li" [$tree get
                   $sibling type]] != -1 } {
      break
       }

    Second option is less agressive when reordering tags.

    Regards,

    Ramon Ribó
    ramsan@cimne.upc.es


tkt_uuid: 954328ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 8
foundin: None
title: require md5 then mime, throws error
cmimetype: text/plain
submitter: coldstore
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-20T05:46:14
comment:
  From a clean CVS install of tcllib:

  tclsh 
  % package require md5 
  2.0.0 
  % package require mime 
  version conflict for package "md5": have 2.0.0, need 1.0 
  %  

  whereas the opposite order works:

  tclsh 
  % package require mime 
  1.4 
  % package require md5 
  1.4.3 
  %


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

  --[ Error as follows. ]--

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


tkt_uuid: 955446ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftpd
priority: 7 High
foundin: None
title: 227 reply non-recommended - causes failures
cmimetype: text/plain
submitter: royterry
assignee: gwlester
closer: gwlester
closedate: 2004-05-23T18:18:46
comment:
  ftpd.tcl (tcllib1.6) currently sends:
  227 Entering Passive Mode. 192,168,1,100,13,209

  The recommeded standard is
  227 Entering Passive Mode (192,168,1,100,13,209).

  Note the added parens. and the move of period to
  end of string.

  When I made this change my client, a Linux-based ROM-
  disk DVR (Digital Video Recorder) started working. So not
  much chance to change things on client.

  Seems in this case it's just a better idea to 
  exactly match the recommendation rather than
  vary slightly.


tkt_uuid: 955473ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: Fatal error: tkchat requires winico
cmimetype: text/plain
submitter: dkf
assignee: patthoyts
closer: patthoyts
closedate: 2004-05-18T11:11:57
comment:
  Tkchat 1.160 requires the Winico extension, which is
  considerably less common than other extensions. This
  stops tkchat from loading (on Windows at least) if that
  extension isn't actually present.

  Please wrap the require of winico in a catch and only
  do the rest of the winico-related initialisation if the
  extension is loaded correctly.


tkt_uuid: 956930ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: ftp
priority: 7 High
foundin: None
title: Unknown state "pwd_sent"
cmimetype: text/plain
submitter: mc_8
assignee: andreas_kupries
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: 957180ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: log
priority: 5 Medium
foundin: None
title: Various bug fixes and enhancements to the logger package
cmimetype: text/plain
submitter: mic42
assignee: mic42
closer: mic42
closedate: 2004-05-25T17:57:39
comment:
  Bugfixes and Enhancements to logger:

  * fixed broken logger::services and added tests
  * implemented ${log}::services and added tests and
  changed docs
  * fixed broken cleanup in ${log}::delete and the testsuite
  * fixed some bad uses of set in namespaces which could
  lead to overwrite of global vars.
    used 'variable' instead of 'set' where appropriate
  * added introspection commands with docs and tests
    ${log}::servicename and logger::servicecmd
  * added introspection to ${log}::logproc with docs and
  tests
  * bumped version No to 0.4
  * added introspection to ${log}::delproc with docs and test


tkt_uuid: 957919ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: uri
priority: 5 Medium
foundin: None
title: uri::split fails on "http://a.b.c/idx?path=/idx"
cmimetype: text/plain
submitter: svogel
assignee: andreas_kupries
comment:
  uri::split "http://a.b.c/idx?path=/idx"
  results in
  path: "idx?path=/idx"
  query: ""

  I think the "/" in the query confuses the regexp 
  in "SplitHttp"

  Fixing:
  variable charN {[a-zA-Z0-9$_.+!*'(,)?:@&=-]}
  to:
  variable charN {[a-zA-Z0-9$_.+!*'(,)?:@/&=-]}
  (Note the "/")
  results in the correct result.

  I'm not quite sure if this does affect other functions?

  I ran the "uri.test" but got 12 failures (before and after 
  my change!).

  I'm using uri 1.1.3 (with tcl 8.4.5 on WindowsXP).


tkt_uuid: 961452ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
title: Plotchart does not handle "missing values"
cmimetype: text/plain
submitter: arjenmarkus
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2006-04-25T12:31:11
comment:
  (Reminder)
  Plotchart currently does not handle missing values
  (empty strings). Adding such a feature is not too
  difficult though


tkt_uuid: 961454ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: tklib: plotchart
priority: 5 Medium
foundin: None
title: Add a date/time axis to the repertoire
cmimetype: text/plain
submitter: arjenmarkus
assignee: arjenmarkus
comment:
  (Reminder)
  Add the ability to show date/times along the x-axis -
  especially useful for timeseries of measurement data 


tkt_uuid: 966696ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
title: Add introspection for methods
cmimetype: text/plain
submitter: andreas_kupries
assignee: duquette
closer: duquette
closedate: 2004-08-08T04:14:58
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: 967906ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: bwidget - Font Chooser Cursor Usage
cmimetype: text/plain
submitter: wilkason
assignee: hobbs
closer: dev_null42a
closedate: 2006-09-28T15:55:32
comment:
  In the font chooser, the listbox cannot be navigated with the cursor key. Adding the bottom two lines to  SelectFont::create corrects this

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


tkt_uuid: 970199ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: MessageDlg::create Bug and Fix
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: dev_null42a
closedate: 2006-09-28T15:48:10
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: 970878ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: html
priority: 5 Medium
foundin: None
title: Ability to add stylesheet
cmimetype: text/plain
submitter: coldstore
assignee: welch
closer: andreas_kupries
closedate: 2006-06-13T22:19:00
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: 971076ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: tklib: request for new module
priority: 5 Medium
foundin: None
title: snitbutton widget
cmimetype: text/plain
submitter: nobody
assignee: nobody
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: 974034ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Rejected
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ArrowButton attributes insensitive to [option add]
cmimetype: text/plain
submitter: eriklns
assignee: damonc
closer: oehhar
closedate: 2009-07-01T07:07:25
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: 977354ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: cosmetic problem(s) in TkChat about box...
cmimetype: text/plain
submitter: mistachkin
assignee: patthoyts
closer: patthoyts
closedate: 2004-06-23T20:33:53
comment:
  I noticed this a while ago and finally got annoyed 
  enough to fix it.  Patch attached, please commit.


tkt_uuid: 978510ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: tkchat should add "package require Tcl 8.4"
cmimetype: text/plain
submitter: willdye
assignee: patthoyts
closer: patthoyts
closedate: 2004-06-23T20:28:35
comment:
  I tried running tkchat.tcl under Tcl 8.3, but it blew
  up because several places in the code require 8.4
  (lsearch switches, etc.).  You might want to add a
  "package require Tcl 8.4".  

  If anyone decides to support 8.3, contact me for a list
  of bugs I encountered.  I managed to get it to at least
  come up and display a few messages with only a few
  changes, but there might be deeper problems I haven't
  encountered yet.

  --willdye ("BobaFudd" on tkchat)


tkt_uuid: 978962ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 7 High
foundin: None
title: tkchat timestamp problems.
cmimetype: text/plain
submitter: patthoyts
assignee: wildcard_25
closer: wildcard_25
closedate: 2005-05-26T12:45:35
comment:
  dkfFor example, too often it gets the tabs wrong (puts
  a zero tab at the start of every line) and odd things
  happen when you have timestams visible but entry/exit
  messages off...
  patthoytsThe main issues I have are that it breaks the
  history download when turned off. If there are hidden
  users then we still get a timestamp. And as dkf has
  said, if you hide the timestamps it doesn't align the
  tab spacing properly.
  dkfIf you turn timestamps on then off again, the
  loaded history ends up correct.
  dkfAnd seems to stay that way thereafter.
  dkfThe other issues are less critical. You just get
  blank lines...


tkt_uuid: 979487ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: bwidget
priority: 5 Medium
foundin: None
title: SelectColor widget locks up on MacOS
cmimetype: text/plain
submitter: ssmedley
assignee: damonc
closer: oehhar
closedate: 2009-07-01T06:59:22
comment:
  Hi,

  The SelectColor widget locks up under Mac OS X. I'm
  using BWidget v1.7.

  If I remove the 3 "update" calls in SelectColor::menu, 
  everything works fine.

  I tried substituting with "update idletasks" but that
  didn't work.

  Email me at ssNO@SPAMaao.gov.au if you need more
  info or patches tested.

  SCoTT. :)


tkt_uuid: 979894ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: smtp
priority: 5 Medium
foundin: None
title: username and password options are missing
cmimetype: text/plain
submitter: orwellian
assignee: mrose
closer: patthoyts
closedate: 2004-07-08T22:58:22
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: 981545ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: better -exportselection behavior
cmimetype: text/plain
submitter: hobbs
assignee: damonc
closer: oehhar
closedate: 2009-06-11T09:18:43
comment:
  The following patch was sent to me as a recommendation
  for better behavior on unix.  It looks OK to me, but
  someone should double-check that it doesn't look too
  funky on unix (where is has more noticeable effect):

  I tried to turn off the -exportselection option for the
  ComboBox.  The result was the entry text was still
  selected, but now it did not deselect even if other
  places in the app grabbed the selection.  There appear
  to be now way to get rid of the selection after this.

  The following patch to ActiveTcl fixes this problem.

  --- lib/bwidget1.7/combobox.tcl.dist2004-05-26
  09:23:49.000000000 +0200
  +++ lib/bwidget1.7/combobox.tcl2004-05-26
  09:34:08.000000000 +0200
  @@ -599,7 +599,9 @@
           }
       }
       $path.e selection clear
  -    $path.e selection range 0 end
  +    if {[$path.e cget -exportselection]} {
  +        $path.e selection range 0 end
  +    }
   }


tkt_uuid: 981605ffffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
resolution: Not Applicable Here
subsystem: calendar
priority: 5 Medium
foundin: None
title: BWidget Calendar Dialog
cmimetype: text/plain
submitter: cmay
assignee: damonc
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: 981764ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: bwidget
priority: 5 Medium
foundin: None
title: label problem in BWidget-1.2.1
cmimetype: text/plain
submitter: joshim
assignee: damonc
closer: hobbs
closedate: 2004-09-14T20:49:15
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: 981771ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tklib: plotchart
priority: 5 Medium
foundin: None
title: Add radial diagram to the repertoire
cmimetype: text/plain
submitter: arjenmarkus
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2007-06-13T07:05:59
comment:
  Often semi-numerical data (scores on categories) are
  represented in a circular diagram. Each score is a
  point on a spoke of the circle and these scores are
  then connected by lines.

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


tkt_uuid: 983197ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: None
subsystem: comm
priority: 5 Medium
foundin: None
title: bgerror not getting a chance
cmimetype: text/plain
submitter: puneet
assignee: andreas_kupries
closer: puneet
closedate: 2004-07-01T07:12:28
comment:
  I am sending a command form a tcl application (client)
  to another tcl application (server). If an error is
  caught on the server side, this is not getting handeled
  by the ::bgerror procedure on the server side. This
  used to be the behaviour in the tcllib1.4. Now the
  error is being thrown back to the client side.


tkt_uuid: 984407ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: tklib :: ctext
priority: 5 Medium
foundin: None
title: Hang in ctext with regexp match
cmimetype: text/plain
submitter: tallniel
assignee: georgeps
comment:
  Just been playing with ctext and I ran into a bug which causes an 
  endless loop on my system. The problem came from trying to 
  highlight Tcl comments, using:

  ctext::addHighlightClassForRegexp $win comment navy 
  {#[^\n]*\n}

  Then if I add the following to the text widget:

  This is a test
  # This is a test
  foo


  Then position the cursor somewhere in the comment, and press 
  backspace - endless loop occurs in ctext::highlight - the third while 
  1 loop. Problem seems to be that the [$win search..] stuff is 
  passed indices like 4.0 3.15  (i.e. start is after end), and it return 
  3.0 bizarrely (this may be a bug in the text widget, or possibly in 
  the Mac OS X implementation - I haven't followed up yet). The fix 
  was to add these lines after the {"" == $res} check:

  # If result given is less than the start index (can happen), then
  # break out
  foreach {l1 c1} [split $res .] {l2 c2} [split $si .] { break }
  if {$l1 < $l2 || ($l1 == $l2 && $c1 < $c2)} { break }


  Everything seems to work again after adding that in. I would 
  upload a patch, but I'm very busy at present. Hassle me by email 
  if you really really want a patch!


tkt_uuid: 985568ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 7 High
foundin: None
title: doctools - better error messages
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-07-23T03:49:39
comment:
  The error messages generated by doctools are bad with
  regard to reporting the location they happen at. They
  should report not only what is wrong, but exactly where.


tkt_uuid: 985601ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 6
foundin: None
title: doctools - engine parameters not documented
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-07-10T07:20:17
comment:
  Neither the general methods to query and set engine
  parameters are documented, nor are the actual
  parameters defined by the predefined formatters.


tkt_uuid: 985839ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: smtp
priority: 5 Medium
foundin: None
title: Can't send mail to Yahoo
cmimetype: text/plain
submitter: phantomfive
assignee: mrose
closer: patthoyts
closedate: 2004-08-06T13:37:50
comment:
  Using the smtp and mime packages to send email, I am
  having trouble sending email to Yahoo using Windows XP.
   It works fine from a Linux machine, also sending mail
  from the windows machine to hotmail.com works.  I am
  using the following code:

  proc send_simple_message {recipient email_server
  subject body} {
      package require smtp
      package require mime
      
      set token [mime::initialize -canonical text/plain \
     -string $body]
      mime::setheader $token Subject $subject
      
      puts [smtp::sendmessage $token \
        -recipients $recipient -servers $email_server]
      mime::finalize $token
  }
  send_simple_message andrewthompson10@hotmail.com
  mx3.mail.yahoo.com \
      "This is the subject." "\n\n This is the message.\n"


  It gives me an error:

  key message-id not in header
     while executing 
  "error "key $mixed not in header""

  This appears to be on line 1282 of mime.tcl.

  I tried to add things to the header with the following
  code inside proc send_simple_message:

  mime::setheader $token Subject $subject
  mime::setheader $token Message-ID \
  "<3140374180748234979238742391784313234@localhost>"
  mime::setheader $token Date "July 4, 2004"
      


  And I ended up with the following error:

  can't unset "state(route)": no such element in array
  while executing 
  "unset state($prop)"

  This appears to be referring to line 2675 of mime.tcl
  (I would expect that the catch would take care of the
  error, but apparently not).


tkt_uuid: 987305ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: uuid::compare should be uuid::equal
cmimetype: text/plain
submitter: jenglish
assignee: patthoyts
closer: patthoyts
closedate: 2004-07-08T22:30:27
comment:
  From the uuid manpage:

  | ::uuid::uuid compare id1 id2
  |                                                     
                             
  | Compares two uuids. If equal the result is 0 
  | otherwise the result will be either +1 or -1.

  It's almost never necessary to check if one UUID is
  less than or greater than another; UUIDs don't really
  have a natural ordering relation.  

  It's far more common to check UUIDs for equality.  I'd
  suggest that:

  | ::uuid::uuid equal $id1 $id2
  |  Returns 1 if $id1 and $id2 are equal, 0 otherwise.

  would be a more useful API.


tkt_uuid: 988123ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: "./sak.tcl nroff" fails
cmimetype: text/plain
submitter: rmax
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-07-10T04:16:27
comment:
  The output is:

  Gen (nroff): ./modules/asn/asn.man
  Gen (nroff): ./modules/base64/yencode.man
  Gen (nroff): ./modules/base64/base64.man
  Gen (nroff): ./modules/base64/uuencode.man
  Gen (nroff): ./modules/bee/bee.man
  command "dt" already exists, unable to create doctools
  object
      while executing
  "::doctools::new dt  -format $fmt  -module $m"
      (procedure "gendoc" line 19)
      invoked from within
  "gendoc nroff n"
      ("eval" body line 1)
      invoked from within
  "eval gendoc nroff n    $argv"
      (procedure "__nroff" line 1)
      invoked from within
  "__$cmd"
      (file "./sak.tcl" line 1582)


tkt_uuid: 988628ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget 1.7 notebook: missing border
cmimetype: text/plain
submitter: jfontain
assignee: damonc
closer: hobbs
closedate: 2004-09-14T20:47:11
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: 990937ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: uri
priority: 5 Medium
foundin: None
title: why is [eval] required for identity split->join?
cmimetype: text/plain
submitter: glennjnn
assignee: andreas_kupries
closer: sf-robot
closedate: 2005-10-15T02:20:13
comment:
  % package require uri
  1.1.1
  % set url http://some.site.invalid/some/path
  % set theUrl [uri::join [uri::split $url]]
  list must have an even number of elements
  % set theUrl [eval uri::join [uri::split $url]]
  http://some.site.invalid/some/path


  Surely uri::join should be written so that the eval is
  not required.  Merely stop using the "args" argument in
  the proc definition so that uri::join must be passed a
  list and not several parameters.

  proc uri::join parts {
      array set components $parts
      return [eval [list Join[string totitle
  $components(scheme)]] $parts]
  }


tkt_uuid: 991452ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: ftp
priority: 5 Medium
foundin: None
title: ftp::Quote should join arguments
cmimetype: text/plain
submitter: nobody
assignee: gwlester
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: 991959ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: ncgi
priority: 5 Medium
foundin: None
title: command to send headers
cmimetype: text/plain
submitter: davidw
assignee: welch
comment:
  In CGI scripts with ncgi you send the headers via a
  regular old puts.  This works ok for the moment, but
  it's an obstacle to creating a compatibility layer for
  systems such as Rivet or tclhttpd.  It would be best if
  all 'special' goings-on were handled by ncgi commands
  that could be overridden to create a compatibility layer.

  Something along the lines of

  ncgi::headers text/html

  is what I'm thinking of.


tkt_uuid: 992481ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: log
priority: 5 Medium
foundin: None
title: typo in logger::services proc
cmimetype: text/plain
submitter: hemanglavana
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-07-16T17:57:54
comment:
  The logger::services always returns "services", see below:

  godel:678> tclsh
  % package provide ActiveTcl
  8.4.6.0
  % package require logger
  0.3
  % logger::init foo
  ::logger::tree::foo
  % logger::init bar
  ::logger::tree::bar
  % logger::services
  services
  % exit
  godel:679> 

  This is because there is a typo in the services proc.
  The variable name is not accessed using $. See below:

  proc ::logger::services {} {
      variable services
      return services     <---- should be "return $services"
  }


tkt_uuid: 995545ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: struct :: record
priority: 5 Medium
foundin: None
title: package require struct::record does not work
cmimetype: text/plain
submitter: nobody
assignee: schwarzkopf
closer: andreas_kupries
closedate: 2004-09-29T19:18:40
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: 996326ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: textutil :: expander
priority: 5 Medium
foundin: None
title: Hook for errmode 'error'
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  When error mode "error" is used the expander places
  errors directly into the output. The format of that
  error message is hardwired. And really suitable only if
  the output is plain text.

  IMHO it makes sense to have a callback which can be set
  and creates a message which is properly formatted for
  the generated document. For example in HTML a box with
  highlighted background, bold text, large font, colors, ...


tkt_uuid: 996569ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 7 High
foundin: None
title: BWidget 1.7: ComboBox: autocomplete problem w/upper case
cmimetype: text/plain
submitter: wedgef5
assignee: dev_null42a
closer: dev_null42a
closedate: 2006-02-08T16:49:15
comment:
  The autocomplete function in the BWidgets 1.7.0
  ComboBox has problems matching when the list has values
  that are all upper case.  By doing either a string
  tolower or string totitle on the list entries, the
  autocomplete works very well.


