# ticket

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

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

  This is from the latest CVS head of tcllib.


tkt_uuid: 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: 674333ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: smtpd
priority: 5 Medium
foundin: None
title: smtpd: Tcl requirement not specified
cmimetype: text/plain
submitter: dgp
assignee: patthoyts
closer: dgp
closedate: 2003-01-26T19:10:37
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: 478818ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: date/time/calendar module for tcllib
cmimetype: text/plain
submitter: schwarzkopf
assignee: schwarzkopf
comment:
  Although the clock command accomplishes alot of
  date/time functionality, there are still some
  functionality that can be added. This module should add
  those new functionalities.


tkt_uuid: 2915921fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
title: Add commands for extended punctuation (em-dash, en-dash)
cmimetype: text/plain
submitter: flatworm
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-07-06T18:49:44
comment:
  It would be convenient to have a set of markup commands which would produce special punctuation signs on output.
  Of most interest are "wide dashes", namely, em-dash and en-dash.
  Such commands could be named as [mdash] and [ndash] respectively, and produce:
  [mdash]: &mdash; in HTML and \(em in nroff;
  [ndash]: &ndash; in HTML and \(en in nroff.

  Ideally, it would be nice to have a generic framework for defining special markup commands which would generate assigned Unicode characters on output, but I think this can't play together with nroff as it's not yet really Unicode-aware (while it's being developed to finally become UTF-8 compliant).
  So the two commands I proposed above could facilitate creation of a bit more beautiful manpages while being portable.


tkt_uuid: 498104ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Invalid
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Add -textvariable to ProgressBar
cmimetype: text/plain
submitter: chris_nelson
assignee: hobbs
closer: hobbs
closedate: 2002-01-22T21:26:15
comment:
  We needed to include text above a progress bar (as there is a progress dialog) for "xx% complete", 
  etc.  This seemed a general enough need that we patched progressbar.tcl rather than write our 
  own wrapper.  Here's the patch.


tkt_uuid: 587533ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: tree
priority: 5 Medium
foundin: None
title: lappend error message misquoted.
cmimetype: text/plain
submitter: erempel
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-08-08T16:54:59
comment:
  In the ::struct::tree::_lappend routine, when the incorrect 
  number of arguments is supplied, the error message 
  states

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

  I think that what should be in this error message is

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


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

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

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

  Eric


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


tkt_uuid: 1599978fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: log
priority: 5 Medium
foundin: None
title: RFE: add emergency and alert levels to logger
cmimetype: text/plain
submitter: hemanglavana
assignee: mic42
closer: mic42
closedate: 2007-02-08T22:11:04
comment:
  Hi,

  The syslog protocol supports the following levels of severity (copied from http://tools.ietf.org/html/rfc3164#section-4.1.1):

  ---------------------
          Numerical         Severity
            Code

             0       Emergency: system is unusable
             1       Alert: action must be taken immediately
             2       Critical: critical conditions
             3       Error: error conditions
             4       Warning: warning conditions
             5       Notice: normal but significant condition
             6       Informational: informational messages
             7       Debug: debug-level messages

             Table 2. syslog Message Severities
  ---------------------

  The "emergency" and "alert" levels are currently missing from tcllib's logger package. These should be added to make it consistent with syslog protocol.


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: 1053086fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: bwidget
priority: 5 Medium
foundin: None
title: A new widget for scrolling many widgets with a ScrolledWidge
cmimetype: text/plain
submitter: petasis
assignee: damonc
comment:
  Hi all,

  I recently needed the functionality of scrolling two 
  canvas widgets simultaneously, both of them embedded 
  in a ScrolledWindow widget. Of course there are 
  hundrends of references for doinh it in c.l.t., but not 
  easy to use code. So I decided it to write a BWidget 
  widget for doing exactly this.

  The attched code is a first implementation of such a 
  widget. Of course name/options are open to 
  discussion :-)

  The idea behind the new widget is simple: when a 
  new "MultipleScrollableWidgets" widget is created, only a 
  frame widget (without a border) is created. Then the 
  user is expected to create all the widgets that will be 
  scrolled as children of this frame. Also the user *must* 
  pack/place/grid the children onto the frame, in any way 
  he wants (i.e. like notebook pages).

  Then, each child widget must be declared to the 
  MultipleScrollableWidgets widget with 
  method "addwidget". Only declared widgets will be 
  scrolled. Finally a ScrolledWindow can be created, 
  having the MultipleScrollableWidgets widget as 
  its "scrollable" widget.

  The current implementation has also an option (-scroll) 
  to addwidget, for specifying whether each added widget 
  will scroll in the x & y direction. I.e,  you can add two 
  canvases both of which will be scrolled in the x 
  direction, but only the second will be scrollable in the y 
  direction (i.e. because the first holds some header items 
  we want always visible...)

  Any ideas are welcomed. Of course, the final target 
  should be to add such a widget in BWidgets :-)


tkt_uuid: 1522881fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib
priority: 5 Medium
foundin: None
title: widget::panelframe add method generates an error
cmimetype: text/plain
submitter: apnadkarni
assignee: hobbs
closer: hobbs
closedate: 2006-08-02T21:30:33
comment:
  Fix: the line

  foreach {ipadx ipady} [_padval $opts(-pad)] { break }

  in widget::panelframe method add should be

  foreach {ipadx ipady} [$self _padval $opts(-pad)] { break }


tkt_uuid: 556077ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 3 Low
foundin: None
title: Tree::see should only scroll vertically
cmimetype: text/plain
submitter: jenglish
assignee: hobbs
closer: hobbs
closedate: 2002-10-14T19:42:08
comment:
  The Tree::see $n command scrolls both horizontally and
  vertically to bring the label for node $n in view. 
  However, if the label is too large to fit within the
  window, the horizontal scrolling obscures the tree
  controls (icons and checkboxes).

  The attached patch fixes this problem by removing the
  horizontal scroll entirely.


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

  The attached patch allows to return more meanighful message.


tkt_uuid: 3553350fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: htmlparse does't handle callback command containing "&"
cmimetype: text/plain
submitter: dvrsn
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2012-08-02T22:22:39
comment:
  If the callback command contains a "&" character, it is treated as part of the regular expression substitution string and ends up creating incorrect commands.   The same likely happens if the command contains \0 or similar sequences special to regsub.

  htmlparse should escape any special characters in the command before creating the substitution string.


tkt_uuid: 3422990fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tepam
priority: 5 Medium
foundin: None
title: Some tepam tests require Tk without constraints.
cmimetype: text/plain
submitter: stwo
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-11-09T05:46:09
comment:
  The test files adbox_widgets.test, adbox_all.test and proc_interactive.test explicitly require Tk without using any constraints.
  This causes errors in the test run when Tk is not present.


tkt_uuid: 3308051fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: struct :: list
priority: 5 Medium
foundin: None
title: struct::list equal is not commutative in special case
cmimetype: text/plain
assignee: andreas_kupries
closer: mic42
closedate: 2011-09-17T14:36:42
comment:
  tclsh Session:
  % struct::list equal [list [list a]] {{a}}
  0
  % struct::list equal {{a}} [list [list a]]
  1

  Looks like a bug to me;)

  Proposed patch attachted.


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: 480227ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: comm
priority: 5 Medium
foundin: None
title: comm.n manpage needs update
cmimetype: text/plain
submitter: jenglish
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-11-16T21:45:02
comment:
  (per request)

  comm.tcl was updated to use namespaces during
  integration into tcllib, but the documentation was not
  updated to reflect this.

  (Also: we should probably remove comm.n.html from the
  CVS repository, since it was generated from comm.n.)

  (Also also: shouldn't  there be a 'Documentation'
  Tracker category?)


tkt_uuid: 1597589fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: tklib :: diagrams
priority: 5 Medium
foundin: None
title: Various issues with the diagrams package
cmimetype: text/plain
submitter: arjenmarkus
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-04-18T20:33:50
comment:
  Yeeling reported on the Tclers' chat the following 
  issues:
  - No package provide yet
  - circle string radius - does not work
  - line [getpos ..] [getpos ..] - does not work
  - arrows built from two or more line segments would be 
    nice


tkt_uuid: 567982ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: dynhelp: balloon + variable
cmimetype: text/plain
submitter: decosterjos
assignee: hobbs
closer: hobbs
closedate: 2002-10-14T19:38:20
comment:
  Some time ago, someone asked on comp.lang.tcl if it was
  possible with BWidget dynhelp to have both balloon help
  and variable help at the same time. This patch makes
  this possible.

  Jos.


tkt_uuid: 1094294fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 7 High
foundin: None
title: Some format cmds mangle text w/ nroff formatter
cmimetype: text/plain
submitter: pointsman
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-01-18T16:51:58
comment:
  See this sample doctools markup (please note, that the
  first sentence used in the example is in fact out of
  the wild - the snitfaq.man of snit 0.97):

  [manpage_begin foo n 0.97]
  [description]

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

  [manpage_end]

  Processed with mpexpand, this nroff is generated:

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

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

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

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

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


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

  The following error message appears :

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

  This error is reported in background.

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

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

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

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

  namespace eval ctext {
      variable lastafterscript ""
  }

  One can store the after ID with :

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

  The Destroy method may contain :

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

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

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

  Regards,

  Michaël


tkt_uuid: 561416ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: smtp
priority: 5 Medium
foundin: None
title: can't handle list of mail servers
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-05-29T16:35:44
comment:
  problem
  -------
  the procedure smtp::sendmessage has the option
  '-servers' for a list of available mail servers.
  Unfortunately the variable state(readable) is not reset
  after a failed connection the other servers in the list
  will also fail.

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

     set state(readable) 0

  at the beginning of the loop

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

  best regards
  -- Beat Jucker


tkt_uuid: 3379585fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: comm
priority: 5 Medium
foundin: None
title: comm does not work in tclsh
cmimetype: text/plain
submitter: aboegge
assignee: andreas_kupries
closer: aboegge
closedate: 2011-07-27T09:12:02
comment:
  I tried to use ::comm as server in tclsh 8.5.9 and it does not work. sending a request works but i receive no answer. tclsh is not blocking.

  I used the following code to send a command using comm.

  package require comm
  ::comm::comm send 51439 set test 1


tkt_uuid: 1571751fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: Installer
priority: 5 Medium
foundin: None
title: [OSX] Install paths for tcllib 1.9
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
comment:
  The default install path for executables came up as "/System/Library/bin". 
  It should default to the /usr path. I will leave it up to you where in /usr it 
  should default to (/usr/local/bin ?).

  Submitted by: Robert Hicks <sigzero@gmail.com>


tkt_uuid: 505299ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget errors with multiple screens
cmimetype: text/plain
submitter: patthoyts
assignee: patthoyts
closer: patthoyts
closedate: 2002-01-28T22:06:45
comment:
  While trying the BWidget 1.3.1 demo on Windows 2000 
  with Tcl 8.3.3 (the ActiveState 8.3.3 release) I found 
  a problem with the ComboBox widget when run on the 
  second monitor of a multi-screen windows system.

  Running the demo app on screen 2, when I select the 
  ComboBox button to show the list, the list appears on 
  the primary monitor! Running the app on the primary 
  monitor is OK.

  A similar problem occurs with the dialog demos. The 
  color picker, font selector, progression, and password 
  dialogs all appear on the wrong monitor. The message 
  box appears on the _correct_ monitor but not the 
  template dialog.

  Finally the tree page doesn't work at all if run on 
  the secondary monitor although it's fine on the 
  primary monitor. The error stack is attached.

  So I assume this is a toplevel problem - and indeed 
  from wish doing 'toplevel .t' on the secondary screen 
  puts a toplevel widget on the primary screen. Placing 
  the widget on screen 1 'wm geometry .t' 
  gives '200x200+0+0' and top left of monitor 2 (which 
  is to the left of monitor 1) gives '200x200+-1024+0'


tkt_uuid: 1409219fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ntp
priority: 7 High
foundin: None
title: Bug in use of package ceptcl
cmimetype: text/plain
submitter: andreas_kupries
assignee: patthoyts
closer: patthoyts
closedate: 2006-04-20T10:20:06
comment:
  When package 'udp' is looked for in "ntp/time.tcl", the
  variable "options(-protocol)" is set to udp. For
  'ceptcl' however the variable "options(protocol)" is
  modified. Note the missing dash "-" before "protocol".
  I believe that that is wrong and should be
  "options(-protocol)" as well, i.e. with a dash.


tkt_uuid: 1371186fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib
priority: 5 Medium
foundin: None
title: "make check" fails for tklib
cmimetype: text/plain
submitter: wart
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-12-02T20:57:55
comment:
  A bug in sak.tcl is causing "make check" to fail with
  an error:

  3: Consistency of package versions ...
  ------------------------------------------------------
    Indexed, no provider:           widget::all
  can't read "::pf(ctext_tcl)": no such element in array
      while executing
  "format "%-*s | %s" $maxl $p $::pf($p)"
      (procedure "validate_versions_cmp" line 14)
      invoked from within
  "validate_versions_cmp ip pp"
  ...

  Looks like a typo where '::pf' should be 'pp'

  Attached is a patch to fix this problem.


tkt_uuid: 2840147fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: tar
priority: 5 Medium
foundin: None
title: Add prefix to name of file added to tarball
cmimetype: text/plain
submitter: lars_h
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-12-03T20:06:47
comment:
  The git-archive utility has an option --prefix described as:

    --prefix=<prefix>/
        Prepend <prefix>/ to each filename in the archive.

  I found this useful in the case that the the parent directory of what I'm wrapping up as a tarball isn't named the way I'd like root directory within the tarball to be named. However, I also needed to add a few files to the tarball, and my command-line tar didn't have a corresponding option. Therefore I turned to adding a -prefix option to the tcllib [tar::add] command.

  The main change needed to implement this was to split [tar::createHeader] into two commands [tar::statFile] and [tar::formatHeader], as [tar::createHeader] hardwired the in-archive name of a file to be the same as the name in the normal file system. I think this is a good change, as it also opens up for adding items to a tarball that don't first have to exist within the normal filesystem (a kind of [tar::put], if you will).

  Another change required was that [tar::writefile] takes another argument: the name to use in the archive. [tar::add] and [tar::create] have been modified accordingly.

  While testing this, I also discovered a bug in the current [tar::add]: one cannot in general assume that the end of an archive occurs 1024 bytes before the end of the file. The catch is that tarballs are written with a specific "blocksize" (often 20 records, i.e., 10Kb), and are supposed to consist of an integral number of complete blocks. Therefore there may be extra padding after the 1024 end-of-archive nulls, and it is then impossible to tell if an all-null record at the end of a tarball is nulls at the end of a file, end-of-archive nulls, or padding until the end of a block. The only safe way to find the end is to read the tarball from the beginning.

  I added a third option -quick to [tar::add] which selects the old seek-from-end method of finding where to put the header for the first new file, but made the default be to read the tarball from start.

  Being a tcllib developer, I can probably check this into CVS myself, but I think you should have a chance to look at it first.


tkt_uuid: 1727793fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : request for new app
priority: 5 Medium
foundin: None
title: ijbridge: Add nick address to jabber WHOIS return
cmimetype: text/plain
submitter: mpc_janssen
assignee: nobody
closer: patthoyts
closedate: 2008-01-27T00:18:47
comment:
  Currently it is not possible from jabber to determine the host from which an IRC user is logged in (the host field is usually empty) This makes it impossible to check if an IRC user might be a well known troll.

  However the response 311 on the WHOIS request does contain the required info. Therefore I request an additional line Address: is added to the return.

  The following changes should be enough to add this:

  In proc client::registerhandlers

  # change the 311 registerevent to (I was unable to test if [additional] is what's needed:
  $cn registerevent 311 {
  set ::client::whois(realname) [msg]
  set ::client::whois(address) [additional]
  }

  # and in the 318 registerevent add:
  append info "Address: $whois(address)"


tkt_uuid: 1408807fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: asn
priority: 5 Medium
foundin: None
title: Unversioned dependency on package log
cmimetype: text/plain
submitter: vbwagner
assignee: mic42
closer: mic42
closedate: 2006-03-22T18:57:22
comment:
  asn package depends on package log from tcllib.
  Current version of package doesn't work with log 1.0.2
  (as distributed with tcllib 1.4). 

  This can cause problem when I use last version of asn
  package from CVS, and rely on log package from system
  provided tcllib.

  I think that usage of log package can be removed from
  asn altogether, since it is not essential for operation
  of th e package, and needed only for debugging purpose
  (which is now covered by test suite), but at least
  particular working version should be required. 

  1.2 (from tcllib 1.7) would definitely do, and may be
  even 1.1, but I don't have machine with 1.1 handy


tkt_uuid: 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: 1513342fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: app: tclunits
priority: 5 Medium
foundin: None
title: tclapps - tclunit counts failures twice
cmimetype: text/plain
submitter: mpc_janssen
assignee: techentin
closer: techentin
closedate: 2006-11-27T01:53:16
comment:
  When using tclunit 0.1, failures in testcases are 
  counted twice. 

  This can be demonstrated by the following test file:

  ----

  package require tcltest

  tcltest::test double {Failures count double} {puts a} b

  ----

  When this is run with the current version (0.1), the 
  failure count is reported as 2 (incorrect) after 
  applying the patch below, the failure count is 1.

  --- patch ---

  C:\Tcl\bin>diff -u tclunit.old.tcl tclunit.new.tcl
  --- tclunit.old.tcl     Tue Jun 27 14:47:02 2006
  +++ tclunit.new.tcl     Tue Jun 27 14:47:53 2006
  @@ -217,6 +217,7 @@
       #  If we're saving up test results...
       if { $::cto(capturing) } {
          test_failed_continue $line
  +  return
       }

       #  Check for start, pass and fail lines


tkt_uuid: 1161942fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: exif
priority: 5 Medium
foundin: None
title: Adds most EXIF-2.2 tags to exif.tcl
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
comment:
  Add most EXIF-2.2 tags to exif.tcl
  This patch adds most of the EXIF-2.2 tags and some
  Olympus makernotes to exif.tcl. If an unknown tag is
  found, the script will report this tag as unknown tag
  instead of crashing.
  I checked the script with lots of personal photos as
  well as some sample images found on www.exif.org.

  - Matthias

  mlange_lists(at)yahoo.de

  --> This is a repost because I missed the checkbox for
  the file upload ...


tkt_uuid: 3036841fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: docstrip
priority: 5 Medium
foundin: None
title: Bad links
cmimetype: text/plain
submitter: dgatwood
assignee: lars_h
closer: lars_h
closedate: 2010-08-11T21:28:27
comment:
  There are three bad links to tug.org in the man page.  Not sure where these are currently located since I don't know what was there before.  The links are listed below:


    [1]    The tclldoc package and class, http://tug.org/tex-archive/macros/latex/contrib/tclldoc/.

         [2]    The DocStrip utility, http://tug.org/tex-archive/macros/latex/base/docstrip.dtx.

         [3]    The doc and shortvrb Packages, http://tug.org/tex-archive/macros/latex/base/doc.dtx.


tkt_uuid: 224477ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: pop3
priority: 5 Medium
title: pop3::list and pop3::top can hang
cmimetype: text/plain
submitter: jenglish
assignee: redman
closer: redman
closedate: 2001-05-02T15:06:33
comment:
  Depending on the POP3 server, [pop3::list] and [pop3::top] can hang
  forever.  I've tracked this down to the termination condition in the while loop
  (duplicated in both routines):

          while {1} {
              set line [gets $chan]
              # End of the message is a line with just "."
              if {$line == "."} {;# <== here's the problem
                  break
              } elseif { ... }

  When the POP3 server uses CR+LF as the line terminator (which IIRC
  is what it's supposed to do) and $chan uses -translation binary (which
  pop3::open sets), then '$line' ends up containing ".\r", not ".".

  Suggested fix:

  replace 
  if {$line == "."} { ... }
  with
  if {[string equal [string trimright $line] "."]}  { ... }

  This seems to fix the problem for me.


tkt_uuid: 466228ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: tkchat, Cut, copy, paste should work
cmimetype: text/plain
submitter: andreas_kupries
assignee: nobody
closer: andreas_kupries
closedate: 2001-10-26T15:43:40
comment:
  The chat currently has no cut/copy/paste 
  functionality. It should be added (especially for 
  pasting urls inot a message).


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: 527114ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: Import pop3 demon in Pool
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-03-19T22:57:27
comment:
  Import the pop3 demon in package
  Pool_Net into tcllib, possibly
  modified. This will make testing
  the pop3 client possible. And it
  completes the pop3 implementation.


tkt_uuid: 2686560fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: crc
priority: 8
foundin: None
title: memleak in crc::cksum
cmimetype: text/plain
submitter: pedietz
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-04-21T20:08:25
comment:
  calling crc::cksum over and over causes a huge memleak.

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

  doing the same with crc::crc32 doesnt.


tkt_uuid: 456883ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Cannot dnd into empty ListBox
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2002-01-16T02:04:41
comment:
  This seems to be an old problem. I found traces in
  a google search but the patch mentioned was nowhere 
  to be found :(.

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


tkt_uuid: 1312869fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Duplicate
subsystem: mime
priority: 5 Medium
foundin: None
title: Fix locale problems (Bugs #911580 and #1276561)
cmimetype: text/plain
submitter: cc_benny
assignee: mrose
closer: andreas_kupries
closedate: 2005-10-04T18:15:50
comment:
  This patch fixes mime::parsedatetime such that 
  it doesn't rely on the user locale. 
   
  mime::parsedatetime is used for protocol 
  elements in SMTP and MIME.  These 
  should always be locale independent i.e. in 
  English. 
   


tkt_uuid: 509776ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: Accepted
subsystem: None
priority: 6
foundin: None
title: Locale dependant test failures
cmimetype: text/plain
submitter: kot
assignee: patthoyts
comment:
  Several test scripts asume ::argv0 to always be there,
  which is not the case for a slave interpreter. The
  tests run fine by themselves but fail from under the
  all.tcl harness... This one-line patch addresses the
  problem.

  -mi

  P.S. Some other tests (mime decode/encode) fail because
  they assume the C/iso-8859-1 locale. To pass they must
  run with LANG=C set...


tkt_uuid: 1049503fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: Error messages go missing on Windows
cmimetype: text/plain
submitter: dkf
assignee: patthoyts
closer: patthoyts
closedate: 2004-10-19T11:14:34
comment:
  On Windows, you normally don't have a working proper
  console so any messages sent to stdout or stderr get
  lost.  These should either get logged (most cases) or
  popped up in dialog boxes (occasionally appropriate). 
  Offending lines (in tkchat.tcl v1.191)

  74: puts stderr $::errorInfo
  433: puts "ERROR: $new"
  445: puts "ERROR: $new"
  1734: puts [string map [list "\"" ""] $message]
  6081: puts "OPENSTREAM"


tkt_uuid: 1416803fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: list
priority: 5 Medium
foundin: None
title: list: test suite bugs
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-29T00:11:04
comment:
  with -debug 1:

  * struct::list 1.5
  test name 'list-lcs-2.13' re-used; prior use in
  /local/src/tcllib/modules/struct/list.test
  test name 'list-lcs2-2.13' re-used; prior use in
  /local/src/tcllib/modules/struct/list.test


tkt_uuid: 2538424fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: base64
priority: 5 Medium
foundin: None
title: unset in namespace has global side effects
cmimetype: text/plain
submitter: mtsmith
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-01-29T04:31:10
comment:
  revision 1.29 of base64.tcl (latest revision) has an unset in the namespace eval base64 call when Trf isn't present. The specific line is:

  199: unset base64_tmp i char len val

  It also uses base64_tmp, i, char, len, and val earlier within the namespace eval. Since they're never declared with a "variable" call, they're resolved to global namespace. So the following example results in unappreciated behavior:

  set i 0
  package require base64
  puts $i

  The variable i is unset by base64. This should really be fixed by removing the "unset" call in namespace eval, and instead declaring these temporary variables in namespace scope with calls to variable.


  Fix:
  add after line 161: variable base64_tmp; variable i; variable char; variable len; variable val
  remove line 199: unset base64_tmp i char len val


tkt_uuid: 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: 1688650fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: grammar_peg
priority: 5 Medium
foundin: None
title: latest docs not installing
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-03-26T18:45:45
comment:
  when I attempt to install the latest tcllib docs, I get:
  Generating /projects/sprs_lwv/tcl85/man/mann/peg.n
  Doctools Error in macro at line 728, column 0:
  [section {BUGS, IDEAS, FEEDBACK...]
  --> (FmtError) Manpage error (nolistcmd), "section BUGS, IDEAS, FEEDBACK" : Comm
  and not allowed inside of a list.
      while executing
  "::doctools::_format dt \[comment\ \{-*-\ tcl\ -*-\ doctools\ manpage\}\]\n\[man
  page_begin\ grammar::peg\ n\ 0.1\]\n\[copyright\ \{2005\ Andreas\ Kupri..."
      ("eval" body line 1)
      invoked from within
  "eval [list ::doctools::_$cmd $name] $args"
      (procedure "::doctools::DoctoolsProc" line 15)
      invoked from within
  "dt format [get_input $f]"
      (procedure "_man" line 26)
      invoked from within
  "_man grammar_peg nroff n /projects/sprs_lwv/tcl85/man/mann"
      ("eval" body line 1)
      invoked from within
  "eval $guide($m,$type) $m $args"
      (procedure "xinstall" line 4)
      invoked from within
  "xinstall doc nroff n    $config(doc,nroff,path)"
      (procedure "doinstall" line 19)
      invoked from within
  "doinstall"
      (procedure "main" line 11)
      invoked from within
  "main"
      (file "../installer.tcl" line 594)
  gmake: *** [install] Error 1


tkt_uuid: 1035281fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
title: Plotchart::determineScale return wrong values
cmimetype: text/plain
submitter: bwallner
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2004-11-08T10:53:59
comment:
  In this case Plotchart::determineScale returns wrong
  values:

  puts "-1.7 26.8: [determineScale -1.7 26.8]"

  >> -1.7 26.8: -1.0 21.0 10.0 <<

  Version Plotchart 0.9


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

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


tkt_uuid: 484850ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
title: Add "log-gamma" proc to math module
cmimetype: text/plain
submitter: lvirden
assignee: kennykb
closer: kennykb
closedate: 2002-01-12T00:57:45
comment:
  The tcler's wiki has several procs implementing 
  factorial code.  It would be useful, once one decided 
  which of the implementations matched the current math 
  module style, to add one to the math modu


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: 1537469fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: Installation
priority: 5 Medium
foundin: None
title: "make install" fails on cygwin
cmimetype: text/plain
submitter: carolusmagnus
assignee: nobody
comment:
  tcllib installation fails on cygwin using ./configure;
  make install.  No error messages noted during
  installation, but afterward
   
  "package require fileutil" 
  returns "cant't find package fileutil"

  Nevertheless, installation succeeds by the alternate
  installation method, simply calling installer.tcl

  Windows XP Home Edition v. 5.1 Build 2600 Service Pack 2
  cygwin DLL version 1.5.19
  ash 20040127-3
  bash 3.0-14
  tcltk 20030901-1


tkt_uuid: 3141568fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: find errors out on broken directory soft links
cmimetype: text/plain
submitter: guardus
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2013-01-09T00:18:40
comment:
  fileutil::find errors out on broken directory soft links.  I am running ActiveTcl 8.5.9.1 on
  Windows XP and fileutil 1.14.4 from the Activestate Teapot.

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

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

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

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


tkt_uuid: 593254ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ncgi
priority: 5 Medium
foundin: None
title: setValue doesn't work right w/ multipart
cmimetype: text/plain
submitter: davidw
assignee: davidw
closer: davidw
closedate: 2002-08-15T18:29:12
comment:
  ncgi::setValue doesn't work right with multipart forms,
  if you pass it a string with spaces in it, because of
  the way it gets treated by ncgi::value.  See new test case.


tkt_uuid: 1464923fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: dependecy on mkinstalldirs not defined
cmimetype: text/plain
submitter: lvirden
assignee: damonc
closer: dev_null42a
closedate: 2006-11-10T21:58:56
comment:
  When bwidget comes from the CVS, an autoconf needs to
  occur to get a working configure. During that process,
  if the developer has only extracted the files for
  bwidget, the autoconf discovers that the config/tcl.m4
  fileis missing.  However, it doesn't check for the
  config/mkinstalldirs command, and configure doesn't
  check for it either. So the developer doesn't discover,
  until installation time, that bwidget has a dependency
  on it.

   


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

  Best regards to all,
  Michal.


tkt_uuid: 1733098fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: tklib: khim
priority: 5 Medium
foundin: None
title: Misc fixes + RU, PL and UK msg catalogs
cmimetype: text/plain
submitter: flatworm
assignee: kennykb
closer: kennykb
closedate: 2007-06-08T19:25:33
comment:
  Short summary of changes:

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

  2. Colors of character picker made more consistent.

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

  4. Added Russian, Polish and Ukrainian message catalogs.

  Note: unified diff is UTF-8.


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

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

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


tkt_uuid: 1416762fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: calculus
priority: 5 Medium
foundin: None
title: calculus: test suite bug
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-29T08:54:33
comment:
  with -debug 1:

  * math::calculus 0.6.1
  test name 'NewtonRaphson-2.1' re-used; prior use in
  /local/src/tcllib/modules/math/calculus.test


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: 1099162fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: autoproxy::init fails
cmimetype: text/plain
submitter: jgodfrey
assignee: patthoyts
closer: patthoyts
closedate: 2005-02-17T15:16:42
comment:
  autoproxy::init (version 1.2.0) fails under WinXP Pro 
  when the following line of code:

  registry get $winregkey "ProxyServer"

  returns a value like:

  ftp=quantex:8080;gopher=quantex:8080;http=quantex:8
  080;https=quantex:8080

  instead of a value like:

  quantex:8080

  This happens whenever "Control Panel | Internet 
  Options | Connections | LAN
  Settings | Advanced" | "Use the same proxy server for all
  protocols" *is not* checked, and instead, each protocol 
  is defined independently.

  The attached autoproxy.tcl has been patched to fix the 
  problem for my case, though I don't know enough about 
  this domain to be confident that the patch is generally 
  safe.  Specifically...

  1. Is it safe to parse this key (in the general case) using 
  [split]?
  2. Is the key always semi-colon separated?
  3. Am I always after the "http" portion of the key?

  Jeff


tkt_uuid: 1105778fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ProgressDlg -stop button bug
cmimetype: text/plain
submitter: olaborda
assignee: damonc
closer: dev_null42a
closedate: 2006-02-10T23:23:39
comment:
  In V1.7.0, using ProgressDlg with -stop option, the
  click events for the button are not processed.

  This worked fine in V.1.4.1 and can be solved replacing
  the "update idletasks" into "update" at line 181, file
  progressbar.tcl, like was in V1.4.1.

  Example Tcl code:
  --------------
  package require -exact BWidget 1.7.0


  proc cbLdCancel {} {
    puts "Click"
  }

  set Progress 0
  set Action "Loading files..."

  ProgressDlg .loading -parent . -title "Loading" -type
  normal \
    -textvariable Action -variable Progress -maximum
  20000 -stop "Cancel" \
    -command cbLdCancel

  for {set x 0} {$x<20000} {incr x} {
    incr Progress
  }
  --------------


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

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

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

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


tkt_uuid: 1472763fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget ComboBox bug: Parent namespace does not exist
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: dev_null42a
closedate: 2006-09-27T00:47:26
comment:
  I am using Tcl 8.4.12.0 in a quite large application. 
  In the application, BWidgets, among other packages is 
  used. I use the BWidgets ComboBox in several places of 
  the GUI, but encounters problems with one of them. The 
  ActiveState Support crew recommended me to sent the 
  report here after unsuccesfully trying to solve the 
  problem.

  A script combofail.tcl is attached to this failure 
  report.

  Best regards,
  Anders Nyman


tkt_uuid: 1316040fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: grammar_fa
priority: 4
foundin: None
title: grammar_fa/*.test prints extra info
cmimetype: text/plain
submitter: techentin
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-10T23:06:20
comment:
  dacceptor.test, dexec.test, fa.test, and faop.test
  include gratuitous puts commands, cluttering the log.


tkt_uuid: 1443461fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ListBox delete doesn't cleanup in help.
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: dev_null42a
closedate: 2006-03-23T23:36:23
comment:
  ListBox items can have a helptext argument. In
  _set_help namespace variable "help" gets filled. In
  delete the content of array help is however not updated.
  If you add "Widget::getVariable $path help" after
  "upvar 0 $path data" and
  "array unset help $item" after " data(items) [lreplace
  $data(items) $idx $idx]" then this bug is fixed.

  m.d.nauta@hetnet.nl


tkt_uuid: 520940ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : request for new app
priority: 5 Medium
foundin: None
title: New application bundle - tcldevapps
cmimetype: text/plain
submitter: lvirden
assignee: nobody
closer: hobbs
closedate: 2004-09-14T20:08:49
comment:
  I'd like to suggest a new bundle created in tcllib -
  this might be called tcldevapps.  The idea would be
  development tools for the Tcl programmer.

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


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

  I hope you can include it into the tree.

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


tkt_uuid: 3094654fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: http :: autoproxy
priority: 3 Low
foundin: None
title: Autoproxy man page - before options
cmimetype: text/plain
submitter: oehhar
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-10-26T17:31:57
comment:
  On the man page, section "Options": some options have a "-" as first character, some dont.
  IMHO they all should have one (or none, as the - is given in the configure method description)


tkt_uuid: 1177108fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: graph.tcl uses global variable
cmimetype: text/plain
submitter: blacksqr
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-04-08T05:18:58
comment:
  When graph.tcl is sourced as the struct package is
  loaded, the following expression is evaluated near the
  beginning:

  if {
      ![catch {package require cgraph} version] &&
      [package vcompare $version 0.6] > 0
  }

  in this instance $version is created as a global
  variable, which has the potential to clash with with
  values defined in the program loading the package.

  Since tcllib packages are supposed to make rigorous use
  of namespaces, the above expression would be better if
  it read:

  if {
      ![catch {package require cgraph}
  ::struct::graph::version] &&
      [package vcompare $::struct::graph::version 0.6] > 0
  }


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

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


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

  Thanks,

  -Matt


tkt_uuid: 1414589fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: snit
priority: 7 High
foundin: None
title: [package require snit] stomps on $::dir
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-31T04:49:24
comment:
  % set dir "Important Data"
  Important Data
  % package require snit     
  1.1
  % set dir
  /local/src/tcllib/modules/snit


  Stay in your own namespace, snit!


  :)


tkt_uuid: 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: 1627868fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: term
priority: 5 Medium
foundin: None
title: RFE term::vt100 control sequences
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
comment:
  Hi,

  Terminal control: could you add term::vt100 control sequences.

  see http://local.wasp.uwa.edu.au/~pbourke/dataformats/vt100/


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: 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: 485717ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: csv
priority: 5 Medium
foundin: None
title: add csvdiff to examples directory
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-01-17T17:08:03
comment:
  during the development of the csv module, the author,
  andreas kupries, wrote a csvdiff application that
  demonstrates yet again the usefulness of the
  application.


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

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


tkt_uuid: 472259ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: cmdline
priority: 5 Medium
foundin: None
title: getoptions -- help or error?
cmimetype: text/plain
submitter: glennjnn
assignee: andreas_kupries
comment:
  In the ::cmdline::getoptions procedure, there is no
  way to differentiate between a user who wants help
  and passes a -? or -help option, and a user who has
  entered an unknown option.  In both cases, the
  getoptions proc calls
      error [cmdline::usage $optlist $usage]

  I would suggest the attached patch which:
  1. changes [error] to [return -code -1] if the user
     wants help, to differentiate from a real error
  2. changes the error string if a real error
     occurred.


tkt_uuid: 1641071fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: tklib :: tooltip
priority: 5 Medium
foundin: None
title: Add alpha fading to tooltips
cmimetype: text/plain
submitter: tallniel
assignee: hobbs
closer: hobbs
closedate: 2007-10-31T18:47:38
comment:
  This patch adds simple alpha-transparency fading to the tooltip package on platforms that support [wm attributes -alpha]. I find this adds a little bit of extra polish. Possibly might want an option to disable this behaviour.

  PS - the tracker is missing a category for the tooltip package.

  PPS - I find most changing the label to -bd 0 in tooltip::show looks "better" on Mac OS X/Aqua (i.e., looks more like the tooltips in native/Cocoa apps).


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: 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: 3536133fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: Build System & Testing
priority: 5 Medium
foundin: None
title: Installation fails...
cmimetype: text/plain
submitter: petasis
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2012-06-21T18:16:28
comment:
  Installing tklib in a cross-compilation environment fails. The problem is in Makefile.in, where the option -app-path is not used.

  The following:
  install:
  $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/installer.tcl` \
  -no-examples -no-html \
  -pkg-path   $(DESTDIR)$(pkglibdir) \
  -nroff-path $(DESTDIR)$(mandir)/mann \
  -no-wait -no-gui

  Must be changed to:

  install:
  $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/installer.tcl` \
  -no-examples -no-html \
  -pkg-path   $(DESTDIR)$(pkglibdir) \
  -app-path   $(DESTDIR)$(bindir) \
  -nroff-path $(DESTDIR)$(mandir)/mann \
  -no-wait -no-gui


tkt_uuid: 476804ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: ftp
priority: 3 Low
foundin: None
title: geturl handlers in protocol packages
cmimetype: text/plain
submitter: patthoyts
assignee: andreas_kupries
closer: patthoyts
closedate: 2002-01-26T22:15:28
comment:
  The uri module implements a general geturl method which
  delegates to the scheme handler. Thus uri::geturl
  file:// is handled by the uri packaage, uri::geturl
  http:// is passed off to http::geturl.

  We should implement a geturl procedure in the ftp
  package and in any other package implementing such
  internet protocols (gopher, news?)


tkt_uuid: 1492527fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Rejected
subsystem: bwidget
priority: 5 Medium
foundin: None
title: bwidget - Dialog uses tk_messageBox: frozen gui.
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: oehhar
closedate: 2009-06-29T14:15:34
comment:
  Executing the attached code on wish from ActiveState 8.
  4.[11,13] results
  on an unresponsive gui when the user does something of 
  this:

  * click the Dialog's button labeled as "click me!". 
  Then click the ok
    button on the messagebox. [Win2KSP4, ActiveState Tcl/
  Tk 8.4.11].

  * click the dialog's button labeled as "click me!", 
  then click the
    Dialog's title bar, the click the Ok button on the
    messagebox. [WinXPSP2, ActiveState Tcl/Tk 8.4.13].

  * click the dialog's button labeled as "click me!", the 
  click the Ok
    button on the messagebox, click again the "click me!" 
  button, click
    again the messagebox Ok button [WinXPSP2, ActiveState 
  Tcl/Tk 8.4.13].

  The OS/Tcl version combination is just the setup 
  available to
  me. Nothing beyond that was tested.


tkt_uuid: 1009003fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: "graph arcs -in, -out" broken?
cmimetype: text/plain
submitter: bhushit
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-08-16T04:28:32
comment:
  I can't thank you enough for support. ::struct::graph 
  can save my project. 

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

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

  Thanks in advance,
  -Bhushit

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

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

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

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

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

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

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

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

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


tkt_uuid: 3470437fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: tklib :: ico
priority: 5 Medium
foundin: None
title: Padding on and mask rasters incorrect.
cmimetype: text/plain
submitter: rkroll
assignee: afaupell
comment:
  in proc ::ico::getAndMaskFromColors {colors}

  Padding calculation might look better like this:

    append l [string repeat 0 [expr {(32 - ([string length $l] % 32))%32}]]


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: 1329642fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: logger
priority: 5 Medium
foundin: None
title: logger::disable/enable/setlevel ignored
cmimetype: text/plain
submitter: andreas_kupries
assignee: mic42
closer: mic42
closedate: 2005-12-02T22:14:45
comment:
  The global commands for setting a loglevel are ignored
  by global loggers created after their execution. This
  is surprising and will IMHO trip many application
  authors, as tehy will likely set the log level for
  their application before loggers in packaged are created.


tkt_uuid: 551133ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: csv
priority: 5 Medium
foundin: None
title: csvdiff duplicate key bug
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-05-10T05:52:19
comment:
  csvdiff expects that there are no 'keys' within either
  the first or second input files.  This results in
  erroneous differences reported currently.

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

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


tkt_uuid: 1263071fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: snit
priority: 5 Medium
foundin: None
title: -configuremethod
cmimetype: text/plain
submitter: matben
assignee: duquette
comment:
  Things like:

      option -text      -configuremethod [list SetText 1]
      method SetText {num option value} {
  $win.lbl$num configure -text $value
  set options($option) $value
      }

  wont work. Perhaps the callback should be concatenated 
  (uplevel) when executed.

  snit 1.0


tkt_uuid: 1398330fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: tklib: ico
priority: 5 Medium
foundin: None
title: memchan-based vfs compatibility patch
cmimetype: text/plain
submitter: a_kovalenko
assignee: afaupell
closer: afaupell
closedate: 2006-07-15T02:26:13
comment:
  The issue was discovered when I was trying to generate
  an icon dynamically and place it into in-memory vfs.
  writeIconICO does a wrong thing when [file size] is not
  updated immediately as the file is written. 

  Many VFSs implemented at the script level update file
  metadata only on [close], when the appropriate callback
  is called. Before closing the file, we may write 6
  bytes in it and still get [file size]==0.

  The patch presented here prevents writeIconICO from
  relying on [file size] of the newly-created file. As
  long as the ICO format is the only one that may be
  created from scratch, no issues with other formats are
  expected.


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

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

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

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

  Eric


tkt_uuid: 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: 557520ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: smtp
priority: 5 Medium
foundin: None
title: smtp::sendmessage -maxsecs
cmimetype: text/plain
submitter: tcoram
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-08-15T16:37:35
comment:
  A patch to workaround bug #557040. Rather than automatically
  calculate a timeout for SMTP acknowledging acceptance of
  message body (DATA), allow the user to specify a 
  timeout (default 120 seconds).


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: 1403369fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: ldap
priority: 5 Medium
foundin: None
title: Fix non-standard usage of TLS
cmimetype: text/plain
submitter: andreas_kupries
assignee: patthoyts
closer: sf-robot
closedate: 2006-09-28T02:20:09
comment:
  Well, I am not sure if we have a standard, actually. I
  know that SMTP can use TLS, with graceful fallback if
  TLS is not available.

  The ldap package also has code using TLS, but it was
  done differently and there is no graceful fallback.

  Please have a look at ldap and see if it can be
  (re)done similarly to SMTP.


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

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

  "Set always returns the contents..."

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

  and:

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

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

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


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

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

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


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

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

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


tkt_uuid: 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: 3539249fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: aes
priority: 5 Medium
severity: Minor
foundin: None
title: Error in encrypting.
cmimetype: text/plain
submitter: classicalguss
assignee: aku
closer: aku
closedate: 2456450.25345105
comment:
  Hello I am using the following tcl code 

  -[base64_encode [aes::aes -dir encrypt -key $key $email]]. 

  I generate a random key, when I want to decrypt the value using this code 

  -set decrypted_email [aes::aes -dir decrypt -key $key [base64_decode $email]] 

  I sometimes get this error:-

  can't use empty string as operand of "&"
      while executing
  "expr {($v << 2) | (($w & 0x30) >> 4)}"


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

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

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

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



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


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


tkt_uuid: 410797ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 4
foundin: None
title: missing config module
cmimetype: text/plain
submitter: davidw
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-12-05T20:25:40
comment:
  I checked tcllib out of CVS, and the installation is a
  bit foobared. It wants a /config directory with
  install-sh and mkinstalldir.  The Makefile.in file
  seems to have some troubles as well...  For instance,
  there is no INSTALL_DATA, amongst other things


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: 1011102fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: counter
priority: 9 Immediate
severity: Minor
foundin: None
title: counter - dependent on ncgi & html, not in code, nor docs
cmimetype: text/plain
submitter: mic42
assignee: andreas_kupries
closer: aku
closedate: 2456449.5061805
comment:
  The HTML generation facilities of the counter package
  depend on the html and ncgi packages, but do not
  require them or check if they are present.

  Either the html generation code should be moved out of
  the counter package or be protected with appropriate
  checks/lazy pkg requires if html generation is used.


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


tkt_uuid: 2820851fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: fix dynamichelp issues
cmimetype: text/plain
submitter: danckaert
assignee: nobody
closer: oehhar
closedate: 2009-07-14T09:23:14
comment:
  This patch fixes some issues with dynamic help. One of the issues is that help for a menu sometimes stays visible when the menu is unmapped (on Unix). This is an example script:

  pack [frame .f -width 200 -height 200]
  pack [label .l -textvariable statusvar]
  . configure -menu [menu .m -tearoff 0]
  .m add cascade -label "File" -menu [menu .m.f -tearoff 0]
  .m.f add command -label "New"
  DynamicHelp::add .m.f -type menu -variable statusvar
  DynamicHelp::add .m.f -type menu -index 0 -text "help for New"

  Now click on "File", and then move the mouse cursor upwards (out of the window), and click again. The menu is unmapped, but on Unix, the help stays visible. The patch should fix this.

  Other issues addressed in this patch are:
  - Make "-helpcmd" available also when dynamichelp is included in another widget.
  - Make sure that -helpcmd is always called at global scope (with uplevel #0).
  - Sometimes a <Leave> event may be called twice. Protect against this.
  - When _unset_help is called, the _top widget should only be destroyed when it is a balloon.


tkt_uuid: 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: 1008619fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: htmlparse::2tree gets the HTML Doc structure wrong
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
comment:
  The following shows how to repeat the bug.

  $ cat wrong.tcl
   package require htmlparse
   set indent 0
   set t [struct::tree]
   set html
  {<html><head></head><body><h1>heading</h1><p>ayaken!</p></body></html>}
   proc painter {tree act node} {
          global indent
          if {$act == "enter"} then {
                  incr indent
                  puts ">[string repeat - [expr
  {$indent-1}]][$tree get $node type]"
          } else {
                  puts "<[string repeat - [expr
  {$indent-1}]][$tree get $node type]"
                  incr indent -1
          }
   }

   htmlparse::2tree $html $t
   $t walk root -order both -type dfs {act node} {painter
  $t $act $node}

   $ tclsh wrong.tcl
   >root
   >-hmstart
   >--html
   >---head
   <---head
   >---body
   >----h1
   >-----PCDATA
   <-----PCDATA
   >-----p
   >------PCDATA
   <------PCDATA
   <-----p
   <----h1
   <---body
   <--html
   <-hmstart
   <root

  You can see the p element is wrong in the hierarchy, it
  got sorted as a child of the h1 element, not, as it
  should be, as its sibling.

  I assume it's htmlparse innards which get it wrong, not
  2tree only, just a guess though.


  If there's need to contact me, I'm reachable at
  Ephaeton (at) gmx (dot) net.


tkt_uuid: 3122382fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: tklib :: tablelist
priority: 5 Medium
foundin: None
title: findTabs returns 0 and callers fail
cmimetype: text/plain
submitter: tombert
assignee: nemethi
closer: tombert
closedate: 2010-12-02T12:59:14
comment:
  The first loop from tablelist::findTabs is able to return 0 without providing data to idx1Name and idx2Name ... thus commands like tablelist::addActiveTag will crash with error "can't read tabIdx1: no such variable"

  seen in version tklib0.5

  thx


tkt_uuid: 1349154fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: irc
priority: 5 Medium
foundin: None
title: Patch to return channel from connection
cmimetype: text/plain
submitter: setok
assignee: davidw
closer: patthoyts
closedate: 2006-04-23T22:43:39
comment:
  Just a small and trivial little patch which will return the channel 
  used for a particular connection. Useful at least for setting stuff 
  like -encoding, although that should probably be handled by a 
  separate command.

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


tkt_uuid: 1187190fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: app: tkchat
priority: 5 Medium
foundin: None
title: Update status icon when window regains focus
cmimetype: text/plain
submitter: wildcard_25
assignee: patthoyts
closer: patthoyts
closedate: 2005-04-24T23:26:57
comment:
  Currently the status icon is only update when 
  restoring from the system tray.
  If the chat window doesn't have focus the number of 
  new messages is updated on both the window title and 
  the status icon, when regaining focus only the window 
  title is updated. This patch updates the status icon 
  as well.

  tkchatStatus1 is a minimal change to enable this.
  tkchatStatus2 is the way I think it should be done :)


tkt_uuid: 473656ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: pop3
priority: 5 Medium
foundin: None
title: pop3::retrieve blocking forever
cmimetype: text/plain
submitter: edesio
assignee: nobody
closer: andreas_kupries
closedate: 2001-11-01T16:50:38
comment:
  Hi folks!

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

  set msgBuffer [read $chan $size]

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

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

  The patch below (seems to) fix both problems.

  I apologize for my poor english.

  Thanks in advance,

  Edesio
  edesio@ieee.org


tkt_uuid: 599306ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 8
foundin: None
title: master index exposes unsupported pkgs
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-21T19:26:50
comment:
  dgp
  Uh, oh.  The "master" pkgIndex.tcl file for tcllib
  bypasses sanity checks. 
  dgp
  Can't think it through now; will report as a bug.
  aku
  What checks are bypassed ? Or do you mean its mere
  presence bypasses some checks in the safe stuff ?
  schlenk
  The pkgIndex.tcl file in tcllib1.3 main directory can
  load packages that can not be loaded directly, so it
  bypasses access restrictions.
  dgp
  I mean because it offers [package ifneeded] scripts for
  packages, the actual indexes for those packages lose
  any control they have.
  dgp
  take a look at the pkgIndex.tcl for control
  steveo saunters in.
  dgp
   if {![package vsatisfies [package provide Tcl] 8.2]}
  {return}
  package ifneeded control 0.1.1 [list source [file join
  $dir control.tcl]]
      * suchenwi goes home - a great weekend to y'all! 
  dgp
  It's coded that way to prevent any attempts to load
  control 0.1.1 into a pre-Tcl-8.2 interp.
  dgp
  But the tcllib pkgIndex.tcl is giving away the secret.
  suchenwi macht wie eine Banane ...
  dgp
  I know this was a big problem when prepping the 1.3
  release.
  dgp
  ...but this wasn't the right solution.
  schlenk
  So we have more than one bug: 1. bad pkgIndex.tcl for
  tcllib, that bypasses sanity checks 2. bad security
  checks, that allow loading of packages, that should not
  be loadable in a safe interp
  aku
  Yeah, I see.
  schlenk
  3. Inconvenient access for safe interp to tcllib modules.
  aku
  The alternative is to source all subordinate package
  indices directly, no ?
  aku
  ... Or maybe inlining them into the main package index. ...
  dgp
  I can't devote the time and attention required to come
  up with the right solution right now.
  dgp
  I recall from the previous discussion that just about
  every alternative has problems.


tkt_uuid: 517595ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: control
priority: 5 Medium
foundin: None
title: test suite bug in control/do.test
cmimetype: text/plain
submitter: lvirden
assignee: rmax
closer: rmax
closedate: 2002-02-21T11:43:44
comment:
  using the very latest tcllib, and running make test, I
  see the following error:


  Module: control
  modules/control/do.test

  ==== do-2.3 wrong no of arguments FAILED
  ==== Contents of test case:

      set res [catch do] 
      list $res $::errorInfo

  ---- Result was:
  1 {wrong # args: should be "do body args"
      while executing
  "do"}
  ---- Result should have been (exact matching):
  1 {no value given for parameter "body" to "do"
      while executing
  "do"}
  ==== do-2.3 FAILED


tkt_uuid: 3601313fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: stack
priority: 5 Medium
foundin: None
title: Simplify version requirement for TclOO
cmimetype: text/plain
submitter: egavilan
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2013-02-14T03:13:26
comment:
  Since tcloo is available only for 8.5+ and 8.5 already provides enhanced package version handling, the version requirement can be shortened to [package require TclOO 0.6.1 1] or [package require TclOO 0.6.1-] (to accept any newer version). Applies to both ::struct::queue and ::struct::stack.


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: 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: 1106375fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: snit
priority: 5 Medium
foundin: None
title: Widget Error on failed object's construction
cmimetype: text/plain
submitter: aldobu
assignee: duquette
closer: duquette
closedate: 2005-06-04T21:09:20
comment:
  ** Widget Error: when an object's constructor fails, the 
  object is not destroyed **


     Let's take the following example.
     Here's a widgetadaptor providing an extension of 
  the 'label' widget.

  package require snit 0.97
  ::snit::widgetadaptor mylabel {
     
     delegate method * to hull
     delegate option * to hull 

     constructor {args} {
        installhull using label
        $win configurelist $args
        puts "** $win created"
     }

     destructor {
        puts "** $win destroyed"
     }
  }   

     when I (wrongly) create an instance 
     (for example, I use an unsupported option),
     the instance is not not destroyed !
    
  mylabel .myL -strangeoption xyz

     the following error is correctly raised
    
  ** .myL destroyed
  Error in constructor: unknown option "-strangeoption" 
   
     but the ".myL" object still exists !
     This is in contrast with 'standard' widgets, because if 
  you write:
    
  label .myL -strangeoption xyz
    
     then an error is raised and the object is not created.

  I also experimented with 'widgetadaptor' ... the 
  behaviour is still wrong.
  Finally I experimented with 'type' ... the behaviour is 
  correct. 


tkt_uuid: 3607261fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Duplicate
subsystem: tklib :: widget :: dateentry
priority: 5 Medium
foundin: None
title: Calendar closes by clicking year/month navigation arrow.
cmimetype: text/plain
submitter: yyamasak
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2013-03-14T06:00:51
comment:
  I have modified dateentry <ButtonPress> binding not to close a calendar by clicking items tagged with "cbutton".


tkt_uuid: 773246ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
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: 1687902fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: tree
priority: 5 Medium
foundin: None
title: Documentation improvement
cmimetype: text/plain
submitter: lars_h
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-03-26T23:48:56
comment:
  Today, for the first time, I took a proper look at the struct::tree package to figure out what it was for. Unfortunately, I had to go source-diving to really understand what it was doing...

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

  Some concrete possibilities for how to improve things:

  1. In the Description:

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

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

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

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

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


tkt_uuid: 1633074fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: app: tkchat
priority: 5 Medium
foundin: None
title: tkchat extra features
cmimetype: text/plain
submitter: decosterjos
assignee: patthoyts
closer: patthoyts
closedate: 2007-08-22T23:03:15
comment:
  Hi,

  This patch is a diff of tkchat.tcl (1.356) and the modified tkchat.tcl with following features:

  New commands:
  -------------

  * /wikip <text>

  Search wikipedia with specified text

  * /wikid <text>

  Search Wiktionary with specified text

  Updated commands:
  -----------------

  * /googlefight

  Web interface changed

  New feature:
  ------------

  * Highlight and raise alert for specified subjects

  Specify subjects as 'string match' patterns. If a message matches a specified subject, it will be colored (background yellow by default). The subjects are saved in the tkchat resource file. The background color is adjustable through the colors dialog. It's also possible to trigger an alert when a message matches a subject.

  Kind regards,

  Jos.


tkt_uuid: 1695137fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools - Misc processing ideas
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  The results of the 'wordlist' and 'semantic' backends, see RFE 1695128, and RFE 1695126, can be used in lots of interesting ways. This RFE is a reminder of some of them, and the processing required.

  - spellchecking the words
  - word statistics
    -> find keywords for a document, set of documents
    (Need algorithm references which do stuff like this
     automatically - Bayes usable ?)


tkt_uuid: 1565836fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ldap
priority: 5 Medium
foundin: None
title: ldapx man page ambiguous
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-09-26T16:47:41
comment:
  I grabbed the latest tcllib cvs snapshot from the
  activestate repository this morning. I ran the
  makefile, with a goal of installing it with tcl 8.5.

  I get this set of warnings:

  Generating /volws/lwv27/ldatae/man/mann/ldapx.n
  Manpage warning (sectambig): (Sub)Section title "Data"
  causes ambiguous section 
  references.
  Manpage warning (sectambig): (Sub)Section title
  "Options" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title
  "Example" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title "Data"
  causes ambiguous section 
  references.
  Manpage warning (sectambig): (Sub)Section title
  "Options" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title
  "Methods" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title
  "Example" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title "Data"
  causes ambiguous section 
  references.
  Manpage warning (sectambig): (Sub)Section title
  "Options" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title
  "Example" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title "Data"
  causes ambiguous section 
  references.
  Manpage warning (sectambig): (Sub)Section title
  "Options" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title
  "Methods" causes ambiguous secti
  on references.
  Manpage warning (sectambig): (Sub)Section title
  "Example" causes ambiguous secti
  on references.


tkt_uuid: 1556310fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: math :: linearalgebra
priority: 5 Medium
foundin: None
title: "scale" exists as a Tk widget - name conflict when importing
cmimetype: text/plain
submitter: arjenmarkus
assignee: arjenmarkus
closer: sf-robot
closedate: 2006-09-26T02:20:06
comment:
  As "nurwodah" found out on the chat, the linear algebra
  package exports a procedure "scale". If you do:

    namespace import ::math::linearalgebra::*

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

  We need to repair this ...


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

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

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

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

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


tkt_uuid: 714947ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
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: 1023973fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: record
priority: 5 Medium
foundin: None
title: error in assigning structs #auto numbers
cmimetype: text/plain
submitter: nobody
assignee: schwarzkopf
closer: andreas_kupries
closedate: 2004-09-29T19:33:54
comment:
  if you create a record with #auto this gives record
  xxx1 $_count($defn_)= 1
  and then a second with #auto this gives record xxx2
  $_count($defn_) = 2
  then delete first record $_count($defn_)= 1

  now create some more records when $_count($defn_)= 2
  get error "Instances $inst_ already exists" from Create
  because of decrement of in Delete

  bug fix


  proc ::struct::record::Delete {sub_ item_} {

      variable _recorddefn
      variable _defn
      variable _count
      variable _defaults

      ##
      ## We just semi-blindly prepend :: to the record_
  argument
      ##
      if {![string match "::*" "$item_"]} {set item_
  "::$item_"}

      switch -- $sub_ {

          instance -
          instances -
          inst    {


              if {[Exists instance $item_]} {
          
  set ns $_defn($item_)
                  foreach A [info commands ${item_}.*] {
      Delete inst $A
                  }
          
                  catch {
                      foreach {k v} [array get [Ns
  $item_]values $item_,*] {
                          
                          unset [Ns $item_]values($k)
                      }
                      set i [lsearch [set [Ns
  $item_]instances] $item_]
                      set [Ns $item_]instances [lreplace
  [set [Ns $item_]instances] $i $i]
                      unset _defn($item_)
                  }
                  # NO NO!! we must have a monotonically
  incrementing record count
  # otherwise the next but one creation could fail as
  we will recreate this record and then
  # next time try to create a record ontop of a deleted
  on [of course we could have a free list ha ha!]
  # gst  
                  #incr _count($ns) -1
          
              } else {
                  #error "$item_ is not a instance"
              }
          }
          record  -
          records   {


              ##
              ##  Delete the instances for this
              ##  record
              ##
              foreach I [Show instance "$item_"] {
                  catch {Delete instance "$I"}
              }

              catch {
                  unset _recorddefn($item_)
                  unset _defaults($item_)
                  unset _count($item_)
                  namespace delete ::struct::record${item_}
              }

              
          }
          default   {
              error "Wrong arguments to delete"
          }

      }; # end switch

      catch { uplevel #0 [list interp alias {} $item_ {}]}

      return

  }; # end proc ::struct::record::Delete


  garyt@bmb.leeds.ac.uk


tkt_uuid: 1475968fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: comm
priority: 5 Medium
foundin: None
title: comm - use canonical ids for remote host connections
cmimetype: text/plain
submitter: hemanglavana
assignee: andreas_kupries
comment:
  Hi,

  The comm man page mentions the following limitation:

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

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

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

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

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

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

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

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

  Hemang.


tkt_uuid: 3389655fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tcl :: chan :: *
priority: 5 Medium
foundin: None
title: memchan not working
cmimetype: text/plain
submitter: zzpdean
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-08-10T17:02:49
comment:
  testing in tkcon produces these responses (also tested with 8.5.10)

  ...(Tcl8.6b1.2 / Tk8.6b1.2)
  % package require TclOO
  0.6.2
  % package require tcl::chan::memchan
  1.0.1 

  % set fid [::tcl::chan::memchan]
  can't read "content": no such variable 

  % package require tcl::chan::variable
  1.0.1 

  % set fid [::tcl::chan::variable buffer]
  can't read "allowed(write)": no such variable 


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

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

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

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

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

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

  Thanks.

  Sergei Gavrikov


tkt_uuid: 1272899fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math
priority: 5 Medium
foundin: None
title: math::combinatorics - failed tests with Tcl 8.5
cmimetype: text/plain
submitter: dgp
assignee: kennykb
closer: kennykb
closedate: 2005-08-25T21:17:16
comment:
  ==== combinatorics-2.7 math::factorial, exponent
  overflow FAILED
  ==== Contents of test case:

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

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


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

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

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


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

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

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


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

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

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

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


tkt_uuid: 1708350fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftp
priority: 6
foundin: None
title: Async Get into -channel fails
cmimetype: text/plain
submitter: kot
assignee: nobody
closer: andreas_kupries
closedate: 2007-05-07T21:15:39
comment:
  When I try to an async Get into an existing channel, I get:

  error | E: can't read "ftp(LocalFilename)": no such element in array

  Some debugging reveals the contents of errorInfo:

  can't read "ftp(LocalFilename)": no such element in array
      while executing
      "open $ftp(LocalFilename) w"

  This seems to be due to get:channel getting unset to early...

  (In general, I'm surprised, one has to specify "-async" at the Open time, rather than at the Get time.)


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: 1234831fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftp
priority: 5 Medium
foundin: None
title: runtime-error when owner of file is wrong
cmimetype: text/plain
submitter: cdclercq
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-10-20T19:35:43
comment:
  Hi,

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

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

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

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

  Regards,

  Christophe

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


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

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

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

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


tkt_uuid: 1416794fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: snit
priority: 5 Medium
foundin: None
title: snit: test suite bugs
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-29T08:15:22
comment:
  with -debug 1:

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


tkt_uuid: 440064ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: ftp
priority: 5 Medium
foundin: None
title: some code cleanup example/hpupdate.tcl
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-09-17T22:21:46
comment:
  I changed a few coding nits in the
  ftp/example/hpupdate.tcl file hoping against hope to
  fix at least one of the problems I have with it - the
  program tries to show me the difference, but what it
  shows doesn't reflect the real difference.  The
  original author is no longer supporting the program; he
  has written a significantly better app that replaces
  hpupdate, but it is all in german and my german is too
  rust.

  Anyways, I'm attaching my patches.  Mainly i added --
  to the switches ; which has the potential of making
  them safer if the variables happen to contain a - in
  their data, added some explicit return codes, etc.


tkt_uuid: 1328920fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: math
priority: 5 Medium
foundin: None
title: Symbolic differentiation
cmimetype: text/plain
submitter: kennykb
assignee: kennykb
comment:
  The attached is a symbolic differentiation package for
  Tcl.  It depends on the 'tclparser' module from TclPro.


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: 1273537fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: base64
priority: 3 Low
foundin: None
title: uuencode pad character confusion/mess
cmimetype: text/plain
submitter: andreas_kupries
assignee: patthoyts
comment:
  A number of testsuites for packages which have
  accelerators are written to load and test all available
  accelerators.

  The uuencode testsuite is not written to that form yet,
  but should, as we have pure Tcl, critcl, and Trf
  accelerators.

  It is written to select one of the available
  accelerators and test that. It however gets confused if
  there are both critcl and Trf present. It loads and
  uses critcl, but some test uuencode-1.4 reacts to the
  presence of Trf and changes to expect different
  results. This mismatch causes it to fail.

  The results are in disagreement about the padding
  character. Trf uses tilde (~), and pure Tcl/critcl use
  the backtick (`). Why the difference ? Do we have a
  document providing an authoritative answer to this ?


tkt_uuid: 440049ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 3 Low
foundin: None
title: latest report module test suite fails
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-08-20T20:36:35
comment:
  Note that I didn't see a category for report when
  filing this msg on sf.net

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      catch {report myreport} msg
      set msg

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


tkt_uuid: 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: 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: 2906751fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
title: right and left axes confused
cmimetype: text/plain
submitter: kennykb
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-12-10T09:53:19
comment:
  If I create an XYplot with a right axis, the data are displayed in the correct locations, but the left axis's ticks show the scale of the right axis.  The right axis's ticks show the correct scale, but there doesn't seem to be any way to set their format.

  The attached script demonstrates the problem.


tkt_uuid: 462015ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Rejected
subsystem: fileutil
priority: 8
foundin: None
title: find names not prefixed with pwd
cmimetype: text/plain
submitter: davidw
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-05-15T17:00:35
comment:
  @ashland [~/download/tcl] $ find |less
  .
  ./CVS
  ./CVS/Root
  ./CVS/Repository
  ./CVS/Entries
  ./compat
  ./compat/CVS
  ./compat/CVS/Root

  @ashland [~/download/tcl] $ find `pwd` |less

  /home/davidw/download/tcl
  /home/davidw/download/tcl/CVS
  /home/davidw/download/tcl/CVS/Root
  /home/davidw/download/tcl/CVS/Repository
  /home/davidw/download/tcl/CVS/Entries
  /home/davidw/download/tcl/compat
  /home/davidw/download/tcl/compat/CVS
  /home/davidw/download/tcl/compat/CVS/Root

  tcllib's find does not exhibit this behaviour - it
  *always* prefixes [pwd] to the results.


tkt_uuid: 1007934fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: None
priority: 5 Medium
foundin: None
title: Typo in man page for struct::pool
cmimetype: text/plain
submitter: eriklns
assignee: afaupell
closer: afaupell
closedate: 2004-08-13T02:03:46
comment:
  Example 2 for the struct::pool extension mentions:

      set fd {open "|backendApplication" w+}

  Of course, this should be:

      set fd [open "|backendApplication" w+]


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

  Greetings,

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


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

  Seen this for the doctools tests 13.x 


tkt_uuid: 1566460fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math
priority: 5 Medium
foundin: None
title: math-fuzzy-ManyCompares-1.1 fails with Tcl 8.5
cmimetype: text/plain
submitter: dgp
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2006-11-08T08:10:55
comment:
  ==== math-fuzzy-ManyCompares-1.1 Compare fails due to
  missing braces FAILED
  ==== Contents of test case:

     set tol_eq 0
     set tol_ne 0
     set tol_ge 0
     set tol_gt 0
     set tol_le 0
     set tol_lt 0

     for { set i -1000 } { $i <= 1000 } { incr i } {
        if { $i == 0 } continue

        #
        # NOTE: The braces in the assignment for y are
  missing on purpose!
        #
        set x [expr {1.01/double($i)}]
        set y [expr (2.1*$x)*(double($i)/2.1)]

        if { [teq $y 1.01] } { incr tol_eq }
        if { [tne $y 1.01] } { incr tol_ne }
        if { [tge $y 1.01] } { incr tol_ge }
        if { [tgt $y 1.01] } { incr tol_gt }
        if { [tle $y 1.01] } { incr tol_le }
        if { [tlt $y 1.01] } { incr tol_lt }
     }
     set result [list $tol_eq $tol_ne $tol_ge $tol_gt
  $tol_le $tol_lt]
     set intended {2000 0 2000 0 2000 0}
     set equal 1
     foreach r $result i $intended {
        if { $r != $i } {
           set equal 0
        }
     }
     set equal

  ---- Result was:
  1
  ---- Result should have been (exact matching):
  0
  ==== math-fuzzy-ManyCompares-1.1 FAILED


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

  / {list {}}

  there's no socket for the Answer!


tkt_uuid: 1416886fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: uri
priority: 5 Medium
foundin: None
title: uri: test suite bugs
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-29T00:48:56
comment:
  with -debug 1:

  * uri 1.1.5
  WARNING: removeFile removing
  "/local/src/tcllib/__testdata":
    not created by makeFile
  WARNING: removeFile removing
  "/local/src/tcllib/__testdata":
    not a file
  test name 'uri-5.14-0' re-used; prior use in
  /local/src/tcllib/modules/uri/uri.test
  WARNING: cleanupTests deleting
  /local/src/tcllib/__testdata...


tkt_uuid: 2822970fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ScrollableFrame background
cmimetype: text/plain
submitter: danckaert
assignee: hobbs
closer: oehhar
closedate: 2009-07-17T15:27:10
comment:
  Here's another small patch for ScrollableFrame.
  When the frame does not take up the whole canvas space, the canvas background shows through. This is more apparent when using ttk, because the canvas is not themed. However, here's an example without ttk:

  option add *Canvas.background yellow
  grid\
      [ScrollableFrame .sf -yscrollcommand [list .yscroll set]]\
      [scrollbar .yscroll -orient vertical -command [list .sf yview]]\
      -sticky news
  grid rowconfigure . 0 -weight 1
  grid columnconfigure . 0 -weight 1
  set g [.sf getframe]
  grid [label $g.a -text AAAAAA] [label $g.b -text BBBBBBB]
  grid [label $g.c -text CCCCCC]


tkt_uuid: 1611929fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 8
foundin: None
title: Suggestions for improving doctools documentation
cmimetype: text/plain
submitter: dnew
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-03-20T20:37:45
comment:
  I recently put together a fairly large man page for my Amazon S3 library.
  In developing the library, I wrote all the documentation into a plain text file before writing the code. Then it came time to format the manual page in a way that would be easy to incorporate into Tcllib. I had trouble. :-)

  I recognise that Tcllib is a free resource maintained by many out of the goodness of their heart. I would like, in that spirit, to describe some of the things
  that gave me trouble in writing the manual pages, and to suggest some improvements.
  I do not intend this to be interpreted as demands, criticisms of past work, or ingratitude in any way. I would like this to be interpreted merely as suggestions
  on how the documentation could be more helpful to those in my situation: people trying to follow existing standards in developing new libraries for Tcl.

  Note too that I make a lot of rhetorical questions. Many of these I still don't know the answer to, but I don't expect any sort of specific reply to any of the
  comments, complaints, suggestions, or questions. I offer this purely in the spirit of "here is my experience, and if you'd like to improve that for others, I thank you for your time."


  I think there are two giant unobviousnesses from reading the doctools pages.

  1) What does a manual page look like?

  2) How do you process manual pages into readable documentation?

  As for the first part, let's look at doctools_fmt. (I haven't tried to do any directory or TOC work.)

  The new EBNF grammar is helpful, but confusing at the same time. *My* confusion comes perhaps from using EBNF in RFCs and such (which is where I assume the "EBNF" comes from), and having the EBNF shown here not follow the same rules. There is no literal "]" anywhere in the EBNF, so already it's obvious that something is "wrong" with the EBNF. THe "COMMENT" production yields "comment", but neither [comment] nor [comment here comes stuff] is a valid command. 

  It would be helpful to give a reference to how to interpret the EBNF, just in terms of the syntactic elements such as curly braces. (Since it looks like curly braces are the only "extended" feature, perhaps simply mentioning that it means "zero or more times" would be sufficient.)


  The block after the sentence "Then we define rules for all the keywords. Here we introduce our knowledge that some commands allow only whitespace after them." could be completely eliminated simply by using the same spelling for both sets of terms. Why equate EX_BEGIN to "example_begin" when you could just use "EXAMPLE_BEGIN"? It's also incorrect to state that some commands allow only whitespace after them, when what is really meant is they disallow non-whitespace text between the end of the command and the start of the next command. 
  It also looks, on first glance, the the block of EBNF after that already indicates where a "text_chunk" or a "regular_text" can appear. Indeed, the last chunk of EBNF is the only chunk that's notably useful. That the EBNF lacks the information about what arguments the formatting commands take 
  (which could have been in the second block) is also a stumbling block, inducing scrolling up and 
  down looking for the various details needed to type one line of manual.

  For example, in the second block you could just have
    BULLET ::= "[" "bullet" "]"
    SECTION ::= "[" "section" ARG "]"
  and then ARG could be defined as
    ARG ::= (all text except WHITE or "]") | QUOTE (all text except QUOTE) QUOTE
    QUOTE ::= (a literal " mark)

  Alternately, just giving a good example would clarify a lot of things, since the intent is to describe rather than prescribe.

  Those who work with other markup languages might find it surprising that when [comment] takes a single argument, [comment here is text] is illegal and must be [comment "here is text"]. That it takes Tcl-style quoting (with " or {} but not ') might be more surprising. (Or not, of course.)

  In understanding this stuff, it's often useful to have even a simple example, or a ferinstance, for unobvious manipulations of never-before-seen terms. "Vset varname value" - what's a "document variable"? Is it like a macro? Is it something that the processing engine plug-in uses?  Adding a comment like "Useful in the same way a global constant is in a program" or "helpful when a phrase that might change is repeated in several places in the manual" or some such might help.

  see_also doesn't describe the format of its arguments. If they're links, it's unobvious what format they need to be in. Similary for keywords. Funny enough, the "see also" on this page are *not* links, while the keywords *are* links, which would seem counterintuitive. The labels to see_also identifying the document don't identify the document; they give the human-readable name of the document, and assume the reader can identify the document from the name. (A URL, for example, would identify the document, or an argument that the processing engine could turn into a URL.) The statement that "each argument is a single keyword" confuses the fact that it's actually (in this document) an entire [uri] production it seems.

  It's not obvious what the difference between [arg] and [arg_def] is, given the description; similarly for other pairs of similar terms. For things like [arg] and [cmd], I would use the expression "formats the argument /text/ as the name of a command argument" rather than "declaring" something. Particularly given that [call] actually declares something in the sense that I (at least) think of as a declaration. I think programmers normally think of "declarations" as something you later refer back to, rather than simply formatting commands. The authors of the doctools probably think of it as declaring the text as something to the formatting engine, but I think that's confusing for users of the formatting engine. What does the "declaration" of a namespace imply, beyond simply formatting it a certain color? Does it show up anywhere else? I would think that only [call] and [section] actually declare something, as such. Possibly [keyword] and [see_also] as well, as they seem to move the text around some. Otherwise, [emph] would declare the word to be emphasised.

  All the different "declares that the argument /text/ is the name of ..." don't really say anything, in the same sense that {incr x ; # increment x} isn't a useful comment. It might be useful to have a call or two as an example, formatted, and show what the markup is for each element of the call. Have a Tcl proc with positional, optional, and -keyword based arguments, an expr function, a Tk widget creation call, a widget call, and a ITcl/Snit/whatever call, and show the markup for each in the example section. (See the next paragraph for why this would be helpful.)

  The documentation for list_begin is confusing, if for no other reason than it is unclear which half of the nested list the "what" refers to. Is it [list_begin arg] or [list_begin arg_def]? An example of each use would probably be helpful. Mentioning that it is the [call] tag that actually places the call in the list at the top of the man page would also be useful. A_LIST is confusing because it tells only half the story, and you have to go read the prose about the "list_begin" command (several screens away) to figure out there's an argument-matching condition. Does the list of options need to have [option] in it? That is, should it be [opt_def -possible] or should it be 
  [opt_def [option -possible]] or should it be 
  [opt_def [opt [option -possible]]]? Or is it just 
  [lst_item [option -possible]]?

  What's the difference between [cmd_def] and [call]? Impossible to guess from the documentation. Given the unobvious-to-the-uninitiated behavior of [call], the description of [usage] is even more incomprehensible.

  What's the difference between [para] and [nl]? Why is one permitted only inside lists and the other permitted only outside lists? Is there a user-interesting reason for this, or is it simply a restriction of the formatting engines?

  The "Example" section is useless. It should at a minimum mention where to get the source of man pages. While almost every possible construct is used here, I suspect they're not used correctly, since there is no actual documentation of (for example) tkoptions, args, etc. I.e., it may be an example of how the formatting looks, but not how it is supposed to be used.

  The description of everything is in a really difficult order. It's neither alphabetical, nor top-down, nor bottom-up. 

  As for the processing, giving an example of how to invoke dtp.kit would help. I'm not sure where I got mine (it was recently downloaded, tho), but simply double-clicking the .kit under Windows simply says it can't read "C:\Document", indicating it's not handling directory spaces correctly. Figuring out that it needs to be invoked from the command line as 
    tclsh dtp.kit doc html S3.man >S3.html
  was unnecessarily difficult. True, it's giving options for setting the processing engine and all, so it's understandable why it's difficult, but the documentation should address this, possibly in a section called "GETTING STARTED", so it's easy to find. Adding a -version flag/option/etc would probably be a good idea.

  I think that any or all of these four overhauls would make the documentation much more useful:

  1) Fix the EBNF to actually generate valid documents when expanded. Put in the work to deal with the literal text, the arguments, etc. Either that, or drop the first two blocks, since they're basically uninformative given the third block.

  2) Give a pointer to an example manual page that uses all the features in the correct way. Create a namespace called "docexample" and create in it a command with options and optional arguments, tk-style commands, and so on. Give people a skeleton framework from which to work.

  3) Give instructions on finding and using the latest version of the processing program, at least to the extent that a user can figure out whether what they've written matches what the program will process. If they can't even experiment, it's difficult to get right. Simply a URL to where the latest release is stored along with instructions on invoking it to generate (say) HTML, would be helpful. 

  4) Improve the error messages. I'm personally used to using systems that don't tell you where the error is, requiring adding text a paragraph at a time so you know what you changed since it last worked. Many aren't. I know it's difficult, tho, probably moreso with a plug-in architecture. Perhaps offer hints or, again, a skeleton to start with.

  My guess is that 2 and 3 are probably pretty easy for those currently in-the-know about this tool, and that they'd also produce the most bang for the buck.


tkt_uuid: 443124ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: bwidget
priority: 7 High
foundin: None
title: add 'Color' to list of bwidget option types
cmimetype: text/plain
submitter: boakley
assignee: hobbs
closer: hobbs
closedate: 2002-01-22T23:37:17
comment:
  It's not unusual to add an option to a megawidget that 
  represents a color, but there's no option type 
  for "Color".  For example, I would like to be able to 
  do this:

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

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

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

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


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

  tclsh8.4 sak.tcl doc

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

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

  After killing the latex process, it returned with:

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

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

  [sak.tcl doc list] run without problem.

  [sak.tcl doc validate] has that output:

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

  Here the detailed list of the warnings/error msgs:

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


tkt_uuid: 2557046fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: list
priority: 5 Medium
foundin: None
title: struct::list test suite case assign-4.4 fails w/Tcl 8.6
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-09-24T22:27:40
comment:
  Tcl 8.6 cvs head, and tcllib cvs head from activestate ftp site snapshot.

  sparc solaris 8, Sun C compiler

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

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

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

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

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


tkt_uuid: 1416813fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: stack
priority: 5 Medium
foundin: None
title: stack: test suite bug
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-29T00:11:59
comment:
  with -debug 1:

  * struct::stack 1.3.1
  test name 'stack-8.4' re-used; prior use in
  /local/src/tcllib/modules/struct/stack.test


tkt_uuid: 861622ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
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: 450453ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: None
priority: 5 Medium
foundin: None
title: tcllib/ChangeLog not being maintained
cmimetype: text/plain
submitter: lvirden
assignee: nobody
closer: hobbs
closedate: 2001-10-14T20:16:13
comment:
  The tcllib/ChangeLog file that appears in the nightly
  cvs tar files hasn't been updated since July 18 -
  either there is something wrong with the snapshot
  utility or the file isn't being updated with changes.
  Either case makes life miserable for people trying
  to use the library and wanting to know what changes
  have recently went into the package.


tkt_uuid: 457129ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 1 Zero
foundin: None
title: SNMP functions
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-10-20T20:31:32
comment:
  Presently I'm using shelling out to use SNMP from net-
  snmp, but it could be really cool if we could control 
  SNMP with Tcl as a package.  Actually exec everytime 
  does put a high overhead and it's pretty slow.

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

  S.


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

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

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

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

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

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

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


tkt_uuid: 224476ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
priority: 5 Medium
title: BWidget - MainFrame::setmenustate broken
cmimetype: text/plain
submitter: jenglish
assignee: jenglish
closer: andreas_kupries
closedate: 2001-06-20T15:01:49
comment:
  The following script works with BWidget 1.2.1, but raises an error in 1.3.0:

  --
  package require BWidget
  MainFrame .mf -menu {
          &File {fileTag} file 0 { }
  }
  pack .mf -side top -expand true -fill both
  .mf setmenustate fileTag disabled;# <== here's the problem
  --
  The error message is:
  --
  Error in startup script: syntax error in expression "1 && disabled"
      while executing
  "expr $expression"
      (procedure "MainFrame::setmenustate" line 25)
      invoked from within
  "MainFrame::setmenustate .mf fileTag disabled"
      ("eval" body line 1)
      invoked from within
  "eval MainFrame::$cmd .mf $args"
      (procedure ".mf" line 1)
      invoked from within
  ".mf setmenustate fileTag disabled"
  --

  It looks like this was introduced in mainframe.tcl revision 1.2.

  Suggested fix: revert to the old implementation.


tkt_uuid: 1563137fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftp
priority: 5 Medium
foundin: None
title: NList fails for files with spaces
cmimetype: text/plain
submitter: keithv
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-09-22T23:08:55
comment:
  If you call ::ftp::NList and there is a file with
  spaces, then NList returns each piece of the filename
  as a separate file.

  The problem is that a string result from the server is
  passed as a list to lsort. Solution is to split the
  line to convert it to a proper list.

  Offending line:
    ftp.tcl, v1.39 #1164
       return [lsort $ftp(List)]

  Solution:
   return [lsort [split [string trim $ftp(List) "\n"] "\n"]]


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

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

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

  Thank you,

  Vlad.


tkt_uuid: 2695827fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: math :: fourier
priority: 5 Medium
foundin: None
title: Emphasise DFT vs. FFT choice up front.
cmimetype: text/plain
submitter: venksi
assignee: lars_h
comment:
  The first line says this: "The math::fourier package implements two versions of discrete Fourier transforms, the ordinary transform and the fast Fourier transform.".  That implies that both versions are available for use.  

  Reading top to bottom it sounds like there are only commands for dft (and none for fft), which is not true.

  "The math::fourier package uses the fast Fourier transform, if applicable, or the ordinary transform to implement the
  discrete fourier transform." might be more appropriate.    


tkt_uuid: 447022ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: tcllib packages not immediately loadable
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-08-02T18:12:27
comment:
  With Tcl 8.2.3...

  Install tcllib 1.0.  Then try the demo in the
  ftp module:

  $ cd modules/ftp
  $ wish ftpdemo.tcl
  Error in startup script: can't find package ftp 2.0
      while executing
  "package require ftp 2.0"
      (file "ftpdemo.tcl" line 25)

  The problem is that tcllib doesn't install its
  constituent packages in a directory relative
  to the default $::auto_path where they will
  be loaded.

  After one failed [package require], the index
  script for "tcllib" itself will augment $::auto_path
  with an additional search directory, so the packages
  will be found on the second attempt.

  Later releases of Tcl (8.3.1+) have changed the
  default [package unknown] behavior so that it
  keeps searching for pkgIndex.tcl files as long
  as the value of $::auto_path keeps changing...

  ...but if tcllib's installation depends on that,
  then the whole tcllib collection ought to

  package require Tcl 8.3.1

  I think we want (most of) tcllib usable with Tcl 8.2.
  This can be accomplished with some special
  processing in tcllib's index script.


tkt_uuid: 1061218fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: app: tkchat
priority: 5 Medium
foundin: None
title: Misc tkchat fixes
cmimetype: text/plain
submitter: dkf
assignee: patthoyts
closer: patthoyts
closedate: 2004-11-05T23:03:39
comment:
  Here's some fixes I've got applied that make tkchat a
  bit better for me.

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


tkt_uuid: 1532791fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: snit
priority: 5 Medium
foundin: None
title: snit2, snit::widget problem
cmimetype: text/plain
submitter: andreas_kupries
assignee: duquette
closer: duquette
closedate: 2006-08-16T02:05:36
comment:
  When using 'variable' to define components snit 2.0 has
  a problem if the component has delegates set on it, and
  the delegates are defined before the component.

  When trying to create an instance snit crashes with the
  attached stacktrace.

  The reason is that the 'variable' statement coming
  after the delegation cause snit to insert assignments
  to the relevant instance variables, after the delegates
  have set up traces. The trace is triggered, and comes
  ultimatively to RT.ClearInstanceCaches, which accesses
  the internal Snit_instance variable. At a time when
  this variable is not defined yet. This happens a few
  lines later, via installhull.

  The relevant lines in snit2.tcl are 1906, which runs
  the assignments triggering the trace accessing the
  variable, and 1922, where the variable is defined.

  Workarounds for this problem are to either move the
  'variable' declarations before the delegation setup, or
  to use the 'component' command. The latter apparently
  has additional intelligence about delegation which
  prevents it from inserting the additional assignments
  into the generated Snit_instanceVars hook procedure.


tkt_uuid: 2695513fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: linearalgebra
priority: 5 Medium
foundin: None
title: MkBorder may be wrong
cmimetype: text/plain
submitter: relaxmike
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-03-20T17:57:45
comment:
  Hi,

  According to the definition given in Nash "Compact
  method", the diagonal of the Border matrix is 
  equal to 1.

  But one can check that this is not true with 
  tcllib :

  % package require math::linearalgebra
  1.0.3
  % ::math::linearalgebra::mkBorder 5
  {1.0 0.0 0.0 0.0 1.0} {0.0 1.0 0.0 0.0 0.5} {0.0 0.0 1.0 0.0 0.25} {0.0 0.0 0.0 1.0 0.125} {1.0 0.5 0.25 0.125 0.0}

  Notice that the last value is 0 instead of 1.

  See in the following page, and look 
  at the "BORDERBAND" routine with the sample 
  Border matrix of size 5 :
  http://orion.math.iastate.edu/burkardt/f_src/testmat/testmat.f90

  The following version of MkBorder tries to fix the bug :

  proc mkBorder { size } {
      set result {}
      for { set j 0 } { $j < $size } { incr j } {
          set row {}
          for { set i 0 } { $i < $size } { incr i } {
              set entry 0.0
              if { $i == $j } {
                  set entry 1.0
              } elseif { $j!=$size-1 && $i == $size-1 } {
                  set entry [expr {pow(2.0,-$j)}]
              } elseif { $i!=$size-1 && $j == $size-1 } {
                  set entry [expr {pow(2.0,-$i)}]
              } else {
                 set entry 0.0
              }
              lappend row $entry
          }
          lappend result $row
      }
      return $result
  }

  Best regards,

  Michaël


tkt_uuid: 1482266fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Rejected
subsystem: app: tkchat
priority: 5 Medium
foundin: None
title: rejection of unknown "/..." commands
cmimetype: text/plain
submitter: treincke
assignee: patthoyts
closer: patthoyts
closedate: 2006-09-14T14:21:56
comment:
  If you mistype a command in TkChat starting with a 
  slash, you data will be sent straight to the server and 
  are visible to all. This is not good if the message was 
  intended to be a whisper of a private message. It is 
  easy to prevent these messages to come through.

  In the proc ::tkchat::checkCommand are two switch 
  statements that check for the different commands. If we 
  insert a new case in the second switch just before the 
  'default' arm (line 3234 in version 1.334 of tkchat.
  tcl), we can reject unknown commands. Here would be the 
  context with the new arm '^/.?':

        {^/back} {
      set status [string range $msg 5 end]
      tkjabber::back $status
  }
  {^/.?} {
      addSystem .txt "Unknown command: $msg"
  }
  default {
      if {![checkAlias $msg]} then {
  # might be server command - pass it on
  switch $Options(ServerLogging) {
      none {
  tkjabber::msgSend "/nolog $msg" -
                     attrs [list nolog 1]
      }
      default {
  tkjabber::msgSend $msg
      }
  }
      }
  }


tkt_uuid: 2381524fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: log
priority: 5 Medium
foundin: None
title: RFE: [logger] print all arguments passed to logger API
cmimetype: text/plain
submitter: hemanglavana
assignee: mic42
closer: mic42
closedate: 2008-12-17T21:52:25
comment:
  The logger package currently prints only the last argument passed to the logger API call. See below:

  rtp-lds-016:437> tclsh
  % package require logger
  0.8
  % namespace eval foo {}
  % logger::initNamespace ::foo
  % foo::log::warn none
  [Wed Dec 03 01:49:23 AM EST 2008] [foo] [warn] 'none'
  % foo::log::warn two errors
  [Wed Dec 03 01:49:37 AM EST 2008] [two] [warn] 'errors'
  %                  

  It would be nice if the last line above had printed 'two errors' instead of just 'errors'. I suspect there could be some backwards compatibility issues, so it would be fine with me to introduce an API to enable this behavior.


tkt_uuid: 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: 1627888fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: Networking: X/Y/Z modem transfert protocols
cmimetype: text/plain
submitter: nobody
assignee: nobody
closer: nobody
comment:
  Hi,

  This is used for transfering data via serial line interface.

  see:
  http://www.atariarchives.org/cfn/12/02/0033.php

  http://synchro.net/docs/sexyz.txt


tkt_uuid: 485715ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: csv
priority: 5 Medium
foundin: None
title: csvcut example program output problem
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-12-11T22:03:48
comment:
  csvcut produces "non-standard" (whatever that means :-)
  output for csv input files with fields with embedded
  blanks:

  $ cat /tmp/sample.csv
  1,2,"this is a test",4
  $ csvcut 0-4 /tmp/sample.csv
  1,2,this is a test,4

  Notice the quoting of the column with spaces is lost
  during the cut.  If the quoted field contains a comma,
  the spacing is maintained however!


tkt_uuid: 1427220fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: None
priority: 5 Medium
foundin: None
title: TraceLog: Debugging helper
cmimetype: text/plain
submitter: wildcard_25
assignee: andreas_kupries
comment:
  Looking for a home for this mini app.
  Can be broken up into a log extension and Tk 
  interface if need be.

  The package provides a simple Tcl source code
  execution flow tracer.  It is a detailed tracer that 
  will allow tracing down to the line-level of 
  execution.  It operates by adding traces to 
  procedures and logging the entry arguments and 
  results to the log package. If Tk is available it 
  will log to its own window and redirect ::log 
  messages there as well.

  Example of usage is to add these lines at the start 
  of a script.

  package require TraceLog
  ::TraceLog::Init
  ::TraceLog::SetCreateLog

  Any feedback or comments welcome.


tkt_uuid: 3252952fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: coroutine
priority: 5 Medium
foundin: None
title: Coroutine package overwrites core ::coroutine command
cmimetype: text/plain
submitter: egavilan
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-04-18T20:26:09
comment:
  The coroutine package creates a new command (via [namespace ensemble create]) which clashes with the core ::coroutine command.
  Possible solutions:
  * Move the original ::coroutine command to the ::coroutine namespace first.
  * Use the -command option of [namespace ensemble create] to change the name of the created ensemble.
  * Rename the ::coroutine namespace altoghether.


tkt_uuid: 1359028fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Works For Me
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ScrolledWidget does not respect -relief upon creation
cmimetype: text/plain
submitter: dev_null42a
assignee: damonc
closer: sf-robot
closedate: 2009-07-14T02:20:48
comment:
  When creating a ScrolledWindow, the ::create proc
  ignores the user's -relief setting; one has to
  explicitly call configure on the widget afterwards to
  set the relief.  Here is an example run:

  % puts $tk_version
  8.4
  % package require BWidget
  1.7
  % toplevel .top1
  .top1
  % ScrolledWindow .top1.sw -relief sunken -borderwidth 2
  .top1.sw
  % .top1.sw cget -relief
  flat
  % .top1.sw configure -relief sunken -borderwidth 2
  % .top1.sw cget -relief
  sunken


tkt_uuid: 984407ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
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: 1525172fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: error in fileutil::jail
cmimetype: text/plain
submitter: ramsan
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-07-19T16:23:44
comment:
   fileutil::jail basedir "file with spaces"
  ----> C:/Documents and Settings/ramsan/Mis documentos/
  basedir/file/with/spaces

  the correction seems to be. change:

   return [eval [linsert [LexNormalize $filename] 0 \
                  file join [pwd] $jail]]

  to:

   return [eval [linsert [file split [LexNormalize 
  $filename]] 0 \
                  file join [pwd] $jail]]


tkt_uuid: 1579744fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Tcl Tip 278
cmimetype: text/plain
submitter: jonne_z
assignee: damonc
closer: dev_null42a
closedate: 2006-11-10T22:46:25
comment:
  This diff might be helpfull in order to make sure
  BWidget still works after Tcl's Tip 278 will be
  implemented.
  See http://tip.tcl.tk/278.

  These changes were made by me in order get aMSN running
  again when using Tcl's Tip 278 branch.


tkt_uuid: 2376321fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: bug in fileutil::TempDir
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-12-02T17:29:38
comment:
  I believe I spotted a bug in fileutil::TempDir for $tcl_platform(platform) eq macintosh. Here is the excerpt:

  macintosh {
      set tmpdir $env(TRASH_FOLDER)  ;# a better place?
  }

  But the variable tmpdir is nowhere used. Probably it should be:

  macintosh {
      lappend attempdirs $env(TRASH_FOLDER)
  }


tkt_uuid: 1266792fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Wrong option added to database by Widget::tkinclude.
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: oehhar
closedate: 2009-06-29T15:53:44
comment:
  Widget::tkinclude of BWidgets adds $option to the
  option database, but it should add $realopt. Compare
  for example with Widget::addmap.


tkt_uuid: 416799ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: None
priority: 5 Medium
foundin: None
title: A new datastructure, matrix
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-05-02T14:24:06
comment:
  The attached archive provides documentation, testsuite
  and code for an addition to the "struct" module, a
  matrix object.


tkt_uuid: 1085562fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math
priority: 5 Medium
foundin: None
title: math::bignum::testbit fails
cmimetype: text/plain
submitter: aubinroy
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-31T04:37:26
comment:
  I want to report a bug in ::math::bignum::testbit.
   
  In the documentation I got (ActiveTCL help file, version 
  8.4.9.0), it says:
  ::math::bignum::testbit bignum bit 
  Return true if the bit at the bit position of bignum is on, 
  otherwise false is returned. If bit is out of range, it is 
  considered as set to zero.

   
  However, if I use this test bit on a "bignum" for which a 
  bit has NOT been set yet, it fails miserably.
   
  Here is the TCL code to induce the bug and the error 
  message reported:
  (bin) 3 % package require math::bignum
  3.0
  (bin) 4 % set z [::math::bignum::fromstr "3220"]
  bignum 0 3220
  (bin) 5 % ::math::bignum::testbit $z 23
  can't use empty string as operand of "&"
  (bin) 6 % 
   
  However, if a bit has previously been set which is equal 
  or greater than the bit tested, then the error message is 
  NOT reported.
   
  (bin) 8 % ::math::bignum::setbit z 24
  bignum 0 3220 256
  (bin) 9 % ::math::bignum::testbit $z 23
  0
  (bin) 10 % 
   
  By comparison with the other functions and 
  some "analysis", I have concluded that 2 lines are in the 
  wrong order.
  As it stands now, the function reads as:
   
  # Test the bit 'n' of 'z'. Returns true if the bit is set.
  proc ::math::bignum::testbit {z n} {
      set atom [expr {$n / $::math::bignum::atombits}]
  ######## Next 2 lines in wrong order
      if {$atom >= [llength $z]} {return 0}
      incr atom 2
  ########
      set mask [expr {1 << ($n & 
  ($::math::bignum::atombits-1))}]
      expr {([lindex $z $atom] & $mask) != 0}
  }
   
  when it should read as:
   
  # Test the bit 'n' of 'z'. Returns true if the bit is set.
  proc ::math::bignum::testbit {z n} {
      set atom [expr {$n / $::math::bignum::atombits}]
  ######## Next 2 lines identical to other functions
      incr atom 2
      if {$atom >= [llength $z]} {return 0}
  ########
      set mask [expr {1 << ($n & 
  ($::math::bignum::atombits-1))}]
      expr {([lindex $z $atom] & $mask) != 0}
  }


tkt_uuid: 1720144fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftpd
priority: 8
foundin: None
title: Unable to ftp files with multiple spaces together
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-20T20:41:30
comment:
  In ftp::read there is a line:

  set parts [split $command]

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

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

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


tkt_uuid: 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: 1316052fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: math
priority: 4
foundin: None
title: math/roman.test prints extra info
cmimetype: text/plain
submitter: techentin
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2005-11-04T07:53:44
comment:
  roman.test includes gratuitous puts commands,
  cluttering the log.  It doesn't need to say "Testing
  library roman" or "Using Pkg: Tcl 8.4"


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

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


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

   string first $needle $haystack

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


tkt_uuid: 1310623fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Duplicate
subsystem: A Category Is Missing
priority: 5 Medium
foundin: None
title: tie file implementation broken
cmimetype: text/plain
submitter: dvrsn
assignee: andreas_kupries
closer: dvrsn
closedate: 2005-10-02T03:12:49
comment:
  The following script:

      package require tie
      set a(y) 1
      set a(z) 3
      tie::tie a file a.save
      set a(aa) 2
      set a(ab) 3
      set a(ac) 4

  Gives me an error:

      can't set "a(ab)": can't unset "cache": no such
  variable
          while executing
      "set a(ab) 3"


tkt_uuid: 3608952fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tepam
priority: 3 Low
foundin: None
title: TEPAM: Help text incorrect for procedures in namespaces
cmimetype: text/plain
submitter: droll
assignee: droll
closer: droll
closedate: 2013-03-25T22:14:18
comment:
  The help text for a procedure that is part of a namespace is incorrectly generated. Example:

  namespace eval ::ns {
  tepam::procedure MyProc {
  -short_description "Help generation demonstration"
  -description "Command to demonstrate the help text generation"
  -args {
  {Param -type integer -default 0 -description "Optional command argument"} }
  } {
  puts "MyProc called"
  }
  }

  ns::MyProc -help

  | NAME
  |       ns::ns::MyProc
  | SYNOPSIS

  The namespace is duplicated in the procedure name and all the detailed procedure information (descriptions, arguments, etc.) are not displayed. The expected help text is:

  | NAME
  |       ns::MyProc - Help generation demonstration
  | SYNOPSIS
  |       ns::MyProc
  |             [<Param>]
  |                Optional command argument, type: integer, default: 0
  | DESCRIPTION
  |       Command to demonstrate the help text generation

  This bug affects only the help text generation. It is not affecting the behavior of the procedure call.
  A fix for the TEPAM package is available, and once the TEPAM author has write/commit access to the new TclLib repository (Fossil) the fix will be commited.


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: 3315620fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: huddle
priority: 5 Medium
foundin: None
title: Invalid JSON with values that begin with 0
cmimetype: text/plain
assignee: kanryu6
comment:
  I think [huddle jsondump] should quote values with a beginning zero:

  ::json::json2dict [huddle jsondump [huddle create key 000000]]

  --> unexpected token "0" at position 5; expecting ","|"}"

  ::json::json2dict [huddle jsondump [huddle create key 1000000]]

  --> key 1000000

  PS
  The category huddle is missing!


tkt_uuid: 459197ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftpd
priority: 5 Medium
foundin: None
title: More fixes in ftpd for the export of the public API
cmimetype: text/plain
submitter: hemanglavana
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-09-07T22:22:31
comment:
  On further examination wrt [456255], I found out that the 
  ftpd.tcl file had few more "namespace export *" stmts in it
  which I had missed earlier. Here's a patch for the same.

  godel:47> cvs diff ftpd.tcl 
  Index: ftpd.tcl
  ===================================================================
  RCS file: /cvsroot/tcllib/tcllib/modules/ftpd/ftpd.tcl,v
  retrieving revision 1.10
  diff -r1.10 ftpd.tcl
  108d107
  <     namespace export fsFile::docRoot fsFile::fs
  658c657,659
  <     namespace export *
  ---
  >     namespace export ABOR APPE CDUP CWD DELE HELP LIST MDTM MKD NOOP
  >     namespace export NLST PASS PORT PWD QUIT REIN RETR RMD RNFR RNTO
  >     namespace export SIZE STOR STOU SYST TYPE USER
  1627c1628
  <     namespace export *
  ---
  >     namespace export docRoot fs
  godel:48>


tkt_uuid: 3541628fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: logger
priority: 5 Medium
foundin: None
title: ::logger::init has side-effects
cmimetype: text/plain
submitter: heinrichmartin
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2012-07-10T03:36:01
comment:
  expect:/tmp$ package require logger
  0.9
  expect:/tmp$ set lvl "My private variable."
  My private variable.
  expect:/tmp$ ::logger::init foo
  ::logger::tree::foo
  expect:/tmp$ set lvl
  trace
  expect:/tmp$ 

  a trace on lvl shows a "foreach lvl" in "namespace eval tree::foo"...

  ==> http://wiki.tcl.tk/1030 gives a workaround; insert this line:
  logger.tcl:646: variable lvl ;# prevents foreach using global lvl if it exists


tkt_uuid: 1274322fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: Support for pastebin and similar sites
cmimetype: text/plain
submitter: andreas_kupries
assignee: patthoyts
closer: patthoyts
closedate: 2006-09-14T23:46:14
comment:
  Consider the possibility of adding support for sites
  like pastebin, etc. into tkchat. Not sure about the
  interface. Maybe a Post button which puts the sata into
  pastebin, etc. and then posts only the link to the
  chat. That way a user can paste something large to post
  into the chat UI and then through pastebin instead of
  doing the indirection manually.


tkt_uuid: 3437761fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: keyboard traversal broken if spaces in widget pathnames
cmimetype: text/plain
submitter: jaspertheperson
assignee: oehhar
closer: oehhar
closedate: 2011-11-14T14:29:09
comment:
  If you have widgets whose pathnames contain spaces, you get errors when attempting to traverse focus between them with the Tab key. Example error log pasted below. 
  Annoyingly, this error affects all Tk widgets including ttk, once the BWidget package has been loaded.

  wrong # args: should be "ttk::takefocus w"
      while executing
  "ttk::takefocus .foo bar"
      ("uplevel" body line 1)
      invoked from within
  "uplevel \#0 $value $w"
      (procedure "focusOK" line 12)
      invoked from within
  "focusOK $cur"
      (procedure "Widget::focusNext" line 36)
      invoked from within
  "Widget::focusNext .foo\ foo"
      invoked from within
  "Widget::traverseTo [Widget::focusNext .foo\ foo] "
      (command bound to event)


tkt_uuid: 1416810fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: queue
priority: 5 Medium
foundin: None
title: queue: test suite bug
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-29T00:11:43
comment:
  with -debug 1:

  * struct::queue 1.4
  test name 'queue-8.3' re-used; prior use in
  /local/src/tcllib/modules/struct/queue.test


tkt_uuid: 3433470fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Development Tools
priority: 9 Immediate
foundin: None
title: Expired certificates
cmimetype: text/plain
submitter: stwo
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2013-01-22T01:50:12
comment:
  The certificates 'receiver.crt' and 'transmitter.crt' have expired, causing test failures in modules 'comm' and 'pop3' if 'tcltls' is installed at the time the test suite is run.
  Also, the README in the devtools directory mentions that only the 'pop3' tests use these files, which is not true, as noted above.
  Please regen these certs with much later expiry dates.


tkt_uuid: 453983ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: Integrate 'comm' into tcllib
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-10-12T23:30:07
comment:
  Add the 'comm' extension by John Robert LoVerso
  to tcllib. 'comm' provides socket-based 'send'
  operations. A simple RPC paradigma.


tkt_uuid: 527716ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 7 High
foundin: None
title: add [usage] support
cmimetype: text/plain
submitter: boakley
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-03-10T02:50:23
comment:
  The library seems to be designed for documenting 
  packages, but is missing something for doing man pages 
  of individual commands. Or maybe I don't quite 
  understand how it works. Specifically, it appears that 
  the only way to get something into the automatically 
  generated SYNOPSIS section is to first put it in a 
  [call] statement inside a definition list. Anyone know 
  if that is a true statement?

  When I tried using the package to write a man page for 
  a single command, I found this undesireable. I want a 
  SYNOPSIS section, but I don't want to have to put the 
  synopsis as an element in a definition list -- that 
  just doesn't fit the way I want to document the 
  command. The document would end up with the synopsis 
  twice -- once wherever I put it and once in the 
  SYNOPSIS section. 

  What I propose is a new command, [usage], which lets 
  one define a usage statement. The difference between 
  this and [call] is that [usage] wouldn't cause 
  anything to be generated as a direct result of the 
  command. Instead, it just stores the string for the 
  SYNOPSIS section. Thus, it could appear anywhere in 
  the source, though typically it would appear at the 
  top.

  I've attached a patch file that adds this new command. 
  Use at your own risk. This adds a "usage" command to 
  each of the formats (fmt.html, fmt.tmml, etc) and 
  updates mpexpand to know about the new command. I 
  haven't verified that the latex and tmml versions 
  generate correct output, but they should. The commands 
  are clones of the call proc, but return an empty 
  string rather than a formatted string.

  FWIW, here's how I'm using it in my man page right now:

  [manpage_begin fontdialog n 1.0]
  [moddesc   {Dialogs}]
  [titledesc {A dialog for defining a font 
  specification}]
  [usage [cmd "package require Tk 8.2"]]
  [usage [cmd "package require ::dialog::fontdialog"]]
  [usage [cmd ::dialog::fontdialog::fontdialog] \
         [opt "-applycommand [arg script]"] \
         [opt "-fixed [arg boolean]"] \
         [opt "-font [arg fontDescription]"] \
         [opt "-sizes [arg list]"] \
         [opt "-title [arg string]"] \
         [opt "-variable [arg boolean]"] \
  ]
  [description]
  ...


tkt_uuid: 466078ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: general request
priority: 5 Medium
foundin: None
title: Add modules to tcllib tar file
cmimetype: text/plain
submitter: lvirden
assignee: techentin
closer: lvirden
closedate: 2003-04-10T17:54:19
comment:
  Please add Bwidgets, mclistbox, and other tcl based
  extensions currently in this project in the tcllib tar
  files that are created during a release.


tkt_uuid: 1276680fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: bignum
priority: 5 Medium
foundin: None
title: math::bignum namespace not exported properly
cmimetype: text/plain
submitter: dossy
assignee: arjenmarkus
closer: andreas_kupries
closedate: 2005-08-30T16:35:16
comment:
  See tcllib/math/bignum.tcl, line 828:

      828 namespace eval bignum {
      830     namespace export *
      831 }

  The namespace is ::math::bignum, not ::bignum.  This
  results in an empty export list in ::math::bignum. 
  Found this in Tcllib 1.7.0.1.


tkt_uuid: 1085174fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: socket failure
cmimetype: text/plain
submitter: msofer
assignee: patthoyts
closer: patthoyts
closedate: 2005-03-04T02:59:53
comment:
  (Looks like a server problem to me - this worked fine
  until yesterday, I did not upgrade).

  At app startup (v 1.239) I get an error and no history
  selector, but tkChat works fine after that. The
  errorInfo is:

  couldn't open socket: connection refused
  couldn't open socket: connection refused
      while executing
  "::http::geturl $url  -headers [buildProxyHeaders]"
      (procedure "GetHistLogIdx" line 10)
      invoked from within
  "GetHistLogIdx logsize"
      (procedure "tkchat::LoadHistory" line 13)
      invoked from within
  "tkchat::LoadHistory"


tkt_uuid: 3027371fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Build System & Testing
priority: 5 Medium
foundin: None
title: incorrect module name added to modules.tcl
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-07-09T15:19:50
comment:
  When I attempted to install the cvs head of tcllib today, obtained from the cvs ftp site at activestate, the attempt failed. The problem was that the support/installation/modules.tcl file had the following line added to it:
  Module  imap        _tcl  _man  _null

  The correct line should have been

  Module  imap4        _tcl  _man  _null


tkt_uuid: 1709566fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ftp
priority: 5 Medium
foundin: None
title: crash during ftp::Get
cmimetype: text/plain
submitter: hofkensg
assignee: andreas_kupries
comment:
  I sometimes see the following crash during a ftp::Get :

  can't read "ftp(Start_Time)": no such element in array
      while executing
  "expr {$stop_time - $ftp(Start_Time)}"
      (procedure "ElapsedTime" line 5)
      invoked from within
  "ElapsedTime $s [clock seconds]"
      (procedure "ftp::Get" line 87)


  I think this happens because the proc ftp::WaitOrTimeout (used at the endof ftp::Get) returns 1 on timeout i.s.o. 0. And so ftp::Get tries to calculate the elapsed time in ftp::ElapsedTime, while ftp(Start_Time) is not yet existing, resulting in a crash.
  I have looked at all usage of ftp::WaitOrTimeout, and the return code should be 1 on success, 0 on error. Therefore I suggest to change ftp::Timeout to put ftp(state.control) to 0.


tkt_uuid: 1695129fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools - Add backend 'Tk'
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  Create a backend similar to plain text which also adds tags to character ranges and returns the combination in a format which makes inserting into a Tk Text widget easy.


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

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

  Patch attached.

  kind regards
  -- Matthias Kraft


tkt_uuid: 3193459fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: math :: optimize
priority: 5 Medium
foundin: None
title: divide by zero
cmimetype: text/plain
submitter: jdbr
assignee: arjenmarkus
comment:
  nelderMead can attempt to divide by zero. For example (Tcl8.5 tcllib-1.13) math::optimize::nelderMead {apply {{x y} {expr {abs($x-$y)}}}} {1 1}
  gives a domain error. The problem is not well formed, as the minimum is a line (x=y), but this could occur in other cases as well.
  One solution would be to add param(-ftol) to the denominator where rerror is calculated:
  set rerror [expr { 2. * abs( $yTop - $yBot )
     / ( abs( $yTop ) + abs( $yBot ) + $params(-ftol)) }]
  This will change the error from relative to absolute  with tolerance -ftol^2 for function values much less than -ftol
  It will change the relative error tolerance from -ftol to about 0.667*-ftol when the function value is near -ftol
  There is little effect when the function value is much larger than -ftol.

  -ftol must be larger than 0.
   it is already required (in  $rerror < $params(-ftol) on the line following rerror calculation)
  It might be worth verifying that while checking arguments.


tkt_uuid: 1448424fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Balloon help not removed when window closes.
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: dev_null42a
closedate: 2006-03-23T23:35:34
comment:
  I think DynamicHelp::_unset_help is missing a call to
  "destroy $_top" (and "variable _top".
  As the following code can show, the balloon with the
  help message is not removed if Alt-d is used to destroy
  the widget to which the help is bound. Just hover the
  mouse over the Entry so that the balloon appears and
  then hit Alt-d.

  m.d.nauta@hetnet.nl

  package require BWidget
  Entry .e -helptext "This is helptext"
  button .b -text "Destroy Entry" -underline 0 -command
  {destroy .e}
  pack .e .b
  bind . <Alt-d> {destroy .e}


tkt_uuid: 1329212fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: pop3
priority: 8
foundin: None
title: Many test failures in module pop3
cmimetype: text/plain
submitter: kot
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-10-02T19:18:18
comment:
  Please, find the log-file attached. Any fixes for the
  code and/or tests would be highly appreciated.

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

  pop3d tests, seem fine, however.


tkt_uuid: 3584575fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: cmdline
priority: 5 Medium
severity: Minor
foundin: None
title: Improved error messages
cmimetype: text/plain
submitter: amitguptainn
assignee: aku
closer: aku
closedate: 2456444.30347498
comment:
  Hi,

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

  -Amit


tkt_uuid: 433970ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: frink/procheck results
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-06-22T15:30:45
comment:
  Applied frink 2.1.1 and procheck to the script code in
  tcllib. The enclosed patch is the results, fixing bugs,
  warnings, partially supressing warnings which are
  bogus.


tkt_uuid: 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: 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: 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: 531531ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: smtpd
priority: 5 Medium
foundin: None
title: Redo backend, use mime token
cmimetype: text/plain
submitter: andreas_kupries
assignee: patthoyts
closer: patthoyts
closedate: 2002-10-08T14:30:40
comment:
  This feature request comes from a chat discussion Dan, 
  Larry, and I had with Gerald W. Lester solving a 
  problem he had with a small smtpd proxy and the smtp 
  module itself.

  smtpd delivers the message as list of lines. smtp 
  expects the message as mime token, which is 
  initialized with a string!

  We believe it would be better if smtpd would deliver
  the incoming message directly as a mime token.

  We actually believe that all front-ends (for example 
  the upcoming pop3 server) should use mime tokens to 
  transfer mail data to and from their backends.


tkt_uuid: 2926387fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: csv
priority: 5 Medium
foundin: None
title: csv::read2queue mishandles embedded newlines
cmimetype: text/plain
submitter: dvrsn
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-01-19T20:22:49
comment:
  Just a typo.  read2queue correctly buffers incomplete lines, but then calls split on the last line read rather than on the buffered multiline data.  


tkt_uuid: 1376637fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: textutil :: expander
priority: 7 High
foundin: None
title: cpush/cpop failure
cmimetype: text/plain
submitter: sarnold75
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-10T21:14:05
comment:
  While doing some HTML automatic generation, a problem
  appeared with the Context Stack:
   textutil::expander pc
   ::pc expand {[::pc cpush texte][::pc cpop texte]}

  creates an error:

   ::pc cget: char doesn't exist at that context (2)

  I fixed it by patching the Op_cpush proc like this :

  proc ::textutil::expander::Op_cpush {name cname} {
      # FRINK: nocheck
      incr [Var level]
      # FRINK: nocheck
      set [Var output-[Get level]] {}
      # FRINK: nocheck
      set [Var name-[Get level]] $cname
      # the first level is init'd elsewhere
      if {[set [Var level]]<2} {
          return
      }
      # important stuff here
      LocInit $cname
      catch {LocSet $cname [LocGet $name]}
      
  }

  and it did work then!


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: 548354ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: base64
priority: 5 Medium
foundin: None
title: yenc testsuite trouble
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-05-28T05:23:54
comment:
  The yencode testsuite does not work if a build 
  directory outside of the tcllib source tree is chosen.
  It will not find its datafile.


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: 1016869fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math
priority: 5 Medium
foundin: None
title: math test suite failures in latest cvs snapshot
cmimetype: text/plain
submitter: lvirden
assignee: arjenmarkus
closer: andreas_kupries
closedate: 2004-09-22T03:55:43
comment:
  sparc sunblad 100 solaris 8 sun c compiler
  tcl 8.4.7

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


tkt_uuid: 672957ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
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: 455732ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mclistbox
priority: 5 Medium
foundin: None
title: selection breaks if 1st column invisible
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-09-07T17:00:18
comment:
  Version info:
  wish: 8.3.3
  mclistbox: 1.02 (and the cvs version)

  The selection gets stuck on the first entry if the
  first column of the mclistbox is made invisble.

  The following snippet produces the error:

  --snip---
  package require mclistbox
  namespace import ::mclistbox::*

  set lb [mclistbox .lb]

  $lb column add uid -visible 0
  $lb column add login -label "Login" -width 10
  $lb column add name -label "Name" -width 14

  $lb insert end [list 0 a anaampje]
  $lb insert end [list 1 b bnaampje]
  $lb insert end [list 2 c cnaampje]

  pack $lb
  ---snip---

  Adding -label or -widht options to the invisible column
  does not matter.

  Moving the invisible column to the end fixes it.

  Happy bughunting,

  Ric


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: 476729ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftp
priority: 5 Medium
foundin: None
title: documentation bug regarding DisplayMsg
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-11-07T02:48:45
comment:
  andreas kupries requested that i log this doc bug
  against ftp.  Additional information about the
  DisplayMsg aspects of the ftp module are available at
  http://mini.net/cgi-bin/wikit/2444.html .  These are
  needed in the man page.


tkt_uuid: 2783019fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: scrollwindow bug - flickering scrollbar
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: oehhar
closedate: 2009-06-29T13:06:44
comment:
  The attached example shows a problem with scrolledwindow in bwidget. The scrolledwindow gets into an infinite loop between xscroll and yscroll when we zoom in out on this example.

  Tcl/tk version : 8.5.3
  BWidget version : 1.8


  package require Tcldot
  package require BWidget

  set graphstring {digraph graph5 {
          node [label="\N"];
          graph [bb="0,0,370,250"];
          "x" [label="AAA\n.Dl", fontsize=12, fontname=zzzfont, style=filled, fillcolor=white, shape=diamond, pos="150,214", width="2.69", height="1.00"];
          z [label=Hs, fontsize=12, fontname=zzzfont, style=filled, fillcolor=white, shape=rectangle, pos="53,64", width="1.47", height="0.50"];
          "y" [label="dl", fontsize=12, fontname=zzzfont, style=filled, fillcolor=white, shape=diamond, pos="247,64", width="3.42", height="1.78"];
          "x" -> z [fontsize=12, fontname=zzzfont, color=black, arrowsize="0.7", label=hs, pos="e,65,82 131,185 113,156 86,115 69,88", lp="152,153"];
          "x" -> "y" [fontsize=12, fontname=zzzfont, color=black, arrowsize="0.7", label=hs, pos="e,220,115 173,186 179,178 187,169 193,160 201,148 209,134 216,121", lp="236,153"];
  }}

  set g [dotstring $graphstring]

  toplevel .t
  set sw [ScrolledWindow .t.sw]
  set cvs [canvas .t.sw.cvs]
  $sw setwidget $cvs
  pack $sw -side top -fill both -expand yes
  bind $cvs <Button-4>  "zoom $cvs 1.1"
  bind $cvs <Button-5>  "zoom $cvs 0.9"
  eval [$g render $cvs dot]
  $cvs configure -scrollregion [$cvs bbox all]

  proc zoom {cvs factor} {
    $cvs scale all 0 0 $factor $factor
    $cvs configure -scrollregion [$cvs bbox all]
  }


tkt_uuid: 3061815fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: csv
priority: 3 Low
foundin: None
title: Docs: Example mixes up alternate
cmimetype: text/plain
submitter: oehhar
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-09-08T20:02:44
comment:
  CSV Dokumentation section "Examples".
  The result boxes are exchanged. The alternate format should result in the empty string for d).


tkt_uuid: 1558351fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: asn
priority: 5 Medium
foundin: None
title: ASN Library
cmimetype: text/plain
submitter: wajih_ur_rehman
assignee: mic42
comment:
  Dear TCL Experts and Developer,

  Recently , I used TCL Asn linrary package which made 
  lots of thing easier. However, I found that bugs or 
  possibilites of improvement.

  Please check the following and see if it will be a 
  good idea to make following changes:

  1. TAG Verification
  In all of the asn Package, after reading TAG value it 
  is verified with Universal TAG , e.g.

      if {$tag != 0x02} {
          return -code error \
              [format "Expected Integer (0x02), but got 
  %02x" $tag]
      }

  This , however , is true only when universal TAGs are 
  in use. In many cases private TAG are also use for 
  the data encoding.

  I think , such checks should be removed as it should 
  be consider programmer responsibility to verify if 
  the TAG is expected , universal or private. Library 
  should not provide any restriction.


  2. TAG Length
  The library package consider TAG length as one byte 
  only. This , however , might not be true in some case 
  where the TAG can be of 2 bytes.

  This should be corrected with the possibility of TAG 
  with variable length.

  3. PeekBytes Procedure?
  There is no procedure for PeekBytes. Sometimes it is 
  necessary to read the byte/bytes without affecting 
  the original Data. ::asn::asnPeekByte though exist 
  but there is nothing like PeekBytes

  4. Output of getByte
  The output byte of asnGetByte gives the result in 
  decimal format. Since it is binary data I will 
  suggest the result should be hex coded format to keep 
  all things in same format.


  5. Introduction of Choce Structure ( and others )
  The ASN library package should be able to handle 
  other kinds of ASN structure e.g. Choice structure

  The Choice structure allows to match one of the 
  various possibilites:

  Choice :: {

            1. Money
            2. Car
            3. Nothing
            
            }

  With this type of encoding any one of the above 
  choice may happen. Therefore , there should be a 
  possibility of passing TAG values as an argument and 
  the procedure should try which to match the TAG and 
  then pass the value back of the choice which actually 
  appeared .

  Similarly , we have SEQOF , SETOF types of data 
  structure which should also be consider.

  Many thanks!

  Wajih


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

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

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

  Tested on BWidget 1.8.


tkt_uuid: 1416808fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: matrix
priority: 5 Medium
foundin: None
title: matrix: test suite bugs
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-29T00:11:27
comment:
  with -debug 1:

  * struct::matrix 1.2.1
  test name 'matrix-0.1' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-0.2' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-0.3' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-0.4' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-0.5' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-0.6' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-0.7' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-0.8' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-0.9' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-0.10' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-0.11' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-0.12' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-0.13' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-1.0' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-1.1' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-1.2' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-1.3' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-1.4' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-1.5' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-2.0' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-2.1' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-2.2' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-2.3' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-2.4' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-2.5' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-2.6' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-2.7' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-3.1' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-3.2' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-3.3' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-3.4' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-3.5' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-3.6' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-3.7' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-3.8' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-3.9' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-4.0' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-4.1' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-4.1a' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-4.2' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-4.3' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-4.4' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-4.5' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-4.6' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-4.7' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-5.0' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-5.1' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-5.2' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-5.3' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.0' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.1' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.2' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.3' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.4' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.5' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.6' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.7' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.8' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.9' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.10' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.11' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.12' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.13' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.14' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.15' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.16' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.17' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.18' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.19' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.20' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.21' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.22' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.23' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.24' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.25' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.26' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.27' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.28' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.29' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.30' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.31' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.32' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.33' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.34' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.35' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.36' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.43' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-6.44' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-7.0' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-7.1' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-7.2' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-7.3' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-7.4' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-7.5' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-7.6' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-7.7' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-7.8' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-7.9' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-7.10' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-8.0' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-8.1' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-8.2' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-8.3' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-8.4' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-8.5' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-8.6' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-8.7' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-8.8' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-8.9' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-8.10' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-8.11' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-8.12' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-9.0' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-9.1' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-9.2' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-9.3' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-9.4' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-9.5' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-9.6' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-9.7' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-9.8' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-9.9' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-9.10' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-9.11' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-9.12' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-9.12a' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-9.13' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name '10.1' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name '10.2' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name '10.3' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name '10.4' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name '10.5' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name '10.6' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name '10.7' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name '10.8' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-10.9' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-10.10' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-10.11' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-10.12' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-10.13' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-10.14' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-10.15' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-10.16' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-10.17' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-10.18' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-10.19' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-10.20' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-10.21' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-11.0' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-11.1' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-11.2' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-11.3' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-11.4' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-11.5' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-11.6' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-11.7' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-11.8' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-11.9' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-11.10' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-11.11' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-11.12' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-11.13' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-11.14' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-12.1' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-13.1' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-12.2' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-13.2' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-12.3' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-13.3' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-12.4' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-13.4' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-12.5' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-13.5' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-12.6' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-13.6' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-12.7' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test
  test name 'matrix-13.7' re-used; prior use in
  /local/src/tcllib/modules/struct/matrix.test


tkt_uuid: 532677ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: new tkchat smiley proposed
cmimetype: text/plain
submitter: lvirden
assignee: hartweg
closer: patthoyts
closedate: 2003-05-02T08:49:09
comment:
  I would like to submit this diff for adding the blush
  smiley.  The image is from the tik tcl/tk aol IM
  browser, but is similar to the h2h one, etc.

  The code is a bit messy because of the } that I used in
  the ascii smiley.  There are inconsistent variations
  for expressing a blush - I chose a set from I think a
  java class I found while googling.


tkt_uuid: 3012669fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Documentation
priority: 5 Medium
foundin: None
title: msgcat man page conflicts with the Tcl core
cmimetype: text/plain
submitter: rmax
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-06-08T18:22:34
comment:
  The msgcat man page of tcllib's doctools module conflicts with the identically named man page from the Tcl core when installing both at the same time.


tkt_uuid: 1795266fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: ftp
priority: 5 Medium
foundin: None
title: ::ftp::geturl
cmimetype: text/plain
submitter: jkjennings
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-09-14T21:33:39
comment:
  Problem: failure on certain addresses

  package require ftp 2.4.4
  package require ftp::geturl 0.2

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

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

  Suggested solution (comp.tcl, Lester): 

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

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


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

  It does:

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

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

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


tkt_uuid: 2444762fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ncgi
priority: 5 Medium
foundin: None
title: Mozilla 3.x breaks ncgi::nvlist
cmimetype: text/plain
submitter: nobody
assignee: welch
comment:
  Somewhere in the 3.x release Mozilla appends a character set on GET requests, which in turn breaks the parsing of env(CONTENT_TYPE), which in turns makes tclhttpd return "dont know how to handle "application/x-www-form-urlencoded; charset=XXX""

  This hack bypasses it, but maybe there's a better way to do it...

  proc ::ncgi::nvlist {} {
      set query [query]
      set type  [type]
      #Quick hack by nikos to overcome Mozilla 3.x which appends charset=xxx to env(CONTENT_TYPE)
      # returning a list, e.g. application/x-www-form-urlencoded; charset=UTF-8
       if {[string match "*;"  [lindex $query 0]]} {
  # set type "application/x-www-form-urlencoded"
  set type "[lindex $query 0]"
  set type "[lindex [split $type ";"] 0]"
  } else {
  }
      #end nikos
      switch -glob -- $type {
  "" -
  text/xml* -
  application/x-www-form-urlencoded* -
  application/x-www-urlencoded* {
      set result {}
          ...........
          ..........  


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

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

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


tkt_uuid: 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: 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: 704219ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
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: 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: 471418ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: textutil
priority: 5 Medium
foundin: None
title: csv to formatted output function?
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-11-12T20:18:17
comment:
  A function that would be useful to have is
  a 'template' type module - perhaps even generalized
  enough to be used with things other than csv - but
  basically that would allow you to supply
  'records'/arrays/csv lines (some kind of input) and out
  would come 'formletter' type output.

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

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


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

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

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

  Best regards,

  Michaël


tkt_uuid: 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: 1566488fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: math :: bignum :: float
priority: 5 Medium
foundin: None
title: failed tests with Tcl 8.5 (64-bit)
cmimetype: text/plain
submitter: dgp
assignee: dgp
closer: dgp
closedate: 2006-09-28T20:13:09
comment:
  Using Tcl HEAD (8.5a5) on a
  64-bit system:

  ==== bigfloat-fromdouble-2.1f Some floating-point
  computations related to command fromdouble FAILED
  ==== Contents of test case:
  return $resultat
  ---- Result was:
  0
  ---- Result should have been (exact matching):
  1
  ==== bigfloat-fromdouble-2.1f FAILED


  ==== bigfloat-int2float-2.9.2.3 Some integer
  computations related to command int2float FAILED
  ==== Contents of test case:
  uplevel 1 $code
  ---- Result was:
  -29127.3114
  ---- Result should have been (exact matching):
  5000000000.0000
  ==== bigfloat-int2float-2.9.2.3 FAILED


  ==== bigfloat-cos-4.4.1.0 Some floating-point
  computations related to command cos FAILED
  ==== Contents of test case:
  return $resultat
  ---- Result was:
  0
  ---- Result should have been (exact matching):
  1
  ==== bigfloat-cos-4.4.1.0 FAILED

  ---- bigfloat-sin-4.4.1.1 start


  ==== bigfloat-sin-4.4.1.1 Some floating-point
  computations related to command sin FAILED
  ==== Contents of test case:
  return $resultat
  ---- Result was:
  0
  ---- Result should have been (exact matching):
  1
  ==== bigfloat-sin-4.4.1.1 FAILED

  ---- bigfloat-cos-4.4.2.0 start


  ==== bigfloat-cos-4.4.2.0 Some floating-point
  computations related to command cos FAILED
  ==== Contents of test case:
  return $resultat
  ---- Result was:
  0
  ---- Result should have been (exact matching):
  1
  ==== bigfloat-cos-4.4.2.0 FAILED

  ---- bigfloat-sin-4.4.2.1 start


  ==== bigfloat-sin-4.4.2.1 Some floating-point
  computations related to command sin FAILED
  ==== Contents of test case:
  return $resultat
  ---- Result was:
  0
  ---- Result should have been (exact matching):
  1
  ==== bigfloat-sin-4.4.2.1 FAILED


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



  ---- dtypemethod-1.6a start

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

      type dog {
          delegate typemethod * to stringhandler

          typeconstructor {
              set stringhandler string
          }
      }

      dog foo bar

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

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

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

          delegate method * to stringhandler
      }

      dog create spot
      spot foo bar

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


tkt_uuid: 1213123fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: DropSite::register fails with multiple droptypes
cmimetype: text/plain
submitter: neil1357
assignee: damonc
closer: oehhar
closedate: 2009-06-30T13:38:16
comment:
  If you specify multiple droptypes to DropSite::register
  and one of the later droptypes does not contain all of
  the operations that an earlier type supported, the
  command will cause an error:

  toplevel .f
  frame .f.fr
  DropSite::register .f.fr -dropcmd foo -dropovercmd bar
  -droptypes {ABC {copy {} move {}} DEF {copy {}}}

  can't read "drop(DEF,mod,4)": no such variable

  I'm not sure about the BWidget drag'n'drop internals,
  but I believe the problem is caused by the failure to
  clear the "masklist" variable in dropsite.tcl:

  --- ..\lib\BWidget-1.7.0\dropsite.tcl   2004-01-23
  10:31:48.000000000 -0800
  +++ C:\Program
  Files\Fs2\Mips\Lib\BWidget-1.7.0\dropsite.tcl   
  2005-06-01 15:53:24.708250000 -0700
  @@ -150,6 +150,7 @@
           set drop(overcmd) $overcmd
           foreach {type ops} $types {
               set drop($type,ops) {}
  +            set masklist {}
               foreach {descop lmod} $ops {
                   if { ![llength $descop] || [llength
  $descop] > 3 } {
                       return -code error "invalid
  operation description \"$descop\""


tkt_uuid: 3160150fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: cursor
priority: 5 Medium
foundin: None
title: invalid command name "SpinBox::config"
cmimetype: text/plain
submitter: tombert
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-01-18T18:18:26
comment:
  Error when doing:

  package re BWidget
  SpinBox .sb -text test
  package re cursor
  cursor::propagate . watch

  thx


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

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

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

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

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

  The pdf-poisson function has a very direct implementation.

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

  Thanks!
  Eric


tkt_uuid: 557040ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: smtp
priority: 5 Medium
foundin: None
title: timeout immediately on large messages
cmimetype: text/plain
submitter: tcoram
assignee: mrose
closer: andreas_kupries
closedate: 2002-07-25T18:44:22
comment:
  sendmessage timeout value grows ridiculously large as
  the size of the message (mime part) increases.

  The calculation used is:
   set secs [expr {(($state(size)>>10)+1)*3600}]
  which is then used by "after [expr {$secs*1000}]" to
  calculate how long to wait for the SMTP server to accept
  the message.

  For small messages, its reasonable. For large messages,
  you effectively never time out. For very large messages,
  you exceed the capacity of an int (and the milliseconds
  become negative) and the timeout happens immediately.

  The calculation needs to be fixed (or capped). Better
  yet, why not just allow a parameter to be passed
  to sendmessage to allow the user to specify how many
  seconds to wait for the message to be sent?

  I have done the latter, and can post a patch when I get
  a decent default calculation for the latter worked out.


tkt_uuid: 3508603fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
resolution: Not Applicable Here
subsystem: json
priority: 5 Medium
severity: Minor
foundin: None
title: json: pretty-printing a dictionary
cmimetype: text/plain
submitter: aldobu
assignee: andreas_kupries
closer: aku
closedate: 2456444.30704422
comment:
  Based on json.tcl (1.1.2)
  I added a new proc named "json2prettydict"

  Aim of this proc is to return a "pretty-printed" tcl-dictionary.

  I think this proc could be useful for documentating complex nested dictionaries.

  - Internal Notes -
  "json2prettydict" is heavily based on existing json2dict and json::parseXXX procs.
  I slightly changed the internal code of all json::parseXXX procs, so that
  these procs, may be called in two ways: for getting a (traditional) tcl-dict
  or for getting a pretty-printed tcl-dict.

  [Source code is attached]

  -------------------------------------
  Here is a demo:

  set jsonStr { \
   { "photos": { "page": 1, "pages": "726", "perpage": 3, "total": "7257", 
      "photo": [
        { "id": "6974156079", "owner": "74957296@N08", "secret": "005d743f82", "server": "7197", "farm": 8, "title": "Kenya Watamu \"Deep Sea Fishing\" \"Indian Ocean\" \"Blue Marlin\"", "ispublic": 1, "isfriend": 0, "isfamily": 0 },
        { "id": "6822988100", "owner": "52857411@N08", "secret": "56630c18e8", "server": "7183", "farm": 8, "title": "Gedi Ruins, Local Guide", "ispublic": 1, "isfriend": 0, "isfamily": 0 },
        { "id": "6822909640", "owner": "52857411@N08", "secret": "f4e392ea36", "server": "7063", "farm": 8, "title": "Local Fisherman, Mida Creek", "ispublic": 1, "isfriend": 0, "isfamily": 0 }
      ] }, "stat": "ok" }
  }
  # First, just for comparision, call json2dict
  set d1 [json::json2dict $jsonStr]
   # result is the following
  if {0} {

  photos {page 1 pages 726 perpage 3 total 7257 photo {{id 6974156079 owner 74957296@N08 secret 005d743f82 server 7197 farm 8 title {Kenya Watamu "Deep Sea Fishing" "Indian Ocean" "Blue Marlin"} ispublic 1 isfriend 0 isfamily 0} {id 6822988100 owner 52857411@N08 secret 56630c18e8 server 7183 farm 8 title {Gedi Ruins, Local Guide} ispublic 1 isfriend 0 isfamily 0} {id 6822909640 owner 52857411@N08 secret f4e392ea36 server 7063 farm 8 title {Local Fisherman, Mida Creek} ispublic 1 isfriend 0 isfamily 0}}} stat ok

  }
   # Then create a pretty printed dictionary
  set d2 [json::json2prettydict $jsonStr]
   # result is the following
  if {0} {

  photos {
  page 1
  pages 726
  perpage 3
  total 7257
  photo {
  {
  id 6974156079
  owner 74957296@N08
  secret 005d743f82
  server 7197
  farm 8
  title {Kenya Watamu "Deep Sea Fishing" "Indian Ocean" "Blue Marlin"}
  ispublic 1
  isfriend 0
  isfamily 0
  }
  {
  id 6822988100
  owner 52857411@N08
  secret 56630c18e8
  server 7183
  farm 8
  title {Gedi Ruins, Local Guide}
  ispublic 1
  isfriend 0
  isfamily 0
  }
  {
  id 6822909640
  owner 52857411@N08
  secret f4e392ea36
  server 7063
  farm 8
  title {Local Fisherman, Mida Creek}
  ispublic 1
  isfriend 0
  isfamily 0
  }
  }

  }
  stat ok

  }

  # -- end


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

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

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


tkt_uuid: 3138526fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: smtp
priority: 5 Medium
foundin: None
title: Wrong email server name gives unrelated error message
cmimetype: text/plain
submitter: arjenmarkus
assignee: mrose
comment:
  If you pass the wrong server name to the smtp::sendmessage procedure, then the error message is:

  premature end-of-file from server

  This may be true, but it does not easily lead to the cause of the problem: the specified server does not exist.

  Please try to detect this type of error and return a message that is more to the point


tkt_uuid: 520903ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Duplicate
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ScrolledWindow: 'jumping' wi
cmimetype: text/plain
submitter: bach
assignee: hobbs
closer: hobbs
closedate: 2003-02-25T10:03:07
comment:
  Motivation:
  The ScrolledWindow widget has a problem when making it
  centered together with automanaged scrollbars: each
  time the displayed frame changes its size, the
  scrollbars might get gridded for a short time when they
  are not needed and consequently ungridded shortly after
  that, causing the inner frame to 'jump'.

  The following patch addresses this by adding an
  -autodelay option. If this is used, the widget will
  wait (-autodelay milliseconds) before it calls the
  routine the grids/ungrids the scrollbars and will
  always use the last values given to it so that multiple
  calls to the widget just get 'compressed' to one call,
  effectively using the last valid values.

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

  Effects to existing code:
  None. The default is to behave like no -autodelay was
  given.

  Bugs:
  None that I knew of.


tkt_uuid: 2499978fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: tklib
priority: 5 Medium
foundin: None
title: Infinite bug on widget::scrolledwindow
cmimetype: text/plain
submitter: ofv
assignee: hobbs
comment:
  On a dialog that contains a ttk::treeview  as the widget of a scrolledwindow, when the treeview has certain items, this errors happens:

  too many nested evaluations (infinite loop?)
      (procedure "::snit::RT.CallInstance" line 5)
      invoked from within
  "::snit::RT.CallInstance ::widget::scrolledwindow::Snit_inst1 _set_scroll hsb 0 0.00555556"
  too many nested evaluations (infinite loop?)
      (procedure "::snit::RT.CallInstance" line 1)
      invoked from within
  "::snit::RT.CallInstance ::widget::scrolledwindow::Snit_inst1 _set_scroll vsb 0 0.00403226"
  too many nested evaluations (infinite loop?)
      (procedure "Tree::_update_scrollregion" line 42)
      invoked from within
  "Tree::_update_scrollregion .i_form_1.sw.i_frame.frame.lf_2.sw.tree"
      (command bound to event)
  too many nested evaluations (infinite loop?)
      (procedure "::snit::RT.CallInstance" line 42)
      invoked from within

  (this repeats several times).

  Unneded horizontal and vertical scrollbars are displayed too.

  The problem goes away with this patch:

  Index: scrollw.tcl
  ===================================================================
  --- scrollw.tcl(revision 333)
  +++ scrollw.tcl(working copy)
  @@ -183,7 +183,7 @@
   if {!$realized} { return }
   # This is only called if the scrollbar is attached properly
   upvar 0 $varname sb
  -if {$sb(auto)} {
  +if {$sb(auto) && !$sb(lock)} {
       if {!$sb(lock)} {
   # One last check to avoid loops when not locked
   if {$vmin == $sb(lastmin) && $vmax == $sb(lastmax)} {

  (I didn't remove the second if, which is now redundant, for making clear the ciritical change).


tkt_uuid: 1102131fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: log
priority: 8
foundin: None
title: logger: does not print full service name
cmimetype: text/plain
submitter: hemanglavana
assignee: mic42
closer: mic42
closedate: 2005-02-09T17:05:53
comment:
  Hi,

  If I create a logger service name called "foo::bar", it
  simply prints "foo" in the log message instead of the
  full service name. See below:

  godel:144> cat foobar.tcl
  #!/bin/sh
  # \
  exec tclsh "$0" ${1+"$@"}


  package require logger

  namespace eval ::foo {

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

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

  }

  namespace eval ::foo::bar {

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

  }

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

  ::foo::x
  ::foo::bar::y

  godel:145> tclsh foobar.tcl
  foo level = notice
  foo::bar level = info
  [Fri Jan 14 01:47:04 EST 2005] [foo] [warn] 'foo::x warn'
  [Fri Jan 14 01:47:04 EST 2005] [foo] [warn]
  'foo::bar::y warn'
  [Fri Jan 14 01:47:04 EST 2005] [foo] [info]
  'foo::bar::y info'
  godel:146> 

  I would have expected the above output to be as follows:

  [Fri Jan 14 01:47:04 EST 2005] [foo] [warn] 'foo::x warn'
  [Fri Jan 14 01:47:04 EST 2005] [foo::bar] [warn]
  'foo::bar::y warn'
  [Fri Jan 14 01:47:04 EST 2005] [foo::bar] [info]
  'foo::bar::y info'

  Without full service name, it is difficult to
  distinguish/debug as to which module the message is
  comming from.

  Hemang.


tkt_uuid: 2359926fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: fileutil
priority: 5 Medium
foundin: None
title: fileutil::tempdir on windows
cmimetype: text/plain
submitter: nobody
assignee: nobody
comment:
  As the manual states, on windows, the following locations are checked in step 5 of the process in determining the location for temp files:
  "...C:\TEMP, C:\TMP, \TEMP, and \TMP are tried in that order..."
  I think, usually there are no such dirs on windows. If a process runs without a logged on user (in the system context), the directiory usually is %systemroot%\temp (which is c:\windows\temp or c:\winnt\temp, e.g.), otherwise, the temp dir is normally somewhere in the current user's profile path, to where the TMP-Var points. In generall, it's not 100% safe to rely on environment variables - I think it would be more foolproof to ask the system via API call about the right location... 


tkt_uuid: 578460ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: tree
priority: 5 Medium
foundin: None
title: struct::tree move within same parent
cmimetype: text/plain
submitter: btheado
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-07-08T23:26:14
comment:
  The documentation for the tree move command states:
  "Make the specified nodes children of parent, inserting them into 
  the parent's child list at the index given by index. "

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

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

  Expected result:
  node1 node0 node2

  Actual result:
  node0 node1 node2


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


tkt_uuid: 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: 3141584fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: units
priority: 5 Medium
foundin: None
title: units::convert bug (when value is zero)
cmimetype: text/plain
submitter: yyamasak
assignee: techentin
closer: techentin
closedate: 2010-12-22T15:17:01
comment:
  tcllib version 1.1.2

  If 0 is specified as source value, units::convert regards it as (blank value + source units). As a result, it returns 1.0 * scale.

  For example,
  ::units::convert 0.0cm cm; #=> 0.0 (Correct!)
  ::units::convert 0cm cm; #=> 1.0 (Wrong! The same result as ::units::convert cm cm)
  ::units::convert 0cm mm; #=> 10.0 (Wrong! The same result as ::units::convert cm mm)


tkt_uuid: 1407811fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: csv
priority: 7 High
foundin: None
title: read2* incorrect for multi-line data
cmimetype: text/plain
submitter: hobbs
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-17T03:51:42
comment:
  This patch applies to read2matrix, but each API that
  reads from a channel needs to account for multiline CSV
  data.

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

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


tkt_uuid: 530907ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: exif
priority: 5 Medium
foundin: None
title: exif 1.0 bug patch
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-08-16T21:38:46
comment:
  I found some bugs into exif 1.0.
  Maybe these are original bugs.
  I've improved on FlashPixVersion, ShutterSpeedValue,
  SubjectDistance, Flash and FlashMode.
  Here is a patch I've made.


tkt_uuid: 1224203fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Rejected
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Tree widget substitutes wrong path for %W in command binding
cmimetype: text/plain
submitter: jaspert
assignee: damonc
closer: oehhar
closedate: 2009-06-30T13:27:06
comment:
  If you put %W in the command bound to an action on a
  Tree widget you expect to get the path of the tree
  widget in its place when the command is invoked. But
  instead you get a canvas called c which is a child of
  the tree widget, as in this simple example...

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


tkt_uuid: 3036124fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: math :: linearalgebra
priority: 5 Medium
foundin: None
title: determineSVD gives wrong dimensions in U for m<n
cmimetype: text/plain
submitter: anyeli
assignee: arjenmarkus
comment:
  Given an m-by-n matrix A, lassign "[::math::linearalgebra::determineSVD $A] U S V" will return an m-by-n matrix U.  While this is often what you want for overdetermined systems (m>n), this is not what you want for underdetermined systems (m<n) and is not consistent with any definition of the SVD I know of.  If (m<n), the S and V matrices should be truncated if truncation is desired.

  Incidentally, sometimes I don't want the U matrix to be truncated when m>n, for example when I am as interested in the residuals than the actual fit.


tkt_uuid: 2910682fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: yaml
priority: 5 Medium
foundin: None
title: yaml's dict package needs
cmimetype: text/plain
submitter: dgp
assignee: kanryu6
comment:
  Testing tcllib-1.12 with Tcl 8.4.19, I see:

  [*   ]  [8.4.19]  yaml                  Error in huddle.tcl: bad subcommand "with": must be append, create, ...

  The [dict with] command is not part of Tcl 8.4, and
  the [package require dict] is apparently getting a
  version of the dict package not recent enough to
  have the required subcommand.  Adding a version
  requirement should help guard against this.

  Also, the stanza,

  if {$::tcl_version < 8.5} {
      package require dict
  }

  is buggy.  Use [package vcompare]
  instead of trying to treat version numbers
  as if they were real decimal numbers.


tkt_uuid: 3041989fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: cmdline
priority: 7 High
foundin: None
title: Enhance documentation and help message
cmimetype: text/plain
submitter: oehhar
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-09-08T20:25:24
comment:
  The procedure "getoptions" aparently always understands "--" as "end of flags".

  IMHO
  - this should be stated in the documentation
  - this should be stated in the generated help message. The "-? /-help" automatically takes two output rows so another automatic would not harm.

  Other issue:
  - the format of the return value of the function is not explained in the help: alternating list of index value. The example shows it.

  Thank you,
  Harald


tkt_uuid: 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: 410399ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: None
priority: 5 Medium
foundin: None
title: New module: html parser
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-03-26T16:55:33
comment:
  Another new module, a html parser based upon the core
  of Stephen Uhler's html_library + some utilities from
  my book scanning project.

  Anyone aware of tests for this parser ?


tkt_uuid: 3066872fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: comm
priority: 5 Medium
foundin: None
title: comm server blocks indefinitely
cmimetype: text/plain
submitter: apnadkarni
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-09-15T19:52:02
comment:
  Bug reported by skipper600 on the wiki (http://wiki.tcl.tk/2507)

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

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

  /Ashok


tkt_uuid: 1229352fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct
priority: 8
foundin: None
title: add unget to queues
cmimetype: text/plain
submitter: dvrsn
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-09-30T23:48:50
comment:
  It would be useful to have an 'unget' operation
  available for queues, having the functionality of
  inserting items at the head of the queue.  The main
  purpose for this would be exception handling:


  while {[$q length] > 0} {
      if {[catch {
          set i [$q get] 
          process-item $i
      }]} {
          $q unget $i
      }
  }

  The same functionality can easily be achieved using
  peek initially and then using get to discarding the
  item in success cases, but to me handling it as an
  exceptional case reads cleaner.


tkt_uuid: 470273ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget: MainFrame menu inconsistency
cmimetype: text/plain
submitter: bach
assignee: hobbs
closer: hobbs
closedate: 2001-12-29T01:02:02
comment:
  Motivation:
  -----------

  The BWidget MainFrame widget shows a slight
  inconsistency in the
  handling of menu (de-)activation when using multiple
  tags.

  Consider this small example:

  ------- snip
  package require BWidget
  set descmenu {
   "&File" all file 0 {
    {command "Exit 1" {tag_bla tag1} "" {} -command exit}
    {command "Exit 2" {tag_bla tag2} "" {} -command exit}
   }
  }
  set mainframe [MainFrame .mainframe -menu $descmenu]
  pack $mainframe -expand yes -fill both

  #$mainframe setmenustate tag1 normal
  ------- snap

  Start the program, both menuentries are active. Now,
  remove the comment #
  from the setmenustate line, start the program: the
  "Exit 1"-entry is
  suddenly _disabled_ instead of normal.


  Discussion:
  -----------
  Internally, BWidget uses the tags as boolean states
  whether a menu
  should be shown normal or disabled. Only if each and
  every tag is set
  to normal (1) the entry is displayed in normal state.

  Unfortunately, the default initialization of the
  entries is set to 0
  (disabled)! (The menues after the start do not reflect
  this, they are
  all normal).

  For the example given above, after init, one has this:

    tag_bla 0
    tag1    0
    tag2    0

  After the setmenustate, tag1 is 1, but tag_bla is still
  0, making the
  entry be displayed as disabled (0).

  Possible remedies:
  ------------------
  1) have MainFrame make a refresh of the Menudisplay
  according to the
      tags. This would probably break a great many
  existing applications
      that do not set the tags explicitly to normal.
  2) document this as a known quirk and have everyone
  maually set all
      the tags to normal with setmenustate when starting
  their program
  3) change the behaviour of the default initialization
  to 1 (normal).
      This *could* break existing programs who rely on
  this
      ... undocumented feature, but I doubt it.

  I'd tend to 3), as I see this as the expected
  behaviour. Anyway, I
  attached the patches for it (they fix the same problem
  for the menus
  themselves, too) in diff -c format.

  The line must be changed in 
    proc MainFrame::_create_menubar { path descmenu } 
  and 
    proc MainFrame::_create_entries { path menu bg
  entries } {


  Bastien


tkt_uuid: 1113348fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: logger
priority: 5 Medium
foundin: None
title: No way for logproc to discover servicename
cmimetype: text/plain
submitter: mic42
assignee: mic42
comment:
  Currently there is no way for a logproc to discover its
  servicename.

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

  There is a workaround using the older logproc syntax
  though.

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

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

  Michael


tkt_uuid: 654762ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
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: 1301707fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: sha1
priority: 8
foundin: None
title: TIP 237 compatibility patch
cmimetype: text/plain
submitter: dgp
assignee: patthoyts
closer: andreas_kupries
closedate: 2005-09-30T22:12:44
comment:
  TIP 237 proposes for Tcl integer
  computations to support an
  unlimited integer range.

  The sha1 package does its
  computations assuming a
  fixed-size buffer of at least
  32-bits.

  Doing unlimited range calculations
  won't exactly be wrong, but it will
  mean computing with truly
  enormous numbers, spending an
  ever-increasing amount of time,
  only to throw away all but the
  lowest 32-bits.

  Better to use the int(.) function
  to explicitly but the modular
  nature of the calculation in place.

  Here's a patch.


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: 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: 1230737fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: No cleanup after failure in bwidget::init
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: oehhar
closedate: 2009-06-29T16:30:38
comment:
  I think there is a bug in Widget::init, line 66 (4th
  from below): set pathopt($option)
  [$Widget::_optiontype($type) $option $value [lindex
  $optdesc 3]].
  The command that gets executed can throw an exception
  for example if an invalid value for an Enum is passed.
  This exception should be caught to unset pathopt and
  pathmod. As it is now, I am tempted to call this a
  memory leak.

  Example run showing the bug:
  wish
  % package require BWidget
  1.7
  % LabelFrame .lblf -side foo
  bad side value "foo": must be left, right, top or bottom
  % namespace eval ::Widget::LabelFrame {puts stderr
  [lsort [info vars]]}
  .lblf:mod .lblf:opt argc argv argv0 auto_index
  auto_oldpath auto_path env errorCode errorInfo map
  map.f map.l map:cmd opt optionClass optionExports sync
  tcl_interactive tcl_libPath tcl_library tcl_patchLevel
  tcl_pkgPath tcl_platform tcl_rcFileName tcl_version
  tk_library tk_patchLevel tk_strictMotif tk_version

  Solution:
  if [catch {$Widget::_optiontype($type) $option $value
  [lindex $optdesc 3]} msg] {
          if { [info exists pathopt] } {
              unset pathopt
          }
          unset pathmod
          return -code error "$msg"
  } else {
          set pathopt($option) "$msg"
  }


tkt_uuid: 1323146fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: dns
priority: 9 Immediate
foundin: None
title: dns: ip test fail on 64-bit systems
cmimetype: text/plain
submitter: dgp
assignee: aakhter
closer: andreas_kupries
closedate: 2005-10-18T17:53:05
comment:
  Did this testing with Tcl 8.4.11-cvs
  to avoid any question whether bignum
  bugs were at fault.

  These tests fails on a 64-bit system:

  ==== ::ip:maskToInt-2 dotted form FAILED
  ==== Contents of test case:

          ::ip::maskToInt 255.255.255.255
      
  ---- Result was:
  -1
  ---- Result should have been (exact matching):
  4294967295
  ==== ::ip:maskToInt-2 FAILED


  ==== ::ip:nextNet-7 1.1.1.1/32 -> 1.1.29.0 by 2 FAILED
  ==== Contents of test case:

          ip::nextNet 1.1.1.1 255.255.255.255 2
      
  ---- Result was:
  0xffffffff01010103
  ---- Result should have been (exact matching):
  0x01010103
  ==== ::ip:nextNet-7 FAILED


tkt_uuid: 528298ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: pop3
priority: 8
foundin: None
title: Pop3 eof (".\r") failure: self destruct
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-03T02:07:00
comment:
  Submitted by George@Orwellian.Org.

  This code frag reads most of a message
  that's coming in via "RETR <msg#>",
  then it loops line-by-line until it gets
  the <period> termination.

  (Bug work-around shown.)

  ----

  proc ::pop3::RetrFast {chan size} {
      # Bug here.
      # set msgBuffer [read $chan $size]
      # Bug work-around here:
      set msgBuffer [gets $chan]

      # We might have read not enough because of
  .-stuffed lines.
      # Read the possible remainder in line by line
  fashion!
      #
      # get the terminating "."
      # sometimes the gets returns nothing,
      # need to get the real terminating "."

      while {[set line [gets $chan]] != ".\r"} {
          append msgBuffer $line
      }

  ----

  After running it through a popboxen of 14Mb
  of over 900 messages, I hit a failure.

  The "read $chan $size" managed to read in
  most of the message, and this happened to
  land just before the period that ended a
  sentence.

  The next "gets" then received a ".\r" causing
  early termination of the message, and worse:
  it caused the pop3 code to get out-of-sync
  with talking to the pop server.

  I spent a lot of time putting in debug 'puts'
  to find this bleeping problem.

  ---- Trace of it dying

  Valley Stream, NY  11581
  if you send a postal money order , i will ship the same
  day it arrives.
  Please be sure to add shipping charges and include your
  name and street
  address, as well as listing the item/s you've won.
  I also accept Bidpay'
  **** line='.' (last line)
  QUIT
  **** Got to here #2.
  ::pop3::retrieve: got to here #11.
  ::pop3::retrieve: got to here #15.
  ::pop3::retrieve: got to here #16.
  ::pop3::retrieve: got to here #1.
  ::pop3::retrieve: index=138, cstate='list'.
  ::pop3::retrieve: got to here #4.
  ::pop3::send: cmdstring='LIST 138'.
  ::pop3::send: popRet='thank'.
  No messages? ='k'.
  Exit 1

  ---- The full end of the pop message:

  Valley Stream, NY  11581
  if you send a postal money order , i will ship the same
  day it arrives.
  Please be sure to add shipping charges and include your
  name and street
  address, as well as listing the item/s you've won.
  I also accept Bidpay.
  thank
  you
  charles
  (l as letter l, not #1)

  ----

  I would also suggest changing this 'error' command
  to return the full line, not "4 end":

  proc ::pop3::send {chan cmdstring} {
     global PopErrorNm PopErrorStr debug

     if {$cmdstring != {}} {
        puts $chan $cmdstring
     }

     set popRet [string trim [gets $chan]]

     if {[string first "+OK" $popRet] == -1} {
         error [string range $popRet 4 end]
     }


tkt_uuid: 1492211fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: bwidget
priority: 7 High
foundin: None
title: NoteBook Tab Deletion Problems
cmimetype: text/plain
submitter: davidhbigelow
assignee: hobbs
closer: hobbs
closedate: 2006-06-14T17:38:32
comment:
  If you have 6 notebook tabs, and start deleting them 
  from the middle to the end (e.g. index 2 -> end), the 
  tabs will either not reorganize properly and the 
  final tab will throw an exception.

  If a middle tab is removed, the tabs should 
  automatically slide-down to take it's place.


tkt_uuid: 1172924fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: tklib: ctext
priority: 4
foundin: None
title: doctools style man for ctext
cmimetype: text/plain
submitter: mic42
assignee: georgeps
closer: georgeps
closedate: 2005-06-21T03:32:49
comment:
  Hi,

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

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


  Michael


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

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

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

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

  See the attached patch against tcllib head.

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


tkt_uuid: 561391ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: error in ListBox::move
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2002-06-04T21:23:10
comment:
  Looks like a bug in ListBox::move: when you move an 
  item to "end", the screen messes up. Fix:

  change lines 392-396

      if { ![string compare $index "end"] } {
          lappend data($path,item) $item
      } else {
          set data(items) [linsert $data(items) $index $item]
      }

  to
      set data(items) [linsert $data(items) $index $item]

  (effectively deleting 392-394, 396)

  in listbox.tcl (see attached file)


tkt_uuid: 602726ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: None
subsystem: ftp
priority: 5 Medium
foundin: None
title: Open -mode passive fails
cmimetype: text/plain
submitter: jcoppens
assignee: andreas_kupries
closer: jcoppens
closedate: 2002-08-31T02:01:45
comment:
  Hi all.

  I tried to download a file using the -mode passive
  option when 
  establishing the link. It connected, autenticated, sent the
  data transfer command, but hung on the actual transfer
  - just
  like active mode with a firewall.

  I captured the data stream, and didn't find the PASV
  exchange
  anywhere. To check it the server permitted passive mode, I
  did the exchange with the command-line ftp command - no
  problem. (And the data stream opened with the PASV cmd
  in this case)

  Suggestions?

  John


tkt_uuid: 1239915fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ldap
priority: 5 Medium
foundin: None
title: Bad processing of "*" in ldap::search
cmimetype: text/plain
submitter: pdav
assignee: loewerj
closer: mic42
closedate: 2005-07-20T11:59:04
comment:
  The ldap::search processing of substrings does not    
  handle "*" when used in more complex situations    
  than "*x", "*x*" or "x*". For example, this little test    
  program displays :    
     (sn=david) : 3 result(s)   
     (sn=da*id) : 0 result(s)     <--- obviousely wrong!   
     
  ------------------------------------------------------------------------   
  #!/usr/local/bin/tclsh8.4     
   
  package require ldap 
   
  set host ldap.u-strasbg.fr 
  set base "o=ulp" 
  set filter1 "(sn=david)" 
  set filter2 "(sn=da*id)" 
   
  set ldapfd [::ldap::connect $host] 
  set r1 [::ldap::search $ldapfd $base $filter1 {}] 
  set r2 [::ldap::search $ldapfd $base $filter2 {}] 
  ::ldap::disconnect $ldapfd 
   
  puts "$filter1 : [llength $r1] result(s)" 
  puts "$filter2 : [llength $r2] result(s)" 
  --------------------------------------------------------------------------   
    
  The attached patch provides a general solution to the 
  "*" handling. It is still not the complete solution to RFC 
  2254, but a little step forward. 
  .. :-( 


tkt_uuid: 1469593fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
resolution: Accepted
subsystem: csv
priority: 5 Medium
foundin: None
title: csv - Add delimiter support beyond double-quotes
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-06-15T22:00:51
comment:
  The CSV package that comes with tcllib only accepts
  double-quotes as the delimiter character when parsing
  input data or when generating output.

  I have changed it to accept any character as delimiter.
   The delimiter can be specified as an optional extra
  argument. 


  Sample:

  % package req csv

  % ### use single quote as delimiter
  % set line "1,'abc , def',ttt,20.5"


  % csv::split $line , '
  1 {abc , def} ttt 20.5

  % ### join the list back again with @ as delimiter
  % ### and : as separator
  % set line2 [csv::join [csv::split $line , '] : \@]
  @1@:@abc , def@:@ttt@:@20.5@

  % ### get back the original list
  % csv::split $line2 : @
  1 {abc , def} ttt 20.5


tkt_uuid: 1584235fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ftp
priority: 5 Medium
foundin: None
title: Nlist against win. IIS behaves bizar
cmimetype: text/plain
submitter: cdclercq
assignee: andreas_kupries
comment:
  Hi,
  Tested with tcllib 1.9 (ftp 2.4.4)
  (Test cases perform different be also 'strange' with
  tcllib 1.8) AGAINST A WINDOWS IIS server! When I test
  against a Solaris machine everything works fine.

  ftp::NList handle ?directory? 
  When directory is passed I encountered following problems:

  Case1: directory has >1 node and NOT ending with a slash
  (eg. edidata/Catalog )The resulting files are prefixed
  with the entire directory. Correct I think BUT the
  filename portion is separared with a backslash (should
  be slash). The directory keeps his slash.

  Case2: When I append a slash to directory
  (edidata/Catalog/). This solves the problem.
  (This is the correct behaviour I think.)

  Case3: directory is only one node and NOT ending with a
  slash (eg. Catalog ) the resulting files are NOT
  PREFIXED with the directory name. (which should be I
  think, altough not documented)

  Case4: When I append a slash to directory
  (edidata/Catalog/). This solves the problem 
  (This is the correct behaviour I think.)


  Testcases:
  on ftp server directory structure:
  editdata/Catalog
  Catalog contains some files eg. 
  einpr45012023322_I.XML einpr45012023322_I.XML

  package require ftp

  set h_ftp [ftp::Open 10.17.100.239 myUser myPwd -port
  23 -mode active]

  # Case 1
  ftp::NList $h_ftp  edidata/Catalog

  # Case 2
  ftp::NList $h_ftp  edidata/Catalog/

  ftp::Cd $h_ftp edidata

  # Case 3
  ftp::NList $h_ftp  Catalog

  # Case 4
  ftp::NList $h_ftp  Catalog/


  Output AGAINST IIS ftp server WITH the option Directory
  listing style = 'MS-DOS':
  % package require ftp
  2.4.4
  %
  % set h_ftp [ftp::Open 10.17.100.239 myUser myPwd -port
  23 -mode active]
  0
  %
  % # Case 1
  % ftp::NList $h_ftp  edidata/Catalog
  {edidata/Catalog\einpr45012023322_I.XML}
  {edidata/Catalog\einpr47121440651_I.XML
  }
  %
  % # Case 2
  % ftp::NList $h_ftp  edidata/Catalog/
  edidata/Catalog/einpr45012023322_I.XML
  edidata/Catalog/einpr47121440651_I.XML
  %
  % ftp::Cd $h_ftp edidata
  1
  %
  % # Case 3
  % ftp::NList $h_ftp  Catalog
  einpr45012023322_I.XML einpr47121440651_I.XML
  %
  % # Case 4
  % ftp::NList $h_ftp  Catalog/
  Catalog/einpr45012023322_I.XML
  Catalog/einpr47121440651_I.XML

  Output (OK I think) AGAINST SOLARIS machine (ftpd daemon):

  % package require ftp
  2.4.4
  %
  % set h_ftp [ftp::Open srvdev myUser myPwd -port 21
  -mode active]
  0
  %
  % # Case 1
  % ftp::NList $h_ftp  edidata/Catalog
  edidata/Catalog/einpr45012023322_I.XML
  edidata/Catalog/einpr47121440651_I.XML
  %
  % # Case 2
  % ftp::NList $h_ftp  edidata/Catalog/
  edidata/Catalog/einpr45012023322_I.XML
  edidata/Catalog/einpr47121440651_I.XML
  %
  % ftp::Cd $h_ftp edidata
  1
  %
  % # Case 3
  % ftp::NList $h_ftp  Catalog
  Catalog/einpr45012023322_I.XML
  Catalog/einpr47121440651_I.XML
  %
  % # Case 4
  % ftp::NList $h_ftp  Catalog/
  Catalog/einpr45012023322_I.XML
  Catalog/einpr47121440651_I.XML

  Output AGAINST IIS with directory listing style = 'UNIX':
  % package require ftp
  2.4.4
  %
  % set h_ftp [ftp::Open 10.17.100.239 els.vedior
  mon23oct -port 23 -mode active]
  0
  % # Case 1
  % ftp::NList $h_ftp  edidata/Catalog
  edidata/Catalog/einpr45012023322_I.XML
  edidata/Catalog/einpr47121440651_I.XML
  %
  % # Case 2
  % ftp::NList $h_ftp  edidata/Catalog/
  edidata/Catalog/einpr45012023322_I.XML
  edidata/Catalog/einpr47121440651_I.XML
  %
  % ftp::Cd $h_ftp edidata
  1
  %
  % # Case 3
  % ftp::NList $h_ftp  Catalog
  einpr45012023322_I.XML einpr47121440651_I.XML
  %
  % # Case 4
  % ftp::NList $h_ftp  Catalog/
  Catalog/einpr45012023322_I.XML
  Catalog/einpr47121440651_I.XML

  THIS IS ALMOST CORRECT in "Case 3" the file is not
  prefixed with the directory.

  My Workarounds: 
  1) Avoid IIS
  2) If IIS: set directory listing to UNIX, and do not
  use single node directories (I added an extra directory
  level just to avoid this problem)


tkt_uuid: 575376ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: profiler
priority: 8
foundin: None
title: use execution traces for tcl8.4+
cmimetype: text/plain
submitter: hemanglavana
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-14T07:25:42
comment:
  Module: profiler

  I am attaching a patch that makes use of [trace add execution ..] command
  available in tcl8.4 version for profiling. The changes are as follows:

   o The current API is _not_ modified, only few internal procedures 
      have been changed.
   o "if [package vsatisifies [package provide Tcl] 8.4] .. else .." 
      construct is used to support both versions of tcl: 8.3 & 8.4
   o The code inside proc Handler is split into two new procs:
      enterHandler and leaveHandler which are called by Handler.
      Handler proc is used with tcl8.3 only
   o  A new proc TraceHandler, used with tcl8.4+, is invoked by
      enter/leave execution traces on commands
   o proc profProc either sets up execution traces or proc renames
      based on tcl version
   o profiler package version is incremented to 0.2.1
   o Added a test constraint called tcl8.3only in profiler.test file.
     5 tests are skipped for tcl8.4+ version because these tests
     work with internals of profiler package -- these rely on fact
     that procs are renamed to <name>ORIG in tcl8.3 version.

  The following simple test shows some improvement in performance between
  tcl8.3 and tcl8.4 versions. Note however that this improvement could be simply
  because 8.4 version executes faster and not due to use of execution traces.

  godel:35> tclsh test.tcl
  tcl version = 8.3.4
  time        = 602 microseconds per iteration
  godel:36> /tmp/hlavana/tcltk/bin/tclsh8.4 test.tcl
  tcl version = 8.4b1
  time        = 472 microseconds per iteration
  godel:37> cat test.tcl 

  set auto_path [linsert $auto_path 0 /auto/vwsahr/cvs-sf/tcllib/modules/profiler]
  package require profiler

  ::profiler::init
  proc foo {} {}

  puts "tcl version = [info patch]"
  puts "time        = [time foo 10000]"
  godel:38> 

  In future, the profiler package can be updated to trace all commands as well.
  Currently, it can only trace functions defined using proc command. This may
  require some changes in APIs of profiling packages.


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

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


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

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


tkt_uuid: 539952ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 3 Low
foundin: None
title: odd mime/smtp/Trf interaction
cmimetype: text/plain
submitter: mrose
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-05-09T05:02:39
comment:
  in using Tcl 8.3.2nb2 and Trf2.1 with the current 
  tcllib, two odd things happen.

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

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

  patches attached.

  /mtr


tkt_uuid: 1196567fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: app: tkchat
priority: 5 Medium
foundin: None
title: Automatic clean-up of the NickList
cmimetype: text/plain
submitter: wildcard_25
assignee: wildcard_25
closer: wildcard_25
closedate: 2005-05-17T09:18:47
comment:
  This adds automatic removal of old nicks and 
  associated data (ie Color and Visibility) from the 
  resource file.
  Old nicks are removed after 30 days of non-usage, 
  except for your own. This is done through the 
  addition of a time stamp to the nick in the NickList.

  The 30 days is hard-coded but it should be easy 
  enough to make it into a configurable menu option.

  Old resource files are automatically updated to the 
  new format.


tkt_uuid: 466219ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: Extend handling of userinfo
cmimetype: text/plain
submitter: andreas_kupries
assignee: patthoyts
closer: patthoyts
closedate: 2004-06-24T10:41:53
comment:
  * display userinfo in a dialog box if asked.
  * optionally display the images (if registered)
    for the people recognized as online.


tkt_uuid: 2499603fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: fileutil::jail returns wrong results in repeated execution
cmimetype: text/plain
submitter: apnadkarni
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-09-24T22:29:33
comment:
  See console output below:

  (woof) 48 % package require fileutil
  1.13.5
  (woof) 49 % ::fileutil::jail /temp /a
  /temp/a
  (woof) 50 % ::fileutil::jail /temp /a
  /a
  (woof) 51 % ::fileutil::jail /temp /b
  /temp/b
  (woof) 52 % ::fileutil::jail /temp /b
  /b

  I see this as pretty serious given the intent of jail is to provide some level of security.

  Platform is Tcl 8.6b1 on XP

  /Ashok


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

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

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

  Methods have the same problem, naturally.

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


tkt_uuid: 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: 3610022fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: ftp
priority: 5 Medium
foundin: None
title: Unprotected close causes script crash
cmimetype: text/plain
submitter: guitarzar
assignee: andreas_kupries
closer: guitarzar
closedate: 2013-04-05T15:15:26
comment:
  In tcllib /modules/ftp on a line near the end of the ftp.tcl file there is:

  close $ftp(SourceCI)

  Can you please change this to:

  catch {close $ftp(SourceCI)}

  to prevent crashes? Thanks!


tkt_uuid: 1412021fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: sasl
priority: 5 Medium
foundin: None
title: Ignoring -service option in DIGEST-MD5
cmimetype: text/plain
submitter: nobody
assignee: patthoyts
closer: patthoyts
closedate: 2006-04-20T10:08:40
comment:
  Option -service is ignored in DIGEST-MD5 SASL auth
  method. digest-uri is always set to smtp/$realm.

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


tkt_uuid: 1294733fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: html
priority: 8
foundin: None
title: Two small html helpers
cmimetype: text/plain
submitter: oliversix
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-10-03T22:23:32
comment:
  Because I used PHP for the web usually I missed some
  replacement for html_entities and nl2br in the html
  module of tcllib.


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: 3062782fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: graphops.test fail
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: sf-robot
closedate: 2010-09-29T19:33:10
comment:
  ==== modules/struct/graphops.test graphop-ttcl-gtcl-stcl-sttcl-qtcl-bipartite-3.2 FAILED =========
  ==== Contents of test case:

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

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

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


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

  Actual bug appears to be in queue_oo.tcl ?


tkt_uuid: 3603702fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: clock
priority: 7 High
foundin: None
title: clock::iso8601 test error
cmimetype: text/plain
submitter: gahr
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2013-02-08T19:21:15
comment:
  the test clock-iso8601-2.1 fails because the expected result is TZ-dependent. The attached patch fixes it by re-formatting the timestamp back to %D.


tkt_uuid: 747674ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
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: 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: 567326ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 8
foundin: None
title: install.tcl script fails
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-21T18:32:07
comment:
  Platform: SPARC Solaris 2.6
  Tcl / Tk 8.4a5
  tcllib-20020610.tar.gz from ftp.activestate.com

  When attempting to make use of the new install.tcl
  script, I get
  this error:
  $ ./install.tcl
  /usr/tcl84/bin/tclsh ...
  Tcl script library at      /usr/tcl84/lib/tcl8.4
  Installing Tcllib 1.3 into /usr/tcl84/lib/tcllib1.3
  error copying "pkgIndex.tcl": no such file or directory
      while executing
  "file copy pkgIndex.tcl $installdir"
      (file "./install.tcl" line 30)

  Also, the INSTALL.txt file mentions an install.sh and
  install.bat file which do not appear in the tar file.


tkt_uuid: 1610655fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: uri
priority: 5 Medium
foundin: None
title: ::uri::split fails with query part on multiple "?"
cmimetype: text/plain
submitter: martinlemburg
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-01-11T19:36:12
comment:
  Hello,

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

  An example:

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

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

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

  Best regards,

  Martin Lemburg


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


tkt_uuid: 1642275fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 5 Medium
foundin: None
title: word_encode bombs on empty input
cmimetype: text/plain
submitter: totschnig
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-01-25T17:23:10
comment:
  since the last commit of file mime.tcl (CVS Head, 1.54), the function word_encode bomps on empty strings.
  Attached patch fixes it, supposed that it is the right thing to return an empty string on an empty input.


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: 1435941fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Hanging problem with ComboBox in Dialog
cmimetype: text/plain
submitter: rheller
assignee: damonc
closer: sf-robot
closedate: 2009-07-14T02:20:46
comment:
  I am encountering a strange problem using BWidget
  (1.7).  I am using a
  ComboBox inside of a Dialog.  I can make one choice
  with the ComboBox,
  but when I try to make a *second* choice, things
  'hang'.  It seems to be
  a problem involving focus, but I am not sure I
  understand it (things are
  hanging in BWidget::focus).


  I have uploaded a fairly striped down version of the
  code which has this
  problem to 

  ftp://ftp.deepsoft.com/pub/deepwoods/Other/BWBroken-1.0.0.tar.gz
  (the above is also attached to this bug report)

  I am doing this on a RH 7.3 system, using both the
  'stock' Tcl/Tk
  (8.3.3), but it is also broken with ActiveState Tcl
  8.4.12, so it is not
  a function on an 'old' version of Tcl/Tk.

  Other version info:

  sauron.deepsoft.com% rpm -q XFree86
  XFree86-4.3.0-2.90.55
  sauron.deepsoft.com% rpm -q glibc
  glibc-2.2.5-42
  sauron.deepsoft.com% uname -a
  Linux sauron.deepsoft.com 2.4.18-3 #1 Thu Apr 18
  07:31:07 EDT 2002 i586 unknown
   


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

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

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

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


tkt_uuid: 1597840fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: tklib :: tablelist
priority: 5 Medium
foundin: None
title: Infinite loop when using ScrolledFrame
cmimetype: text/plain
submitter: tombert
assignee: nemethi
closer: nemethi
closedate: 2006-11-19T10:53:41
comment:
  A tablelist in an iWidgets::Scrolledframe fails - looks like an infinite loop.

  I'am using ActiveState distribution 8.4.13 with tklib 0.4 on Win XP.

  Sample code appended. Call 'create' two times - dont know why it hangs on the second time - in my bigger application it hangs up immediately.

  thx


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

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


tkt_uuid: 1050377fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: smtp
priority: 5 Medium
foundin: None
title: SMTP AUTH problems.
cmimetype: text/plain
submitter: orwellian
assignee: patthoyts
closer: patthoyts
closedate: 2006-04-21T11:15:18
comment:
  A sourceforge viewer contacted me about not being able to
  get -username/-password to work in tcllib-1.7 smtp.tcl.

  I encoded the username/password for a hand-telnet test and
  got that to work, then figured out what was wrong and told the
  user who then reported success in using it.

  Here's the problem.

  The SMTP server responded:

  250-AUTH LOGIN CRAM-MD5 PLAIN

  The smtp.tcl code tried CRAM-MD5 first, and for whatever
  reasons, that failed.

  535 authorization failed.(#5.7.0)

  Once that failed, no further AUTHs would work.

  The smtp.tcl code then tried requesting AUTH LOGIN, and
  received this from the SMTP server:

  502 unimplemented (#5.5.1)

  The smtp.tcl then tried AUTH PLAIN, receiving the same error.

  I had the user edit this line:

  foreach mech [list DIGEST-MD5 CRAM-MD5 LOGIN PLAIN] {

  to be:

  foreach mech [list LOGIN PLAIN] {

  And he reported it was working.

  Perhaps choose the SMTP server's offerings in the
  order they are given, instead of smtp.tcl's decision
  to use the "most secure" sequence first. Or make
  smtp.tcl break the connection before trying the next
  variation. Or let the user choose which one to use.

  In any case, the smtp.tcl module does not show the
  dialog sequence when a failure happens. I'd suggest
  having it cough that up when a failure occurs. Less
  technical users don't have a chance of figuring out
  what's wrong without a more detailed diagnostic.


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: 3609183fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: oo::util
priority: 5 Medium
severity: Minor
foundin: None
title: ooutil::singleton not working when it is used as mixin class
cmimetype: text/plain
submitter: kbokng
assignee: andreas_kupries
closer: aku
closedate: 2456444.30740507
comment:
  Example of how to use ooutil::singleton at http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/ooutil/ooutil.html is not working.
  Below is the extract of the example from the mentioned website:

  oo::class create example {
     self mixin singleton
     method foo {} {self}
  }

  puts [[example new] foo]
  puts [[example new] foo]


  I tried it and the return does not shown as the same object reference.


tkt_uuid: 3613644fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Fixed
subsystem: tepam
priority: 5 Medium
severity: Minor
foundin: None
title: incorrect namespace formatting results in no vars defined
cmimetype: text/plain
submitter: blacksqr
assignee: droll
closer: aku
closedate: 2456444.30202471
comment:
  The procedure "ProcedureArgumentEvaluation" incorrectly assumes that if a procedure name returned by [info level -1] doesn't start with "::" then the procedure isn't qualified with a namespace designation at all, neglecting the possibility of a relative namespace qualifier.  This leads to failure to match the called procedure with its definition stored in array ProcDef, and no arguments corresponding to command line flags are defined.

  The problem is illustrated in the attached file.  A tepam procedure is defined, then called first with an absolute namespace qualifier, then again with a relative qualifier.  The first call succeeds, the second fails.

  The "if" statement starting at line 642 appears to be the cause of the problem.  Replacing the entire "if" statement with the line "set ProcName [uplevel 2 "info command $ProcName"]" appears to fix the problem (only lightly tested).

  tepam version 0.4.0


tkt_uuid: 2783215fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: ldap
priority: 5 Medium
foundin: None
title: search result is incorrect with multibyte characters
cmimetype: text/plain
submitter: zhangweiwu
assignee: mic42
closer: zhangweiwu
closedate: 2009-04-30T03:38:23
comment:
  This problem is best explained with the screenshot I attached.

  In my case all Chinese characters are broken, I think other multibyte UTF-8 string data should also be broken. Easily reproducible, we have this problem on Windows as well as Linux (where the screenshot was taken). The screenshot was taken from a system with UTF-8 locale setting.


tkt_uuid: 991959ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
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: 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.


