# ticket

tkt_uuid: 2695618fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: linearalgebra
priority: 8
foundin: None
title: MkWilkinson- is also false...
cmimetype: text/plain
submitter: relaxmike
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-03-20T18:00:47
comment:
  Compute the Wilkinson - matrix of size 5 :

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

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

  The following is a fix :

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

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

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


tkt_uuid: 3609843fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: sha1
priority: 5 Medium
severity: Minor
foundin: None
title: sha256 output is wrong on 32bit Linux
cmimetype: text/plain
assignee: andreas_kupries
closer: aku
closedate: 2456444.30721503
comment:
  I am using ActiveState Tcl for 32bit and 64bit Linux. 
  The command is:
  sha2::sha256 -hex tk

  The output is:
  32bit Linux:
  0b9422c2ca451b24fea81114412fb2c61e2ced68889466119b72d36c4ec3c337

  64bit Linux:
  1ec22d56dbbc91e849b00643bc4f10eb764441c93bde5c6090fe81db55cf6932

  When using any web based sha256 generators the output is:
  1ec22d56dbbc91e849b00643bc4f10eb764441c93bde5c6090fe81db55cf6932

  Therefore, 32bit sha256 output seems to be incorrect.

  NOTE: A ticket  ID: 3609575 was open for this issue under Tcl tracker:
  http://sourceforge.net/tracker/?func=detail&aid=3609575&group_id=10894&atid=110894

  I am closing that ticket and moving it to tcllib since it has been determined that the problem is with the accelerated code in tcllibc (when forced to use plain Tcl, the code behaves correctly).


tkt_uuid: 2967134fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: json
priority: 5 Medium
foundin: None
title: json2dict improvements index json arrays in dict
cmimetype: text/plain
submitter: cwjolly
assignee: hobbs
comment:
  I modified the json 1.0 package with code (attached) that adds a option switch to add an index to json arrays when converted to dict format and all values remain quoted. See example below.  After looking in the tracker I see that json.tcl has changed dramatically but I still want the new features.  see attached driver code also 
  Input json snippet :

  ..."link":["rel","alternate","type","text html","href"],...

  is converted to this dict snippet 

  .... link { rel alternate type {text html} href } ....

  there is no way to tell the resulting dict is key,value or a list. You would  have to know this before
  hand. So if your input changes so does your code. Since javascript would access the results of the
  as link[0] == "rel"  why not auto index when converting to dict. I changed my json2dict function
  to accept the -indexlists option to do just that so now for the example above the following results. 

  .... link { 0 rel 1 alternate 2 type 3 {text html} 4 href } ....

  Thats pretty good but then the next problem cropped up notice the { text html } ? Is it text or
  another dict ( i.e key value } ?  If you did not know what to expect (and you won't) this is bad news. I changed the json2dict script to maintain the quotes about the values and now the json above is converted to:

  .... link { 0 "rel" 1 "alternate" 2 "type" 3 {"text html"} 4 "href" } ....
   


tkt_uuid: 1056892fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: math :: statistics
priority: 5 Medium
foundin: None
title: math::statistics takes > 1 sec to load
cmimetype: text/plain
submitter: keithv
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2004-11-08T10:55:23
comment:
  math::statistics sources pdf_stat.tcl which calls 
  Initialise-cdf-normal which "Initialise the private data for 
  the normal cdf". Unfortunately, on my 700mhz machine 
  this takes over 1 sec to accomplish. 

  I think a lot more people are interested in doing 
  standard deviations and means than in pdf-exponential, 
  and so I think that that expensive initialization should be 
  deferred until needed.

  Keith Vetter


tkt_uuid: 1513382fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: Proxy password cannot be saved
cmimetype: text/plain
submitter: mpc_janssen
assignee: patthoyts
closer: patthoyts
closedate: 2008-01-27T00:39:42
comment:
  Currently it is not possible to save the proxy 
  password. This means that with every startup the proxy 
  password will have to be provided again.
  Would it be possible to add a checkbox similar to the 
  one for the chat password to save the proxy password?


tkt_uuid: 3396787fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: json
priority: 5 Medium
foundin: None
title: strange if condition in json::write
cmimetype: text/plain
submitter: uring
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-08-24T20:10:27
comment:
  proc ::json::write::indented and proc ::json::write::aligned both start with the following test:

  if {[llength [info level]] > 2} { 

  this should never ever be true. possibly " ..[info level 0].." was meant, but if I try [::json::write::indented 1 1] for example,
  the interpreter would interupt execution, throwing an error itself, doesn't it.


tkt_uuid: 1381659fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: jpeg
priority: 5 Medium
foundin: None
title: jpeg::removeComments destroys jpeg files completely
cmimetype: text/plain
submitter: vbwagner
assignee: afaupell
closer: afaupell
closedate: 2005-12-15T17:06:44
comment:
  When tcllib jpeg package used with [encoding system]
  other than iso8859-1, procedures jpeg::removeComments
  and jpeg::replaceComments (which calls former one)
  convert jpeg file into piece of junk, replacing all
  8-bit symbols by question marks.

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

  Solution is to add

  fconfigure $fh -translation binary 

  into jpeg::removeComments routine just after 

  set fh [open $file w]


tkt_uuid: 1615159fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: tklib :: diagrams
priority: 5 Medium
foundin: None
title: tklib::Diagrams examples need fix
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-04-18T20:33:30
comment:
  The code in draw_anchor.tcl , draw_fraction.tcl , and draw_heater.tcl need changed to use
  package require Diagrams
  instead of 
  source draw_diagram.tcl
  I think they all need a 
  package require Tk
  as well.
  The other examples may need modified to also use the package - I think they might include the package inline.


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

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

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


tkt_uuid: 727694ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: general request
priority: 8
foundin: None
title: sak validate imposes [package provide] format
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-05-01T00:18:05
comment:
  Several packages in tcllib had a structure like:

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

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

  namespace eval foo {
  ...
  }

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

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

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

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


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

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

  Testing for error messages should be as lax as possible.


tkt_uuid: 3598733fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Build System & Testing
priority: 9 Immediate
foundin: None
title: Tcl 8.6.0 and tcllib 1.14 are not synced
cmimetype: text/plain
submitter: kyak
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2013-02-08T19:10:40
comment:
  $ echo "package require struct" | tclsh
  version conflict for package "TclOO": have 1.0, need 0.6.1

  tcllib 1.14 and tcl 8.6.0 (not beta) are not playing nice together
  this is fixed in tcllib already, but they never bumped updated release, so my distro didn't receive it

  if someone responsible for tcllib is here, please bump another release of tcllib, this way users will get synced tcl and tcllib.

  I initially put in into Tcl bug tracker (https://sourceforge.net/tracker/?func=detail&aid=3598711&group_id=10894&atid=110894), but i was advised to move it here.


tkt_uuid: 720318ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: None
priority: 5 Medium
foundin: None
title: modules can't be requested in safeBase
cmimetype: text/plain
submitter: mic42
assignee: nobody
closer: gwlester
closedate: 2004-03-02T22:32:07
comment:
  Code to demonstrate the problem:

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

  Problem:
  related to [Bug 599306].

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

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

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


tkt_uuid: 2690366fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: Tk GUI for dtplite
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  Extend dtplite with a Tk GUI which is invoked when the app is run without arguments => Windows, double-click, becomes meaningful.
  No real ideas yet  about how this GUI should look like. Maybe follow the use cases we have for the command line and make it wizard-style.


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

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


tkt_uuid: 553848ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: stooop
priority: 5 Medium
foundin: None
title: reliance on [namespace] bug.
cmimetype: text/plain
submitter: dgp
assignee: jfontain
closer: dgp
closedate: 2002-05-20T21:30:30
comment:
  The tests stooop-86,87,89,90,95,96,97 all fail when
  tested with current development Tcl (8.4a5).  This
  is because the current Tcl sources have fixed Tcl
  Bug 545325 -- the failure of [namespace eval]s to
  appear as the results of [info level] calls.

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


tkt_uuid: 458301ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget ArrowButton bug (1.3.1) [patch]
cmimetype: text/plain
submitter: petasis
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-09-06T00:02:49
comment:
  ArrowButtons, in version 1.2.1 (the latest release from Unifix),
  you could make a button a specific color, and place it in a frame of the
  same color without any problem.
  In 1.3.1 though, a gray outline appears, that cannot be eliminated
  through the ArrowButton options. This is because in 1.3.1 a frame is
  used to enclose all widget ellements.
  This frame has the default borderwidth and colour (1 & gray in my system),
  thus making a gray rectangular around the button.

  In my opinion, the solution is to set the borderwidth to 0 when creating
  the frame. So, line 89 in arrow.tcl has to be changed to

  frame $path -class ArrowButton -borderwidth 0 -highlightthickness 0

  in order to work as expected. (-highlightthickness 0 is not required, but
  why not :-))


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

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

  get /pub/linux/redhat/readme.txt

  I get readme.txt , ok.

  If I now do :

  list /pub/linux/mandrake

  I get an empty dirlisting. If I do :

  list /pub/linux/mandrake

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

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


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

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

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

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

  Hemang.


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

  approx. line 42 - change appropiate to appropriate.

  approx. line 50 - copleted should be completed.


tkt_uuid: 1161939fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Duplicate
subsystem: exif
priority: 5 Medium
foundin: None
title: Add most EXIF-2.2 tags to exif.tcl
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-09-06T19:57:17
comment:
  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.com


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


tkt_uuid: 3064747fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: pt (parsetools)
priority: 5 Medium
foundin: None
title: Failure to match { and } in parser tools
cmimetype: text/plain
submitter: dargosch
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-09-13T18:00:38
comment:
  I'm trying to match everything, the entire Unicode charset (including special chars like {} () and such) up to a specific sequence of chars.
  With the supplied PEG grammar, I am able to parse unicode strings ok, but grouping chars is still a problem, it seems.

  I am using this test snipplet:


  ------------- BEGIN ---------------
  proc putss {p in } {
  global currparsing
  set currparsing $in
  set inast [$p parset $in ]
  puts $inast
  puts [pt::ast print $inast ]
  }
    
  puts "Simple case"
  putss $p {Structure=adasd} 
  puts "Simple case, wierd chars"
  putss $p {Structure='ƈɠħç§'}  
  puts "Simple case, escaped special grouping chars"
  putss $p {Structure='\}'}  
  ------------- END ---------------

  and what I get is:

  ------------- BEGIN ---------------
  Simple case
  expression 0 14 {labeltypeexpression 0 14 {labeltype 0 8} {stringcompareoperator 9 9} {labelsequence 10 14 {label 10 14 {asciistring 10 14}}}}
  <expression> :: 0 14
      <labeltypeexpression> :: 0 14
          <labeltype> :: 0 8
          <stringcompareoperator> :: 9 9
          <labelsequence> :: 10 14
              <label> :: 10 14
                  <asciistring> :: 10 14
  Simple case, wierd chars
  expression 0 16 {labeltypeexpression 0 16 {labeltype 0 8} {stringcompareoperator 9 9} {labelsequence 10 16 {label 10 16 {unicodestring 11 11} {unicodestring 12 12} {unicodestring 13 13} {unicodestring 14 14} {unicodestring 15 15}}}}
  <expression> :: 0 16
      <labeltypeexpression> :: 0 16
          <labeltype> :: 0 8
          <stringcompareoperator> :: 9 9
          <labelsequence> :: 10 16
              <label> :: 10 16
                  <unicodestring> :: 11 11
                  <unicodestring> :: 12 12
                  <unicodestring> :: 13 13
                  <unicodestring> :: 14 14
                  <unicodestring> :: 15 15
  Simple case, escaped special grouping chars
  pt::rde 10 {{n WHITESPACE} {n labelsequence}}
      while executing
  "$myparser complete"
      (procedure "::emuql_parser::Snit_methodparset" line 9)
      invoked from within
  "$p parset $in "
      (procedure "putss" line 4)
      invoked from within
  "putss $p {Structure='\}'}  "
      (file "Test_emuql_parser.tcl" line 145)
  ------------- END ---------------


  This is on a Mac Show Leopard and Tcl 8.6.

  /Fredrik


tkt_uuid: 688965ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: fileutil
priority: 5 Medium
foundin: None
title: better -? help for fileutil::touch
cmimetype: text/plain
submitter: glennjnn
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-03-25T05:25:15
comment:
  the cmdline::getoptions help is a bit bull-headed about
  displaying argv0.  This isn't great for using
  getoptions internally for procs.

  Nevertheless, the fileutil::touch proc could be
  modified to look better

  Now, it looks like:
  $ echo 'package req fileutil; fileutil::touch
  -help'|tclsh
  tclsh options:
   -a                   set the atime only
  ...

  ("tclsh options:"??)

  The attached diff provides:
  $ echo 'package req fileutil; fileutil::touch
  -help'|tclsh
  tclsh : fileutil::touch [options] filename ...
  options:
   -a                   set the atime only
  ...


tkt_uuid: 597102ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: nntp
priority: 5 Medium
foundin: None
title: nntp post bug and doc enhancements.
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-08-23T20:05:22
comment:
  The nntp package could use some updating, before it is 
  useful. Here are the list of things that I had to modify in 
  order to get nntp work.

  1. (CODE) modify the generated post operation.
       args -> message
       "$args" -> $message

      Otherwise the body will be enclosed within extra curly 
  braces and no posting will go through.

  2. (DOC) update RFC information:
      RFC1036 obsoletes RFC850 and all USENET
      messages should conform to RFC1036

  3. (DOC) an example of a simple USENET posting:

      (Should this go to a Wiki page?)

  ############# Minimal NNTP example ############# 
  # Tested with Tcl 8.3.4 adn Tcllib/nntp 0.1
  package require nntp
  set n [nntp::nntp NNTP_SERVER]
  $n post "From: USER@DOMAIN.EXT (USER_FULL)
  Path: COMPUTERNAME!USERNAME
  Newsgroups: alt.test
  Subject: Tcl test post -ignore
  Message-ID: <[pid][clock seconds]
  @COMPUTERNAME>
  Date: [clock format [clock seconds] -format "%a, %d %
  b %y %H:%M:%S GMT" -gmt true]

  Test message body"
  ############################################

  -Jussi Kuosa


tkt_uuid: 3483716fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 5 Medium
foundin: None
title: transfer encoding ignored for message/*
cmimetype: text/plain
submitter: cnassau
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2012-02-23T17:37:05
comment:
  The handling of message/* types in ::mime::parsepart currently ignores the Content-Transfer-Encoding (tcllib 1.13 / mime 1.5.4) .

  Example

  Content-Type: message/delivery-status; name="deliverystatus.txt"
  Content-Disposition: attachment; filename="deliverystatus.txt"; size=138;
  creation-date="Thu, 02 Feb 2012 13:50:05 GMT";
  modification-date="Thu, 02 Feb 2012 13:50:05 GMT"
  Content-Description: deliverystatus.txt
  Content-Transfer-Encoding: base64

  T3JpZ2luYWwtUmVjaXBpZW50OiA8L2ZheD1ibHViYkBndW1taS5ib290PgpBY3Rpb246IGZhaWxl
  ZApEaWFnbm9zdGljLUNvZGU6IHNtdHA7IDU1MCAjNS4xLjAgQWRkcmVzcyByZWplY3RlZC4KUmVt
  b3RlLU1UQTogNTMuMjQuMjgyLjE1MA==


  The attached patch fixes this problem for base64 encoded messages.


tkt_uuid: 923942ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Rejected
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget dynamic help problem
cmimetype: text/plain
submitter: decosterjos
assignee: damonc
closer: oehhar
closedate: 2009-07-01T07:53:54
comment:
  Hi, 
   
  When using the BWidget DynamicHelp to add balloon tips to an 
  application, the balloons are only removed from the screen when 
  you move the mouse pointer out of the widget the balloon was 
  registered for. You can move the mouse inside the widget without 
  the balloon being removed. Use this test script to see the desired 
  effect: 
   
  package require BWidget 
   
  text .t 
  pack .t 
  DynamicHelp::register .t balloon "Testing dynamic help" 
   
   
  Hold the mouse pointer inside the text widget and the balloon help 
  will show. Now move the mouse pointer inside the text widget. The 
  balloon won't disappear. 
   
   
  The balloon help should also be removed when moving the mouse 
  cursor inside the widget the balloon was registered for. To obtain 
  this, replace the 
   
   DynamicHelp::_motion_balloon 
   
  function by the attached one. 
   
  Kind regards, 
   
  Jos. 
   


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

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

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

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

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


tkt_uuid: 1078504fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: tclapps :: tkchat
priority: 3 Low
foundin: None
title: application generates error
cmimetype: text/plain
submitter: lvirden
assignee: pascalscheffers
closer: patthoyts
closedate: 2006-09-14T14:24:38
comment:
  Attempt to startup tkchat today results in this error
  being raised:

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

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

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


tkt_uuid: 1008797fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: log
priority: 5 Medium
foundin: None
title: bad multiple calls to logging command in log::log
cmimetype: text/plain
submitter: eriklns
assignee: andreas_kupries
comment:
  When the text to log consists of multiple lines, this
  results in calling the logging command as many times as
  there are lines.

  After inspecting the code, I saw that around line 672
  (in tcllib release 1.6), a change has been introduced
  to correctly handle log texts that consist of multiple
  lines.

  The relevant code snippet is:

  foreach line [split $text \n] {
       eval [linsert $cmd end $level $line]
  }

  This causes the logging command to be called repeatedly
  for a  single log text (which did not happen in the log
  extension that resided in tcllib release 1.3 for example).


tkt_uuid: 741653ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: comm
priority: 5 Medium
foundin: None
title: hooks not installed when channel namespaced
cmimetype: text/plain
submitter: juliannoble
assignee: hobbs
closer: hobbs
closedate: 2003-10-21T23:08:40
comment:
  If the chan arg to comm::comm new is namespace 
  qualified, 
  e.g  comm::comm new ::mychan
  or even
  comm::comm new ::comm::mychan
  then hooks don't get properly installed.
  parray on comm::comm shows most members with 
  the specified chan, e.g
  ::comm::comm(::comm::mychan,listen)    = 1
  but the hooks are shown as:
  ::comm::comm(mychan,hook,incoming)   = {...
  and they don't fire.
  Maybe one just isn't supposed to supply anything 
  other than a simple name to comm::comm new, in 
  which case I guess this is just a doc issue.

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


tkt_uuid: 2605849fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: tkchat: use tk appname for use in windowmaker dock
cmimetype: text/plain
submitter: mpc_janssen
assignee: patthoyts
closer: patthoyts
closedate: 2009-03-04T00:28:49
comment:
  The windowmaker dock uses the WM_CLASS of the main window to check if the application is launched and to allow minimize to dock.
  When running tkchat from a starpack, the window class is not specific enough to allow reliable docking of the app without picking up other wish application.

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


tkt_uuid: 465210ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: csv
priority: 5 Medium
foundin: None
title: ::csv::joinlist sepChar handling
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-09-28T18:11:07
comment:
    file: csv.tcl Rev. 1.5

    procedure: ::csv::joinlist

  doesn't handle "sepChar" argument.
  "join $record" should be "join $record $sepChar"


tkt_uuid: 1553919fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: ftp
priority: 5 Medium
foundin: None
title: ftp::NList - incorrect result when spaces in filename (win)
cmimetype: text/plain
submitter: cdclercq
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-09-22T23:08:50
comment:
  eg. ftp::NList $i_h_ftp $i_dir
  returns "Copy abc.txt of"

  =>Name of file on windows "Copy of abc.txt"

  On windows, files can contain spaces.
  All parts (split by spaces) of the filename are returned.


tkt_uuid: 1572463fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: math :: geometry
priority: 5 Medium
foundin: None
title: areaPolygon incorrect
cmimetype: text/plain
submitter: jrasmuss23
assignee: chdamm
comment:
  I think the algorithm used by areaPolygon is incorrect.
   For example:

  package require math::geometry
  set polygon [list -10 -10 10 -10 10 10 -10 10]
  ::math::geometry::areaPolygon $polygon

  returns 200.0, when the correct result for this 20x20
  rectangle should be 400.0, as noted in the comments for
  the proc.

  See Kevin Kenny's proc parea at
  http://wiki.tcl.tk/12081 for an alternate implementation.


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


tkt_uuid: 709495ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: bwidget
priority: 5 Medium
foundin: None
title: SpinBox widget problem
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2003-07-17T19:21:25
comment:
  I have made changes to the SpinBox widget of the
  BWidget library that seem to fix the following:

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

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

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


tkt_uuid: 2787933fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: md5
priority: 8
foundin: None
title: Leak: md5 or trf?
cmimetype: text/plain
submitter: msofer
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-05-07T05:33:06
comment:
  The following script leaks when Trf is loaded (run it under nice: tight busy loop!):

  package require md5 2
  set digits {0 1 2 3 4 5 6 7 8 9 A B C D E F}

  # any init will do
  set hx [::md5::md5 -hex {}]

  while {$hx ne [::md5::md5 -hex $hx]} {
      # bernoulli-like shift with random last hex
      set idx [expr {int(floor(16*rand()))}]
      set hx [string range $hx 1 end][lindex $digits $idx]
  }

  puts "Found it! It is '$hx'"


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


tkt_uuid: 907904ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: None
priority: 8
foundin: None
title: Patches to adjust startup for modules and examples
cmimetype: text/plain
submitter: stwo
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-03T22:22:57
comment:
  These are the patches used in the OpenBSD port of
  Tcllib to adjust the 'exec tclsh' lines of scripts.


tkt_uuid: 820807ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math
priority: 7 High
foundin: None
title: Bug in ::math::statistics::mean ?
cmimetype: text/plain
submitter: woj
assignee: arjenmarkus
closer: andreas_kupries
closedate: 2003-11-21T05:47:37
comment:
  I am running math version 1.2.2 and statistics version0.06.

  The following line of code:
  ::math::statistics::mean "0.06 0.06 0.06 0.06 0.06 0.06
  0.06 0.06"

  returns error:
  domain error: argument not in valid range

  After reducing the number of elements from 8 to 7, the
  bug no longer shows up.

  Thanks.  


tkt_uuid: 3106443fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: tooltip
priority: 5 Medium
severity: Minor
foundin: None
title: invalid option processing in tooltip::tooltip
cmimetype: text/plain
submitter: daapp
assignee: hobbs
closer: arjenmarkus
closedate: 2457717.07193712
comment:
  tooltip::tooltip try to process argument starting with "-" as option

  Example:

  tooltip::tooltip .e "-10.0 .. 10.0"

  generate error

  unknown option "-10.0 .. 10.0": should be -index, -items or -tag
      while executing
  "register .e {-10.0 .. 10.0}"
      (in namespace inscope "::tooltip" script line 1)
      invoked from within
  "::namespace inscope ::tooltip {register .e {-10.0 .. 10.0}}"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 [namespace code "register [list $w] $args"]"
      (procedure "tooltip::tooltip" line 35)
      invoked from within
  "tooltip::tooltip .e [msgcat::mc "$minPosition .. $maxPosition"]"
      (procedure "::widget::form1::Snit_constructor" line 115)
      invoked from within

  Alse tooltip::tooltip have no "--" parameter, to specify end of options.


tkt_uuid: 1416792fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: sha1
priority: 5 Medium
foundin: None
title: sha1: test suite bugs
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-29T02:09:53
comment:
  with -debug 1:

  modules/sha1/sha256.test
  - tcllib::testutils 1.0
  * sha256 1.0.1
  test name 'sha224-2.2' re-used; prior use in
  /local/src/tcllib/modules/sha1/sha256.test


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

  * units 2.1
  test name 'units-4.6' re-used; prior use in
  /local/src/tcllib/modules/units/units.test
  test name 'units-9.1' re-used; prior use in
  /local/src/tcllib/modules/units/units.test
  test name 'units-9.1' re-used; prior use in
  /local/src/tcllib/modules/units/units.test
  test name 'units-9.1' re-used; prior use in
  /local/src/tcllib/modules/units/units.test
  test name 'units-9.1' re-used; prior use in
  /local/src/tcllib/modules/units/units.test


tkt_uuid: 1060460fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: dns
priority: 5 Medium
foundin: None
title: ip::normalize & ipv6 rfc3513 sect 2.2.3 addressing
cmimetype: text/plain
submitter: nobody
assignee: patthoyts
closer: patthoyts
closedate: 2004-11-06T02:25:03
comment:
  Hi there,

  I really really like the IP:: package. Thanks very much for this.

  I have an IPv6 feature request.  Would it be possible to handle also
  the format described in section 2.2.3 of rfc3513, like so

          0:0:0:0:0:0:13.1.68.3
          0:0:0:0:0:FFFF:129.144.52.38

  I think contract is already handling this fine, but I wonder if it would be 
  possible to add a flag to normalize which would cause it to return the 
  last two 16 bit fields as decimal dotted octets, like the above?

  Thanks,

  Selina


tkt_uuid: 2420330fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: Problem in Post-order dfs walk of the graph
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-12-13T03:58:35
comment:
  While walking the graph , in post-order depth-first search, currently only the last entry (node) in the list , will be deleted, if it has already been visited. Please find the code snippet below: (/struct/graph_tcl.tcl)


  elseif { [string equal $order "post"] } {
              # Post-order Depth-first search

              while { [llength $st] > 0 } {
                  set node [lindex $st end]

                  if {[info exists visited($node)]} {
                      # Second time we are here, pop it,
                      # then evaluate the command.

                      ldelete st end
                       ...
                        ...
                         ... <rest of the code follows>
           


  If there are multiple entries of the same node in the list (st), (this is possible because a single node NODE3 can be a neighbouring node for both NODE1 and NODE2)then this will result in duplicate entries being added in the final sorted list, which is not the right thing.

  To fix this, not just the last entry of the list(for eg: NODE3), but all the entries of that node "NODE3" needs to be removed from the list.

  The fix we have to solve the above problem:
   elseif { [string equal $order "post"] } {
              # Post-order Depth-first search

              while { [llength $st] > 0 } {
                  set node [lindex $st end]

               if {[info exists visited($node)]} {
                   # Second time we are here, pop it,
                   # then evaluate the command.
    while {[set index [lsearch -exact $st node]] != -1} {
             set st [lreplace $st $index $index]
          }
                       ...
                        ...
                         ... <rest of the code follows>

          
  We have noticed this problem only in tcllib, but not in the "critcl version of tcllib". We currently need this working on HP-Itanium platform. But unfortunately, we could not get a critcl version of tcllib available for Hp-Itanium, so looking for this fix in tcllib.

  Thanks in advance.


tkt_uuid: 3304371fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: irc
priority: 5 Medium
foundin: None
title: Add secure IRC (TLS/994) support to pico IRC
cmimetype: text/plain
submitter: karll
assignee: davidw
comment:
  Attached is a patch that will add secure IRC support to pico irc.  It recognizes the RFC-standard ircs:// format and, if specified, sets a variable "secure" in the object, defaults to the 994 port (if not specified), and uses tls to establish a secure connection.

  A new command, ::picoirc::tls_status returns the security status of the connection as list of key-value pairs (certificate info) as returned by ::tls::status.

  The patch also includes updates to the manual page.


tkt_uuid: 466094ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: tkchat 'logging' info move
cmimetype: text/plain
submitter: lvirden
assignee: patthoyts
closer: andreas_kupries
closedate: 2001-10-26T15:42:11
comment:
  Currently tkchat produces logging info to stdout .
  An option to either log it to a file or to
  a tk window would be a useful addition.


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

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

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

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

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

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

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


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

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


tkt_uuid: 523109ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: textutil
priority: 5 Medium
foundin: None
title: expand handling of plain text
cmimetype: text/plain
submitter: andreas_kupries
assignee: jenglish
closer: jenglish
closedate: 2002-05-02T16:48:50
comment:
  When using macro arguments the processor does not run 
  the constant parts of such arguments through the 
  handler for plain text. It should.

  Example:

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

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

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

  This issue came up with in doctools.

  Joe, anything else to say, or different ?


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

      global runcmdrc runcmdout runcmderr

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

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

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

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

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

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

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

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

          # Wait for command to complete
          vwait $runcmdrcvar
      }

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

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

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

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

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

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

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


tkt_uuid: 3002617fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: A Category Is Missing
priority: 5 Medium
foundin: None
title: des , des-mode parameter and key padding
cmimetype: text/plain
submitter: griou
assignee: andreas_kupries
comment:
  At the moment , the des module defines which DES mode to use based on the key length (64 bit for DES and 192 bit for 3DES) , so you have to provide a key with a right length. 
  I think it'd be easier to have a parameter that let's the developer indicates which mode to use. Then if the key is to short, it should be padded with nulls to meet the required length.  Something like :
  ::DES::des ?  -des-mode [DES|3DES] ? -mode [ecb|cbc|cfb|ofb] ? ? -dir [encrypt|decrypt] ? -key keydata ? -iv vector ? ? -hex ? ? -weak ? ? -out channel ? ? -chunksize size ? [ -in channel | data ]
  It's a method used in some other language like php , .net probably others.

  The documentation is not really clear on how to use DES or 3DES, there should be something that explain that the DES mode used is based on the key length.

  Gaetan

   


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

  Here's an example (only two modules):

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

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


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

  So, instead of this (current):

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

  It would look like this:

    Query and control log parameters
    ns_accesslog

    Server callbacks
    ns_atprestartup, ns_atstartup, ns_atsignal, ns_atshutdown, ns_atexit

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

    ...

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


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


tkt_uuid: 3440045fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: pki
priority: 5 Medium
foundin: None
title: ::pki::x509::_list_to_dn invalid char
cmimetype: text/plain
assignee: rkeene
closer: rkeene
closedate: 2012-02-19T02:04:23
comment:
  here is another fix, may be is already considered

  proc ::pki::x509::_list_to_dn {name} {
  set ret ""
  foreach {oid_name value} $name {
  if {![regexp {[^ A-Za-z0-9'()+,.:/?=-]} $value]} {
  set avalue [::asn::asnPrintableString $value]
  } else {
  set avalue [::asn::asnUTF8String $value]
  }
  append ret [::asn::asnSet \
  [::asn::asnSequence \
  [::asn::asnObjectIdentifier [::pki::_oid_name_to_number $oid_name]] \
  $avalue \
  ] \
  ] \
  }

  return $ret
  }


tkt_uuid: 3087955fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Label has extra x packing space
cmimetype: text/plain
submitter: oehhar
assignee: oehhar
closer: oehhar
closedate: 2010-10-15T08:22:45
comment:
  BWidget 1.9.2, TCL 8.5.9, Windows
  "Label .l -borderwidth 1 -relief raised" has extra x space of 5 outside the border under unknown conditions


tkt_uuid: 1680176fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: set
priority: 5 Medium
foundin: None
title: struct::set returns opaque error msg on invalid arguments
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-03-09T04:39:30
comment:
  unclear on the usage of struct::sets, I tried various things.  unfortunately, until you hit upon the exact correct syntax, you receive a rather mysterious error message.

  % package require struct
  2.1

  # this is invalid b/c first arg to subtract must
  # be a set/list, i.e. $somelist
  % struct::set subtract {a b} {a b c}
  % set abc [list a b c]
  a b c
  can't read "A": no such variable

  # arguments in wrong order:
  % struct::set subtract {a b} abc
  can't read "A": no such variable

  # giving $abc instead of abc
  % struct::set subtract $abc {a b}
  can't read "A": no such variable

  # ah!  now I've got it:
  % struct::set subtract abc {a b}
  % puts $abc
  c


  nathan/grarp
  ndparrish@yahoo.com


tkt_uuid: 996569ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 7 High
foundin: None
title: BWidget 1.7: ComboBox: autocomplete problem w/upper case
cmimetype: text/plain
submitter: wedgef5
assignee: dev_null42a
closer: dev_null42a
closedate: 2006-02-08T16:49:15
comment:
  The autocomplete function in the BWidgets 1.7.0
  ComboBox has problems matching when the list has values
  that are all upper case.  By doing either a string
  tolower or string totitle on the list entries, the
  autocomplete works very well.


tkt_uuid: 474859ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: app: tkchat
priority: 5 Medium
foundin: None
title: interpreter startup string
cmimetype: text/plain
submitter: lvirden
assignee: patthoyts
closer: patthoyts
closedate: 2001-10-26T08:04:47
comment:
  The current tkchat.tcl has a full path name to wish
  in the first line.  This tiny patchlet changes that to
  look for wish in the user's path.


tkt_uuid: 1061207fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: Tcl 8.5a2 breaks test suite
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-09-26T23:35:47
comment:
  the syntax of the "wrong # args"
  error message recently changed
  in Tcl, and as a consequence,
  `make test` for tcllib has
  56 failing tests.


tkt_uuid: 404917ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: smtp
priority: 5 Medium
foundin: None
title: Missing index entry for smtp package
cmimetype: text/plain
submitter: gwlester
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-03-31T13:47:15
comment:
  The pkgIndex in the tcllib0.8 directory does not contain an entry for the smtp package (which 
  resides in the mime subdirectory).  Hence when you do a package require on tcllib you do not get 
  the smtp loaded automatically with all of the other packages.

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

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


tkt_uuid: 503336ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
title: Add no_softbreak flag to qp_encode
cmimetype: text/plain
submitter: usus
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-01-16T19:39:03
comment:
  Add the argument "no_softbreak" with a default value 
  of false to the argument list of mime::qp_encode.
  If this flag is set to true, the extra handling of 
  lines longer than 72 (shouldn't it be 76?) characters 
  should be skipped.

  Reason:  It is possible to qp_encode the subject 
  string. If you do this and the subject exceeds 72 
  characters, a soft break is inserted. This scrambles 
  the entire message at least if read with Outlook 
  Express. If the insertion of soft breaks is skipped, 
  it appears to work right with subject strings of 
  arbitrary length (tried with strings up to about 200 
  chars).


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

  At the end of example.tcl, simple add:

  puts [plug list]

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


tkt_uuid: 578465ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: Wrong conversion of <> and " (HTML)
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-07-08T22:12:12
comment:
  The characters <, >, and " are converted to
  &amp;lt;, &amp;gt;, and &amp;quot; in the
  final generated HTML, and not &lt;, &gt;, &quot;

  Reported by Andy Ziegelbein <andy@packetz.org>.


tkt_uuid: 511689ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: mime
priority: 5 Medium
foundin: None
title: man page formatting problem found
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-02-01T17:47:29
comment:
  the mime map page had a formatted command inside of a
  line of text, where it was not being observed.
  I am attempted to append a patch for the problem.


tkt_uuid: 3383039fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math
priority: 5 Medium
foundin: None
title: Error in decimal.n
cmimetype: text/plain
submitter: tombert
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-08-09T19:47:09
comment:
  Compiling under W7 and MinGW, version CVS HEAD results in an error:

  Generating d:/TCL8.5/release/man/mann/decimal.n
  Doctools Error in macro at line 70, column 0:
  [section "API"]
  --> (FmtError) Manpage error (bodycmd), "section API" : Command not allowed outside of the body of th
  e manpage.
      while executing
  "::doctools::_format dt {[comment {-*- tcl -*- doctools manpage}]
  [manpage_begin ::Decimal n 1.0.2]
  [copyright {2011 Mark Alston <mark at beernut dot c..."
      ("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 math nroff n d:/TCL8.5/release/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)
  make: *** [install] Error 1
  `/d/TCL8.5/compile/tcllib/license.terms' -> `/d/TCL8.5/release/licenses/tcllib.license'


  it helps to delete the file, then it installs fine.

  thx


tkt_uuid: 1692954fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: grammar_fa
priority: 5 Medium
foundin: None
title: Expand the grammar::fa::dexec
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-04-05T21:35:24
comment:
  A very simple modification to the grammar::fa::dexec package, to add a current_state introspection and a new callback param, the state. 

  State callback will carry the current state that the FA just entered after a put.

  I have a simple implementation against Tcllib 1.9 ready.

  Thanks,
  Bogdan.
  rftghost@gmail.com


tkt_uuid: 1557494fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: sasl
priority: 5 Medium
foundin: None
title: NTLM responses ignores negotiated encoding
cmimetype: text/plain
submitter: mpc_janssen
assignee: patthoyts
closer: patthoyts
closedate: 2006-09-14T12:07:44
comment:
  The procedure SASL::NTLM::CreateResponse will always 
  sent the domain, host and user in litte endian unicode 
  when creating the type 3 message. This is incorrect if 
  the server has indicated in the type 2 message that 
  Unicode is not supported.

  If the flag Unicode is not set OEM encoding should be 
  used instead.

  I have noticed this issue on a Windows NTLM 
  authenticating proxy and am in the position to do some 
  additional testing, I will see if I can create a patch 
  for this issue on short notice. 


tkt_uuid: 1050608fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: base64
priority: 5 Medium
foundin: None
title: base64 doesn't encode propertly unicode chars > 0xff
cmimetype: text/plain
submitter: lave
assignee: patthoyts
closer: patthoyts
closedate: 2005-02-17T15:33:49
comment:
  decode(encode()) is not the identiy operation for
  strings with unicode characters > 0x00ff:

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

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

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

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

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


tkt_uuid: 1645333fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: asn
priority: 5 Medium
foundin: None
title: asnGetContext fails if encoding is primitive
cmimetype: text/plain
submitter: vbwagner
assignee: mic42
closer: mic42
closedate: 2007-04-20T18:38:00
comment:
  Currently (as of version 0.7 of asn package) function asnGetContext  contain following check

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

  This check true if context-dependent tag has constructed encoding. However it is possible to have context-dependent tag with primitive encoding. For example, in PKCS7 format encrypted message data are stored as context-dependent tag with primitive encoding.

  So, this check should be relaxed as 

    if {($tag & 0xC0) != 0x80} 

  for more strict conformance with BER. It would be very nice to add additional optional parameter "encodingType" to asnGetContext, which would return value of 0x20 bit of the tag, thus letting application to know whether encoding of this tag was constructed or primitive.

  Simular changes should be applied to asnGetApplication, which has the same problem.


tkt_uuid: 1664626fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: blowfish
priority: 5 Medium
foundin: None
title: s/token/Key/ in blowfish::Chunk
cmimetype: text/plain
submitter: tallniel
assignee: patthoyts
closer: patthoyts
closedate: 2007-03-12T22:59:25
comment:
  The blowfish::Chunk procedure has the line
   upvar #0 $token state
  but is not actually passed a token argument. Instead, it seems the Key argument should be used:
   upvar #0 $Key state

  The attached minimal patch fixes this (apply from within the modules/blowfish dir).


tkt_uuid: 1416745fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: grammar_fa
priority: 5 Medium
foundin: None
title: grammar_fa: test suite bugs
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-29T05:59:32
comment:
   with -debug 1:

  Module: grammar_fa
  modules/grammar_fa/dacceptor.test
  - tcllib::testutils 1.0
  - snit 1.1
  - struct::set 2.1
  - struct::list 1.5
  - grammar::fa 0.1.1
  - grammar::fa::op 0.1.1
  * grammar::fa::dacceptor 0.1.1
  modules/grammar_fa/dexec.test
  - tcllib::testutils 1.0
  - snit 1.1
  - struct::set 2.1
  - struct::list 1.5
  - grammar::fa 0.1.1
  - grammar::fa::op 0.1.1
  * grammar::fa::dexec 0.1.1
  modules/grammar_fa/fa.test
  - tcllib::testutils 1.0
  - snit 1.1
  - struct::set 2.1
  - struct::list 1.5
  * grammar::fa 0.1.1
  test name 'fa-symbols-1.0' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  test name 'fa-symbols-1.1' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  test name 'fa-symbols-2.0' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  test name 'fa-symbols-2.1' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  test name 'fa-symbols-1.0' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbols.test
  test name 'fa-symbols-1.1' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbols.test
  test name 'fa-symbols-1.2' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  test name 'fa-symbols-1.3' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  test name 'fa-symbols-1.4' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  test name 'fa-symbols-1.5' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  test name 'fa-symbols-1.6' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/fa_symbol.test
  modules/grammar_fa/faop.test
  - tcllib::testutils 1.0
  - snit 1.1
  - struct::set 2.1
  - struct::list 1.5
  - grammar::fa 0.1.1
  * grammar::fa::op 0.1.1
  test name 'faop-remove-eps-3.00.x' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.01.x-' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.02.xe' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.03.xy' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.04.xy-' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.05.xye' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.06.xyee' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.07.xye-' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.08.xy--' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.09.xy-=' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.10.xyz/ee' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.11.xyz/e-' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.12.xyz/--' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.13.xyz/-=' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.14.xyz|ee' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.15.xyz|e-' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.16.xyz|--' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.17.xyz|-=' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.18.xyz+eee' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.19.xyz+ee-' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.20.xyz+e--' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.21.xyz+e-=' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.22.xyz+---' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.23.xyz+--=' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.24.xyz+-=_' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.25.xyz&eee' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.26.xyz&ee-' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.27.xyz&e--' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.28.xyz&e-=' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.29.xyz&---' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.30.xyz&--=' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.31.xyz&-=_' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.32.xyz!ee' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.33.xyz!e-' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.34.xyz!--' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.35.xyz!-=' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-remove-eps-3.36.xyz!-e' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_remeps.test
  test name 'faop-reverse-3.00.x' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.01.x-' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.02.xe' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.03.xy' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.04.xy-' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.05.xye' re-used; prior use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.06.xyee' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.07.xyz/ee' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.08.xyz/-=' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.09.xyz|ee' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.10.xyz|-=' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.11.xyz+eee' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.12.xyz+-=_' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.13.xyz&eee' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.14.xyz&-=_' re-used; prior
  use in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.15.xyz!ee' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test
  test name 'faop-reverse-3.16.xyz!-=' re-used; prior use
  in
  /local/src/tcllib/modules/grammar_fa/tests/faop_reverse.test


tkt_uuid: 3441173fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: pki
priority: 5 Medium
foundin: None
title: Implement OpenPGP/GPG
cmimetype: text/plain
submitter: andreas_kupries
assignee: rkeene
comment:
  From mail:

  Andreas,

      Yes.  Most of it is already there.  All that is need is the functions to read the public and private (Could be the same format as OpenSSL -- I tend to use X.509/PKCS#1 rather than GPG) keys and implements some GPG-specific things like "web of trust".

  You could open a feature request so I don't forget, or I'll try to remember to open one later.

  Thanks,
      Roy Keene


  On Tue, 22 Nov 2011, Andreas Kupries wrote:

  >
  > http://developers.slashdot.org/story/11/11/22/0422223/openpgp-implemented-in-javascript
  >
  > (Long-term idea)


tkt_uuid: 548221ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: ftp
priority: 5 Medium
foundin: None
title: hpupdate.tcl ftp demo typos
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-04-25T23:27:16
comment:
  the ftp module demo "hpupdate.tcl" has a number of
  misspellings and german phrases in it that I decided I
  could fix.  I am enclosing a patch for these.


tkt_uuid: 724730ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: struct :: graph
priority: 7 High
foundin: None
title: Behaviour of struct::graph walk
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
comment:
  The current implementation (tcllib1.3) of ::struct::graph:
  :_walk with options -order both -type dfs create a forest 
  of disjunct predecessor subgraph trees [1] .




  [2] Says that if G is a graph G=(V,E) then we can do one 
  of three possibilities:


  1. No restrictions (walk)


  2. Each edge E of G traversed at most once. (trail)


  3. Each vertex V visited at most once (path)




  In tcllib a vertex is a node and an edge is an arc.




  I think the current implementation of walk is actually a 
  path as each node is visited only once. In order to 
  implement a walk as defined in [2] an extra line 1834  
  array unset visited $node could be inserted.




  See http://mini.net/tcl/8787 for more info.




  Could the walk proc be extended to cover all three 
  cases?




  [1] Cormen, Leiserson, Rivest: Introduction to Algorithms, 
  p477


  [2] Kreystig, Advanced Engineering Mathematics, Sixth 
  Edition, p1139


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


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


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

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

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


tkt_uuid: 1099727fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: "make install" fails to install apps other than in /usr/bin
cmimetype: text/plain
submitter: gleusch
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-01-10T22:33:41
comment:
  When one tries to install tcllib in another directory
  than /usr/...

  the installation process, called as 
  ./configure --prefix=...  && make install

  tries to install dtplite into /usr/bin and fails (until
  /usr/bin is writable for the user, of course).

  Example:

  > ./configure --prefix=/u/leusch/tmp/eval
  --exec-prefix=/u/leusch/tmp/eval/intel 
  [...]

  > make install
  /usr/bin/tclsh8.4 `echo ./installer.tcl` \
          -no-examples -no-html \
          -pkg-path  
  /u/leusch/tmp/eval/intel//lib/tcllib1.7 \
          -nroff-path /u/leusch/tmp/eval//man/mann \
          -no-wait -no-gui
  Installing Tcllib 1.7
  You have chosen the following configuration ...

  Packages:      /u/leusch/tmp/eval/intel//lib/tcllib1.7
  Applications:  /usr/bin                             [
  <===== !!!!! ]
  Examples:      Not installed.
  Documentation:

          NROFF:  /u/leusch/tmp/eval//man/mann
          HTML:   Not installed.

  [...]
  Generating /u/leusch/tmp/eval/man/mann/uri.n
  Generating /u/leusch/tmp/eval/man/mann/uuid.n
  error copying "./apps/dtplite" to "/usr/bin/dtplite":
  permission denied
      while executing
  "file copy -force $aexe    $adst"
      (procedure "ainstall" line 16)
      invoked from within
  "ainstall"
      (procedure "doinstall" line 26)
      invoked from within
  "doinstall"
      (procedure "main" line 11)
      invoked from within
  "main"
      (file "./installer.tcl" line 536)
  make: *** [install] Error 1



  Stating --bin-path explicitly when calling configure
  doen't help either.


  Diagnosis:
  installer.tcl requires the -app-path parameter if the
  apps are to be installed other than in /usr/bin which
  the Makefile doesn't.


  Possible fix:
  *** Makefile.in.orig    2005-01-10 21:20:27.000000000 +0100
  --- Makefile.in 2005-01-10 21:24:17.000000000 +0100
  ***************
  *** 28,33 ****
  --- 28,34 ----
    exec_prefix   = @exec_prefix@
    libdir                = @libdir@
    mandir                = @mandir@
  + bindir                = @bindir@
    
    DESTDIR               =
    pkglibdir     = $(libdir)/@PACKAGE@@VERSION@
  ***************
  *** 52,57 ****
  --- 53,59 ----
          $(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
    

  (or whatever path is reasonable for the apps)


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


tkt_uuid: 570227ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Works For Me
subsystem: None
priority: 5 Medium
foundin: None
title: crc32 not like zlib crc (with patch)
cmimetype: text/plain
submitter: cferril
assignee: patthoyts
closer: patthoyts
closedate: 2002-09-24T23:06:54
comment:
  This may be a moot point, but...

  I am using the pure Tcl version of the crc32 package to 
  calculate crc's to match with crc's created from the zlib 
  version of crc code.  I found that the following change 
  would correct the Tcl crc32 to return the same value as 
  the zlib c code returns.  In the procedure crc::Crc32_tcl, 
  change the inital setting of crcval as follows:

       set crcval [expr {$seed ^ 0xFFFFFFFF}]

  I'm not using Trf so I don't know what crc code it uses or 
  if this change breaks that compatibility.  I had figured 
  this crc package was the same as zlib; and I expect 
  others may too.

  Hope this helps


tkt_uuid: 1007766fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: tklib: ctext
priority: 5 Medium
foundin: None
title: Add a case-insensitive matching option to ctext
cmimetype: text/plain
submitter: arjenmarkus
assignee: georgeps
comment:
  For my editor of Fortran code I would like to be able
  to use case-insensitive matching of keywords. E.g.
  "subroutine" would match "Subroutine" as well as
  "SUBROUTINE" and any other variations.


tkt_uuid: 981771ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tklib: plotchart
priority: 5 Medium
foundin: None
title: Add radial diagram to the repertoire
cmimetype: text/plain
submitter: arjenmarkus
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2007-06-13T07:05:59
comment:
  Often semi-numerical data (scores on categories) are
  represented in a circular diagram. Each score is a
  point on a spoke of the circle and these scores are
  then connected by lines.

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


tkt_uuid: 2796712fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: new animated emoticons are damaged
cmimetype: text/plain
submitter: matzek
assignee: nobody
comment:
  Hi Pat,

  tkchat-1.470.kit with a ActiveTcl 8.5.7 shows the new animated :drunk: and :headbang: icons with pixel salad. The static versions seem to be ok.

  kind regards
  -- Matthias Kraft


tkt_uuid: 1554121fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: snit
priority: 5 Medium
foundin: None
title: Camel case options
cmimetype: text/plain
submitter: pointsman
assignee: duquette
comment:
  Snit objects doesn't allow camel case named options.

  Something like 

  option -thisOrThat

  throws an error: 
  Error in "option -thisOrThat...", badly named option
  "-thisOrThat"

  It is documented, to work this way:
  "The option name must begin with a hyphen, and must not
    contain any upper case letters."

  It's there a reason for this other than to force the
  snit users to use a certain naming style?

  If possible, I would prefer, that camel case option
  names are allowed.

  Even if not, there is either a bug in the option name
  checking code or in the documentation. Because the user
  can in fact use upper case letters in an option name,
  as long as they are outside of 7-bit ASCII. E.g.

  option -thisÄtschThat

  works. The used char in this example ist a latin
  capital A with diaresis, \u00c4 and this is an upper
  case letter, as tcl confirm:

  string is upper Ä
  ==> 1


tkt_uuid: 1416749fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: html
priority: 5 Medium
foundin: None
title: html: test suite bugs
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-29T08:34:11
comment:
  with -debug 1:
  * html 1.3
  test name 'html-2.1' re-used; prior use in
  /local/src/tcllib/modules/html/html.test
  test name 'html-24.1' re-used; prior use in
  /local/src/tcllib/modules/html/html.test
  test name 'html-24.1' re-used; prior use in
  /local/src/tcllib/modules/html/html.test
  test name 'html-25.3' re-used; prior use in
  /local/src/tcllib/modules/html/html.test
  test name 'html-26.2' re-used; prior use in
  /local/src/tcllib/modules/html/html.test


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

  The Lpermutations proc contains this check

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

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


tkt_uuid: 456255ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: base64
priority: 5 Medium
foundin: None
title: export public API only
cmimetype: text/plain
submitter: hemanglavana
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-09-05T23:54:21
comment:
  In some modules, there is a single line code:

      namespace export *

  This exports public as well as private API.

  I am providing a patch generated based on the
  convention that all
  public APIs begin with lower case first letter. So,
  please verify the list of public APIs I have added to
  the "namespace export" list.


tkt_uuid: 3608943fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: dns
priority: 5 Medium
foundin: None
title: [::ip::version] crashes when receives empty string
cmimetype: text/plain
submitter: vamp-sl
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2013-03-25T17:14:40
comment:
  tcllib version 1.15, when empty string passed as arg, proc ip::version crashes:
  % package require dns
  1.3.3
  % ip::version {}
  can't read "addr": no such variable
  % set errorInfo
  can't read "addr": no such variable
      while executing
  "IPv4? $addr"
      (procedure "ip::version" line 4)
      invoked from within
  "ip::version {}"

  One of possible ways to correct it - check for an empty string in proc, or lassign can be used instead of foreach:
  proc ::ip::version {ip} {
      set version -1
      if {$ip eq {}} {return $version}
      foreach {addr mask} [split $ip /] break
      # or: lassign [split $ip /] addr mask
      if {[IPv4? $addr]} {
          set version 4
      } elseif {[IPv6? $addr]} {
          set version 6
      }   
      return $version
  }


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


tkt_uuid: 840568ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: fileType: Detect audio
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-09-30T19:08:21
comment:
  Extend fileType to detect various audio file formats:
  wav
  ogg
  mp3
  ra (real audio)

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

         .8svx     Amiga 8SVX musical instrument
  description format.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

         vorbis    See .ogg format.

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

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


tkt_uuid: 3612645fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: aes
priority: 5 Medium
severity: Minor
foundin: None
title: aes decrypt fails with -in option
cmimetype: text/plain
assignee: aku
closer: aku
closedate: 2456444.30401707
comment:
  platform details: 

  1. Tcl - 8.5.14 
  2. Tcllib - 1.15
  3. aes - 1.1

  Test program: 

      package require aes 

      set key [binary format a32 0123456789012345678901234567890123456789] 

      # Encrypt 
      set outfl [open /tmp/aes.out wb+] 
      aes::aes -key $key -out $outfl "Hello World Tcl" 
      close $outfl 

      # Decrypt 
      set infl [open /tmp/aes.out rb] 
      set outfl [open /tmp/decrypt.txt w+] 
      aes::aes -dir decrypt -key $key -in $infl -out $outfl 
      close $infl 
      close $outfl 


  Issue: 

  When I open the decrypt.txt, I get extra garbage after the text "Hello World Tcl".
  It works fine if I give the data to decrypt without -in option (ie., [read $infl]


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

  What are these good for, then?

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

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

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

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


tkt_uuid: 2861189fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: ncgi
priority: 5 Medium
foundin: None
title: decode and encode: inconsistent handling of line breaks
cmimetype: text/plain
submitter: thomasmaeder
assignee: welch
comment:
  ncgi::encode (and http::formatQuery, for that matter) encodes "\n" as "%0d%0a". ncgi::decode decodes this sequence into "\r\n".

  The result is that if a multi-line string is passed from a program to a CGI script that uses ncgi for dealing with the parameters, the CGI script doesn't see the same string the program intended to send it.

  If implemented correctly, ncgi::encode and ncgi::decode should therefore be inverse operations, and the one to be adapted seems to be ncgi::decode.


tkt_uuid: 564674ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Rejected
subsystem: None
priority: 5 Medium
foundin: None
title: dns::resolve time out
cmimetype: text/plain
submitter: gwlester
assignee: patthoyts
closer: patthoyts
closedate: 2002-07-06T22:55:40
comment:
  On a Windows NT system running behind a fireware the dns::resolve always times out.

  E.g.
  > tclsh
  % nslookup www.uno.edu dns.myisp.net
  Server:  dns.myisp.net
  Address:  xx.xx.xx.xx

  Non-authoritative answer:
  Name:    internet-service.ucc.uno.edu
  Address:  137.30.1.92
  Aliases:  www.uno.edu

  % package require dns; # Have to do this twice due to another bug
  % dns::configure -nameserver dns.myisp.net
  % dns::resolve www.uno.edu
  couldn't open socket: connection refused
  %


tkt_uuid: 2812832fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: statistics
priority: 5 Medium
foundin: None
title: unstable calculation of variance
cmimetype: text/plain
submitter: anyeli
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-07-14T11:12:22
comment:
  Variance is calculated in an unstable manner.

  Example (courtesy of Wikipedia):
  % ::math::statistics::var {4 7 13 16}
  30.0
  % ::math::statistics::var {1000000004 1000000007 1000000013 1000000016}
  0.0

  At the very least you should subtract off the mean before squaring to avoid losing significance.  For serious use you might also want to use compensated summation.


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

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

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


tkt_uuid: 625327ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Works For Me
subsystem: smtp
priority: 5 Medium
foundin: None
title: Problem using i as a counter at level 0
cmimetype: text/plain
submitter: lduperval
assignee: gwlester
closer: gwlester
closedate: 2002-12-02T04:25:22
comment:
  set mailHost localhost
  set mailPort 25
  set myAddress lduperval@yahoo.com

  set addresses {
  lduperval@yahoo.com
  }

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

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

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

  This is the error I get:

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

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


tkt_uuid: 1039961fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: htmlparse - numeric character references with leading 0s
cmimetype: text/plain
submitter: jenglish
assignee: andreas_kupries
closer: jenglish
closedate: 2004-10-04T14:32:35
comment:
  Numeric character references with leading zeros are
  misparsed as octal.  For example, &#038;  (in case the
  SF bug tracker mangles that, it's: "ampersand, pound
  sign, zero, three, eight, semicolon").

  Attached patch fixes the problem and adds a test case.


tkt_uuid: 1060353fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: ldap
priority: 5 Medium
foundin: None
title: ldap::search problem with spaces in filter specs
cmimetype: text/plain
submitter: andreas_kupries
assignee: loewerj
closer: mic42
closedate: 2006-09-24T12:07:20
comment:
  The original report is
  http://bugs.activestate.com/show_bug.cgi?id=34774

  Running Active State Tcl 8.4.7 on Windows 2000 server.

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

  % set tcl_version
  8.4

  % info patchlevel
  8.4.7

  % package require ldap
  1.2

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

  TestCase.

  Search with "General*" works.

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

  Search with "General Managemernt" fails.

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

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

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

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

  Doco may need to be updated.


tkt_uuid: 579853ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: Backslashes escaped but not unescaped
cmimetype: text/plain
submitter: cleverly
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-08-08T17:01:08
comment:
  ::htmlparse::PrepareHtml protects characters that are
  special to Tcl (braces and backslash).  The ob & cb
  (open & closing brace) escapes are converted back
  because there are keys for ob & cb in the
  ::htmlparse::escapes array, but there is no entry for
  ::htmlparse::escapes(bsl).


tkt_uuid: 472009ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 5 Medium
foundin: None
title: mime/smtp/Trf
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-11-04T04:50:34
comment:
    mime/smtp/Trf package bug

    the proc "smtp::wdata(949)" got a command
  "create/read" form procedure
    "transform(902)". This command is not supported

  <-- 220 linux02.otto-net ESMTP Sendmail
  8.11.2/8.11.2/SuSE Linux 8.11.1-0.5; Wed, 17 Oct 2001
  10:47:02 +0200
  --> EHLO localhost (wait upto 300 seconds)
  <-- 250-linux02.otto-net Hello localhost [127.0.0.1],
  pleased to meet you
  <-- 250-ENHANCEDSTATUSCODES
  <-- 250-8BITMIME
  <-- 250-SIZE
  <-- 250-DSN
  <-- 250-ONEX
  <-- 250-ETRN
  <-- 250-XUSR
  <-- 250 HELP
  --> ONEX (wait upto 300 seconds)
  <-- 250 2.0.0 Only one transaction
  --> MAIL FROM:<dev2usr@linux02> (wait upto 600 seconds)
  <-- 250 2.1.0 <dev2usr@linux02>... Sender ok
  --> RCPT TO:<dev1usr@linux02> (wait upto 3600 seconds)
  <-- 250 2.1.5 <dev1usr@linux02>... Recipient ok
  --> DATA (wait upto 300 seconds)
  <-- 354 Enter mail, end with "." on a line by itself
  Call: smtp::wtextaux ::smtp::1 ::mime::1
  Call: smtp::wdata ::smtp::1 create/write {}
  Call: smtp::wdata ::smtp::1 create/read {}
  --> RSET (wait upto 0 seconds)
  --> QUIT (wait upto 0 seconds)
  Unknown command "create/read"
      while executing
  "error "Unknown command \"$command\"""
      ("default" arm line 2)
      invoked from within
  "switch -- $command {
          create/write
              -
          clear/write
              -
          delete/write {
              set state(crP) 0
          ..."
      (procedure "smtp::wdata" line 8)
      invoked from within
  "smtp::wdata ::smtp::1 create/read {}"
      invoked from within
  "transform -attach $state(sd) -command [list
  smtp::wdata $token]"
      (procedure "smtp::wtextaux" line 11)
      invoked from within
  "smtp::wtextaux $token $part "
      invoked from within
  "smtp::sendmessage $M1  -debug  yes     \
                                                  -header
  [ list To "Dev1Usr <dev1usr@linux02>" ] \
                                                  -header
  [ list From "Andreas Otto <dev2usr@linux02>..."


tkt_uuid: 565284ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Notebook can't cope with multi-line-text
cmimetype: text/plain
submitter: svogel
assignee: damonc
closer: damonc
closedate: 2003-10-20T23:16:26
comment:
  I'd like to have a page-"label" with newlines in it.
  Only the first line can be seen in the label.
  This is due to the calculation of the height of the tabs in 
  function:
  NoteBook::create (and NoteBook::configure)
  which calculates the height like this:
  [expr {[font metrics $font -linespace] + 6}]

  Maybe the delta (6) should be configurable anyway, 
  because the texts (if the tabs are placed "top") are very 
  close to the tab-panes. So for my taste, I would like to 
  have
  [expr {[font metrics $font -linespace] + 8}]

  May be an additional option like: -text_offset_y or 
  something similar would do it.

  By the way, the width again is o.k. even with multiline-
  texts.


tkt_uuid: 1021240fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: bwidget
priority: 5 Medium
foundin: None
title: bwidget table of contents in doctools format
cmimetype: text/plain
submitter: lvirden
assignee: nobody
comment:
  I took a stab at converting the first of the bwidget
  files to doctools format.
  I don't have a lot of time - I would love to see all
  the bwidget pages reformatted.  


tkt_uuid: 3428262fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: json
priority: 5 Medium
severity: Minor
foundin: None
title: JSON: Trailing spaces added to number value
cmimetype: text/plain
assignee: andreas_kupries
closer: aku
closedate: 2456444.30905948
comment:
  When the source json is { "a" : 0 }, then the resulting dict is: { a {0 } } (not {a 0}). This may be significant when comparing json results coming from two different sources.

  To fix this problem, please change near this line:
  string is double -failindex last $txt
  the following line:
  set num [string range $txt 0 [expr {$last - 1}]]
  into:
  set num [string trim [string range $txt 0 [expr {$last - 1}]]]


tkt_uuid: 1245508fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ntp
priority: 5 Medium
foundin: None
title: NTP handling wrong
cmimetype: text/plain
submitter: dkf
assignee: patthoyts
closer: patthoyts
closedate: 2005-08-18T12:04:42
comment:
  The handling of (s)ntp by the ntp package is wrong; you
  can't talk ntp (these days) over tcp and you certainly
  can't use 'abcd' as a request message!

  And the package claims to be the time package for
  [package require], despite being in the ntp dir within
  the distribution.


tkt_uuid: 948063ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: MenuFrame: no 'getmenustate' method
cmimetype: text/plain
submitter: pointsman
assignee: damonc
closer: oehhar
closedate: 2009-07-01T07:43:32
comment:
  Apparently, there is not way, to query the state of a
  menu tag.

  The state of menu tags could be set with:

  $mainframe setmenustate tag state

  I would be very handy, to be able to query the state of
  a tag. Something like a getmenustate method with syntax
  like

  $mainframe getmenustate tag

  returning the state. Or enhanced setmenustate syntax

  $mainframe setmenustate tag ?state?

  If the optional new state is omitted, then the current
  state of the tag is returned. (And emtpy string for not
  knows tags? Or error? Curently,  setmenustate simply
  ignores unknown tags - which shuld be mentioned in the
  documentation.)

  The current setmenustate implementation in
  mainframe.tcl still includes the old tag state
  mechanism commented out. I agree, that the current
  state system is better. Shouldn't this code be removed?

  The documentation should mention at one place, that
  only state "disabled" disables the tag and that every
  other state enables it.


tkt_uuid: 886304ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidgets1.7.0 bug in Notebook:bindtabs command
cmimetype: text/plain
submitter: donp1
assignee: hobbs
closer: hobbs
closedate: 2004-02-03T22:03:07
comment:
  I am using ActiveTcl8.4.4.0 with BWidgets1.7.0. The 
  Notebook widgets bindtabs command seems to be 
  stripping off the first two characters of the tabname. 
  Here is a small script to replicate the bug. 

  #!/bin/env wish

  proc print_tab_name {tab} {
  puts $tab
  }

  # Load BWidget package into the interpreter
  package require BWidget

  wm withdraw .

  # Create Notebook
  set notebook [NoteBook .nb]
  $notebook insert end TestTab -text "Test Tab"
  $notebook compute_size
  pack $notebook -fill both -expand yes -padx 4 -pady 4
  $notebook raise [$notebook page 0]
  $notebook bindtabs <Button-1> "print_tab_name"

  wm deiconify .


tkt_uuid: 3601995fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ncgi
priority: 8
foundin: None
title: Wrong utf-8 handling in ncgi::decode
cmimetype: text/plain
submitter: quantifier
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2013-01-30T20:13:35
comment:
  ncgi::decode uses regular expressions to handle utf-8 characters. However, the patterns are wrong. They do not cover all utf-8 sequences and also cover illegal sequences.

  #These are wrong:
  #    regsub -all -- {%([A-Fa-f][A-Fa-f0-9])%([A-Fa-f][A-Fa-f0-9])%([A-Fa-f][A-Fa-f0-9])} \
  $str {[encoding convertfrom utf-8 [DecodeHex \1\2\3]]} str
  #    regsub -all -- {%([A-Fa-f][A-Fa-f0-9])%([A-Fa-f][A-Fa-f0-9])} \
  $str {[encoding convertfrom utf-8 [DecodeHex \1\2]]} str

  #These are right:
      regsub -all -- {%([Ee][A-Fa-f0-9])%([89ABab][A-Fa-f0-9])%([89ABab][A-Fa-f0-9])} \
  $str {[encoding convertfrom utf-8 [DecodeHex \1\2\3]]} str
      regsub -all -- {%([CDcd][A-Fa-f0-9])%([89ABab][A-Fa-f0-9])} \
  $str {[encoding convertfrom utf-8 [DecodeHex \1\2]]} str


tkt_uuid: 1282221fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: uuid
priority: 5 Medium
foundin: None
title: [uuid generate] tests fail
cmimetype: text/plain
submitter: dgp
assignee: patthoyts
closer: patthoyts
closedate: 2005-09-05T20:05:33
comment:
  ==== uuid-1.1 uuid generate should create a 36 char
  string uuid FAILED
  ==== Contents of test case:

      list [catch {string length [uuid::uuid generate]}
  msg] $msg

  ---- Result was:
  1 {can't read "tcl_platform(platform)": no such variable}
  ---- Result should have been (exact matching):
  0 36
  ==== uuid-1.1 FAILED


  ==== uuid-1.2 uuid comparison of uuid with self should
  be true FAILED
  ==== Contents of test case:

      list [catch {
          set a [uuid::uuid generate]
          uuid::uuid equal $a $a
      } msg] $msg

  ---- Result was:
  1 {can't read "tcl_platform(platform)": no such variable}
  ---- Result should have been (exact matching):
  0 1
  ==== uuid-1.2 FAILED


  ==== uuid-1.3 uuid comparison of two different uuids
  should be false FAILED
  ==== Contents of test case:

      list [catch {
          set a [uuid::uuid generate]
          set b [uuid::uuid generate]
          uuid::uuid equal $a $b
      } msg] $msg

  ---- Result was:
  1 {can't read "tcl_platform(platform)": no such variable}
  ---- Result should have been (exact matching):
  0 0
  ==== uuid-1.3 FAILED


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

  Attached file of utils.tcl solves the problem.


tkt_uuid: 3117246fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: mime
priority: 5 Medium
foundin: None
title: Mime maildemo file is missing the tclsh startup bits
cmimetype: text/plain
submitter: stwo
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-11-25T17:20:50
comment:
  Here's the patch:

  --- examples/mime/maildemo.tcl.orig     Wed Feb  4 09:25:12 2009
  +++ examples/mime/maildemo.tcl  Wed Feb  4 09:26:45 2009
  @@ -1,3 +1,7 @@
  +#! /bin/sh
  +# the next line restarts with tclsh \
  +exec tclsh "$0" ${1+"$@"}
  +
   # maildemo.tcl - Copyright (C) 2005 Pat Thoyts <patthoyts@users.sf.net>
   # 
   # This program illustrates the steps required to compose a MIME message and 


tkt_uuid: 1160005fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
title: tklib plotchart test suite failure using tcl/tk 8.5 alpha
cmimetype: text/plain
submitter: lvirden
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2005-10-04T06:47:06
comment:
  Platform: sparc solaris sun c compiler
  Tcl/Tk latest from cvs
  tklib latest from cvs

  After configure and building, I ran the test suite and
  got this
  error:

  Module: plotchart
  modules/plotchart/plotchart.test
  Plotchart 1.0
  modules/plotchart/plotcontour.test
  couldn't read file "plotchart.tcl": no such file or
  directory
      while executing
  "source plotchart.tcl"
      (file
  "/vol/tclsrcsol/tcl85/tklib/modules/plotchart/plotcontour.test"
  line 3)
      invoked from within
  "source [pSet file]"


  Before the error appeared, a series of tk widgets
  appeared with plotting information.


tkt_uuid: 1335320fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: uri
priority: 5 Medium
foundin: None
title: Missing documentation of constituents
cmimetype: text/plain
submitter: setok
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-10T22:14:57
comment:
  The uri::split command is documented as splitting an URI into its 
  constituents but does not specify what these are. It would be 
  useful to have them documented in the same place so one would 
  not need to guess or look up from the RFC and base on that.


tkt_uuid: 1018934fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: dns
priority: 5 Medium
foundin: None
title: dns.tcl incorrectly detecting query as a reverse lookup
cmimetype: text/plain
submitter: nobody
assignee: patthoyts
closer: patthoyts
closedate: 2004-10-19T10:59:12
comment:
  I was trying to use the dns module to resolve an
  address similar to "127.0.0.1.example.org", but it was
  failing as this query was being incorrectly detected as
  an IP.

  I changed the line (in dns.tcl):
  if {[regexp {(?:\d{0,3}\.){3}\d{0,3}} $state(query)]} {

  to:
  if {[regexp {^(?:\d{0,3}\.){3}\d{0,3}$} $state(query)]} {

  and now everything seems to be working fine.


tkt_uuid: 3107991fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Invalid
subsystem: mime
priority: 5 Medium
foundin: None
title: ref:1470818-Wrong monthname returned by mime::parsedatetime
cmimetype: text/plain
submitter: jxmercog
assignee: mrose
closer: jxmercog
closedate: 2010-11-17T15:43:47
comment:
  This is valid for all versions since 1.8.  I found a minor issue with the fix for this issue. "Clock format $clock -format $m " returns a value between 01 - 12 but MONTHS_SHORT expects a value from 0-11 so the date is still off by a month when no date header is provided when this patch is applied.  I've applied the following patch to mime.tcl to fix the issue in procedure mime::parsedatetime in every place that MONTHS_SHORT is accessed.
              set mon [lindex $MONTHS_SHORT [expr [scan [clock format $clock -format %m] %d] - 1]]


tkt_uuid: 1720331fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: list
priority: 5 Medium
foundin: None
title: lcsInvertMerge gives incorrect result
cmimetype: text/plain
submitter: kennykb
assignee: andreas_kupries
closer: kennykb
closedate: 2007-05-16T22:20:16
comment:
  The simple example:

  % set lcs [struct::list longestCommonSubsequence {a b c d e} {a f c g e}]
  {0 2 4} {0 2 4}
  % struct::list lcsInvertMerge $lcs 5 5
  {unchanged {-1 0} {-1 0}} {changed {1 1} {1 1}} {changed {3 3} {3 3}}

  yields an incorrect result.  The content of $lcs is correct; {0 2 4} in both lists is the common subsequence.  But the expected output would have been

  {unchanged {0 0} {0 0}} 
  {changed {1 1} {1 1}} 
  {unchanged {2 2} {2 2}} 
  {changed {3 3} {3 3}}
  {unchanged {4 4} {4 4}}


tkt_uuid: 2909184fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tklib: request for new module
priority: 5 Medium
foundin: None
title: new menubar command
cmimetype: text/plain
submitter: tomk
assignee: andreas_kupries
closer: tomk
closedate: 2009-12-18T01:57:20
comment:
  I have written a menubar command that I think could be a candidate for include in tklib at some point in the future. I have attached the code (tar.gz) for you to try out and give me your thought and suggestions. The code is pure tcl/tk but makes use of TclOO so will need 8.6. The tarball contains a man page (created with doctools) which explains the new command. The tarball also contains a vfs directory which has the menubar code (in lib) and demo application code that you can take a look at to see how the commands can be used on an application. 

  To get a feel for what the new menubar command can do create multiple toplevels (using New). Tearoff menus for each of the toplevels and then play with the check buttons and radio buttons. Next do File->Show Macro Menu in one of the toplevel windows then tearoff the marco menus and play with them.

  Tom Krehbiel


tkt_uuid: 500655ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: man pages not formatted
cmimetype: text/plain
submitter: pointsman
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-01-11T22:44:30
comment:
  On some systems (at least mine) the tcllib man pages
  cannot be displayed with the normal 'man csv' command.

  Instead the formatted page, only a lot of error
  messages  showed up.

  make install works smoothly.

  man.macros is in place.

  It seems, the problem is the inclusion of man.macros
  into the tcllib man pages with the instruction
  .so man.macros

  If I copy the context of man.macros directly into the
  man page and remove the '.so man.macros' instruction,
  everything works.

  The tcl core man pages have man.macros literaly
  included and work smoothly. The inclusion is done by a
  sed command during the installation process. Out of
  Tcl8.3.4 Makefile on Linux (after ./configure):

          @echo "Installing command (.n) docs";
          @cd $(TOP_DIR)/doc; for i in *.n; \
              do \
              rm -f $(MANN_INSTALL_DIR)/$$i; \
              sed -e '/man\.macros/r man.macros' -e
  '/man\.macros/d' \
                      $$i > $(MANN_INSTALL_DIR)/$$i; \
              chmod 444 $(MANN_INSTALL_DIR)/$$i; \
              done;

  (see target install-doc).


tkt_uuid: 2907556fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: ncgi
priority: 5 Medium
foundin: None
title: importFile fails, if the client filename contains a ;
cmimetype: text/plain
submitter: fridolin
assignee: welch
comment:
  The problem is in parseMimeValue. It's to simple to split by ;

  I attach parseMimeValue.tcl. It simply contains the modified proc parseMimeValue.


tkt_uuid: 1710637fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: Development Tools
priority: 5 Medium
foundin: None
title: use of deprecated syntax
cmimetype: text/plain
submitter: dgp
assignee: dgp
closer: dgp
closedate: 2007-05-01T14:42:23
comment:
  I assume this is the category
  for "sak".

  The files sak/registry/registry.tcl
  and sak/util/registry.tcl make use
  of the {expand} syntax which is no
  longer approved.


tkt_uuid: 3426178fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: json
priority: 5 Medium
foundin: None
title: extra "$" in json::list2json
cmimetype: text/plain
submitter: a11426
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-11-10T21:06:55
comment:
  perhaps I am misunderstanding the code, but it appears there is an extra "$" on line 315 of json.tcl in the function json::list2json. Currently creating a list and sending it to this functions produces what appears to be invalid json.

  Example 1:

  package require json
  set z [list {"first"} {"second"} {"third"}]
  json::list2json $z

  The output of the above code on my debian unstable system with tcl8.5 and tcllib-1.13 is:

  [$"first","second","third"]

  Note the extra $. I would expect the output to looks like this:

  ["first","second","third"]


tkt_uuid: 2933130fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: fuzzy
priority: 5 Medium
foundin: None
title: math::fuzzy::tlt returns incorrect value
cmimetype: text/plain
submitter: scottbutcher
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2010-01-18T10:32:05
comment:
  [::math::fuzzy::tlt 1.0 1.1] returns 1 which is correct.
  [::math::fuzzy::tlt 1.1 1.0] however, also returns 1 which is not correct.

  (Tcl) 37 % package require math::fuzzy
  0.2
  (Tcl) 38 % ::math::fuzzy::tlt 1.0 1.1
  1
  (Tcl) 39 % ::math::fuzzy::tlt 1.1 1.0
  1


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

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


tkt_uuid: 1111153fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: fileutil
priority: 5 Medium
foundin: None
title: fileutil::findByPattern fails during recursive search on XP.
cmimetype: text/plain
submitter: pfinnegan
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-02-02T06:49:56
comment:
  fileutil::findByPattern fails during recursive search on 
  Windows XP.     


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

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

  Stack trace. 

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


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

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

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


tkt_uuid: 545368ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: uri
priority: 8
foundin: None
title: uri default scheme
cmimetype: text/plain
submitter: markgsaye
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-14T20:34:49
comment:
  I've noticed that the uri package defaults to a http
  scheme when none is specified:

  % package require uri
  1.1
  % uri::split ftp.somewhere.com
  port {} path ftp.somewhere.com scheme http host {}
  query {}
                                 ^^^^^^^^^^^
  Wouldn't it make more sense for it to return a scheme
  of {} ? Then an application could default to http if
  required. In my case, I want to default to ftp, but
  need to know if the url contains another scheme
  specifier.

  I suppose the uri::split needs to assume a default
  scheme to that it knows which sub-proc to call (i.e.
  uri::SplitFtp, uri::SplitHttp) Perhaps the uri::split
  proc could take an optional arg to specify the default
  scheme?

  % uri::split ftp.somewhere.com ftp

  This addition is trivial to implement.

  proc uri::split {url {scheme {}}} {
   ...
  }

  or even make it more flexible with 'args' (but right
  now I don't see any need to specify defaults for
  anything other than the scheme)


tkt_uuid: 733442ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: md5
priority: 5 Medium
foundin: None
title: procheck reports parse error
cmimetype: text/plain
submitter: hemanglavana
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-05-12T23:50:41
comment:
  unix> procheck md5.tcl
  ...
  md5.tcl:349 (parse) parse error: PARSE syntax 13757
  {syntax error in expression " ($x << $i) | (($x >> R$i)
  & S$i)"}
  expr { ($x << $i) | (($x >> R$i) & S$i)}
       ^
  ...

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


tkt_uuid: 1703408fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: asn
priority: 3 Low
foundin: None
title: Routine for setting the ASN NULL encoding
cmimetype: text/plain
submitter: nobody
assignee: mic42
closer: mic42
closedate: 2007-04-19T18:09:52
comment:
  Hello,
  while using the ASN TclLib1.9 I realised that I got a routine for reading the ASN NULL value but none for setting one. Is this correct?
  If it is could we add it to the lib?
  Kind regards
  KK 


tkt_uuid: 731457ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: comm
priority: 5 Medium
foundin: None
title: results are lost for send -async calls
cmimetype: text/plain
submitter: hemanglavana
assignee: hobbs
closer: hobbs
closedate: 2003-05-10T23:48:30
comment:
  The documentation suggests that the results of RPC and
  remote errors are lost when -async option is specified
   with comm::comm send.

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

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

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

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

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

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

  Andreas

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

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

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


tkt_uuid: 565281ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: tcllib documentation bugs
cmimetype: text/plain
submitter: dgp
assignee: dgp
closer: dgp
closedate: 2002-06-11T17:11:17
comment:
  Two issues when building tcllib's documentation.

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


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


tkt_uuid: 528390ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: example_begin/_end unsatisfactory
cmimetype: text/plain
submitter: arjenmarkus
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-03-13T22:39:15
comment:
  The current implementation of example_begin/example_end
  produces centered literal text. If you have more than
  one example, they will not line up unless the longest
  lines are the same. This is - in my opinion - not very
  pleasant to look at.


tkt_uuid: 416955ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: profiler
priority: 5 Medium
foundin: None
title: Division by zero in stats procedure
cmimetype: text/plain
submitter: efrecon
assignee: gwlester
closer: andreas_kupries
closedate: 2002-05-14T20:46:52
comment:
  If called with all arguments to zero (presumably a 
  procedure that was never used), the stats procedure 
  will produce a division by zero error when computing 
  the covariance (cov).  I propose here a fix, but it 
  needs probably more thinking to make it into the CVS:

  proc ::profiler::stats {args} {
       set sum      0
       set mean     0
       set sigma_sq 0
       set sigma    0
       set cov      0
       set N [ llength $args ]
       if { $N > 1 } { 
          foreach val $args {
             set sum [ expr { $sum+$val } ]
          }
          set mean [ expr { $sum/$N } ]
          foreach val $args {
             set sigma_sq [ expr { $sigma_sq+pow(($val-
  $mean),2) } ]
          }
          set sigma_sq [ expr { $sigma_sq/($N-1) } ] 
          set sigma [ expr { round(sqrt($sigma_sq)) } ]
  if { $mean == 0 } {
      set cov 0.0
  } else {
      set cov [ expr { (($sigma*1.0)/$mean)
  *100 } ]
      set cov [ expr { round($cov*10)/10.0 } ]
  }
       }   
       return [ list $mean $sigma $cov ]
  }


tkt_uuid: 697183ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: latest chat logout menu selection broken
cmimetype: text/plain
submitter: lvirden
assignee: hartweg
closer: patthoyts
closedate: 2003-03-10T13:34:58
comment:
  tkchat 1.80 logout feature produces this output using
  Tcl/Tk 8.4.2:

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


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


tkt_uuid: 527025ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: Some formatting commands not described
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-04-23T23:37:06
comment:
  The commands "rb" and "lb" for entering brackets
  into the text of a manpage are not described in
  the manpage for the format itself.

  Nor are the new commands for semantic markup.


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


tkt_uuid: 1609880fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Duplicate
subsystem: tklib: khim
priority: 5 Medium
foundin: None
title: Czech message file for tklib's KHIM
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-12-06T17:37:00
comment:
  Hi,

  I upload cs.msg.gz

  this is message file with czech translation for tklib
   for KHIM (Kevin's Hacky Input Method).

  Michal <wohnivec@dix.cz>


tkt_uuid: 3513149fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: ncgi
priority: 5 Medium
severity: Minor
foundin: None
title: exra bracket in nvlist command causes corrupt return value
cmimetype: text/plain
submitter: blacksqr
assignee: andreas_kupries
closer: aku
closedate: 2456450.25353277
comment:
  ncgi version 1.3.2

  There is a typo on line 28 of the proc ncgi::nvlist:

  set val [string range $x 1 end]]

  Note the extra close bracket at the end of the statement.
  Due to the strange coincidence of Tcl bug 3513146, this does not throw an error, but instead leads the proc to return a corrupt value.


tkt_uuid: 474999ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: ftp
priority: 5 Medium
foundin: None
title: ftp man page description typo
cmimetype: text/plain
submitter: lvirden
assignee: jenglish
closer: jenglish
closedate: 2001-11-27T15:58:38
comment:
  In the ftp.n man page, under ftp::List , the first
  sentence reads:

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


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

  This command lists the specified files or directories.

  or something like that.


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

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

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

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


tkt_uuid: 934134ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: smtpd
priority: 7 High
foundin: None
title: SMTPD GMT offset calculation incorrect
cmimetype: text/plain
submitter: patthoyts
assignee: patthoyts
closer: patthoyts
closedate: 2004-06-18T01:26:32
comment:
  Package smtpd, proc gmtoffset produces incorrect output
  (sign inverted) when calculating GMT offset. For
  example, it returns
    Sun, 11 Apr 2004 08:14:06 +0500
  for CDT. When it should return
    Sun, 11 Apr 2004 08:14:06 -0500

  The bug is at line 354 of $Id: smtpd.tcl,v 1.12
  2004/01/15 06:36:14 andreas_kupries Exp $

  Which is

          set off [expr {$zh - $lh}]

  but apparently should be

          set off [expr {$lh - $zh}]

  Raised by Bob Binder (rbinder aT rbsc dot com)


tkt_uuid: 1007396fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: graph
priority: 3 Low
foundin: None
title: incomplete options checking on arcs and nodes subcommand
cmimetype: text/plain
submitter: mic42
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-09-22T04:49:52
comment:
  I got the following report for cgraph, but the same is
  true for at least tcllib struct::graph v1, maybe v2.

  The problem ist the bad option check on the arcs and
  nodes subcommand that do not check for multiple -key
  occurances of an option, they just take that last one
  without throwing an error. Testsuite should be enhanced
  and either an error thrown or multiple key/values
  should be supported.

  set g [::struct::graph::graph]

  foreach n {n1 n2 n3} {
     $g node insert $n
  }

  foreach source {n1 n2} target {n2 n3} {
      set arc [$g arc insert $source $target]
      $g arc set $arc -key contain $source
  }

  # setup other keys
  $g arc set arc1 -key foo v1
  $g arc set arc2 -key bar v2

  #
  # a useful feature colud be the selections of arcs (and
  nodes) that 
  match multiple keys, as in the following example
  #
  # that, incidentally, work as expected, but I think
  simply use the last 
  key/value pair to do the selection ...
  #
  #
  $g arcs -key contain -value n1 -key foo -value v1

  # this work as expected, it returns arc1
  $g arcs -key contain -key foo

  #
  # this doesnt work, it returns a void list
  #
  $g arcs -key contain -value n1 -key foo

  #
  # this returns a void list, it is right?
  #
  #  peraphs an error should be throwed ...
  #
  $g arcs -value n1


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

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

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


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

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


  Any Questions?

  David Bigelow
  davidhbigelow@compuserve.com


tkt_uuid: 531541ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: mime
priority: 5 Medium
foundin: None
title: Partial message construction
cmimetype: text/plain
submitter: andreas_kupries
assignee: mrose
comment:
  See Tcllib FR #531531 and Tcllib FR #527114
  for supplemental information.

  It would be convenient for the pop3 server
  if the mime package could construct/copy
  partial messages containing a specified number
  of lines of the body. The implementation of
  the pop3 TOP command would benefit greatly from
  this.

  I know that I could construct the whole message
  in memory and then simply cut of the transfer
  after the specified number of lines but this
  means that the system will consume a lot of memory
  when it comes to big messages.


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

  The diff is:

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


tkt_uuid: 2848168fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: crc
priority: 9 Immediate
severity: Minor
foundin: None
title: signmask incorrect in ::crc::Crc and ::crc::Crc32_tcl
cmimetype: text/plain
submitter: kchansen
assignee: aku
closer: aku
closedate: 2456449.50638971
comment:
  Both crc16.tcl and crc32.tcl use a variable named "signmask", that is constructed from another variable named "signbit".

  For 32-bit data, signbit is 0x8000000.

  For 32-bit CRCs, the signmask appears to be designed to mask off the high-byte, i.e. it should end up 0x00ffffff.  Signmask is computed as follows:

  set signmask [expr {~$signbit>>7}]

  Unfortunately when you paste this code into Tcl, (V8.4.14, V8.5.*, V8.6.*) you don't get 0x00FFFFFF, you get 0xFEFFFFFF.

  Now, this is *probably* a bug in EXPR or in the >> operator, but the code does not work the way it is currently written....


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

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

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

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

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

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


tkt_uuid: 524353ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget SelectFont quick font list
cmimetype: text/plain
submitter: pkienzle
assignee: hobbs
closer: hobbs
closedate: 2002-06-04T20:40:12
comment:
  Categorizing fonts as fixed or variable is very slow. 
  If all the fonts are being displayed, then you don't
  need to categorize them, so the font list displays
  quickly.  This patch will also make the demo script
  load much faster.


tkt_uuid: 613134ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: bwidget
priority: 5 Medium
foundin: None
title: PanedWindow does not display correctly
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2003-02-25T07:59:14
comment:
  In version 1.4.1 of BWidget PanedWindows do not 
  display the second pane anymore. Windows need 
  resize to make second pane visible.

  Please checkout attached sample code:

  Klaus Meywirth
  klaus.meywirth@fci.com


tkt_uuid: 1171533fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Rejected
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ScrolledWindow/Notebook widgets result in hang
cmimetype: text/plain
submitter: hemanglavana
assignee: damonc
closer: oehhar
closedate: 2009-06-30T14:06:42
comment:
  Hi,

  The following code results in a "hang" state with
  BWidget1.7 on solaris2.8/tcl8.4 when "update idletasks"
  is called. 

      package require BWidget
      set swg [ScrolledWindow .swg]
      set wg [NoteBook $swg.nb]
      pack $wg -fill both -expand 1 ;# use of grid
  instead of pack resolves this issue
      update idletasks ;# it hangs here

  The same code works fine with BWidget1.4.1. After some
  debugging, I found out that the problem sees to occur
  due to changes commited to 1.5 version of scrollw.tcl file:

  ----------------------------
  revision 1.5
  date: 2003/02/25 09:51:03;  author: hobbs;  state: Exp;
   lines: +108 -180
          * scrollw.tcl: complete rewrite of
  ScrolledWindow widget to
          address infinite loop scrollbar problems.  This
  one is much
          simpler and does not suffer the infinite loop.
   There still seems
          to be an issue with shrinking smaller than one
  scrollbar width /
          height in size, but that's not common (nor
  fatal).  Addresses
          [Patch #671821, #520903] [Bug #472718, #564691]
  ----------------------------

  Am I facing the shrinking issue mentioned in this log
  message?


  Hemang.


tkt_uuid: 3490008fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: grammar_peg
priority: 5 Medium
foundin: None
title: nonterminal delete does not work
cmimetype: text/plain
submitter: glastonbridge2
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2012-02-22T18:42:27
comment:
  When I try to do a [$grammar nonterminal delete SymbolName] I get the following error:

  can't read "nt": variable is array

  Looking at the code in CVS, this looks like the culprit.  I have not had time to test this theory:

  ...
  322method NtDelete {nts} {
  323 set references $re($nt)
  ...


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

  Thanks for all the great utils!

  -Ian Chesal


tkt_uuid: 505465ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: 2 new commands for PanedWindow
cmimetype: text/plain
submitter: norganos
assignee: hobbs
closer: sf-robot
closedate: 2007-11-15T03:20:07
comment:
  What about 2 new commands for the PanedWindow to 
  hide/show a frame?

  Here is what I wrote to do this:

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

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


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

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


  package require BWidget

  set max  100000000
  set incr   1000000

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

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


  The attached patch fixes this problem.

  Kind regards,

  Jos


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

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


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

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


tkt_uuid: 2974624fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: amazon-s3
priority: 5 Medium
foundin: None
title: man page for xsxp package incorrect
cmimetype: text/plain
submitter: cwjolly
assignee: dnew
comment:
  In the manpage for the xsxp package the example is given : 

  xsxp::fetch $pxml {html body p#4 b} %PCDATA

  This should be corrected to: 

  xsxp::fetch $pxml {body p#4 b} %PCDATA

  fetch does not use the root node ( i.e. html ) by name and the fetch function purposely steps over it. In fact the only way to return any information about the root node is to specify {} as your path.  
  Having looked at the code one could also update the manpage to say that xsxp::fetch accepts paths in both list and '/' delimited format  (e.g { body p#4 b }  and /body/p#4/b )


tkt_uuid: 3313947fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: http :: autoproxy
priority: 5 Medium
foundin: None
title: Bug 3094654 fixed, but man page update forgotten
cmimetype: text/plain
submitter: fvogelnew1
assignee: patthoyts
closer: oehhar
closedate: 2012-02-13T09:54:00
comment:
  Item 3094654 (missing dash sign for option names) has been fixed several months ago, but the man page was not updated and still shows option names without dashes:

  http://tcllib.sourceforge.net/doc/autoproxy.html


tkt_uuid: 1514855fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: error when navigate in empty Tree widget
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: dev_null42a
closedate: 2006-08-21T20:57:11
comment:
  I found an error in Tree widget when navigate inside it
  with keyboard.
  Script to reproduce a bug:

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

  #! /usr/bin/wish
  package require Tk
  package require BWidget

  Tree .t
  pack .t

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

  When I focus .t widget and press Down key I saw popup
  window with error message:

  .t selection set: Cannot select unknown node "".
  .t selection set: Cannot select unknown node "".
      while executing
  "Tree::selection .t set {}"
      ("eval" body line 1)
      invoked from within
  "eval [linsert $args 0 Tree::$cmd .t]"
      (procedure ".t" line 1)
      invoked from within
  "$win selection set [lindex $nodes 0]"
      ("down" arm line 4)
      invoked from within
  "switch -exact -- $which {
  "up" {
      # Up goes to the node that is vertically above the
  current node
      # (NOT necessarily the current node's pare..."
      (procedure "Tree::_keynav" line 24)
      invoked from within
  "Tree::_keynav down .t"
      (command bound to event)


  I use Debian Sarge with following versions of software:
  * Tcl 8.4.9
  * Tk 8.4.9
  * BWidget 1.7.0

  As I understand last version of BWidget from cvs
  repository affected by this bug too.

  Patch: the simplest decision is to add folowing code to
  the beginning of Tree::_keynav procedure

  ------------------
  if {[$win nodes root] eq ""} {
      return
  }
  ------------------


tkt_uuid: 1416736fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools: test suite bugs
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-29T05:59:21
comment:
  with -debug 1:

  * doctools 1.2
  test name 'doctools-6.13' re-used; prior use in
  /local/src/tcllib/modules/doctools/doctools.test


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

  Use resources to define the label properties.  

  Have label wrap at 3i.


tkt_uuid: 1709334fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: smtp
priority: 5 Medium
foundin: None
title: Missing trailing newline hangs sendmessage
cmimetype: text/plain
submitter: dnew
assignee: mrose
comment:
  I'm not sure if this is a mime problem or an smtp problem, but...

  If you use the MIME package to create a text/plain without a newline on the end, then use smtp::sendmessage to send it, it appears to hang after sending the message in the DATA command. I suspect the "close the data" period is winding up at the end of the final line instead of at the start of a line by itself.

  Sample code:
  # The first message goes
  # The second message hangs.

  package require mime
  package require smtp

  proc sendmail {from to bcc subject body {queue 1}} {
    set mail [mime::initialize -canonical text/plain -string $body]
    smtp::sendmessage $mail \
      -debug 1 \
      -header [list From $from] \
      -header [list To $to] \
      -header [list BCC $bcc] \
      -header [list Subject $subject] 
    mime::finalize $mail
  }

  puts "Testing with newline..."
  sendmail "dnew@example.com" "dnew@example.com"  "" \
    "Subject One" "Test body\nNewline present\n"
  puts "Message one sent...\n"
  after 10000
  puts "Testing without newline..."
  sendmail "dnew@example.com" "dnew@example.com"  "" \
    "Subject two" "Test body\nNewline absent"
  puts "Message two sent..."


tkt_uuid: 564071ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools - multi-release SYNOPSIS convention
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
comment:
  When looking for documentation on Unix, one types

  man package

  and that turns into a search for a file named
  "package.n" on the MANPATH, and a formatting and
  display of its contents.

  When a new release of package is installed, say
  version 1.1, where a prior version, say 1.0, is
  already installed, the two versions get installed
  side by side, but the man page for 1.1 overwrites
  the one for 1.0.

  For this reason it would be a good convention for
  man pages to include documentation for earlier
  compatible versions, as well as the latest changes.
  I recommended a SYNOPSIS convention like this:

  package require foo 1.0
  foo::bar x
  foo::baz
  package require foo 1.1
  foo::grok a b c
  package require foo 1.2
  foo::snafu
  foo::bar x ?y z?

  Here it is clear what minor release introduced
  each (variation of) each command.

  If the doctools cannot format such a SYNOPSIS 
  convention, I request the new feature that they
  be enhanced so they can.


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

  Hope this helps


tkt_uuid: 2370853fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: None
priority: 5 Medium
foundin: None
title: Wrong path added to auto_path
cmimetype: text/plain
submitter: johnseal
assignee: nobody
comment:
  If tcllib.kit (the one from http://www.equi4.com/pub/om/sdarchive/) is sourced after twapi-1.1.5.kit, a wrong path gets added to auto_path and "package require tcllib" fails.  If tcllib.kit is sourced alone, or before twapi-1.1.5.kit, it adds two entries to auto_path:

  (ORmaint) 1 % set auto_path
  <several paths>
  (ORmaint) 2 % source tcllib.kit
  (ORmaint) 3 % set auto_path
  <same paths plus> <path to>/tcllib.kit/lib <path to>/tcllib.kit/tcllib

  This is with an 8.5.2 tclkit for Windows. But if sourced after twapi-1.1.5.kit, the second entry gets twapi's name instead of tcllib's:

  (ORmaint) 1 % set auto_path
  <several paths>
  (ORmaint) 2 % source twapi-1.1.5.kit
  (ORmaint) 3 % set auto_path
  <same paths plus> <path to>/twapi-1.1.5.kit/lib
  (ORmaint) 4 % source tcllib.kit
  (ORmaint) 5 % set auto_path
  <same paths plus> <path to>/twapi-1.1.5.kit/lib <path to>/tcllib.kit/lib <path to>/twapi-1.1.5.kit/tcllib

  When I asked about this on c.l.t, Michael Schlenker suggested that it might be a bug in the tcllib kit packaging and asked me to file this bug report.


tkt_uuid: 500890ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Mainframe cannot be created if no textvar used
cmimetype: text/plain
submitter: lduperval
assignee: hobbs
closer: hobbs
closedate: 2002-01-15T18:50:47
comment:
  I did a CVS update of BWidget and one of my apps stopped working. Anyone
  know what changes caused this? I see that an eval was added.

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


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

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

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

  the sent sequence is just "."

  If I change line 1254 in smtp.tcl from:

  set result [talk $token $secs .]

  to 

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

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

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


tkt_uuid: 988628ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget 1.7 notebook: missing border
cmimetype: text/plain
submitter: jfontain
assignee: damonc
closer: hobbs
closedate: 2004-09-14T20:47:11
comment:
  Using the following code, with Tcl/Tk 8.4.6 and BWidget
  1.7:

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

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


tkt_uuid: 449531ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: Package to iterate over lines of files
cmimetype: text/plain
submitter: lingnau
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-08-24T17:03:48
comment:
  Here is a package I've been working on that I
  would like to offer for Tcllib. It is basically
  a Tcl-only clone of the Python fileinput module,
  i.e., it contains syntactic sugar for iterating
  over the lines of a number of files, with
  optional in-place editing and backups. This
  allows code like

    # Number lines
    package require fileinput
    ::fileinput::foreach line $argv {
        puts [format "%d %s" [::fileinput::lineno] $line
    }

  I have included a manual page for the package.
  Please let me know if this is acceptable or if
  there is anything I ought to change.


tkt_uuid: 1731101fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Works For Me
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ScrollableFrame invalid scrollbar
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: oehhar
closedate: 2009-06-16T15:09:46
comment:
  Hi,
  I've had quite an annoying bug with Bwidget's ScrollableFrame. Whenever we have data in the frame that doesn't need a scrollbar, at first, there is no scrollbar, but if we resize the window to give it a smaller size, then a scrollbar appears even though it is still not needed. Clicking on the scrollbar will make it disappear instantly. 
  In other words, you create a toplevel of size 500x500, you put a ScrollableFrame in a ScrolledWindow in it, you put widgets in the ScrollableFrame where the internal frame takes 100x100, no scrollbar needed, if we resize the toplevel to 400x400 for example, then a scrollbar appear even though it shouldn't until the size gets under 100x100. Clicking on the scrollbar makes it disappear, if we resize again to 300x300, it appears again. If we resize to 500x500, no scrollbar, if we resize again to 400x400, still no scrollbar.

  I found out the reason behind this. It's pretty simple. The ScrollableFrame is in fact a canvas which contains a frame. This allows the scrollbar to work with the canvas. ScrollableFrame creates the frame and adds a binding on its <Configure> which calls ::ScrollableFrame::_frameConfigure 
  That proc checks the [winfo width] and [winfo height] of the frame and takes the maximum width/height between the width/height of the frame and the width/height of the canvas and sets that as the -scrollregion of the canvas.

  In other words, in the above example, the width/height of the frame is 100x100 and the one of the canvas is 500x500, so the -scrollregion of the canvas becomes [list 0 0 500 500].

  Once we resize the window to 400x400 the scrollregion being [list 0 0 500 500] the scrollbar appears. And the reason why the -scrollregion doesn't get modified is that the frame doesn't get <Configured> since we resize to 400x400 and the frame is in 100x100 so its boundaries aren't touched, so the frame is not <Configured> so the ::ScrollableFrame::_frameConfigure doesn't get called, which is why the scrollregion isn't changed and the scrollbar appears.

  I hope this isn't too confusing.. Anyways, my solution was to simply replace the _frameConfigure proc by a one lines : 
  $canvas:cmd configure -scrollregion [$canvas:cmd bbox all]
  This makes the scrollregion of the canvas be set to the frame's width/height so when we resize, the scrollbar doesn't appear, and if we resize to let's say 99x99, then the scrollbar appears because of the [$canvas:cmd bbox all]. If the frame's size is modified, then you get the <Configure> and the bbox will report the new size of the scrollregion.

  Can you please make sure this patch gets into the next version of bwidget. 

  p.s.: sorry if it's too long and difficult to understand, I'm not very good at explaining things...


  Thank you,
  KaKaRoTo


tkt_uuid: 567079ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: `make dist` recursion
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-08-06T23:02:16
comment:
  A `make dist` in the top directory of tcllib
  leads to infinite recursion of copying tcllib
  files into a subdirectory, then that subdir
  into its subdir. etc.

  Simple workaround, and better practice, is
  to do builds from another directory, but it's
  common for people to build in the source
  directory, and if they `make dist` they
  will fill their disks.


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

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

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

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

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

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

      catch {repeat a} msg
      set msg

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

      catch {repeat 0 b} msg
      set msg

  ---- Result was:

  ---- Result should have been (exact matching):
  must have a count of at least 1
  ==== repeat-4.4 FAILED

  ---- repeat-4.5 start

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

      catch {repeat -1 b} msg
      set msg

  ---- Result was:
  bad count "-1": must be integer >= 0
  ---- Result should have been (exact matching):
  must have a count of at least 1
  ==== repeat-4.5 FAILED


tkt_uuid: 1643952fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: comm
priority: 5 Medium
foundin: None
title: CommRunHook evaluates event hooks twice
cmimetype: text/plain
submitter: cbascom
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-01-25T17:11:14
comment:
  It seems there was a change between the 4.3 and 4.4 versions to execute event hooks from CommRunHook instead of inside each of the individual event procs.  Inside CommRunHook, the event callback is executed using 'eval $cmd'.  Because of this, some of the variables advertised as being in scope for the callback script are not in scope (i.e. for a connect event fid, addr, and remport).  Replacing the 'eval $cmd' line inside CommRunHook with 'uplevel 1 $cmd' fixes this issue.


tkt_uuid: 1104059fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: pop3
priority: 3 Low
foundin: None
title: Allow easy use of TLS with pop3
cmimetype: text/plain
submitter: mic42
assignee: andreas_kupries
comment:
  As more and more services allow to use POP3 with
  SSL/TLS it would be a nice move to support SSL within
  the POP3 package.

  For SSL enabled servers listening only on an SSL port
  this is trivial, just use the tls::socket instead of
  the normal one for the connect.

  Using the POP3 STLS Command (StartTLS), is a bit more
  complex, but not that hard to do, its just an extra
  step in authentification and some logic to do a
  tls::import on the open channel.

  Michael


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

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

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

  This patch should fix bugs 1751871 and 1852718.

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

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


tkt_uuid: 526833ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: Missing commands example_begin/_end
cmimetype: text/plain
submitter: arjenmarkus
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-07-03T22:32:26
comment:
  In the current official release the commands
  "example_begin" and "example_end" are missing from the
  doctools module. These commands are available in the
  development branch, but as they provide the best means
  for showing code, they should be available in the
  release version.


tkt_uuid: 2340320fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Entry invoke is not reachable
cmimetype: text/plain
submitter: relaxmike
assignee: damonc
closer: oehhar
closedate: 2009-06-10T08:19:22
comment:
  Hi (very) Dear Tcl maintainers !

  The _path_command of the Entry widget 
  does not take into account for the 
  invoke command.

  () 49 % package require BWidget
  1.8
  () 50 % Entry .myentry
  .myentry
  () 52 % catch {.myentry invoke} errmsg
  1
  () 53 % puts $errorInfo
  bad option "invoke": must be bbox, cget, configure, delete, get, icursor, index, insert, scan, selection, validate, or xview
      while executing
  ".myentry:cmd invoke"
      ("eval" body line 1)
      invoked from within
  "eval [linsert $larg 0 $path:cmd $cmd]"
      (procedure "Entry::_path_command" line 5)
      invoked from within
  "Entry::_path_command .myentry $cmd $args"
      (procedure ".myentry" line 1)
      invoked from within
  ".myentry invoke"


  The _path_command should be updated to

  proc Entry::_path_command { path cmd larg } {
      if {\
           [string equal $cmd "configure"] || \
           [string equal $cmd "cget"] || \
           [string equal $cmd "invoke"] \
           } {
          return [eval [linsert $larg 0 Entry::$cmd $path]]
      } else {
          return [eval [linsert $larg 0 $path:cmd $cmd]]
      }
  }

  Best regards,

  Michaël


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


tkt_uuid: 3035014fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: uuid
priority: 5 Medium
foundin: None
title: "uuid::generate" returns binary data
cmimetype: text/plain
submitter: rkeene
assignee: patthoyts
closer: patthoyts
closedate: 2010-07-27T08:22:09
comment:
  UUID 1.0.1 returns binary data and not a string representation of the UUID:
          % package require uuid
          1.0.1
          % uuid::generate
          ß4:GjK@QÐ2E`Á

  http://tcllib.sourceforge.net/doc/uuid.html


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


  Code snippet ...
  ...
  ...

  #! /usr/bin/wish

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

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

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

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

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

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

  pack $sw_t -fill both -expand yes

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

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

  pack $mainframe -fill both -expand yes


tkt_uuid: 643337ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: html
priority: 5 Medium
foundin: None
title: ::html::textInput does not process args
cmimetype: text/plain
submitter: gwlester
assignee: gwlester
closer: gwlester
closedate: 2002-11-25T02:36:23
comment:
  The documentation for ::html::textInput reads:

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

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

  For example: 

      ::html::textInput foo width=40

  generates:

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

  Instead of:

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


tkt_uuid: 1274120fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: crc
priority: 5 Medium
foundin: None
title: package overwrites ::v
cmimetype: text/plain
submitter: dgp
assignee: patthoyts
closer: andreas_kupries
closedate: 2005-08-26T16:59:51
comment:
  The crc packages writes to
  the variable "v" without
  resolution control.  This means
  if a variable ::v exists, it will be
  overwritten by the crc16 and
  crc32 packages.

  Attached patch corrects
  the problem.

  Patch also adds int(.)
  coercion protection to
  the calculation of signbit
  to avoid trouble if/when
  Tcl converts to supporting
  bignums.


tkt_uuid: 1655119fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tar
priority: 5 Medium
foundin: None
title: Possible permissions problem with tar
cmimetype: text/plain
submitter: imkepper
assignee: afaupell
closer: afaupell
closedate: 2007-02-12T19:46:45
comment:
  (Some of this was posted to comp.lang.tcl):

  I have a simple script that uses the tcllib tar command.  It tar creates a tar file containing a directory.  The directory contains subdirectories.  Each of those sub-directories contain the following
  sub-directories:

  exec/
  export/
  server/
  lib/

  The directory tree looks this way:

  devdir_4.1/
          subdir1/
                     exec/
                              bin/
                                  file1
                                  file2
                                  file3

                     export/
                                  file1
                                  file2
                                  file3

                     lib/
                                  file1
                                  file2
                                  file3

                     server/
                              bin/
                                  file1

          subdir2/
                     exec/
                              bin/
                                  file1
                                  file2
                                  file3
                     export/
                                  file1
                                  file2
                                  file3

                     lib/
                                  file1
                                  file2
                                  file3

                     server/
                              bin/
                                  file1

  ...  etc

  The problem I am having is that it is not archiving the exec/ directory.   The export/ directory does contain some of the same executables that are located in the exec/ directory.  But, when you do a tar tvf on the tarfile that is created, there is one instance of the
  exec directory in one of the subdirs, but none of the others.  It's as if the exec/ directory gets passed over.

  Here is my script:

  #!/usr/bin/tclsh

  lappend auto_path /export/kdp/dev/tcl/lib
  package require tar

  ::tar::create tarball.tar devdir_4.1 

  I got an e-mail respnse from an Aaron F. requesting a tarball so he could look at the problem.  Because of company proprietary issues, I could not send the originals.  So, I dummied up a set of files in a tarball.  I created a directory structure that contained files from /bin and /lib (on my linux box) to simulate the kind of files each directory contained.  When I ran the script against the new tarball, it worked just fine.  So, apparently, there is  something else weird going on.    I'm thinking now it may be some sort of permissions problem.  Other notes of interest:

  - I am grabbing files from across a local network via NFS.
  - None of the files are symbolically linked.
  - The directory that I am tarring from was populated by various operating systems (Solaris, HP-UX, Linux, AIX).

  Thanks for your great work.  
  Have a nice day,
  Keith Pickett


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

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

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

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

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

  fconfigure $sock -encoding binary

  Finally, yEncs were no longer being corrupted.

  tcllib 1.5 from TclTKAquaWithBatteries.


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

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

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


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

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


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


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

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


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

  I need this simple function:

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

  ncgi::empty does _not_ what i want.

  Thanks,
  Christoph


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

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

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

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


tkt_uuid: 951568ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: smtp
priority: 9 Immediate
foundin: None
title: Problems sending long messages.
cmimetype: text/plain
submitter: patthoyts
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-13T07:02:21
comment:
  From Peter Campbell on comp.lang.tcl
  Message-ID: <DSSnc.1164$FN.128726@news02.tsnz.net>

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

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

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

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

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

  The following is the output from my debugging:



  The following is the output from my debugging:

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


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

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


tkt_uuid: 1475567fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: tklib: plotchart
priority: 5 Medium
foundin: None
title: interaction with elements of the plots
cmimetype: text/plain
submitter: nobody
assignee: arjenmarkus
comment:
  it would be nice if one could interact with the 
  plotted data
  - click on a rectangle and get the data associated 
  with it
  - change the look of a rectangle (i.e. for let them 
  blink)


tkt_uuid: 225308ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
priority: 5 Medium
title: BWidget: tk8.4 breaks Entry widget state option
cmimetype: text/plain
submitter: stevel
assignee: jenglish
closer: jenglish
closedate: 2001-06-29T23:17:20
comment:
  Tk8.4 introduced the -state normal/disabled options for the entry widget. These conflict with the implementation of -state in the BWidget Entry widget. The workaround is to
  create the BWidget Entry widget and configure the state using a separate command. A better solution would be to modify BWidget to recognise Tk 8.4 or later and use the new entry widget features.


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

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

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


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


tkt_uuid: 1007762fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: ctext
priority: 5 Medium
foundin: None
title: Several options not working as expected in ctext widget
cmimetype: text/plain
submitter: arjenmarkus
assignee: georgeps
closer: georgeps
closedate: 2004-09-11T21:18:05
comment:
  I ran into a few oddities while using ctext to create a
  syntax-sensitive editor:

  After creation:

  .c configure -linemap 0 ==> unknown option 

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


tkt_uuid: 1230699fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: html
priority: 5 Medium
foundin: None
title: ::html::textInput size attribute always default
cmimetype: text/plain
submitter: nobody
assignee: welch
closer: mic42
closedate: 2006-07-02T20:01:47
comment:
  The output of
      html::textInput name "" size="15"
  is
      <input type="text" name="name" value="" size="45" size=15>
  which results in a field of size 45 (the second size=15 parameter
  is apparently ignored.)

  I think the fix is as follows:

  In html.tcl, proc ::html::textInput, the line
      append html [default input.size]
  should be
      append html [default input.size $args]


  Thanks,
  Greg

  greg@groupscope.com


tkt_uuid: 1000259fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: win98 demo->DIalog Tab->Abort,Retry,Ignore->Show -- Fails
cmimetype: text/plain
submitter: mkolesn
assignee: damonc
closer: sf-robot
closedate: 2006-10-13T02:20:08
comment:
  win98 demo->DIalog Tab->Abort,Retry,Ignore->Show -- 
  Fails

  Windows98
  BWidget 1.7 (ActiveTcl 8.5.0.0 beta-2)

  Trace:
  bad -default value "": must be abort, retry, ignore, ok, 
  cancel, no, or yes
  bad -default value "": must be abort, retry, ignore, ok, 
  cancel, no, or yes
      while executing
  "tk_messageBox -message {Message for 
  MessageBox} -default {} -icon error -parent . -title Fehler -
  type abortretryignore"
      ("eval" body line 1)
      invoked from within
  "eval [list tk_messageBox] [array get tkMBoxArgs]"
      (procedure "MessageDlg::create" line 81)
      invoked from within
  "MessageDlg .msgdlg -parent .  -message "Message for 
  MessageBox"  -type    $msg(type)  -icon    $msg(icon)  -
  buttons $msg(buttons)"
      (procedure "DemoDlg::_show_msgdlg" line 5)
      invoked from within
  "DemoDlg::_show_msgdlg"
      invoked from within
  ".mainframe.frame.nb.fdemoDlg.titf3.f.but invoke"
      ("uplevel" body line 1)
      invoked from within
  "uplevel #0 [list $w invoke]"
      (procedure "tk::ButtonUp" line 24)
      invoked from within
  "tk::ButtonUp .mainframe.frame.nb.fdemoDlg.titf3.f.but"
      (command bound to event)


tkt_uuid: 474846ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: uri
priority: 5 Medium
foundin: None
title: Failure to handle ftp uri's
cmimetype: text/plain
submitter: nobody
assignee: patthoyts
closer: andreas_kupries
closedate: 2001-10-31T17:04:49
comment:
  URI handling for ftp url's seems to be flawed.

  (1) splitting an FTP url that contains user/password
  information results in an error:

  % uri::split ftp://user:password@host:1234/where/ever
  expected integer but got ""

  % uri::split ftp://user@host:1234/where/ever
  expected integer but got ""

  (2) Password field is ignored when joining

  % uri::join port 1234 path where/ever \
          scheme ftp host host type {} \
          user foo pwd password
  ftp://foo@host:1234where/ever

  (3) invalid URL produced by joining (see above)

  (4) geturl fails

  % uri::geturl ftp://nowhere.com/nothing
  invalid command name "ftp::geturl"


tkt_uuid: 940375ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: None
priority: 5 Medium
foundin: None
title: tcllib 1.6 install error due to doc. generation bug
cmimetype: text/plain
submitter: rcalmbac
assignee: nobody
closer: andreas_kupries
closedate: 2004-04-22T22:09:28
comment:
  There is a problem generating the nroff documentation,
  which causes the installation of tcllib 1.6 to fail.

  In detail: When selecting the "Doc. Nroff" checkbox in
  the installer GUI, keeping "Simulate installation" off,
  and clicking on "Install", I get this output and error
  message:

  <47 triton->tcllib-1.6> wish installer.tcl 
  Installing Tcllib 1.6
  You have chosen the following configuration ...

  Packages:      install/lib/tcllib1.6
  Examples:      install/bin/tcllib_examples1.6
  Documentation:

          NROFF:  install/man/mann
          HTML:   install/lib/tcllib1.6/tcllib_doc

  Error in startup script: @--> invalid command name "option"
      while executing
  "::doctools::_format dt {[comment {-*- tcl -*- doctools
  manpage}]
  [comment { $Id: s.multiplexer.man 1.4 04/02/10
  23:36:58-08:00 tcl@bluepeak.home $ }]
  ..."
      ("eval" body line 1)
      invoked from within
  "eval [list ::doctools::_$cmd $name] $args"
      (procedure "::doctools::DoctoolsProc" line 15)
      invoked from within
  "dt format [get_input $f]"
      (procedure "_man" line 17)
      invoked from within
  "_man multiplexer nroff n install/man/mann"
      ("eval" body line 1)
      invoked from within
  "eval $guide($m,$type) $m $args"
      (procedure "xinstall" line 4)
      invoked from within
  "xinstall doc nroff n    $config(doc,nroff,path)"
      (procedure "doinstall" line 18)
      invoked from within
  "doinstall"
      (procedure "main" line 11)
      invoked from within
  "main"
      (file "installer.tcl" line 484)


  My wish shell is v8.4.5. This error happens whether I'm
  on Solaris or on Linux. The error seems to be caused by
  a problem encountered when processing the
  multiplexer.man documentation file. The same error also
  occurs for graph.man and struct_tree.man (both in
  module struct).

  These errors did not occur in tcllib 1.4.

  It would be good to fix this since it is somewhat
  frustrating for users to have the installation fail
  halfway through.

  I am not familiar with doctools or the doctools
  documentation format, but hopefully someone who is can
  identify the source of the problem from these symptoms.


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

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

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

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

  contact me with any questions.

  Dave Bigelow
  davidhbigelow@compuserve.com


tkt_uuid: 552968ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: Feature Req: new introspection methods
cmimetype: text/plain
submitter: cleverly
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-05-09T05:06:43
comment:
  I've made modifications to the struct::graph module
  that I've found useful in my own scripts.  

  These modifications add several new submethods. 
  Introspection: keys (returns a list of keys), keyexists
  (returns 1 or 0 depending on whether a given key
  exists), and getall (returns a serialized list suitable
  for using with [array set]); and an append and lappend
  (to avoid doing a 'get/[l]append/set' manually).

  A patch for the graph.tcl, .test, and .n files is
  attached.


tkt_uuid: 3475081fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: yaml
priority: 8
foundin: None
title: Parser accepts invalid YAML input, mistranslates others
cmimetype: text/plain
submitter: andreas_kupries
assignee: kanryu6
comment:
  The yaml parser v0.3.6 (tcllib cvs head) accepts the following invalid YAML text:

      list-no-comma: [ "a" "b" "c" ]

  It returns {list-no-comma {a b c}} whereas it should throw an error complaining about the lack of commas between the quoted list elements.
  Entering the above string into the online YAML validator/parser at

      http://yaml-online-parser.appspot.com/

  returns:

  ERROR:

  while parsing a flow sequence
    in "<unicode string>", line 1, column 16:
      list-no-comma: [ "a" "b" "c" ]
                     ^
  expected ',' or ']', but got '<scalar>'
    in "<unicode string>", line 1, column 22:
      list-no-comma: [ "a" "b" "c" ]
                           ^

  The second block in the error report is the important one.


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


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

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

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

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


tkt_uuid: 1017743fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: pop3d
priority: 5 Medium
foundin: None
title: pop3d test suite failure
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-10-23T04:46:44
comment:
  platform: sparc blade 100 solaris 8 sun c compiler tcl
  8.4.7 latest tcllib cvs snapshot (from aug 26, 2004).

  I am seeing the following error messages

  Module: pop3d
  modules/pop3d/pop3d.test
  - pop3d 1.0.2
  - udb   1.1
  - dbox  1.0.1
  - mime  1.4
  - md5   2.0.1
  NONE
  can't read "conn()": no such element in array
      while executing
  "upvar $conn($sock) cstate"
      ("state" arm line 6)
      invoked from within
  "switch -exact -- $cmd {
          list {
              if {[llength $args] > 0} {
                  return -code error "wrong # args:
  should be \"$name conn list\""
              }
              return ..."
      (procedure "::pop3d::_conn" line 3)
      invoked from within
  "::pop3d::_conn pop3d40 state {}"
      ("eval" body line 1)
      invoked from within
  "eval [list ::pop3d::_$cmd $name] $args"
      (procedure "::pop3d::Pop3dProc" line 14)
      invoked from within
  "$srv conn state [$srv conn list]"
      invoked from within
  "set res [$srv conn state [$srv conn list]]"
      ("after" script)

  ==== pop3-srv-7.2 auth, APOP/USER FAILED
  ==== Contents of test case:

      newfsrv
      set res ""
      set trace [subshellpar {
          package require md5 2
          set c [socket localhost $port]
          regexp {(<.*>)} [gets $c] -> id
          set hash [string tolower [md5::md5 -hex
  ${id}smash]]
          puts $c "APOP ak $hash" ; flush $c
          set line [gets $c]
          puts $c "USER foo" ; flush $c
          puts "$line [gets $c]"
          after 5000
          close $c
      } {
          after 3000 {
              set res [$srv conn state [$srv conn list]]
          }
      } port [$srv cget -port]] ; # {}
      
      # Postprocess state to remove variable data from
  comparison
      set res [ppcstate $res]
      delfsrv
      list $trace $res

  ---- Result was:
  {+OK congratulations -ERR client already authenticated} {}
  ---- Result should have been (exact matching):
  {+OK congratulations -ERR client already authenticated}
  {deleted {} id <==@%%> l
  ogon {} msg 3 name ak remotehost 127.0.0.1 remoteport
  {} server 1 size 3 state t
  rans storage usr0}
  ==== pop3-srv-7.2 FAILED
  NONE
  can't read "conn()": no such element in array
      while executing
  "upvar $conn($sock) cstate"
      ("state" arm line 6)
      invoked from within
  "switch -exact -- $cmd {
          list {
              if {[llength $args] > 0} {
                  return -code error "wrong # args:
  should be \"$name conn list\""
              }
              return ..."
      (procedure "::pop3d::_conn" line 3)
      invoked from within
  "::pop3d::_conn pop3d42 state {}"
      ("eval" body line 1)
      invoked from within
  "eval [list ::pop3d::_$cmd $name] $args"
      (procedure "::pop3d::Pop3dProc" line 14)
      invoked from within
  "$srv conn state [$srv conn list]"
      invoked from within
  "set res [$srv conn state [$srv conn list]]"
      ("after" script)

  ==== pop3-srv-7.4.0 APOP FAILED
  ==== Contents of test case:

          newfsrv
          set res ""
          set trace [subshellpar {
              package require md5 2
              set c [socket localhost $port]
              gets $c line ; regexp {(<.*>)} $line -> id
              set hash [string tolower [md5::md5 -hex
  ${id}$pass]]
              puts $c "APOP $user $hash" ; flush $c ;
  gets $c line
              after 3000
              close $c
              puts $line
          } {
              after 2000 {
                  set res [$srv conn state [$srv conn list]]
              }
          } port [$srv cget -port] user $user pass $pass]
  ; # {}

          # Postprocess state to remove variable data
  from comparison
          set res [ppcstate $res]
          delfsrv
          list $trace $res
      
  ---- Result was:
  {-ERR authentication failed, sorry} {}
  ---- Result should have been (exact matching):
  {-ERR authentication failed, sorry} {deleted {} id
  <==@%%> logon {} msg 0 name f
  oo remotehost 127.0.0.1 remoteport {} server 1 size 0
  state auth storage {}}
  ==== pop3-srv-7.4.0 FAILED

  NONE
  can't read "conn()": no such element in array
      while executing
  "upvar $conn($sock) cstate"
      ("state" arm line 6)
      invoked from within
  "switch -exact -- $cmd {
          list {
              if {[llength $args] > 0} {
                  return -code error "wrong # args:
  should be \"$name conn list\""
              }
              return ..."
      (procedure "::pop3d::_conn" line 3)
      invoked from within
  "::pop3d::_conn pop3d44 state {}"
      ("eval" body line 1)
      invoked from within
  "eval [list ::pop3d::_$cmd $name] $args"
      (procedure "::pop3d::Pop3dProc" line 14)
      invoked from within
  "$srv conn state [$srv conn list]"
      invoked from within
  "set res [$srv conn state [$srv conn list]]"
      ("after" script)

  ==== pop3-srv-7.4.1 APOP FAILED
  ==== Contents of test case:

          newfsrv
          set res ""
          set trace [subshellpar {
              package require md5 2
              set c [socket localhost $port]
              gets $c line ; regexp {(<.*>)} $line -> id
              set hash [string tolower [md5::md5 -hex
  ${id}$pass]]
              puts $c "APOP $user $hash" ; flush $c ;
  gets $c line
              after 3000
              close $c
              puts $line
          } {
              after 2000 {
                  set res [$srv conn state [$srv conn list]]
              }
          } port [$srv cget -port] user $user pass $pass]
  ; # {}

          # Postprocess state to remove variable data
  from comparison
          set res [ppcstate $res]
          delfsrv
          list $trace $res
      
  ---- Result was:
  {-ERR authentication failed, sorry} {}
  ---- Result should have been (exact matching):
  {-ERR authentication failed, sorry} {deleted {} id
  <==@%%> logon {} msg 0 name a
  k remotehost 127.0.0.1 remoteport {} server 1 size 0
  state auth storage {}}
  ==== pop3-srv-7.4.1 FAILED

  NONE
  can't read "conn()": no such element in array
      while executing
  "upvar $conn($sock) cstate"
      ("state" arm line 6)
      invoked from within
  "switch -exact -- $cmd {
          list {
              if {[llength $args] > 0} {
                  return -code error "wrong # args:
  should be \"$name conn list\""
              }
              return ..."
      (procedure "::pop3d::_conn" line 3)
      invoked from within
  "::pop3d::_conn pop3d46 state {}"
      ("eval" body line 1)
      invoked from within
  "eval [list ::pop3d::_$cmd $name] $args"
      (procedure "::pop3d::Pop3dProc" line 14)
      invoked from within
  "$srv conn state [$srv conn list]"
      invoked from within
  "set res [$srv conn state [$srv conn list]]"
      ("after" script)

  ==== pop3-srv-7.4.2 APOP FAILED
  ==== Contents of test case:

          newfsrv
          set res ""
          set trace [subshellpar {
              package require md5 2
              set c [socket localhost $port]
              gets $c line ; regexp {(<.*>)} $line -> id
              set hash [string tolower [md5::md5 -hex
  ${id}$pass]]
              puts $c "APOP $user $hash" ; flush $c ;
  gets $c line
              after 3000
              close $c
              puts $line
          } {
              after 2000 {
                  set res [$srv conn state [$srv conn list]]
              }
          } port [$srv cget -port] user $user pass $pass]
  ; # {}

          # Postprocess state to remove variable data
  from comparison
          set res [ppcstate $res]
          delfsrv
          list $trace $res
      
  ---- Result was:
  {+OK congratulations} {}
  ---- Result should have been (exact matching):
  {+OK congratulations} {deleted {} id <==@%%> logon {}
  msg 3 name ak remotehost 1
  27.0.0.1 remoteport {} server 1 size 3 state trans
  storage usr0}
  ==== pop3-srv-7.4.2 FAILED

  modules/pop3d/pop3d_dbox.test
  - pop3d::dbox 1.0.1
  - mime        1.4
  - md5         2.0.1
  modules/pop3d/pop3d_udb.test
  - pop3d::udb 1.1

  Module: profiler
  modules/profiler/profiler.test
  - profiler 0.2.2


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


tkt_uuid: 517066ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: EXIF digital image parser
cmimetype: text/plain
submitter: dnew
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-02-18T23:33:47
comment:
  Please incorporate this module into TclLib at your convenience.

  This is a pure-tcl namespace for parsing EXIF data blocks from JPEG images generated by digital 
  cameras, scanners, etc. It provides primarily textual information, rather than returning the raw data 
  in a form convenient for further processing.

  Attached: A zip file with code and documentation.


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


  ---- assign-4.4 start

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

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

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

  ---- repeat-4.1 start

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

      catch {repeat} msg
      set msg

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

  ---- repeat-4.2 start

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

      catch {repeat a} msg
      set msg

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


tkt_uuid: 513320ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget PanedWindow problem
cmimetype: text/plain
submitter: decosterjos
assignee: hobbs
closer: hobbs
closedate: 2002-06-04T20:24:06
comment:
  When using the PanedWindow with the '-weights
  available' argument, and panes get added after the
  PanedWindow is realised (got Configure event),  the
  weights are no longer honoured.


tkt_uuid: 1695124fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools - Extend testsuite
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-05-23T22:54:46
comment:
  The testsuite of doctools is quite small, it especially does not really test the markup language, nor the output of the various backends.


tkt_uuid: 3147481fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: find error on hidden, unreadable directory in Windows
cmimetype: text/plain
submitter: guardus
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2013-01-09T00:18:32
comment:
  I am using ActiveTcl 8.5.9.1 on Windows XP SP3.

    fileutil::find $env(SYSTEMDRIVE)/ {string match *.pdf}
    couldn't read directory "C:/System Volume Information/*": permission denied
        while executing
    "glob -nocomplain -directory $current -types f          -- *"
        (procedure "GLOBF" line 8)
        invoked from within
    "GLOBF $current"
        (procedure "find" line 48)
        invoked from within
    "find $env(SYSTEMDRIVE)/ {string match *.pdf}"
        (file "./error.tcl" line 6)

  Maybe "glob -nocomplain" should not error out, but for now I added a check to
  make sure the directory is readable in GLOBF and GLOBD as a workaround.
  My workaround, along with my workaround for bug 3141568, looks like this:

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


tkt_uuid: 1510449fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: None
priority: 5 Medium
foundin: None
title: Feature request: Robots exclusion rules parser/checker
cmimetype: text/plain
submitter: nobody
assignee: nobody
comment:
  It would be nice to see an extension that allows
  parsing of a webserver's robots.txt file to see if our
  client is allowed to access a specific resource. Such
  an extension should return a boolean value.

  This feature would prove very useful when making web
  spiders (in general, web clients requiring no user
  interaction).


tkt_uuid: 532774ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: ncgi
priority: 5 Medium
foundin: None
title: ncgi::nvlist very slow for large queries
cmimetype: text/plain
submitter: davidjgrossman
assignee: gwlester
closer: mic42
closedate: 2006-07-02T20:48:30
comment:
  Obtaining the results of form submissions where a 
  field contains a large amount of data ( >5-10kb ) 
  causes the CPU to max out for long periods of time 
  (several minutes for 40kb on a reasonably fast PC).

  The problem is caused by the regular expression:

  regexp -- (.*)=(.*) $x dummy varname val

  which doesn't seem to handle really large strings well.

  My fix was to use the following:

  set pos [string first "=" $x]
  set len [string length $x]

  if { $pos>=0 } {
      if { $pos == 0 } { # if the = is at the 
  beginning ...
          if { $len>1 } { # ... and there is something 
  to the right ...
              set varname anonymous
              set val [string range $x 1 [expr $len-1]]
          } else { # ... otherwise, all we have is an =
              set varname anonymous
              set val ""
          }
      } elseif { $pos==[expr $len-1] } { # if the = is 
  at the end ...
          set varname [string range $x 0 [expr $pos-1]]
          set val ""
      } else {
          set varname [string range $x 0 [expr $pos-1]]
          set val [string range $x [expr $pos+1] [expr 
  $len-1]]
      }
  } else { # no = was found ...
      set varname anonymous
      set val $x
  }

  in place of:

  if {![regexp -- (.*)=(.*) $x dummy varname val]} {
      set varname anonymous
      set val $x
  }

  in ncgi::nvlist in tcllib/ncgi. I know that the 
  problem exists in tcllib version 1.1 and 1.2.


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

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

  Found in ...
       ActiveState ActiveTcl 8.3.4.2


tkt_uuid: 1438365fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: comm
priority: 5 Medium
foundin: None
title: possible error condition when port in use
cmimetype: text/plain
submitter: cuasimoes
assignee: andreas_kupries
comment:
  In line 632, there is a possible error condition with
  the command "rename $chan {}". 

  I've run into a case (with a user-defined port and
  channel) in which the user-defined port is in use (by
  an outside application), but the channel doesn't exist.
  In this case, the "rename $chan {}" errors out:
  can't delete "::test": command doesn't exist.

  But the real error should be that the port is already
  in use (line 634).

  This can be fixed by verifying that the channel exists
  before trying to do a rename (in line 631 for example).


tkt_uuid: 547274ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ncgi
priority: 5 Medium
foundin: None
title: ncgi:nvlist bug
cmimetype: text/plain
submitter: nobody
assignee: gwlester
closer: mic42
closedate: 2006-07-02T20:25:07
comment:
  When I have POST header as of 
  application/x-url-form-encoded;encoding=ISO-8859-1
  I got the following error message:


  Unknown Content-Type: application/x-www-form-
  urlencoded; charset=ISO-8859-1
      while executing
  "ncgi::nvlist"
      (procedure "ncgi::input" line 11)
      invoked from within
  "ncgi::input"
      (file "/var/www/billing/callback.tcl" line 6)

  I realized that probably 
  string 296 of cgi.tcl
  should be

  application/x-www-form-urlencoded*
  instead of just
  application/x-www-form-urlencoded    


tkt_uuid: 2886893fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: ldap
priority: 5 Medium
foundin: None
title: fix documentation for ldapx's ldap class
cmimetype: text/plain
submitter: cmay
assignee: mic42
comment:
  ldapx's ldap class documentation contains two errors showing "::ldapx::ldap create" when it should be "::ldapx::entry create".  Patch attached.


tkt_uuid: 585093ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct
priority: 6
foundin: None
title: Pool package namespace problems
cmimetype: text/plain
submitter: cleverly
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-08-06T20:41:06
comment:
  The ::struct::pool command in tcllib 1.3 references
  variables and commands in/under the ::pool namespace,
  instead of in the ::struct::pool namespace.

  Since there is no struct::pool category, I'm filing
  this against the struct category.


tkt_uuid: 1267636fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: log
priority: 7 High
foundin: None
title: logger: appender and formatter support
cmimetype: text/plain
submitter: aakhter
assignee: mic42
closer: andreas_kupries
closedate: 2005-09-28T21:17:32
comment:
  The attached tar.gz file is for inclusion into the
  logger package. It introduces the concepts of appenders
  (console and colorConsole are included) and formatters
  to logger. 

  There is no existing code in logger changed, and all
  additions use  existing external apis. Additionally,
  the log procs generated try to resolve (hardcode) any
  pre-resolvable items to optimize log runtime.

  example of usage:

  % set log [logger::init testLog]
  ::logger::tree::testLog
  % logger::applyAppender -appender console -serviceCmd
  $log -conversionPattern {\[%d\] \[%c\] \[%M\] \[%p\] %m}

  % ${log}::error "this is error"
  [2005/08/22 10:14:13] [testLog] [global] [error] this
  is error



  I would welcome any review comments.

  doc attached in man and html format


tkt_uuid: 603924ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: add getall / keys / keyexists to graph
cmimetype: text/plain
submitter: mic42
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-11-06T04:09:44
comment:
  As the graph object stores data exactly like nodes and
  arcs do, it would be more symetric to have the extra
  subcommands, that were added to nodes and arcs.

  Implementation is trivial (copy nodes / arcs procs, one
  line change).


tkt_uuid: 1651842fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: bwidget
priority: 5 Medium
foundin: None
title: notebook: -raisecmd should be able to forbid raising
cmimetype: text/plain
submitter: nobody
assignee: nobody
comment:
  if the command associated with -leavecmd returns 0, the page is not left. (BTW, there's a spelling mistake in the docs :)) Thus I can make some checks whether I want to allow the user to move on..


  The same should be true for the -raisecmd.. if it returns 0, don't raise the page, but stay where you are instead..


  I had a brief look at noteboo.tcl (bwidget 1.8) and simply copied the code used at -leavecmd

  % diff notebook.tcl.ori notebook.tcl
  697c697,700
  <           uplevel \#0 $cmd
  ---
  >             set code [catch {uplevel \#0 $cmd} res]
  >             if { $code == 1 || $res == 0 } {
  >                 return -code $code $res
  >             }


  this kinda works.. if the command returns 0 the tab is not raised, however, the tab I was at before now does not appear selected anymore..



  Just an idea :)


tkt_uuid: 1195267fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: mime
priority: 5 Medium
foundin: None
title: initializing multipart files too slow
cmimetype: text/plain
submitter: jaspert
assignee: mrose
closer: patthoyts
closedate: 2006-11-06T22:18:24
comment:
  This problem occurs with WinXP and TclTk 8.5a2

  The attached multi-part MIME file of about 1.3MB
  initializes in under 1 second with TclTk 8.4.9, or on
  Linux, but takes around 8 seconds to initialize with
  WinXP and TclTk 8.5a2

  Single-part MIME files are very much faster, even much
  larger ones

  This could be a clue: a similar problem happened in
  older versions of Tcl under Windows if the 'encoding'
  directory were not present under lib/tcl8.x -- but in
  8.5 wish crashes on startup if the 'encoding' directory
  is not present so I cannot test the effect of this


tkt_uuid: 3039090fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: asn
priority: 5 Medium
foundin: None
title: asn::asnGetBigInteger returns incorrect value
cmimetype: text/plain
submitter: rkeene
assignee: mic42
closer: mic42
closedate: 2011-01-05T22:36:02
comment:
  % package require asn
  0.8.3
  % set data "\x02\x03\x01\x00\x01"; asn::asnGetBigInteger data val; puts [::math::bignum::tostr $val]
  -65535
  % set data "\x02\x03\x81\x00\x01"; asn::asnGetBigInteger data val; puts [::math::bignum::tostr $val]
  -8323071


  Correct values of those ASN.1 sequences are 65537 and -8323071.  I suspect this is an issue with misinterpreting X.690:
          8.3.3      The contents octets shall be a two's complement binary number equal to the integer value, and consisting of
          bits 8 to 1 of the first octet, followed by bits 8 to 1 of the second octet, followed by bits 8 to 1 of each octet in turn up to
          and including the last octet of the contents octets.
              NOTE ­ The value of a two's complement binary number is derived by numbering the bits in the contents octets, starting with bit
              1 of the last octet as bit zero and ending the numbering with bit 8 of the first octet. Each bit is assigned a numerical value of 2N,
              where N is its position in the above numbering sequence. The value of the two's complement binary number is obtained by
              summing the numerical values assigned to each bit for those bits which are set to one, excluding bit 8 of the first octet, and then
              reducing this value by the numerical value assigned to bit 8 of the first octet if that bit is set to one.


  A working implementation:

  proc ::asn::asnGetBigInteger {data_var bignum_var} {
      # require math::bignum only if it is used
      package require math::bignum

      # Tag is 0x02. We expect that the length of the integer is coded with
      # maximal efficiency, i.e. without a prefix 0x81 prefix. If a prefix
      # is used this decoder will fail.

      upvar $data_var data $bignum_var bignum

      asnGetByte   data tag

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

      asnGetLength data len
      asnGetBytes  data $len integerBytes

      binary scan [string index $integerBytes 0] H* hex_head
      set head [expr 0x$hex_head]
      set replacement_head [expr $head & 0x7f]
      set integerBytes [string replace $integerBytes 0 0 [format %c $replacement_head]]

      binary scan $integerBytes H* hex

      set bignum [math::bignum::fromstr $hex 16]

      if {($head >> 7) && 1} {
          set bigsub [math::bignum::pow [::math::bignum::fromstr 2] [::math::bignum::fromstr [expr ($len * 8) - 1]]]
          set bignum [math::bignum::sub $bignum $bigsub]
      }

      return $bignum
  }


  Tests of new implementation:
  % package require asn
  % set data "\x02\x03\x01\x00\x01"; asn::asnGetBigInteger data val; puts [::math::bignum::tostr $val]
  65537
  % set data "\x02\x03\x81\x00\x01"; asn::asnGetBigInteger data val; puts [::math::bignum::tostr $val]
  -8323071
  % 


  Comparison with another ASN.1 Parser:

  $ echo -ne '\x02\x03\x01\x00\x01' > a
  $ echo -ne '\x02\x03\x81\x00\x01' > b
  $ openssl asn1parse -in a -inform der
      0:d=0  hl=2 l=   3 prim: INTEGER           :010001
  $ openssl asn1parse -in b -inform der
      0:d=0  hl=2 l=   3 prim: INTEGER           :-7EFFFF
  $ tclsh
  % expr 0x010001
  65537
  % expr -0x7EFFFF
  -8323071


tkt_uuid: 2794454fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: cmdline
priority: 5 Medium
foundin: None
title: error in info command
cmimetype: text/plain
submitter: malfunction54
assignee: andreas_kupries
closer: malfunction54
closedate: 2009-05-20T18:24:52
comment:
  line 196 of the source code reads: "if {[info exist result(?)] || [info exists result(help)]} {"

  I believe that first "exist" should read "exists"


tkt_uuid: 519594ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: mime
priority: 5 Medium
foundin: None
title: parseaddress can't cope with spaces
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-03-13T16:36:31
comment:
  mime::parseaddress fails on simple, common cases. Specifically, it fails for some fairly typical user 
  input

       somebody@some.org someoneelse@other.com

  When I try to stress it and send mail to 

       foo<>bar@grill.com

  The parse "succeeds" but the send fails.


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

      catch {package require snit::__dummy__}

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

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


tkt_uuid: 1488712fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: toggle scrollbars on/off in ScrolledWindow
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: dev_null42a
closedate: 2006-08-21T20:55:31
comment:
  The following code is a correction to toggle scrollbars 
  on/off:

  # -----------------------------------------------------
  ------------------------
  #  Command ScrolledWindow::configure
  # -----------------------------------------------------
  ------------------------
  proc ScrolledWindow::configure { path args } {
      Widget::getVariable $path data

      set res [Widget::configure $path $args]
      if { [Widget::hasChanged $path -background bg] } {
  $path configure -background $bg
  catch {$path.hscroll configure -background $bg}
  catch {$path.vscroll configure -background $bg}
      }

      if {[Widget::hasChanged $path -scrollbar scrollbar] 
  | \
      [Widget::hasChanged $path -auto auto]| \
      [Widget::hasChanged $path -sides sides]} {
  _setData $path $scrollbar $auto $sides
  foreach {vmin vmax} [$path.hscroll get] { break }
  set data(hsb,packed) [expr {$data(hsb,present) && 
  \
  (!$data(hsb,auto) || ($vmin != 0 || $vmax !
  = 1))}]
  foreach {vmin vmax} [$path.vscroll get] { break }
  set data(vsb,packed) [expr {$data(vsb,present) && 
  \
  (!$data(vsb,auto) || ($vmin != 0 || $vmax !
  = 1))}]

  set data(ipad) [Widget::cget $path -ipad]

  if {$data(hsb,packed)} {
      grid $path.hscroll -column 1 -row $data(hsb,
  row) \
      -sticky ew -ipady $data(ipad)
  } else {
              if {![info exists data(hlock)]} {
                  set data(hsb,packed) 0
                  grid remove $path.hscroll
           }
  }
  if {$data(vsb,packed)} {
      grid $path.vscroll -column $data(vsb,column) -
  row 1 \
      -sticky ns -ipadx $data(ipad)
  } else {
              if {![info exists data(hlock)]} {
                  set data(vsb,packed) 0
                  grid remove $path.vscroll
           }
  }
      }
      return $res
  }


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

  * pop3 1.6.3
  - comm 4.3
  WARNING: removeFile removing
  "/local/src/tcllib/__pop3d.log":
    not created by makeFile
  WARNING: removeFile removing
  "/local/src/tcllib/__pop3d.log":
    not a file
  WARNING: cleanupTests deleting
  /local/src/tcllib/coserv.sub...


tkt_uuid: 2695564fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: linearalgebra
priority: 8
foundin: None
title: mkWilkinson+ may be wrong
cmimetype: text/plain
submitter: relaxmike
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-03-20T18:01:09
comment:
  Hi,

  Try 

  math::linearalgebra::show [math::linearalgebra::mkWilkinsonW+ 7]

  and see :

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

  but the diagonal must contain only positive 
  terms, as shown in :

  http://www.uni-kassel.de/hrz/server/UNIX+SW-Infos/graphics/MatLab-5.3/help/techdoc/ref/wilkinson.html

  The following fixes the problem :

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

  math::linearalgebra::show [mkWilkinsonW+ 7]

  The problem was to correctly manage the 
  move for the mathematical formula (where i
  starts from 1) to Tcl (where i starts 
  from 0).

  Best regards,

  Michaël


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

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

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

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

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


tkt_uuid: 1205536fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ComboBox Return binding broken if -bwlistbox set
cmimetype: text/plain
submitter: stevel
assignee: damonc
closer: oehhar
closedate: 2009-06-30T14:00:14
comment:
  The Return binding on a ComboBox is broken if the -bwlistbox option is 
  set. The problem is that the binding is set on the underlying canvas rather 
  than on the BWidget ListBox widget, and so the "curselection" method 
  isn't supported.

  The attached patch fixes the problem by passing the path to the ListBox 
  widget, rather than %W (which will expand to the name of the underlying 
  canvas widget).


tkt_uuid: 943994ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 9 Immediate
foundin: None
title: standard doctools target for TEA / Makefile authors
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: dgp
closedate: 2004-11-13T00:45:58
comment:
  The doctools package supports processing
  of a nice documentation markup language.

  Any Tcl package author who uses doctools
  markup to create documentation, will need
  a doc: target in his TEA Makefile to produce
  documentation in installable formats like
  nroff and html.  This suggests an application
  built around doctools.

  Candidates are mpexpand and dtp, but neither
  is routinely installed enough for simple use.

  Request that some such app get installed
  routinely when tcllib is installed, and that
  sample doc: target rules be made available,
  perhaps within the TEA sampleextension itself.


tkt_uuid: 985601ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 6
foundin: None
title: doctools - engine parameters not documented
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-07-10T07:20:17
comment:
  Neither the general methods to query and set engine
  parameters are documented, nor are the actual
  parameters defined by the predefined formatters.


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

  e.g

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


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

  Looks like it just needs an extra line:
  variable e 


tkt_uuid: 1272754fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: counter
priority: 5 Medium
foundin: None
title: counter - failed tests with Tcl 8.5
cmimetype: text/plain
submitter: dgp
assignee: welch
closer: andreas_kupries
closedate: 2006-09-27T16:50:30
comment:
  ==== counter-avg counter::count FAILED
  ==== Contents of test case:

      counter::init avg
      counter::count avg 2.2
      counter::count avg 3.3
      counter::count avg 9.8
      counter::get avg -avg

  ---- Result was:
  5.1000000000000005
  ---- Result should have been (exact matching):
  5.1
  ==== counter-avg FAILED

  ==== counter-hist histogram average FAILED
  ==== Contents of test case:

      counter::init hist -hist 10
      counter::count hist 2.2
      counter::count hist 18.6
      counter::count hist 14.1
      counter::count hist 26.9
      counter::count hist 20.4
      counter::count hist 23.3
      counter::count hist 53.3
      counter::get hist -avg

  ---- Result was:
  22.685714285714283
  ---- Result should have been (exact matching):
  22.6857142857
  ==== counter-hist FAILED


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

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


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



  Here's some markup:

  [call [cmd ns_limits_get] [arg limit]]

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

  [list_begin definitions]

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



  Here's the HTML output:

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


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


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

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



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


tkt_uuid: 3608240fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: queue
priority: 5 Medium
foundin: None
title: struct::queue error, procs peek and get
cmimetype: text/plain
submitter: robbercrab
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2013-03-19T05:49:00
comment:
  Last action "qp peek [qp size]" gives an incorrect result [1 2 3 4 5] instead of [2 3 4 5]

  script:

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

  output:

  1 2 3
  2 3
  1 2 3 4 5


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

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

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

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

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


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

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


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

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


tkt_uuid: 2557107fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: dtplite seems to insist on presence of keywords
cmimetype: text/plain
submitter: apnadkarni
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-02-10T22:59:18
comment:
  I have a simple test file as follows:
  ----
  [manpage_begin "test" "n" "0.0"]
  [copyright {2009 "Ashok"}]
  [moddesc "sample"]
  [description]

  [manpage_end]
  ----

  If I place it in a directory, say doc, and run the command

  tclsh86 C:\bin\Tcl86\bin\dtplite.tcl -o doc html doc

  the following error is spit out:
  C:\bin\Tcl86\bin\dtplite.tcl: Docidx Error in macro at line 2, column 0:
  [index_end]
  --> (FmtError) IDX error (idx/endcmd), "index_end" : Command not allowed here..

  Adding a [keywords foo] to the above file fixes the error.

  Keywords should be always required. Note that running the command
  tclsh86 C:\bin\Tcl86\bin\dtplite.tcl -o test.html html test.man
  (where test.man is the above file) works fine.

  /Ashok


tkt_uuid: 1558352fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: asn
priority: 5 Medium
foundin: None
title: ASN Package
cmimetype: text/plain
submitter: wajih_ur_rehman
assignee: mic42
closer: sf-robot
closedate: 2006-11-02T03:20:26
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: 1386101fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: rc4
priority: 9 Immediate
foundin: None
title: rc4 critcl fails when used with channels
cmimetype: text/plain
submitter: patthoyts
assignee: patthoyts
closer: patthoyts
closedate: 2005-12-21T12:41:08
comment:
  As reported by RJ Bacon:
   package require rc4
   rc4::rc4 -key 01234567 -infile xxzzy.dat
  will die.
  The problem is that the key returned by RC4Init when
  using critcl is not an array but we attempt to treat it
  like on and upvar it.


tkt_uuid: 899152ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: installer should [package require Tcl 8]
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-03-02T04:24:47
comment:
  By mistake I tried to install using
  Tcl 7.6.  Led to some surprising
  suggestions for install locations.

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


tkt_uuid: 436762ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget tree and listbox binding bug
cmimetype: text/plain
submitter: bach
assignee: damonc
closer: damonc
closedate: 2003-10-20T23:16:44
comment:
  Version: BWidget CVS nightly from 21.06.2001

  In BWidget version 1.2.1, the following code worked:

  Tree .t 
  bind .t <ButtonPress-3> {foo}
  ListBox .l
  bind .l <ButtonPress-3> {foo}

  This doesn't work anymore. Looking through the CVS for
  tree.tcl,
  I saw that somewhere between tree Rev1.1 (from
  BWidget-1.2.1) and tree Rev1.11 a change was made that
  broke the above code.

  Looking further, ericm tried out some fancy things in
  tree Rev 1.27 that made it work again, but has undone
  them in 1.28. (I suppose the same applies for
  listbox.tcl).

  I need that sort of things to get a popup menu on right
  mouseclick in the whole tree (listbox) area, not just
  when right-clicking on items or icons ( a la ".t
  bindText" and ".t bindImage".

  Any idea how to get this to work?

  Salut,
         Bastien


tkt_uuid: 586720ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: mclistbox
priority: 5 Medium
foundin: None
title: comcmd itemconfigure, few options added
cmimetype: text/plain
submitter: ashalagi
assignee: boakley
comment:
  Command itemconfigure index column list ?list 
  Allows one to configure any given cell of a 
  mclistbox. The arguments index and column specify a 
  cell to be configures. 
  list argument is a set of option-value pairs as in the 
  listbox command itemconfigure. 

                    
  ::mclistbox::ResizeColumnsOfAllListboxes 
  This command adjusts widths of columns according to set 
  fonts of all mclistboxes in active an application. This 
  function is supposed to be called after any font 
  change. 

  Option -selectcolumn 
  Specifies behavior of selection. If -selectcolumn is 
  set to 1 and -selectmode is set to single, 
  then only one cell instead of hole line is highlighted 
  upon click. Default value is 0. 

  Opton -usexscroll 
  Specifies whether corresponding xscrollbar is visible. 
  This option works only if -usecolumnxscroll is set to 
  1. If the value is 1, 
  it makes corresponding xscrollbar visible. Default 
  value is 1. 


  PS. Sorry for previous anonymous submission of the same
  patch.

  Arkdi 


tkt_uuid: 3495047fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: A Category Is Missing
priority: 1 Zero
foundin: None
title: Bug Database link broken on tcllib home page
cmimetype: text/plain
submitter: stwo
assignee: andreas_kupries
comment:
  If logged in, goes to 'add new bug report' page.
  When not logged in, gives error.
  I suppose it should go to the bug list like the 'patch' link goes to the patch list.
  Maybe also add a 'feature request' link?


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

  With the patch, it will return the empty string.


tkt_uuid: 1425947fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: mime
priority: 5 Medium
foundin: None
title: mime::parsedatetime - error on months
cmimetype: text/plain
submitter: ricardoj
assignee: mrose
closer: andreas_kupries
closedate: 2006-02-07T16:52:22
comment:
  When using ::mime::parsedatetime on months ( long and
  short ) as well as on "proper", there are errors
  handling months. there are more ways to fix the error,
  but I think the easiest is :

  Change variables to :

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

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

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

  Change the line that read :

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

  to :

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

  Change the line that read :

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

  to :

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

  Change the line that read :

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

  to :

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


tkt_uuid: 2800387fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: struct::graph:op::{kruskal,prim}
cmimetype: text/plain
submitter: lars_h
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-09-24T16:50:33
comment:
  The documentation for these commands should state their complexities, as that is the primary factor for choosing one or the other.

  I would also prefer it if the phrase "minimum spanning tree" was replaced by "minimum weight spanning tree", as that better highlights the dependence on this factor. The abbreviation MST is fine, however.

  Finally, it should be pointed out that returning only the arcs means all 1-vertex components are missing from the forest computed. This is not so likely to be an issue in real life, but the documentation is making a claim which is false in that situation.


tkt_uuid: 466850ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: cmdline
priority: 5 Medium
foundin: None
title: cmdline::getoptions comments improvement
cmimetype: text/plain
submitter: glennjnn
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-10-12T22:41:09
comment:
  Part of the comments for the getoptions proc read:

  #optlistA list-of-lists where each element specifies an option
  #in the form:
  #flag default comment
  #If flag ends in ".arg" then the value is taken from the
  #command line. Otherwise it is a boolean and appears in
  #the result if present on the command line. If flag ends
  #


  This is misleading because it says that the "default"
  field is required, even if the flag takes no arg.

  Please change the comments to read:

  #optlistA list-of-lists where each element specifies an option
  #in the form:
  #(where flag takes no argument)
  #flag comment
  #(or where flag takes an argument)
  #                               flag.arg default comment
  #If flag ends in ".arg" then the value is taken from the
  #next token present in the command line. Otherwise it is a 
  #boolean and appears in the result if present on the command line. 


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

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

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


tkt_uuid: 524712ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: md5
priority: 5 Medium
foundin: None
title: md5::md5 fails with Trf2.1p2 (tcllib1.2)
cmimetype: text/plain
submitter: goosen
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-03-02T22:48:25
comment:
  In tclsh (8.3):

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

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

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

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

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

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

  I'm willing to fix this bug.


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

  ---- repeat-4.1 start

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

      catch {repeat} msg
      set msg

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

  ---- repeat-4.2 start

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

      catch {repeat a} msg
      set msg

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


tkt_uuid: 923055ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftpd
priority: 5 Medium
foundin: None
title: Generic arg processing is bogus, trips on spaces in paths
cmimetype: text/plain
submitter: nobody
assignee: gwlester
closer: andreas_kupries
closedate: 2007-08-20T20:42:34
comment:
  I've adapted the /tcl/demos/Tcllib/ftpd/ftpd.test -
  script to a full-functional ftp-daemon, especially
  using a modified proc like

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

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

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

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

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

  I haven't found a simple workaround yet.

  mailto:M.Hoffmann@hmk.info


tkt_uuid: 3107937fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: http :: autoproxy
priority: 5 Medium
foundin: None
title: Manual/Modification: when is autoproxy hooked to http
cmimetype: text/plain
submitter: oehhar
assignee: patthoyts
comment:
  IMHO, the following fact is:
  - not very handy
  - not clearly expressed in the manual
  The autoproxy module only hooks into the http module by:
  http::config -proxyfilter [namespace origin filter]
  when:
  - autoproxy::init is called
  - and a proxy is found in the system or specified to the command

  A proxy specification by:
  autoproxy::configure -proxy_host ...
  does not hook autoproxy into http and thus just does nothing.
  A:
  autoproxy::configure -proxy_host ""
  does not unhook the autoproxy module (which is propably no issue but might be done too)

  Bug or feature ?

  I propose to:
  - change autoproxy::configure to hook autoproxy, if the option proxy_port is configured with a value
  - perhaps document the parameters of autoproxy::init
    Specially, I find the used format very handy for own configuration options:
      URL and comma-separated proxy exception list
  the attached patch works for me.

  See this clt-thread for the discussion:

  http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/f04ff7683d61cc45/08150dfe8ce5b5d6#08150dfe8ce5b5d6

  Thanks to Alexandre to work this out !!!

  Harald


tkt_uuid: 3497592fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ListBox problem (at least with V1.9.5)
cmimetype: text/plain
submitter: wkechel
assignee: oehhar
closer: oehhar
closedate: 2012-03-06T14:24:02
comment:
  The options selectfill and autofocus are read-only, This should be documented or modified to support write access after widget creation.


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

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

  E.g.

  ftp::Put A is OK

  ftp::Put B times out

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

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

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

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

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


tkt_uuid: 527029ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
title: Online help for mpexpand
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-03-26T07:40:59
comment:
  Add option -help which when used causes
  mpexpand to dump a short help on its use
  (options, arguments) to stdout.

  Add option -help-fmt which when used
  dumps a quick reference of the doctools
  manpage format to stdout.


tkt_uuid: 1156611fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 7 High
foundin: None
title: Error raised by <iq> processing.
cmimetype: text/plain
submitter: patthoyts
assignee: patthoyts
closer: patthoyts
closedate: 2005-03-22T00:46:55
comment:
  Caused by a request for user info (actually version info):

  iqhook ::tkjabber::on_iq_version failed: 1
  expected boolean value but got ""
      while executing
  "if {$isempty} {
          append rawxml "/>"
      } else {
          append rawxml ">"
          
          # Call ourselves recursively for each child
  element. 
          # There is an arbitrary ..."
      (procedure "createxml" line 9)
      invoked from within
  "createxml $child"
      (procedure "wrapper::createxml" line 17)
      invoked from within
  [.....]


tkt_uuid: 440046ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 3 Low
foundin: None
title: latest md5 test suite fails
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-08-20T20:36:11
comment:
  Note that the category list is missing the md5 module.

  I downloaded the nightly cvs snapshot on the scriptics
  ftp site on July 10, 2001 around 9:30 AM EDT.

  When I am in the top level of the tcllib directory and
  do a make test I get this error for the md5 library:

  Module: md5
  modules/md5/md5.test
  md5 1.4 (pure Tcl)

  ==== md5-1.0 md5 FAILED
  ==== Contents of test case:

      catch {::md5::md5} result
      set result

  ---- Result was:
  wrong # args: should be "::md5::md5 msg"
  ---- Result should have been (exact matching):
  no value given for parameter "msg" to "::md5::md5"
  ==== md5-1.0 FAILED

  ==== md5-1.1 md5 FAILED
  ==== Contents of test case:

      catch {::md5::hmac} result
      set result

  ---- Result was:
  wrong # args: should be "::md5::hmac key text"
  ---- Result should have been (exact matching):
  no value given for parameter "key" to "::md5::hmac"
  ==== md5-1.1 FAILED

  ==== md5-1.2 md5 FAILED
  ==== Contents of test case:

      catch {::md5::hmac key} result
      set result

  ---- Result was:
  wrong # args: should be "::md5::hmac key text"
  ---- Result should have been (exact matching):
  no value given for parameter "text" to "::md5::hmac"
  ==== md5-1.2 FAILED


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

  Module:profiler
  modules/profiler/profiler.test

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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


tkt_uuid: 1733442fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: elements of htmlparse param list cannot be accessed
cmimetype: text/plain
submitter: al_chou
assignee: andreas_kupries
comment:
  Here's an example of a tag that has an attribute containing line breaks.

  set html {<select onChange="

                                                                  processFieldChanged(this);
                                                          " onFocus="gotFocus(this,'Y');" onBlur="gotFocus(this,'N');"></select>}
  <select onChange="

                                                                  processFieldChanged(this);
                                                          " onFocus="gotFocus(this,'Y');" onBlur="gotFocus(this,'N');"></select>


  Printing the param list causes no issues:

  (bin) 122 % htmlparse::parse $html
  ==> hmstart {} {} {}
  ==> select {} {onChange="

                                                                  processFieldChanged(this);
                                                          " onFocus="gotFocus(this,'Y');" onBlur="gotFocus(this,'N');"} {}
  ==> select / {} {}
  ==> hmstart / {} {}


  But trying to access elements of the param list, which is what the build_data command in the run below does, yields an error:

  (bin) 124 % htmlparse::parse -cmd build_data $html
  list element in quotes followed by "gotFocus(this,'Y');"" instead of space


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


tkt_uuid: 2426988fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: struct :: matrix
priority: 5 Medium
foundin: None
title: linking to array variable problem
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
comment:
  version: 2.0.1 . 
  Platform windows. 
  ActiveTcl distribution .
  linking to array variable issue.

   Any delete of row of matrix is not reflected in the linked array variable.

  I am using this function in the context of updating Tktable. So it is a big problem

  Regards
  valli
  valli@ezorder.in


tkt_uuid: 586708ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Duplicate
subsystem: mclistbox
priority: 5 Medium
foundin: None
title: comcmd itemconfigure, few options added
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2002-08-07T22:15:46
comment:
  Command itemconfigure index column list ?list 
  Allows one to configure any given cell of a 
  mclistbox. The arguments index and column specify a
  cell to be configures. 
  list  argument is a set of option-value pairs as in the
  listbox command itemconfigure.

  ::mclistbox::ResizeColumnsOfAllListboxes
  This command adjusts widths of columns according to set
  fonts of all mclistboxes in active an application. This
  function is supposed to be called after any font
  change. 

  Option -selectcolumn
  Specifies behavior of selection. If -selectcolumn is
  set to 1 and -selectmode is set to single, 
  then only one cell instead of hole line is highlighted
  upon click. Default value is 0. 

  Opton -usexscroll
  Specifies whether corresponding xscrollbar is visible.
  This option works only if -usecolumnxscroll is set to
  1. If the value is 1,
  it makes corresponding xscrollbar visible. Default
  value is 1.


tkt_uuid: 3292977fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 3 Low
foundin: None
title: Error when Themed Label foreground changed
cmimetype: text/plain
submitter: oehhar
assignee: oehhar
closer: oehhar
closedate: 2011-04-26T08:16:55
comment:
  An error arises when foreground color of a themed label widget is changed.
  Use -foreground instead -fg for ttk::label.

  This was corrected on CSV.


tkt_uuid: 458306ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget ComboBox (1.3.1)
cmimetype: text/plain
submitter: petasis
assignee: hobbs
closer: hobbs
closedate: 2003-07-17T19:55:15
comment:
  BWidget 1.3.1 has changed the way ComboBox handles
  focus and selection, compared to the latest Unifix release, 1.2.1.

  First of all, option -entryfg removed,breaking older code.
  Why not -entryfg to be re-inserted as a synonym of -foreground,
  so as to maintain backward compatibility?

  Also, when the user selects a value from the drop-down list (or
  simply closes it without selecting anything), then the focus
  is set to the entry widget. This is perhaps ok if the ComboBox
  is editable, but when the ComboBox is not editable, there is no point
  in it: the user cannot type anything in there and an insertion cursor appears.
  This visually unpleasant, having an insertion cursor in an entry you cannot
  type.
  Also, it cannot be turned off with the various -insert* options, that seem to
  not work in order to make the insertion cursor invisible...

  Also regarding the selection, ComboBox obviously tries to mimic the combo box
  behaviour under windows, so along with the focus, the selection is also set.
  Again, under windows when you click outside the combo box, the selection is
  removed. This is not happening to the BWidget combo box. In my opinion,
  there should be an option to avoid also seting the selection in the changed
  value, as there are situations where this behaviour is not wanted.
  (but perhaps setting the selection bg/fg to the default entry fg/bg can solve
  this problem, although I have not tested it...)


tkt_uuid: 458011ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct
priority: 5 Medium
foundin: None
title: Limitations to the _names_ of nodes
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-09-05T23:36:40
comment:
  Hello,

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

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

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

    All these errors occurred after I successively
  created the
  node!

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

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

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

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

  Regards,

  Arjen Markus


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


tkt_uuid: 1445692fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: mime
priority: 5 Medium
foundin: None
title: parsedatetime month wrong
cmimetype: text/plain
submitter: usus
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-03-08T15:59:10
comment:
  mime::parsedatetime -now proper determines the wrong
  month. Same is with lmonth and month.

  Here's a diff to a correctly working mime.tcl:

  diff -c /usr/local/lib/tcllib1.8/mime/mime.tcl.orig
  /usr/local/lib/tcllib1.8/mime/mime.tcl
  *** /usr/local/lib/tcllib1.8/mime/mime.tcl.orig     
  2005-10-04 20:47:37.000000000 +0200
  --- /usr/local/lib/tcllib1.8/mime/mime.tcl 2006-03-08
  16:29:33.000000000 +0200
  ***************
  *** 3256,3264 ****
            variable WDAYS_LONG   [list Sunday Monday
  Tuesday Wednesday Thursday \                          
             Friday Saturday]

  !         variable MONTHS_SHORT [list Jan Feb Mar Apr
  May Jun \
                                        Jul Aug Sep Oct
  Nov Dec]
  !         variable MONTHS_LONG  [list January February
  March April May June July \
                                        August Sepember
  October November December]  }
    proc ::mime::parsedatetime {value property} {
  --- 3256,3264 ----
            variable WDAYS_LONG   [list Sunday Monday
  Tuesday Wednesday Thursday \                          
             Friday Saturday]

  !         variable MONTHS_SHORT [list "" Jan Feb Mar
  Apr May Jun \
                                        Jul Aug Sep Oct
  Nov Dec]
  !         variable MONTHS_LONG  [list "" January
  February March April May June July \
                                        August Sepember
  October November December]  }
    proc ::mime::parsedatetime {value property} {
  ***************
  *** 3275,3281 ****

            lmonth {
                variable MONTHS_LONG
  !             return [lindex $MONTHS_LONG [clock format
  $clock -format %e]]
            }

            lweekday {
  --- 3275,3281 ----

            lmonth {
                variable MONTHS_LONG
  !             return [lindex $MONTHS_LONG [string
  trimleft [clock format $clock -format %m] 0]]
            }

            lweekday {
  ***************
  *** 3297,3303 ****

            month {
                variable MONTHS_SHORT
  !             return [lindex $MONTHS_SHORT [clock
  format $clock -format %e]]
            }

            proper {
  --- 3297,3303 ----

            month {
                variable MONTHS_SHORT
  !             return [lindex $MONTHS_SHORT [string
  trimleft [clock format $clock -format %m] 0]]
            }

            proper {
  ***************
  *** 3314,3320 ****
                variable WDAYS_SHORT
                set wday [lindex $WDAYS_SHORT [clock
  format $clock -format %w]]
                variable MONTHS_SHORT
  !             set mon [lindex $MONTHS_SHORT [clock
  format $clock -format %e]]

                return [clock format $clock \
                              -format "$wday, %d $mon %Y
  %H:%M:%S $zone"]
  --- 3314,3320 ----
                variable WDAYS_SHORT
                set wday [lindex $WDAYS_SHORT [clock
  format $clock -format %w]]
                variable MONTHS_SHORT
  !             set mon [lindex $MONTHS_SHORT [string
  trimleft [clock format $clock -format %m] 0]]

                return [clock format $clock \
                              -format "$wday, %d $mon %Y
  %H:%M:%S $zone"]


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

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

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

  @@ End 1216643966

  Perhaps there is a dependency not specified?


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

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


tkt_uuid: 466011ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: option rc file saved w/open permissions
cmimetype: text/plain
submitter: lvirden
assignee: patthoyts
closer: patthoyts
closedate: 2001-10-26T08:14:13
comment:
  when tkchat creates its $HOME/.tkchatrc file , tkchat
  should probably do something about setting the files
  permissions to rw------- / 600 on unix.


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


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


  = HOW TO REPRODUCE ERROR

  Let's take the simplest snit-widget:

    snit::widget myWidget {
    }

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

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

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

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

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

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

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


tkt_uuid: 1172938fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: profiler
priority: 7 High
foundin: None
title: profiler does not store descendent time
cmimetype: text/plain
submitter: davidlallen
assignee: ericm
closer: ericm
closedate: 2005-03-30T22:46:36
comment:
  I am a little confused about the tcllib profiler
  package.  I am using
  the 8.4.9 distribution on Windows XP, which includes
  profiler 0.2.2.

  Here is my elaborate test program.

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

     parent
     ::profiler::dump ::parent

  The output is:

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

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

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


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


tkt_uuid: 2845453fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: ldap
priority: 5 Medium
severity: Minor
foundin: None
title: MessageReceiver fails to read sequence byte on empty socket
cmimetype: text/plain
submitter: kai-infopark
assignee: aku
closer: aku
closedate: 2456449.50274478
comment:
  A simple LDAP/SSL search query (objectclass filter, returning around 20 results) failed with the following message:
    Protocol error: Error reading SEQUENCE response for handle

  Debugging showed, that this occured when ldap::MessageReceiver tried to read the sequence byte. The reason was, that line 728
    728         foreach {code type} [ReceiveBytes $conn(sock) 1] {break}
  in combination with the following "default" branch of the switch statement expects the connection to return the byte immediately.

  This expectation was not met. I surrounded the above line with a loop which continues on "partial" results for some tries and limited time. The error disappeared this way. The byte could be read from the socket almost at the same millisecond, after 20-30 loops.

  More general, it is not wise to expect a non-blocking read to always return at least one byte.

  As a solution, either partial "No byte available" responses are dealt with in place, or a more sophisticated "Collect the given number of bytes (for some time)" method is called.

  The same query returned without an error when the non-secured ldap port (389) of the server was asked.


tkt_uuid: 954328ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 8
foundin: None
title: require md5 then mime, throws error
cmimetype: text/plain
submitter: coldstore
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-20T05:46:14
comment:
  From a clean CVS install of tcllib:

  tclsh 
  % package require md5 
  2.0.0 
  % package require mime 
  version conflict for package "md5": have 2.0.0, need 1.0 
  %  

  whereas the opposite order works:

  tclsh 
  % package require mime 
  1.4 
  % package require md5 
  1.4.3 
  %


tkt_uuid: 3477684fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: crc
priority: 5 Medium
foundin: None
title: CRC of binary string: bad parsing
cmimetype: text/plain
submitter: tmmenezes
assignee: patthoyts
closer: patthoyts
closedate: 2012-01-23T20:28:24
comment:
  Calculating the CRC of a binary string can break the library.
  This happens when the input binary string includes the ASCII code for text symbol '-'.
  The proc parsing the input data breaks the input binary string into options because of '-'
  See attached file with example.


tkt_uuid: 1566475fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: pop3
priority: 2
foundin: None
title: pop3-6.1 fails sometimes
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
comment:
  Only on Solaris system do I see this.

  And only when running the whole tcllib
  test suite.  Testing the pop3 module alone
  doesn't cause the failure:

  ==== pop3-6.1 uidl FAILED
  ==== Contents of test case:

      dialog::dialog_set uidlFailed
      set psock [pop3::open localhost ak smash
  [dialog::listener]]
      catch {pop3::uidl $psock} msg
      pop3::close $psock
      dialog::waitdone
      set msg

  ---- Result was:
  POP3 UIDL ERROR: 
  ---- Result should have been (exact matching):
  POP3 UIDL ERROR:  unknown command 'UIDL'
  ==== pop3-6.1 FAILED


tkt_uuid: 564691ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: bad interaction: PanedWindow ScolledWind
cmimetype: text/plain
submitter: pkienzle
assignee: hobbs
closer: hobbs
closedate: 2003-02-25T10:01:38
comment:
  Sometimes the sash disappears when you make a window 
  pane the wrong size.  I have a short hunk of code 
  which exhibits and a varient which does not.

  Here is the packing structure in both variants:

   PanedWindow
   +-ScrolledWindow
   | +-widget1
   +-widget2

  If widget1 is a child of the scrolled window it
  succeeds, otherwise it sometimes fails (widget1
  overwrites the sash and the start of widget2) when
  the pane is small.

  The problem can be seen in 8.3.4 (Windows and SGI),
  but not in 8.3.1 (Linux).

  The attached file exhibits the problem when I drag
  to the top of the "2".


tkt_uuid: 1512671fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Improved delete for StatusBar
cmimetype: text/plain
submitter: mbroeken
assignee: hobbs
closer: hobbs
closedate: 2006-06-30T19:08:46
comment:
  When deleting the first item of a StatusBar an obsolete
  seperator is left at the front. This patch deletes this
  obsolete seperator when deleting the first item of a
  StatusBar. I've attached the patch as well as an
  example script to show the improved delete.


tkt_uuid: 486572ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: testsuite failure with cvs head version
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-12-06T21:54:19
comment:
  platform: sparc solaris 2.6 sun c compiler tcl 8.4a4
  and latest tcllib from cvs head of tue, nov 28, 2001

  after building and installing the latest tcl and tcllib
  I get the following fileutil errors when running the
  tcllib test suite:

  Module: fileutil
  modules/fileutil/fileutil.test
  fileutil 1.2

  ==== find-2.2 find by pattern FAILED
  ==== Contents of test case:

      lsort [::fileutil::findByPattern $dir -glob {fil*}]

  ---- Result was:
  /vol/tclsrcsol/tcl84/tcllib/find1/file1
  /vol/tclsrcsol/tcl84/tcllib/find1/find2/
  file2 /vol/tclsrcsol/tcl84/tcllib/modules/fileinput
  /vol/tclsrcsol/tcl84/tcllib/
  modules/fileutil
  /vol/tclsrcsol/tcl84/tcllib/modules/fileutil/fileutil.n
  /vol/tc
  lsrcsol/tcl84/tcllib/modules/fileutil/fileutil.tcl
  /vol/tclsrcsol/tcl84/tcllib/m
  odules/fileutil/fileutil.test
  ---- Result should have been (exact matching):
  /vol/tclsrcsol/tcl84/tcllib/find1/file1
  /vol/tclsrcsol/tcl84/tcllib/find1/find2/
  file2
  ==== find-2.2 FAILED

  ==== find-2.3 find by pattern FAILED
  ==== Contents of test case:

      lsort [::fileutil::findByPattern $dir -regexp
  {.*1$}]

  ---- Result was:
  /vol/tclsrcsol/tcl84/tcllib/examples/oreilly-oscon2001
  /vol/tclsrcsol/tcl84/tcll
  ib/find1 /vol/tclsrcsol/tcl84/tcllib/find1/file1
  /vol/tclsrcsol/tcl84/tcllib/mod
  ules/sha1
  ---- Result should have been (exact matching):
  /vol/tclsrcsol/tcl84/tcllib/find1
  /vol/tclsrcsol/tcl84/tcllib/find1/file1
  ==== find-2.3 FAILED


tkt_uuid: 806420ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: comm
priority: 5 Medium
foundin: None
title: comm uses wrong fconfigure options
cmimetype: text/plain
submitter: mic42
assignee: hobbs
closer: hobbs
closedate: 2003-10-21T22:50:07
comment:
  Comm loses unicode chars on the way.

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

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

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

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


tkt_uuid: 3495049fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools-text-15.4 test failure
cmimetype: text/plain
submitter: stwo
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2012-02-28T03:15:07
comment:
  The only difference I see between 'expected' and 'result':
  Expected:
  |        Example Block  More Lines
  Result:
  | Example Block  More Lines


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

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

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


tkt_uuid: 3396661fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: yaml
priority: 9 Immediate
foundin: None
title: Failure to parse valid YAML, the 2nd
cmimetype: text/plain
submitter: andreas_kupries
assignee: kanryu6
closer: kanryu6
closedate: 2011-08-23T13:09:07
comment:
  The inlined YAML

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  foo: []
  some: value
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  contains valid YAML, as per http://yamllint.com/

  The yaml package fails on this. For this one I managed to find a fix.
  The huddle package is actually at fault. The following code

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          strip {
              foreach {src nop} $args break
  **         foreach {val} $src {
                  lappend result [strip $val]
              }
              return $result
          }
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  is not initializing the 'result' variable. This is in the procedure "::huddle::_list_setting". It needs a

      set result {}

  to handle the possibility of an empty list in $src.


tkt_uuid: 511700ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: Chat window enhancement?
cmimetype: text/plain
submitter: lvirden
assignee: patthoyts
comment:
  It would be wonderful if i could :

  split the chat window

  run a search or read history in one window while
  watching the existing discussion in the other


tkt_uuid: 2431506fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: nntp
priority: 5 Medium
foundin: None
title: Event based nntp, plus cleanups
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  FYI ...

  -------- Original Message --------
  Subject: Modification of tcllib1.11 package nntp 0.2.1
  Date: Sat, 13 Dec 2008 23:40:19 +0300
  From: Igor Gilyazov <igor.gilyazov@gmail.com>
  To: jeffh@activestate.com



  Hello Jeff,

  I have modified tcllib1.11 package nntp 0.2.1.
  Now it uses [fileevent] model, which allows async connection, timeout
  and other features.
  Also I have made various cleanups.
  My version supports only RFC 977 commands, but I can easily extend it
  with non-standard commands.

  The idea is to make the same modification to all tcllib modules like
  pop, ftp, smtp and etc.
  Also I can try to modify each of these packages to be full compatible
  with RFC.

  I attach Gzip archive with my version of nntp.
  I am not tcl expert, so if you have any suggestions to improve my code,
  you are welcome.
  If my code is useful to you, you can include this package to tcllib as
  nntp 0.2.2 or whatever.

  Regards,

  Igor


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

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

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

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


tkt_uuid: 1668587fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget MessageDlg, -type user overrides default buttonwidth
cmimetype: text/plain
submitter: eriklns
assignee: damonc
closer: oehhar
closedate: 2009-06-10T16:12:45
comment:
  The MessageDlg overrides user defined defaults when used with the option: -type user. For example:

  % option add *Button.width 10 100
  % MessageDlg .msgdlg -type user -buttons {ok cancel} \
        -message "whatever"

  then these defaults are picked up, but overridden by the message box to become -width 0, as testifies:

  % .msgdlg.bbox.bo configure -width
  -width width Width 10 0


tkt_uuid: 585455ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: mime
priority: 5 Medium
foundin: None
title: MIME::initialize speedup
cmimetype: text/plain
submitter: pascalscheffers
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-07-25T18:29:26
comment:
  This patch speeds up mime::initialize, it adds three
  state variables to the token state, lines (a list),
  lines.current (the current line) and lines.count (the
  number of lines in the list. It changes the way lines
  are processed by splitting the entire message into a
  list and fetching new lines from the list as needed. 

  From what I've gathered from the MIME RFC documents,
  there are no valid encodings in use that would break
  the [split $string \n] method. 


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

  Michael


tkt_uuid: 472010ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: mime
priority: 5 Medium
foundin: None
title: "smtp::sendmessage" and "header"
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-11-02T05:37:32
comment:
  he procedure "smtp::sendmessage" does not recognice the
  "header"
      data provided with the "mime::setheader" command.

  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  package require mime
  package require smtp

  set TEXT    {Hallo Otto}

  set M1      [ ::mime::initialize -canonical
  "Text/plain" -string $TEXT]

  mime::setheader $M1 To "Dev1Usr <dev1usr@linux02>"
  mime::setheader $M1 From "Andreas Otto
  <dev2usr@linux02>"
  mime::setheader $M1 Subject "test ..."

  #smtp::sendmessage $M1  -header [ list To "Dev1Usr
  <dev1usr@linux02>" ] \
  #                       -header [ list From "Andreas
  Otto <dev2usr@linux02>" ] \
  #                       -header [ list Subject "test
  ..." ]

  smtp::sendmessage $M1

  # clean everything up

  mime::finalize $M1
  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

  generate

  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><
  need -header "To ..."
      while executing
  "error "need -header \"$toM ...\"""
      (procedure "smtp::sendmessage" line 176)
      invoked from within
  "smtp::sendmessage $M1"
      (file
  "/home/dev1usr/Project/Compiler2/bin/Mail.tcl" line 33)
  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


tkt_uuid: 1042987fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: treeql
priority: 5 Medium
foundin: None
title: Extra list layers on output of get
cmimetype: text/plain
submitter: btheado
assignee: coldstore
closer: coldstore
closedate: 2004-10-21T05:29:53
comment:
  Here is one unexpected behavior I found.  There seem to
  be extra list layers on elements of the list returned
  by get when that list element contains spaces or square
  braces.

      package require treeql
      package require struct::tree
      package require tcltest
      namespace import tcltest::*
      set t [struct::tree]; ::treeql q -tree $t
      test get.1 {attributes with special characters} {
          $t insert root end n1 n2 n3
          $t set n1 title hello
          $t set n2 title "hello there"
          $t set n3 title {[hello]}
          q query root children get title
      } [list hello {hello there} {[hello]}]
      $t destroy; q destroy

  Output:

   ---- Result was:
   hello {{{hello there}}} {{{[hello]}}}
   ---- Result should have been (exact matching):
   hello {hello there} {[hello]}
   ==== get.1 FAILED


tkt_uuid: 1695123fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Not Applicable Here
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools - Rework to use snit
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  doctools currently uses a custom OO-like code base. Rewrite it to use snit instead for future manageability.

  This can be done before or after the internals have been changed to the use of pluginmgr (see RFE 1695122).


tkt_uuid: 3427030fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: md5crypt
priority: 5 Medium
severity: Minor
foundin: None
title: Memory leak in md5crypt::aprcrypt in tcllib 1.13
cmimetype: text/plain
submitter: rich123
assignee: andreas_kupries
closer: aku
closedate: 2456444.30926218
comment:
  There is a memory leak somewhere in the md5crypt::aprcrypt implementation in tcllib
  1.13.

  Steps to repeat:

  $ tclsh 
  % parray tcl_platform
  tcl_platform(byteOrder)   = littleEndian
  tcl_platform(machine)     = i686
  tcl_platform(os)          = Linux
  tcl_platform(osVersion)   = 2.6.33
  tcl_platform(platform)    = unix
  tcl_platform(pointerSize) = 4
  tcl_platform(user)        = work
  tcl_platform(wordSize)    = 4
  % puts $tcl_patchLevel
  8.5.5
  % package require md5crypt
  1.1.0
  % for {set i 0} {$i < 1000000} {incr i} { ::md5crypt::aprcrypt blah [ ::md5crypt::salt ] }

  Watch memory usage of tclsh in top or another monitor.  It will grow over time as the for loop iterates.


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


tkt_uuid: 967906ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: bwidget - Font Chooser Cursor Usage
cmimetype: text/plain
submitter: wilkason
assignee: hobbs
closer: dev_null42a
closedate: 2006-09-28T15:55:32
comment:
  In the font chooser, the listbox cannot be navigated with the cursor key. Adding the bottom two lines to  SelectFont::create corrects this

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


tkt_uuid: 3609346fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: Installation
priority: 7 High
foundin: None
title: /usr/bin/dia: filename clash
cmimetype: text/plain
submitter: teopetuk
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2013-04-04T04:36:36
comment:
  Hi!

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


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

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

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

  This only happen when we use ftp in asynchronous 
  mode.

  My Email:
  champdog_s1977@hotmail.com


tkt_uuid: 2499641fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: stripPath does not correctly handle mixed case paths
cmimetype: text/plain
submitter: apnadkarni
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-02-05T23:40:43
comment:
  stripPath does not correctly handle mixed case paths on Windows. See console session below

  (woof) 65 % ::fileutil::stripPath /temp /temp/foo
  foo
  (woof) 66 % ::fileutil::stripPath /temp /Temp/foo
  /Temp/foo

  On windows, it should recognize that /temp and /Temp are in fact the same.

  Platform: fileutil 1.13.5 under Tcl 8.6b1 on Windows XP SP2

  /Ashok


tkt_uuid: 523036ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: 'make install' errors
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-03-07T16:48:07
comment:
  $ make install
  ...
  Installing doctools in
  /usr/local/lib/tcllib1.2/doctools
  /usr/bin/install: ./modules/doctools/*.tcl: No such
  file or directory
  ...
  Installing documentation for calendar
  sed: can't read ./modules/calendar/*.n: No such file or
  directory
  /usr/bin/install: installing multiple files, but last
  argument (/usr/local/man/mann/wm.n) is not a directory
  Try `/usr/bin/install --help' for more information.
  ...
  Installing documentation for doctools
  sed: can't read ./modules/doctools/*.n: No such file or
  directory
  /usr/bin/install: installing multiple files, but last
  argument (/usr/local/man/mann/wm.n) is not a directory
  Try `/usr/bin/install --help' for more information.
  ...


tkt_uuid: 2798450fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: uri
priority: 5 Medium
foundin: None
title: uri::split provides no user and pwd without (default) scheme
cmimetype: text/plain
submitter: martinlemburg
assignee: nobody
comment:
  Hello,

  following code shows the bug:

      % info patchlevel
      8.5.7
      % package require uri
      1.2.1
      % uri::split host.td
      port {} path host.td scheme http host {} query {}
      % uri::split host.td http
      port {} path host.td scheme http host {} query {}
      % uri::split http://host.td
      port {} path {} scheme http host host.td query {} pwd {} user {}
      % uri::split host.td ftp
      port {} path host.td scheme ftp host {} type {} user {} pwd {}
      % uri::split ftp://host.td
      port {} path {} scheme ftp host host.td type {} user {} pwd {}

  So, the more common summary must be narrowed a bit, that a missing "http" scheme in the url with or without the default scheme "http" causes "uri::split" to do not return a user and pwd result list element.

  Best regards,

  Martin Lemburg


tkt_uuid: 3610478fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: None
subsystem: json
priority: 5 Medium
foundin: None
title: json conversion fails on help example
cmimetype: text/plain
submitter: tombert
assignee: hobbs
closer: tombert
closedate: 2013-04-10T16:34:51
comment:
  Tested in Tcl 8.5.14, WinXP

  Working with the example given in the tcllib help file (tcllib/embedded/www/tcllib/files/modules/json/json.html)

  dict2json:
  set j [json::dict2json {Image {IDs {116 943 234 38793} Thumbnail {Width 100 Height 125 Url http://www.example.com/image/481989943} Width 800 Height 600 Title {View from 15th Floor}}}]
  {"Image": IDs {116 943 234 38793} Thumbnail {Width 100 Height 125 Url http://www.example.com/image/481989943} Width 800 Height 600 Title {View from 15th Floor},
  }

  the same json2dict:
  json::json2dict $j
  unexpected token "116" at position 5; expecting STRING

  I put the example into http://jsoneditor.net/ which does not complain, but compresses it a little bit.
  set j {"Image":{"Width":800,"Height":600,"Title":"View from 15th Floor","Thumbnail":{"Url":"http://www.example.com/image/481989943","Height":125,"Width":100},"IDs":[116,943,234,38793]}}

  but the conversion to dict gives:
  json::json2dict $j
  Image



  thx


tkt_uuid: 851495ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Enable drag and drop by default for ListBox
cmimetype: text/plain
submitter: sgamon
assignee: hobbs
closer: hobbs
closedate: 2004-09-14T20:09:34
comment:
  I suggest adding two new defaults to ListBox widgets:

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


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


tkt_uuid: 988123ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: "./sak.tcl nroff" fails
cmimetype: text/plain
submitter: rmax
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-07-10T04:16:27
comment:
  The output is:

  Gen (nroff): ./modules/asn/asn.man
  Gen (nroff): ./modules/base64/yencode.man
  Gen (nroff): ./modules/base64/base64.man
  Gen (nroff): ./modules/base64/uuencode.man
  Gen (nroff): ./modules/bee/bee.man
  command "dt" already exists, unable to create doctools
  object
      while executing
  "::doctools::new dt  -format $fmt  -module $m"
      (procedure "gendoc" line 19)
      invoked from within
  "gendoc nroff n"
      ("eval" body line 1)
      invoked from within
  "eval gendoc nroff n    $argv"
      (procedure "__nroff" line 1)
      invoked from within
  "__$cmd"
      (file "./sak.tcl" line 1582)


tkt_uuid: 2903927fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Development Tools
priority: 5 Medium
foundin: None
title: tklib test suite failure on CVS head
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-11-25T20:02:18
comment:
  I configure and install tklib, then I type:

  $ gmake test
  /projects/sprs_lwv/tcl86/bin/tclsh8.6 `echo ../sak.tcl` test
  Command missing

      test -- Execute testsuites

      sak test run ?-s|--shell PATH? ?-l|--log STEM? ?-g|--valgrind? ?-v? ?MODULE ...?

          Run the testsuites of the specified modules, using the shell
          running SAK for the testsuites as well. If no modules are
          specified the testsuites of all modules are run.

  :
  and more stuff
  :
  gmake: *** [test] Error 1


tkt_uuid: 3427858fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: irc
priority: 5 Medium
foundin: None
title: Add secure IRC (TLS/994) support to pico IRC
cmimetype: text/plain
submitter: karll
assignee: davidw
comment:
  Attached is a patch that will add secure IRC support to pico irc. It recognizes the RFC-standard ircs:// format and, if specified, sets a variable "secure" in the object, defaults to the 994 port (if not specified), and uses tls to establish a secure connection.

  All a user has to do to make use of secure irc, after this patch, is to specify ircs:// in the URL rather than irc://.

  A new command, ::picoirc::tls_status returns the security status of the connection as list of key-value pairs (certificate info) as returned by ::tls::status.

  The patch also includes requisite updates to the manual page.


tkt_uuid: 577678ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: Add the package tkmisc to tklib
cmimetype: text/plain
submitter: arjenmarkus
assignee: hobbs
comment:
  I have formalised a small set of procs that handle
  toplevel windows:
  - Show a logo window at start-up
  - Show a window that fills the entire screen without
  decorations
  The attached file contains the source code, some
  documentation and test cases.


tkt_uuid: 514486ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: textutil
priority: 5 Medium
foundin: None
title: request textutil snd-like comparisons
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-01T21:39:08
comment:
  I would like to request procs that implement string
  comparisons of soundex, extended soundex, metaphone,
  double metaphone be added to tcl.

  Text::Soundex, Text::Metaphone, Text::DoubleMetaphone
  are perl modules which implement 3 of these algorithms.

  When searching google for the above, I noticed
  http://www.linguistlist.org/~ask-ling/archive-1998.4/msg00854.html
  which claims to have some algorithm info for
  non-english languages.


tkt_uuid: 1000716fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: tree
priority: 8
foundin: None
title: Unset of last attribute followed by delete results in error
cmimetype: text/plain
submitter: btheado
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-08-05T03:55:49
comment:
  Unsetting the last attribute of a node and then
  deleting that node results in an error.

  Here is a unit test that shows this behavior:

  test tree-2.6.6 {unset followed by node delete} {
      tree mytree
      set     result [list]
      set n [mytree insert root end]
      mytree set $n foo bar
      mytree unset $n foo
      mytree delete $n
      set result [mytree exists $n]
      mytree destroy
      set result
  } 0

  Here is the result when executed:
  ---- Test generated error; Return code was: 1
  ---- Return code should have been one of: 0 2
  ---- errorInfo: can't unset "::mytree::": no such variable
      while executing
  "unset ${name}::$attribute($node)"
      (procedure "KillNode" line 12)
      invoked from within
  "KillNode $name $node"
      (procedure "::struct::tree::_delete" line 27)
      invoked from within
  "::struct::tree::_delete ::mytree node1"
      ("_delete" body line 1)
      invoked from within
  "mytree delete $n"
      ("uplevel" body line 7)
      invoked from within
  "uplevel 1 $script"
  ---- errorCode: NONE
  ==== tree-2.6.6 FAILED

  One fix that causes the above test to pass without
  breaking any of the other unit tests in tree.test is to
  change the line in ::struct::tree::_unset that says:

  set attribute($node) {}

  to

  unset attribute($node)


tkt_uuid: 943146ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: nroff formatting eats backslashes
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-04T18:52:01
comment:
  with [const {\u001A}] in a doctools formatted
  document, the literal backslash gets passed
  through fine, but since \ is an nroff-special
  character, it doesn't appear in the displayed
  documentation.

  Seems the nroff formatting needs to add
  some \-escaping.


tkt_uuid: 2433410fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
title: tklib build process reports plotchart doc problem
cmimetype: text/plain
submitter: lvirden
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-12-10T10:22:45
comment:
  Generating /projects/sprs_lwv/tcl86/man/mann/plotchart.n
  DocTools Warning (sectambig): In macro at line 2332, column 0:
  DocTools Warning (sectambig): (Sub)Section title "RESIZING" causes ambiguous section references.


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


  How about a:

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

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

  For Example:

  myTree maxdepth root
  ---> 3

  myTree maxdepth 6
  ---> 3

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


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

  Any Questions?

  David Bigelow
  davidhbigelow@compuserve.com


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

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

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

  proc main { } {

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

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

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

  main
  wm geom . [wm geom .]


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

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

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

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

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


tkt_uuid: 3300362fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: tklib :: tooltip
priority: 3 Low
foundin: None
title: Tooltip font, msgcat namespace
cmimetype: text/plain
submitter: oehhar
assignee: hobbs
comment:
  Leaving BWidget, I was looking to the tktooltip package. Here are two comments:

  1) Tooltip font
  Currently, the default font for labels is used as tooltip font.
  This might not be the desired font.
   Since Tk8.5, there is the special font "TkTooltipFont" containing the current tooltip font which might be used.
  Possible code from BWidget: 
      if {$::tcl_version >= 8.5} {
          set fontdefault TkTooltipFont
      } elseif {$Widget::_aqua} {
          set fontdefault {helvetica 11}
      } else {
          set fontdefault {helvetica 8}
      }
     label -font $fontdefault

  2) msgcat namespace
  IMHO, the use of msgcat within tooltips is half baken:
  - the namespace where msgcat::mc is called should be the namespace of the caller and not ::tooltip
  - there are no parameters allowed to" msgcat::mc"

  Suggestion:
  - save the caller namespace on tooltip creation for a later msgcat call
  - add a "--" option to the arguments to stop argument parsing
  - Allow to have multiple arguments after the message key.
    Save it as list and pass it to msgcat as arguments.

  Possible msgcat call with namespace and arguments
    namespace eval $ns [concat ::msgcat::mc $lkey]

  I would volonter to submit a patch for the two issues if this sounds reasonable

  - Harald


tkt_uuid: 1166235fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: bwidget
priority: 5 Medium
foundin: None
title: NoteBook delete reindexing
cmimetype: text/plain
submitter: altano
assignee: damonc
closer: oehhar
closedate: 2009-06-30T14:14:07
comment:
  version 1.7

  In NoteBook::delete

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

  needs to be 

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


tkt_uuid: 1451784fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Bwidget notebook highlight looks bad on OS X
cmimetype: text/plain
submitter: wordtech
assignee: damonc
closer: oehhar
closedate: 2009-06-29T09:10:25
comment:
  The Bwidget notebook on OS X has a glitch in which the notebook tab, 
  when it has focus, turns black and obscures the label. I went into 
  notebook.tcl and added a switch statement with a specific color 
  (LightSkyBlue) for OS X. Diff and before/after screenshots attached.


tkt_uuid: 979487ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: bwidget
priority: 5 Medium
foundin: None
title: SelectColor widget locks up on MacOS
cmimetype: text/plain
submitter: ssmedley
assignee: damonc
closer: oehhar
closedate: 2009-07-01T06:59:22
comment:
  Hi,

  The SelectColor widget locks up under Mac OS X. I'm
  using BWidget v1.7.

  If I remove the 3 "update" calls in SelectColor::menu, 
  everything works fine.

  I tried substituting with "update idletasks" but that
  didn't work.

  Email me at ssNO@SPAMaao.gov.au if you need more
  info or patches tested.

  SCoTT. :)


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

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

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

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


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


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

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

  - "version" is nice but ought to be optional

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

  Thanks for this very useful tool! - Roy Terry


tkt_uuid: 3007168fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: tklib: ico
priority: 5 Medium
foundin: None
title: correct alignment for 24x24 icons
cmimetype: text/plain
submitter: a_kovalenko
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-07-07T20:41:06
comment:
  When tklib::ico reads and writes *.ico, *.dll, *.exe files, it uses the code like ($w*$h+$h*($w%32)) in a number of places, to calculate extra padding required for AND mask. It turned out that the result for 24x24 icons is incorrent; when used with this size, tklib::ico may corrupt executable files and generate incorrect *.ico files (still accepted by some software, but e.g. icotool warns about the incorrect size and about garbage skipped).

  If we regard $w==24 as a special case, ($w==24? 8 : $w % 32) is a correct replacement for the expression above. I'm attaching the patch fixing all places where the incorrect method was used.

  Wish.ico has 24x24 members, and patched ico.tcl works fine with wish-based executables.


tkt_uuid: 2898640fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: snit
priority: 5 Medium
foundin: None
title: "info instances" method fails
cmimetype: text/plain
submitter: duquette
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-11-16T23:54:05
comment:
  If a snit::type or snit::widget's type namespace has a child namespace other than the instance namespaces, then the call "$type info instances" will fail with the following error:

      can't read "instance": no such variable

  The error is in the routine ::snit::RT.typemethod.info.instances, which loops over [namespace children $type], thereby presuming that all child namespaces are instance namespaces.  This need not be the case.  The call to [namespace children] should use a pattern that matches "${type}::Snit_inst*".

  The same idiom also exists in ::snit::RT.typemethod.destroy, which implements the "$type destroy" command.


tkt_uuid: 458023ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ncgi
priority: 5 Medium
foundin: None
title: urlStub always returns ""
cmimetype: text/plain
submitter: stevecassidy
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-09-05T23:11:24
comment:
  cgi::urlStub is intended to return either 
  env(SCRIPT_NAME) or a value set by a previous call to 
  the proc.  It's missing a global env declaration and 
  so always fails to find a value for SCRIPT_NAME and 
  returns "" instead.

  The patch is simple, in ncgi.tcl:

   proc ncgi::urlStub {{url {}}} { 
       variable urlStub 
  +    global env
       if {[string length $url]} {


tkt_uuid: 2798448fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: uri
priority: 5 Medium
foundin: None
title: uri::split makes host to path without scheme
cmimetype: text/plain
submitter: martinlemburg
assignee: andreas_kupries
comment:
  Hello,

  following code shows the bug in tcllib 1.11.1:

      % info patchlevel
      8.5.7
      % package require uri
      1.2.1
      % uri::split host.td
      port {} path host.td scheme http host {} query {}
      % uri::split http://host.td
      port {} path {} scheme http host host.td query {} pwd {} user {}
      % uri::split host.td ftp
      port {} path host.td scheme ftp host {} type {} user {} pwd {}
      % uri::split ftp://host.td
      port {} path {} scheme ftp host host.td type {} user {} pwd {}

  Best regards,

  Martin Lemburg


tkt_uuid: 1730868fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: None
priority: 5 Medium
foundin: None
title: install as Tcl Modules
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
comment:
  Following the instructions in
  INSTALL.txt installs the packages
  in a [tclPkgUnknown]-compatible
  install scheme.

  Where Tcl Module installation is
  support, it ought to be a better
  choice.

  I request that the tcllib install
  machinery permit Tcl Module
  installation, at least as an option,
  and preferably moving fairly quickly
  to being the default option.


tkt_uuid: 3381002fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: Tkchat announces wrong hash in XEP-0115 Entity Capabilities
cmimetype: text/plain
submitter: quantifier
assignee: patthoyts
closer: patthoyts
closedate: 2012-01-23T20:35:38
comment:
  Patch that fixes missing "<" :

  Index: tkchat.tcl
  ===================================================================
  RCS file: /cvsroot/tcllib/tclapps/apps/tkchat/tkchat.tcl,v
  retrieving revision 1.486
  diff -u -r1.486 tkchat.tcl
  --- tkchat.tcl  17 May 2011 23:27:19 -0000      1.486
  +++ tkchat.tcl  28 Jul 2011 12:37:38 -0000
  @@ -8475,7 +8475,7 @@
       # extended feature processing as well (order counts)
       append S "urn:xmpp:dataforms:softwareinfo<"
       append S "os<$tcl_platform(os)<"
  -    append S "os_version<$tcl_platform(osVersion)"
  +    append S "os_version<$tcl_platform(osVersion)<"
       append S "software<tkchat<software_version<$tkchatver<"
       return [base64::encode -maxlen 0 [sha1::sha1 -bin $S]]
   }


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

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


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


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


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

      $ man Ns_SlsAlloc

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


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

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

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

  Eric


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

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

  must be replaced to  :

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


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

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

  [submitted on behalf of Cisco, not Muonics]


tkt_uuid: 1119460fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 9 Immediate
foundin: None
title: Insert node with Tree -state disabled causes wish to crash
cmimetype: text/plain
submitter: skielty
assignee: hobbs
closer: hobbs
closedate: 2005-02-11T19:32:00
comment:
  Insert node with Tree -state disabled causes wish to 
  crash  -- This is obviously avoidable -- if you don't 
  disable. 
  The following script to reproduce: 
  # info patchlevel 
  # 8.4.6
  # BWidget v == 1.7 
  lappend auto_path [file join [pwd] .. lib bwidget1.7]  
  package require BWidget 
  set tree [Tree .a] 
  pack .a 
  $tree configure -state disable 
  foreach n {a b c} { 
  $tree insert end root $n -text Hello$n -
  drawcross allways   
  # wish crashes  
  } 
  # end of script 


tkt_uuid: 480945ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
title: consolidate tcllib examples
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-11-12T23:37:06
comment:
  Currently tcllib has examples in a higher level example
  directory as well as within several of the module
  directories.

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


tkt_uuid: 466746ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftp
priority: 5 Medium
foundin: None
title: socket readable, gets<0 => Error conn.
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-10-23T03:45:21
comment:
  I have a problem with tcllib-1.0 ftp when working
  with a proxy ftp server with the message "ERROR: Error
  connecting!"

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

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

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


tkt_uuid: 2853152fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Not Applicable Here
subsystem: dns
priority: 5 Medium
foundin: None
title: fix async dns behaviour
cmimetype: text/plain
submitter: mezis
assignee: patthoyts
comment:
  In some cases, dns::resolve may end up closing its socket "twice". Since the socket name might have been re-allocated in the meantime, thi causes someone elese's socket to get closed.
  This patch fixes this by setting the socket name to "nil" just after closing it.


tkt_uuid: 911281ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
title: snit - Optimize for space
cmimetype: text/plain
submitter: andreas_kupries
assignee: duquette
closer: duquette
closedate: 2004-08-08T04:16:30
comment:
  An empty snit::type comes with 37 K of runtime code.
  Optimize the generator ot include only the parts of the
  runtime support which are necessary (i.e. not widget
  stuff for snit:type's, no delegate handling if there
  are no delegates declared, etc.)


tkt_uuid: 932516ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Not Applicable Here
subsystem: html
priority: 5 Medium
foundin: None
title: html - many procedures not compatible with prodebug
cmimetype: text/plain
submitter: nobody
assignee: welch
comment:
  prodebug complains about the following:

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


tkt_uuid: 531799ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftpd
priority: 6
foundin: None
title: checks for wrong tcl version
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-03-19T23:09:18
comment:
  ftpd did not run on tcl8.2.2 for win32.
  Reason: The use of "lsort -unique" which is new in 
  tcl8.3.

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

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

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

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


tkt_uuid: 981764ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: bwidget
priority: 5 Medium
foundin: None
title: label problem in BWidget-1.2.1
cmimetype: text/plain
submitter: joshim
assignee: damonc
closer: hobbs
closedate: 2004-09-14T20:49:15
comment:
  Error in startup script: unknown option "-label"
      while executing
  "error "unknown option \"$option\"""
      (procedure "Widget::parseArgs" line 7)
      invoked from within
  "Widget::parseArgs ComboBox $args"
      (procedure "ComboBox::create" line 3)
      invoked from within
  "ComboBox $parent.mscCombo -label "MSC"  -labelwidth 
  5 -labelanchor w  -textvariable save::mscNo  -values { 
  apollo athena mscE mscS }  -width 8  -helpt..."
      (procedure "_MscCell" line 7)
      invoked from within
  "_MscCell  [$mscCellFrame getframe]"
      (procedure "save::create" line 11)
      invoked from within
  "save::create $notebook"
      invoked from within
  "set f0  [save::create $notebook]"


tkt_uuid: 784157ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 8
foundin: None
title: ::fileutil::find is now dependent upon Tcl8.4
cmimetype: text/plain
submitter: jhjl
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-08-06T22:43:45
comment:
  In fixing fileutil.tcl: Fixed SF tcllib bug [647974], the 
  Tcl8.4 [file system ...] command was used in the ::find 
  proc. 

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


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


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

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

  George


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

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

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

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


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


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

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


tkt_uuid: 1492630fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: Installer
priority: 5 Medium
foundin: None
title: Installer not creating tcllibc + related uuid issue
cmimetype: text/plain
submitter: juliannoble
assignee: andreas_kupries
comment:
  installer.tcl (on windows at least) doesn't create the 
  tcllibc module - nor does INSTALL.txt mention how to 
  build it.

  I found out about 'sak.tcl critcl' through a c.l.t 
  article where the original poster was complaining 
  about slow pure tcl implementations.

  A missing tcllibc module means that the uuid package 
  at least, will fallback to Tcl only mode even though 
  critcl is installed.

  for uuid without tcllibc - the faster version can be 
  accessed by first package requiring critcl..
  then directly calling the c proc.

  e.g on a machine without tcllibc installed.

  %package require critcl
  0.35
  %package require uuid
  1.0.1
  %uuid::tostring [uuid::generate_c]
  <some guid>
  %time {uuid::tostring [uuid::generate_c]} 100
  150.0 microseconds per iteration
  %time {uuid::uuid generate}
  51560 microseconds per iteration

  As you can see there's a huge performance difference 
  (due to exec call to ipconfig I guess) so it seems 
  that the fast critcl version is usable without 
  tcllibc - yet the default in this case is to still use 
  the pure Tcl version.

  Note that if critcl is 'package required' after uuid 
  then you just get:
  invalid command name "uuid::generate_c"

  I guess I'm suggesting that either uuid shouldn't 
  depend on tcllibc being present - just critcl... 
  and/or that tcllibc should be built by the tcllib 
  installer and documented, or at least just explained 
  in INSTALL.txt.


tkt_uuid: 688070ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: bwidget
priority: 5 Medium
foundin: None
title: LabelFrame/LabelEntry -label/-text/-textvariable broken
cmimetype: text/plain
submitter: ingemarh
assignee: hobbs
closer: hobbs
closedate: 2003-02-17T18:19:34
comment:
  BWidget 1.5:


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


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




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


  v1.4.1:


      Widget::bwinclude LabelFrame BWLabel .l \


          remove     {


              -highlightthickness -highlightcolor 
  -highlightbackground


              -takefocus -relief -borderwidth


              -bitmap -image -cursor -textvariable




  v1.5:


      Widget::bwinclude LabelFrame BWLabel .l \


          remove     {


              -highlightthickness -highlightcolor 
  -highlightbackground


              -takefocus -relief -borderwidth


              -cursor




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


  namespace eval LabelFrame {


      BWLabel::use




      Widget::bwinclude LabelFrame BWLabel .l \


          remove     {


              -highlightthickness -highlightcolor 
  -highlightbackground


              -takefocus -relief -borderwidth


              -cursor -textvariable


              -dragenabled -draginitcmd -dragendcmd 
  -dragevent -dragtype


              -dropenabled -droptypes -dropovercmd  
  -dropcmd} \


          initialize {-anchor w}


      proc use {} {}


  }




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


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

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

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

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

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

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

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


tkt_uuid: 1429377fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftp
priority: 5 Medium
foundin: None
title: syntax error in expression " $ftp(State) ne "quit_sent" "
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-06-13T18:34:14
comment:
  The ftp package require for Tcl is 8.2 but the use of
  "ne" to compare strings invalidates this. The "ne"
  keyword was not available till 8.4.  Should either make
  the package require for tcl 8.4 or replace "ne" with
  "string equal"

  Thanks,

  John Mercogliano III
  Contractor, TekSystems
  Systems Integration
  Sentara Health Care
  jxmercog@sentara.com


tkt_uuid: 1119279fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math
priority: 5 Medium
foundin: None
title: error in loading math::rationalfunctions pkg
cmimetype: text/plain
submitter: hemanglavana
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-02-09T16:37:41
comment:
  Please see the following error:

  hlavana-u5:53> tclsh
  % package require math::rationalfunctions
  couldn't read file "polynomials.tcl": no such file or
  directory
  % exit
  hlavana-u5:54> less
  /auto/ttsw/ActiveTcl/8.4.9/lib/tcllib1.7/math/rational_funcs.tcl

  # rational_funcs.tcl --
  #    Implement procedures to deal with rational functions
  #
  source polynomials.tcl
  package require math::polynomials
  ..

  The "source polynomials.tcl" cmd  is causing this
  problem. This line should be deleted because the
  following line "package require math::polynomials"
  loads the polynomials.tcl file correctly.

  Hemang.


tkt_uuid: 606640ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: mime
priority: 5 Medium
foundin: None
title: Quoted-printable should encode also '='
cmimetype: text/plain
submitter: nobody
assignee: mrose
closer: patthoyts
closedate: 2003-01-06T14:59:51
comment:
  mime.tcl procedure qp_encode should change '=' 
  characters to '03D'. (Same than trf-package does). At 
  least Outlook Express/Exchange server can't decode 
  html-data if this isn't done. 

  New code-x3D inserted:

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

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


